Все потоки
Поиск
Написать публикацию
Обновить
1048.39

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Когда программисту надоедает программирование

Время на прочтение3 мин
Количество просмотров10K
С год назад я столкнулся со странной «проблемой». Уже 7 лет как я занимаюсь программированием. Постепенно начал замечать «спад активности» — учить новое не хочется, рутиной заниматься не просто лень, а мега-лень, базы данных и обработка XML — в печенках уже сидит. И вдруг неожиданно понимаю, что программирование мне… надоело.

image

Что теперь делать? Как быть? Кто виноват? Ведь программирование — это то, что я всегда и больше всего любил. А самое важное — это то, чем я зарабатываю на жизнь. И больше не могу «это» делать.

Я попытаюсь рассмотреть проблему со всех сторон. Начнем с грустного.

Читать дальше →

Популярность языков по stackoverflow

Время на прочтение1 мин
Количество просмотров2.8K
Меня всегда смущал отчет от Tiobe, ну не похож он на правду. Ну хотя бы потому что Delphi на 9 месте, а javascript на 10, т.е. последнее и предпослениее места в top-10. И это в наше то время развития web 2.0, ну явно ведь должно быть в ином порядке. Ну и по остальным языкам все как то подозрительно. А что же на самом деле, что сейчас популярно у продвинутых программистов? А определить оказалось довольно просто, достаточно заглянуть на stackoverflow.com и посмотреть популярность тегов (они там четко к языкам прикреплены, есть куча модераторов отслеживающих правильность тегов)
top10 языков по меркам stackoverflow

Принцип подстановки Барбары Лисков

Время на прочтение6 мин
Количество просмотров154K
Привет, хабрачеловеки!

Захотелось вот поделиться сокровенным знанием по этой теме. К тому же материалов по этому, достаточно важному принципу проектирования классов и их наследования, в Рунете как-то негусто. Имеются формулировки вида:

«Пусть q(x) является свойством верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.» © Wikipedia

Но они выносят мой мозг меня совершенно не радуют.

Если хочется услышать объяснение этой хрени умной фразы — прошу под кат.
Читать дальше →

Смех сквозь слёзы: Всеукраинский конкурс по информационным технологиям

Время на прочтение4 мин
Количество просмотров3.2K
Привет, хабрачеловек! Мне довелось принимать участие в «Всеукраинском конкурсе молодежи по информационным технологиям», в номинации «Web-программирование», который в этом году проходил в городе Бровары, не далеко от Киева. То, что я там увидел — меня, откровенно говоря, повергло в шок. Подробнее — под катом.
Читать дальше →

Программирование в таблицах — новая концепция записи условных (и не только) конструкций

Время на прочтение8 мин
Количество просмотров6K
Не так давно, в процессе поиска в сети альтернативных подходов к программированию я наткнулся на очень интересное видео. Это 40-минутная презентация с интригующим названием «No Ifs, Ands, or Buts. Uncovering the Simplicity of Conditionals». Автор презентации Джонатан Эдвардс (Jonathan Edwards) рассказывает о новой концепции записи условных конструкций при помощи созданных им схематических таблиц (schematic tables).

Эта тема должна быть интересна всем, кто хоть немного интересуется программированием. Если у вас нет в распоряжении лишних сорока минут или вы не можете посмотреть видео по какой-либо другой причине, предлагаю ознакомиться с моим кратким пересказом презентации Джонатана.
Читать дальше →

Январский рейтинг языков программирования

Время на прочтение2 мин
Количество просмотров15K
Голландская компания TIOBE представила очередной рейтинг языков программирования. Рейтинг строится по данным популярных поисковых систем о количестве разработчиков и компаний, использующих язык, а также о количестве обучающих курсов по этому языку.

Итак, что же нового в январском рейтинге? В первую очередь это появление в нём языка Go. И не просто появление — он стал языком 2009 года по версии TIOBE. Популярность Go выросла на 1,25% с момента его появления в ноябре 2009-го и на сегодня он занимает 13-ую строчку рейтинга.

Следом за Go по скорости популяризации идёт Objective-C от Apple, отставший всего на сотую долю процента. Objective-C существует уже давно, но вернул свою популярность благодаря iPhone.

Интересен также рост популярности PHP, который опустил С++ и Visual Basic на строчку ниже. Помимо языков от Google и Apple в 2009 высокого уровня достигли C# от Microsoft и ActionScript от Adobe. Что касается Java, то он по прежнему остался на первой строчке, хотя его популярность продолжает падать.
Итак, сам рейтинг

