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

1134.34
Рейтинг
Программирование *
Искусство создания компьютерных программ
Сначала показывать
Порог рейтинга
Уровень сложности
Итератор
5 мин
56K(Заранее извините за мой русский)
Представьте, что вы разработчик статегичнои военной игры. Армия имеет сложную структуру: она состоит из героя и трех групп. Когда Король издает указ и ресурсы, чтобы полечить всех воинов (Герой также является воином) Вы хотите проитеруваты по всем солдатам и вызвать метод treat () на каждом инстанси. Как это можно сделать легко и без вникания в структуру армией?
Итератор это паттерн позволяющий доступатися к элементам любой коллекции без вникания в суть ее имплементации.
Таким образом в применении к нашей проблеме: Мы не хотим переживать структурой Армии — мы хотим чтобы SoldiersIterator пробежался по всем солдатам.
Красная линия на рисунке — это итератор (по крайней мере как я его себе представляю).

Представьте, что вы разработчик статегичнои военной игры. Армия имеет сложную структуру: она состоит из героя и трех групп. Когда Король издает указ и ресурсы, чтобы полечить всех воинов (Герой также является воином) Вы хотите проитеруваты по всем солдатам и вызвать метод treat () на каждом инстанси. Как это можно сделать легко и без вникания в структуру армией?
ИТЕРАТОР
Итератор это паттерн позволяющий доступатися к элементам любой коллекции без вникания в суть ее имплементации.
Таким образом в применении к нашей проблеме: Мы не хотим переживать структурой Армии — мы хотим чтобы SoldiersIterator пробежался по всем солдатам.
Красная линия на рисунке — это итератор (по крайней мере как я его себе представляю).

