четверг, 26 января 2012 г.

[life] Заеду на три дня в Минск

Завтра ранним утром с коллегами отбываем в Минск чтобы принять участие в международном турнире по дартс. Лично у меня никаких спортивных амбиций на этот турнир нет, но соревновательного адреналина вкусить хочется. Потому и еду :)

Посему заниматься блогом пока не смогу, на новые комментарии отвечу когда вернусь.

вторник, 24 января 2012 г.

[prog] Что не так с ООП? Мнение Ричарда Гэбриеля

На RSDN сейчас развивается большой флейм под общим заголовком “Что-то нетак с ООП”. Насколько я смог заметить по беглому просмотру, одной из обсуждаемых тем там является повторное использование кода.

Имхо, очень точно на эту тему высказался в 1996-м году Ричард Гэбриель, один из известных Lisp-ероводов, в книге Patterns Of Software. Tales from the Software Community. Насколько точно, что я даже потратил некоторое время на то, чтобы перевести соответствующую главу на русский язык.

Поэтому без ложной скромности отсылаю интересующихся к этому переводу. Настоятельно рекомендую даже ;)

PS. В самой же книге, помнится, я осилил только несколько первых глав. Мне показалось, что чем дальше, тем больше мы расходимся во мнениях с автором. В результате чего книгу я не дочитал, может быть зря.

[prog.thoughts] О времени и языке D

Что-то на выходных потянуло на философские размышления о времени. И как-то вспомнился такой язык программирования, как D. Вальтер Брайт начал им заниматься в 1999-м, впервые D был представлен миру в 2001. А сейчас на дворе уже 2012-й. Ни много, ни мало, но на разработку D уже ушло 13 лет, а с момента его появления на публике минуло уже 10 лет.

Для сравнения: язык C++ начал свою историю с 1979-го, имя свое получил в 1983-м, а первый публичный релиз состоялся в 1985-м. Через 13 лет после начала работ над C++ – а это 1992-й год – он был уже вполне себе мейнстримовым языком. Через 10 лет после публичного релиза – 1995-й – самым мейнстримом из мейнстримов. Работы по стандартизации C++ шли полным ходом. STL к тому времени уже существовал, и самым серьезным образом дорабатывался чтобы войти в стандарт языка.

Я с языком D познакомился где-то в районе 2001-2002 годов. Тогда было понятно, что это еще очень сырой проект. Но интересный. Поэтому время от времени его развитием я интересовался. И мне нравилось то, что я видел. Язык развивался в нужную сторону. В частности, со временем Брайт добавил в D шаблоны, да какие шаблоны! В C++ на тот момент таких не было.

В общем, на мой взгляд, где-то в районе 2005-2006 годов язык D уже был готов к релизу. Да и момент тогда был очень удобный. Ведь в это время случился взрыв интереса к Ruby на волне успеха Ruby-On-Rails. И Ruby тогда очень хорошо показал, что в какой-то конкретной нише может выстрелить даже не очень известный язык, без большого коммьюнити, без большого количества инструментов, без поддержки больших игроков.

И можно было бы вспомнить тогдашнюю ситуацию с C++. Это было время, когда усилиями Sun (Java) и Microsoft (C#) программирование на неуправляемых языках (т.н. native code) начало приобретать черты маргинального направления. И будущее самого языка C++ было туманным: работа над следующим стандартом языка казалась долгостроем, который никогда не закончится.

Вот в этот момент язык D, который был почти что C++, но много лучше, имел свой шанс на успех.

В то время я сам был готов его использовать. Для этого нужна была всего лишь малость – стабилизация. Выпуск официальной версии языка и переход только к его поддержке – исправлению ошибок, оптимизации, совершенствованию инструментария, расширения библиотек и т.д. Без этого взять курс на переписывание в течении нескольких лет нескольких сотен тысяч строк C++ного кода с параллельной разработкой новых проектов уже на D я бы не решился.

Такой переход к стабилизации языка для Вальтера Брайта был сродни подвигу. Если кто тогда следил за D, тот может помнить, что Брайт выпускал новые версии компилятора где-то раз в 2-3 недели. Иногда добавляя что-то очень классное, иногда ломая совместимость со старым, иногда просто устраняя несколько десятков ошибок. Но никто тогда не видел ни какого-то плана развития языка, ни даже списка озвученных целей, которые Брайт стремиться достичь в D.

Тем не менее, в конце 2006 в конце туннеля забрезжил свет и в самом начале 2007 состоялся релиз D 1.000.

Казалось бы – вот оно, свершилось! Но счастье длилось очень недолго. Уже по весне 2007-го зашли разговоры о языке D2, который не будет совместим с D1. И в середине 2007-го появилась первая версия компилятора D2. После чего развитие D2 пошло по тому же сценарию, что и D1 – периодические релизы новых версий компилятора и непонятное развитие языка по одному автору ведомому плану.

Это был трындец. После такого поворота даже мне, практически евангелисту языка D, стало понятно, что с D связываться нельзя. Он не взлетит.

В январе 2012-го исполнилось пять лет с релиза D 1.0. Пять лет! Это очень немаленький срок. И где же сейчас D 1.0? Что на нем написано? Какое распространение он получил? Полагаю, все это уже чисто риторические вопросы.

К чему я весь этот поток сознания выплеснул на головы читателей? Когда появились разговоры о D2 многие думали, что это ошибочное решение. Но доказать правомочность их опасений могло только время. И вот незаметно пробежало пять лет. Можно делать неутешительные выводы – скептики оказались правы :(

[life.photo] Ну и еще раз о погоде

Очень хорошая карточка и очень в тему того, что творится за окном:

Швейцария, Давос. Снимок найден в очередном выпуске WSJ’s Photos of the Day.

понедельник, 23 января 2012 г.

[life] Ну и о погоде…

…проходя мимо погребенных под снегом во дворе автомобилях в очередной раз порадовался тому, что я не автомобилист :)