CPrompt — интерпретатор языка си

Время на прочтение3 мин
Количество просмотров7K
С июня 2009 года я занимаюсь разработкой интерпретатора Си. (я уже упоминал об этом в статье о вызовах функций).
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
интересно?

За что я люблю программирование

Время на прочтение3 мин
Количество просмотров10K
Когда я был маленьким, я очень любил писать программы. Интерес был вызван, скорее, обидой. Почему это компьютер умнее меня? И игрой. Игрой, заставить его, компьютер, делать то что я хочу. Ты нажимаешь кнопку, а он говорит что не так, ты правишь ошибку, а он говорит что опять не так… И вот оно запустилось. А счастья нет. Ты начинаешь разбираться… искать… Ты чувствуешь себя строителем мира, так мне тогда казалось. Мне казалось что я создаю свою вселенную… Свой маленький мир…

Читать дальше →

Scala. Введение

Время на прочтение12 мин
Количество просмотров89K
Привет хабралюди.

Не так давно я заинтересовался одним из многочисленных ныне языков под JVM — Scala. Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком. Так как поиск по хабру никаких статей о ней не выловил (было несколько, но мягко говоря не вводных), я решил написать маленький обзор и поделиться им с массами.
По возможности коротко о кажется главном

Hello World! как ему следует быть на C в Linux

Время на прочтение3 мин
Количество просмотров52K
Очень многие начинающие программисты думают, что знают, как написать Hello World. Естественно, с этого примера ведь и начинается большинство учебников.
А давайте посмотрим, как это делается.
Обычно в учебнике по C эта программа выглядит примерно так:
#include <stdio.h>
void main()
{
    printf("Hello world\n");
}

Читать дальше

Как сплагиатить удобную утилиту для показа зарядки ноутбука?

Время на прочтение4 мин
Количество просмотров2.3K
Всё началось с того что я увидел утилиту от IBM/Lenovo для показа заряда батареи ноутбука в непривычном месте — в таскбаре/супербаре, но не в виде значка, а как панель(аналогичные используются для управления проигрывателями iTunes, WMP, Zune):



Т.к. у меня ноутбуки другого производителя, а искать как выцарапать эту софтину у производителя мне было лень — я начал искать аналог, и, к преглубокому удивлению, ничего не нашел! (если я не прав — покажите носом, буду весьма благодарен!)

Именно так я решил написать своё решение. Писать будем на C++. Я писал в Visual Studio 2010, можно использовать предыдущие версии. Главное — наличие установленного Windows SDK(ставится отдельно от студии, доступен бесплатно, скачать можно например тут)

Вот что у меня получилось:

Моя панелька
Читать дальше →

Google Go = Python и C++

Время на прочтение1 мин
Количество просмотров11K
Google только что объявил выпуск нового языка с открытым исходным кодом
под названием Go. Компания говорит что, Go эксперементальный язык и
он объединяет производительность и безопасность компилируемых языков(как С++)
со скорость разработки динамических языков (как Python).
Читать дальше →

Processing 1.0 и почти закон всемирного тяготения

Время на прочтение5 мин
Количество просмотров2.7K
О Processing я слышал давно, но посмотреть что это из себя представляет никак не доходили руки. И вот у меня появилась идея сделать свой мирок с гравитацией и силами(есть точки и вокруг них летают частицы). В дальнейшем можно это как-то красиво обыграть и сделать крутой скринсейвер. Прототип решено было изготовить при помощи виновника торжества, а именно Processing 1.0.7.
Читать дальше →

Ближайшие события

Президент России подписал указ об утверждении Дня программиста

Время на прочтение1 мин
Количество просмотров786
Указ, который, который уже неоднократно упоминался на Хабре, вступает в силу.
Отныне 13 сентября официальный День программиста! (12 сентября — в високосные годы)
С наступающим профессиональным праздником, коллеги!!!
Читать дальше →

Лучшие «программистские» шутки о Чаке Норрисе