-19
Принцип подстановки Барбары Лисков
6 мин
153KПривет, хабрачеловеки!
Захотелось вот поделиться сокровенным знанием по этой теме. К тому же материалов по этому, достаточно важному принципу проектирования классов и их наследования, в Рунете как-то негусто. Имеются формулировки вида:
«Пусть q(x) является свойством верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.» © Wikipedia
Но онивыносят мой мозг меня совершенно не радуют.
Если хочется услышать объяснение этойхрени умной фразы — прошу под кат.
Захотелось вот поделиться сокровенным знанием по этой теме. К тому же материалов по этому, достаточно важному принципу проектирования классов и их наследования, в Рунете как-то негусто. Имеются формулировки вида:
«Пусть q(x) является свойством верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.» © Wikipedia
Но они
Если хочется услышать объяснение этой
+65
Смех сквозь слёзы: Всеукраинский конкурс по информационным технологиям
4 мин
3.2KПривет, хабрачеловек! Мне довелось принимать участие в «Всеукраинском конкурсе молодежи по информационным технологиям», в номинации «Web-программирование», который в этом году проходил в городе Бровары, не далеко от Киева. То, что я там увидел — меня, откровенно говоря, повергло в шок. Подробнее — под катом.
+278
Компилируем 64-битную версию Qt под windows
3 мин
24KТуториал
+9
Программирование в таблицах — новая концепция записи условных (и не только) конструкций
8 мин
6KНе так давно, в процессе поиска в сети альтернативных подходов к программированию я наткнулся на очень интересное видео. Это 40-минутная презентация с интригующим названием «No Ifs, Ands, or Buts. Uncovering the Simplicity of Conditionals». Автор презентации Джонатан Эдвардс (Jonathan Edwards) рассказывает о новой концепции записи условных конструкций при помощи созданных им схематических таблиц (schematic tables).
Эта тема должна быть интересна всем, кто хоть немного интересуется программированием. Если у вас нет в распоряжении лишних сорока минут или вы не можете посмотреть видео по какой-либо другой причине, предлагаю ознакомиться с моим кратким пересказом презентации Джонатана.
Эта тема должна быть интересна всем, кто хоть немного интересуется программированием. Если у вас нет в распоряжении лишних сорока минут или вы не можете посмотреть видео по какой-либо другой причине, предлагаю ознакомиться с моим кратким пересказом презентации Джонатана.
+52
Январский рейтинг языков программирования
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, то он по прежнему остался на первой строчке, хотя его популярность продолжает падать.
Итак, что же нового в январском рейтинге? В первую очередь это появление в нём языка 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, то он по прежнему остался на первой строчке, хотя его популярность продолжает падать.
+37
CPrompt — интерпретатор языка си
3 мин
7KС июня 2009 года я занимаюсь разработкой интерпретатора Си. (я уже упоминал об этом в статье о вызовах функций).
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
+26
За что я люблю программирование
3 мин
10KКогда я был маленьким, я очень любил писать программы. Интерес был вызван, скорее, обидой. Почему это компьютер умнее меня? И игрой. Игрой, заставить его, компьютер, делать то что я хочу. Ты нажимаешь кнопку, а он говорит что не так, ты правишь ошибку, а он говорит что опять не так… И вот оно запустилось. А счастья нет. Ты начинаешь разбираться… искать… Ты чувствуешь себя строителем мира, так мне тогда казалось. Мне казалось что я создаю свою вселенную… Свой маленький мир…
+76
Задачи для курсовых
2 мин
4.5KНа хабре часто возникают топики, в которых студенты CS специальностей просят помочь им с выбором тем курсовых и дипломных работ. Это не удивительно, так как обычно темы, которые предлагают научные руководители интересны только им самим, и получается ситуация, когда студент выполняет работу, но не видит в ней смысл. Мне кажется, что это очень ужасно, когда человек не заинтересован в своей работе.
Было бы намного лучше, если бы студент понимал, что он делает нужную вещь, за которую много людей будут ему благодарны. Один из способов достичь этого — участие в популярных open source проектах, связанных с его специальностью. Хорошими кандидатами являются проекты по созданию компиляторов/интерпретаторов языков программирования, так как это наукоемкие проекты (алгоритмы вывода типов, PEG, монады, теория типов...) и объективно полезные проекты (если язык достаточно популярен).
Как можно уже было догадаться, я предлагаю поучаствовать в разработке языка Nemerle. Это достаточно уникальный проект, так как он стоит в одним ряду с таким языком как scala, он поддерживается людьми из России, и он еще не такой популярный, что бы избегать всеми силами ломающих изменений.
Было бы намного лучше, если бы студент понимал, что он делает нужную вещь, за которую много людей будут ему благодарны. Один из способов достичь этого — участие в популярных open source проектах, связанных с его специальностью. Хорошими кандидатами являются проекты по созданию компиляторов/интерпретаторов языков программирования, так как это наукоемкие проекты (алгоритмы вывода типов, PEG, монады, теория типов...) и объективно полезные проекты (если язык достаточно популярен).
Как можно уже было догадаться, я предлагаю поучаствовать в разработке языка Nemerle. Это достаточно уникальный проект, так как он стоит в одним ряду с таким языком как scala, он поддерживается людьми из России, и он еще не такой популярный, что бы избегать всеми силами ломающих изменений.
+2
Scala. Введение
12 мин
89KПривет хабралюди.
Не так давно я заинтересовался одним из многочисленных ныне языков под JVM — Scala. Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком. Так как поиск по хабру никаких статей о ней не выловил (было несколько, но мягко говоря не вводных), я решил написать маленький обзор и поделиться им с массами.
Не так давно я заинтересовался одним из многочисленных ныне языков под JVM — Scala. Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком. Так как поиск по хабру никаких статей о ней не выловил (было несколько, но мягко говоря не вводных), я решил написать маленький обзор и поделиться им с массами.
+46
Hello World! как ему следует быть на C в Linux
3 мин
52KОчень многие начинающие программисты думают, что знают, как написать Hello World. Естественно, с этого примера ведь и начинается большинство учебников.
А давайте посмотрим, как это делается.
Обычно в учебнике по C эта программа выглядит примерно так:
А давайте посмотрим, как это делается.
Обычно в учебнике по C эта программа выглядит примерно так:
#include <stdio.h>
void main()
{
printf("Hello world\n");
}
+96
классический TCP сервер
4 мин
46Kмой первый TCP Сервер был создан пару лет назад. Основой создания послужила книга Р.Стивенсона «Unix — Профессиональное программирование.» Есть несколько подходов к созданию TCP-серверов. В данном посте хочется рассказать про классический TCP сервер.
+17
Ближайшие события
Место для D
6 мин
3.4KПеревод
На хабре уже публиковался перевод статьи The Case For D за авторством Андрея Александреску. Перевод, к сожалению, был сделан на скорую руку, без посторонней помощи и советов, что не могло не отразиться на его качестве. Позднее был коллективно создан более качественный и, главное, верный перевод, который мы и хотим показать. Старый перевод будет удалён, чтобы не создавать путаницы.
Андрей Александреску — Место для D [ссылка на pdf]
(статья посвящена D — «системному языку высокого уровня», одним из разработчиков которого является сам Александреску)
В качестве дополнения (чтобы не опускаться до самоповторения и, возможно, заинтересовать людей читавших предыдущий перевод) мы составили небольшой FAQ, основываясь на вопросах, которые часто возникают во время обсуждения D и могут возникнуть после прочтения статьи.
Участники: Volfram, naryl, karbin — перевод; maxter — грамматика и орфография; eldar, digited, Nekuromento, karbin, RISC — технические вопросы. ( Они будут рады ответить на любые вопросы, если им предоставить такую возможность ;) )
Андрей Александреску — Место для D [ссылка на pdf]
(статья посвящена D — «системному языку высокого уровня», одним из разработчиков которого является сам Александреску)
В качестве дополнения (чтобы не опускаться до самоповторения и, возможно, заинтересовать людей читавших предыдущий перевод) мы составили небольшой FAQ, основываясь на вопросах, которые часто возникают во время обсуждения D и могут возникнуть после прочтения статьи.
Участники: Volfram, naryl, karbin — перевод; maxter — грамматика и орфография; eldar, digited, Nekuromento, karbin, RISC — технические вопросы. ( Они будут рады ответить на любые вопросы, если им предоставить такую возможность ;) )
+22
Как сплагиатить удобную утилиту для показа зарядки ноутбука?
4 мин
2.3KВсё началось с того что я увидел утилиту от IBM/Lenovo для показа заряда батареи ноутбука в непривычном месте — в таскбаре/супербаре, но не в виде значка, а как панель(аналогичные используются для управления проигрывателями iTunes, WMP, Zune):

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


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

+32
Google Go = Python и C++
1 мин
11KПеревод
Google только что объявил выпуск нового языка с открытым исходным кодом
под названием Go. Компания говорит что, Go эксперементальный язык и
он объединяет производительность и безопасность компилируемых языков(как С++)
со скорость разработки динамических языков (как Python).
под названием Go. Компания говорит что, Go эксперементальный язык и
он объединяет производительность и безопасность компилируемых языков(как С++)
со скорость разработки динамических языков (как Python).
+49
Видеоматериал с семинара RSUG: Smalltalk в России
1 мин
84322 октября новоорганизованная группа RSUG (Russian Smalltalk User Group) провела первую встречу-семинар. Целью данной встречи являлось знакомство и освещение текущего состояния рынка.
Мы бы хотели поблагодарить учебный центр Avalon за предоставленную площадку и техническую поддержку. На сегодняшний день доступен видеоматериал с прошедшего семинара.
Поскольку встреча проходила впервые и была очень теплая и дружественная атмосфера, выступления были несколько «не регламентные». Однако все доклады без исключения очень интересны.
Если вы мало знакомы со Smalltalk, то рассказ Бориса Беркгаута вам должен понравится. Он в простой и доступной форме демонстрирует основную «магию» языка.
Мы бы хотели поблагодарить учебный центр Avalon за предоставленную площадку и техническую поддержку. На сегодняшний день доступен видеоматериал с прошедшего семинара.
Поскольку встреча проходила впервые и была очень теплая и дружественная атмосфера, выступления были несколько «не регламентные». Однако все доклады без исключения очень интересны.
Если вы мало знакомы со Smalltalk, то рассказ Бориса Беркгаута вам должен понравится. Он в простой и доступной форме демонстрирует основную «магию» языка.
+4
Анонс: Smalltalk в России. (Санкт-Петербург, 22 октября)
1 мин
636Сообщество российских Smalltalker-ов (RSUG) приглашает всех желающих
на свой первый семинар RSUG'09.
Семинар пройдет в городе Санкт-Петербург, 22 октября, в 18.30 в учебном центре
«Авалон» (Схема проезда)
Есди вы хотите прийти и принять участие в семинар
зарегистрируйтесь, пожалуйста, на www.rsug.ru.
Регистрация необязательна, но она поможет нам оценить
предполагаемое число участников и подготовиться должным образом.
Будут следующие доклады:
1. Знакомство с Smalltalk
2. Smalltalk в промышленном проектировании
3. Smalltalk в распределённых бизнес-приложениях
4. Smalltalk в распределённых системах реального времени
5. LiveCoding
Контакты:
www.rsug.ru
groups.google.com/group/sugr
на свой первый семинар RSUG'09.
Семинар пройдет в городе Санкт-Петербург, 22 октября, в 18.30 в учебном центре
«Авалон» (Схема проезда)
Есди вы хотите прийти и принять участие в семинар
зарегистрируйтесь, пожалуйста, на www.rsug.ru.
Регистрация необязательна, но она поможет нам оценить
предполагаемое число участников и подготовиться должным образом.
Будут следующие доклады:
1. Знакомство с Smalltalk
2. Smalltalk в промышленном проектировании
3. Smalltalk в распределённых бизнес-приложениях
4. Smalltalk в распределённых системах реального времени
5. LiveCoding
Контакты:
www.rsug.ru
groups.google.com/group/sugr
+6
IntelliJ IDEA Atlassian Connector — плагин для удобной работы с Jira
2 мин
7.2KНа самом деле, заголовок звучит немного неверно, так как данный плагин позволяет работать не только с Jira, но и с остальными продуктами Atlassian (Bamboo, Crucible, FishEye). Но сейчас мне бы хотелось сделать акцент именно на Jira.
С Jira я плотно столкнулся на работе и не могу сказать, что работать с ней такое уж большое удовольствие. А на днях мне рассказали о такой интересной вещи как Mylyn, и его работе с Assembla через Eclipse, о чем я так же скоро собираюсь написать. И мне стало интересно, а есть ли что то подобное и для пары Jira + Inellij IDEA. Оказалось, что есть. Итак, поехали.
С Jira я плотно столкнулся на работе и не могу сказать, что работать с ней такое уж большое удовольствие. А на днях мне рассказали о такой интересной вещи как Mylyn, и его работе с Assembla через Eclipse, о чем я так же скоро собираюсь написать. И мне стало интересно, а есть ли что то подобное и для пары Jira + Inellij IDEA. Оказалось, что есть. Итак, поехали.
+3
My escape(html)
4 мин
1.4KЦель поста — покритикуйте.
Изучаю Django по-маленьку, посредством создания движка для блога. Появилась проблема вывода пользовательского контента, т.е. его экранирования. Написал свою функцию. Имея кое-какой опыт в создании контента для разных сайтов с разной идеологий экранирования пользовательских данных (скорее отрицательный, в основном сайты просят делать лишнюю работу), у меня выработалась философия.
Замечание. В моём блоге в базе всегда хранится никак не обработанный оригинал пользовательского ввода. Задача функции — сделать из этого ввода html, пригодный для отображения. В простейшем случае функция может вызываться во время отображении контента (в шаблоне или view). Для улучшения производительности можно завести отдельное поле в базе, которое будет результатом работы функции экранирования, и будет обновляться во время обновления контента.
Итак, философия функци:
Изучаю Django по-маленьку, посредством создания движка для блога. Появилась проблема вывода пользовательского контента, т.е. его экранирования. Написал свою функцию. Имея кое-какой опыт в создании контента для разных сайтов с разной идеологий экранирования пользовательских данных (скорее отрицательный, в основном сайты просят делать лишнюю работу), у меня выработалась философия.
Замечание. В моём блоге в базе всегда хранится никак не обработанный оригинал пользовательского ввода. Задача функции — сделать из этого ввода html, пригодный для отображения. В простейшем случае функция может вызываться во время отображении контента (в шаблоне или view). Для улучшения производительности можно завести отдельное поле в базе, которое будет результатом работы функции экранирования, и будет обновляться во время обновления контента.
Итак, философия функци:
+2
Вклад авторов
alizar 4446.2ru_vds 4222.8olegchir 3644.4badcasedaily1 3038.0haqreu 2951.0tangro 2672.2nmivan 2585.0kesn 2578.0MaxRokatansky 2523.0DmitrySpb79 2296.0