Время на прочтение2 мин
Количество просмотров4.2K
  • Все массивы Чак Норрис объявляет бесконечными, потому что Чак Норрис не знает границ
  • Чак Норрис пишет код который оптимизирует себя сам
  • Чак Норрис не может тестировать на равенство потому что он не имеет себе равных
  • Первая программа Чака Норриса была kill -9
  • MySpace на самом деле это не ваше пространство 'space', это пространство Чака (просто он дает вам пользоваться им)
  • Чак Норрис может написать функцию бесконечной рекурсии и получить ее результат
  • Чак Норрис может решить задачу Башен Ханоя за один ход
  • Чак Норрис прошел до конца World of Warcraft
  • «У меня это работает» всегда справедливо для Чака Норриса
  • Чак Норрис может удалить Корзину
  • Борода Чака Норриса может печатать 140 слов в минуту
  • Чак Норрис может тестировать все приложение всего одним ассертом (одной проверкой)
  • У клавиатуры Чака нет клавишы Ctrl потому что ничто его не может контролировать.

Читать дальше →

Семь кругов ада для новых элементов языка

Время на прочтение3 мин
Количество просмотров1.2K
image
Мой последний пост о новом элементе «dynamic» вызвал волну отзывов, которые не обычны для обсуждения новых элементов или особенностей языка. Многие были взволнованы и рады, но были и те, кто огорчился, что их язык «женится» с новым элементом.

У C# эта ситуация была для элемента var в прошлом и повторяется сейчас для dynamic. Не знаю, может, существуют семь кругов ада, когда их любимый язык программирования получает новые возможности. (Оговорка: Фактически, всю эту чепуху создаю я)
Читать дальше →

Краткая, неполная и вымышленная история языков программирования

Время на прочтение4 мин
Количество просмотров4.5K
1801 — Иосиф Мария Жаккард с помощью перфокарт вышивает «hello world» на ткани. Хабровчане тех времен недовольны отсутствием хвостовой рекурсии, многопоточности и заглавных букв.

1842 — Ада Лавлейс пишет первую программу. Её успехам препятствует маленькая проблемка — компьютера для исполнения этой программы ещё не изобрели. Через полтора века архитекторы корпоративных приложений переймут технику Ады по написанию неисполняемых программ и назовут этот метод UML.
Что случилось дальше?

C++ — как латынь

Время на прочтение1 мин
Количество просмотров1.3K
Для большинства программистов язык С++ — как латынь:
1. Очень многие современные языки от него произошли, но сейчас им мало кто пользуется.
2. Считается, что на латыни C++ можно написать что угодно. Это, наверное, так, но фразы получаются громоздкими.
3. Учеба в классическом университете подразумевает обязательное изучение C++. После учебы все равно мало кто его понимает.
4. Хорошо понимают в специальных учреждениях, где поддерживают старый софт. Читай «библиотека с манускриптами».
5. Библиотекари считают всех, кто не знает латыни, неучами.

Upd:
6. Латынь часто наделяют мистическими возможностями (см. Г. Поттер). C++ тоже.

Юмор, ага. :)

P.S. Я знаю знал, но теперь уже не люблю.

Upd2: Поместил в юмор. Ибо шутка же.

Официальный праздник День программиста

Время на прочтение1 мин
Количество просмотров791
Подпись этого приказа, я думаю это вопрос нескольких дней. Ура товарищи! Датой празднования выбран 256 день года 13 сентября (в високосный год 12 сентября). Еще раз ура )))

Удивительная страна Oz, или как принять данные при помощи send

Время на прочтение15 мин
Количество просмотров2K
Довольно давно, собирая информацию по средствам параллельного программирования, наткнулся я на элегантный (другими словами сложно описать ощущения) язык Oz http://www.mozart-oz.org. Язык тогда показался мне достойным того, чтобы представить его Habraсообществу. И вот, у меня появилось время и причины это сделать.

Oz — мультипарадигменный язык программирования. Набор базовых абстракций в языке необычный и позволяет, например, написать отправляющую информацию процедуру send так, что при её помощи можно будет так же и получать данные. И без всякого подвоха вроде:

send(socket; buffer; flag) = (if (flag == RECV) (recv(socket; buffer)) or (realsend(socket; buffer))).

Речь идёт именно о том, что отправка и получение данных осуществляются одной и той же последовательностью операций виртуальной машины Oz. Естественно, достигается это за счёт особых абстракций для работы с данными и с параллельными процессами. Описанию этих абстракций и посвящён этот текст, потому как на мой взгляд — они неплохо позволяют почувствовать особенности Oz. Конечно, Oz больше, чем изложенное ниже, но, как мне кажется, тайна хитрого send — материал подходящий для первого знакомства с этим языком и для получения от него удовольствия.

Итак...

Вклад авторов