Роль Erlang'а
Суровая реальность такова, что строить команду с расчетом на Erlang разработчиков не получится при всем желании, свободных людей на рынке практически нет, а те кто есть заняты в долгосрочных проектах. Есть шанс выдернуть тех, кто сидел программировал на чем-то обычном, параллельно изучая Erlang и вот он созрел на своих проектах и готов выпрыгнуть на новое место работы. Но это случайная величина.
Второй момент в том, что для Erlang в современном вебе не так много места. Создавать "еще один корпоративный сайт" можно на чем угодно. Необходимость в Erlang'е подходит тогда когда надо решать инфраструктурные задачи эффективным образом. А такие случаются, но редко и мало кто их учитывает при проектировании (людей-то нет). Скажем так, направление стартапов — это само по себе очень узкое направление.
Но природа знает как делать так, чтобы "все цветы цвели". В политологии применяется термин "Элиты", который в данном контексте можно было бы расширить до "Технологической элиты". Изучать какой-то новый предмет научного знания начинают не те кто идет самым легким путем. Приведу пример который произошел за время моей жизни в котором я принимал активное участие и имел возможность рефлексировать свой опыт. Python когда-то был таким же маргинальным языком программирования как сейчас Erlang. Когда я начинал делать первый проект в 2000 году, то Perl был язык программирования сайтов #1.
Создание сайтов еще не было такой массовой отраслью как сейчас, но ФИДОшные привычки общения быстро перенеслись в "mainstream" рассылки и форумы. Набегающие новички быстро подхватывали общую тональность и становилось понятно, что общаться по сути не с кем.
Другие правила были в Python сообществе. Во-первых оно было не такое большое, во-вторых пропитано духом англоязычной тусовки. В которой кажется у большей части пишущих людей было как минимум высшее образование и докторская степень. Люди которые всегда были умнее тебя, без учета личных качеств. Даже само просматривание переписки в рассылках учило чему-то новому. Модель поведения людей кардинально отличалась. Даже не хочется перечислять паттерны поведения, но они походили на слаженную работу ученых которые делятся своими открытиями и опытом.
Но качественное выполнение работы не остается безнаказанным. Умение думать создало большое количество потрясающих продуктов, а желание делиться позволило создать для них отличную документацию. Причем это происходило не за счет проталкивания деньгами больших корпораций. Люди приходили учить Python потому, что хотели этого для себя.
Сейчас Python становится тем самый мэйнстримом. Если посмотреть Хабр, то видно, что статей о Django публикуется больше чем о PHP. И от этого становится и грустно и радостно одновременно. Радостно, потому что тропинка которую мы протаптывали теперь превращается в широкое шоссе вокруг которого создается инфраструктура. А грустно потому, что все чаще видно как очередной программист погнавшись за модным словом и, не чтя традиции Python сообщества, создает "еще один неработающий пагинатор". С другой стороны он хотя бы хочет делиться, что уже хорошо. Но я не научусь у этого человека ничему новому.
Вот теперь и начинается опять Erlang. Функциональные языки программирования долго ждали своего часа. Да, кружки людей которые изучают экзотические технологии были давно и будут тоже. Но сейчас образовался спрос на образ мышления который воспитывает ФП. И Erlang сообщество это то место в котором умные люди и у них есть чему поучиться. И я вижу как люди которых я уважал еще в Python рассылках теперь подписаны на Erlang в России. Вот такая вот миграция элит.
Будущее Erlang'а
Что же произойдет дальше? Кажется, что это самый интересный пункт писать о будущем. Но на самом деле это самая скучная часть.
Функциональный язык программирования не займет лидирующего места. Рынок Erlang'а увеличится, но все так же останется маленьким. Технологии для индусов (.NET) и людей не способных прочитать и понять научную документацию (PHP) будут так же занимать подавляющую долю заказов. Продукты на основе Erlang'а займут специализированную нишу (пишу в будущем времени только потому, что ниша увеличится, хотя равнозначно можно писать и в настоящем времени) и будут в ней конкурировать с технологиями на других языках. Проекты с расчетом именно на возможности языка будут появляться чуть чаще, но все равно очень редко.
Концепции которые применяются в ФП в случае необходимости будут заимствоваться в языках широкого назначения. Точнее это уже произошло (см C#, JavaScript, Python, etc).
Стоит ли учить Erlang? Да конечно. Поскольку язык будет использовать не так широко, то значит и специалистов будет найти сложнее. А значит тогда когда он действительно будет нужен проекты и отношение к сотруднику будет другого порядка. Шанс работать с людьми которые знают чего хотят повышается. Тусовка находясь в которой не падает самоуважение уже большой плюс.
2010-03-04 05:10 am UTC
Очень важно, чтобы человек хорошо знал предметную область, иметь опыт разработки на ерланге не обязательно. Однако, может так получиться, что у инерционность мышления веб-разработчиков может быть бóльшей, чем в телекоме, и проблемы появятся как раз из-за этого.
P.S.: Спасибо за рекламу рассылки :)
2010-03-04 02:02 pm UTC
С инертностью согласен. Впрочем, всегда складывается впечатление, что область в которой не разбираешься более сложная.
P.S. Примазываюсь :)
2010-03-04 04:17 pm UTC
2010-03-04 07:12 am UTC
2010-03-04 02:25 pm UTC
Года на 2 я спокоен. К тому же в нем есть такие как Отт, Валкин и Дмитрий у которых есть время для формирования сообщества.
2010-03-04 04:50 pm UTC
2010-03-04 05:19 pm UTC
2010-03-04 05:48 pm UTC
Это да...
> Вон Джино хабр завешали своими баннерами
Эти могут увешаться чем угодно. Конкурентов в питоне я пока не боюсь. Я не хря их провоцирую. Пока они не увешают хабр статьями - им ещё далеко. Бороться увешиванием с нашей стороны глупо. Маленькая акция не даст эффекта, а большую мы не потянем.
> Сделайте блог в котором пишите о крутых клиентах или абстрактных цифрах как MediaTemple.
Его тоже надо заполнять. Хотя да, про блог-то я и забыл. twitter уже ведём.
> Морда сайта до сих пор в новогодних снежинках
Мда, спасибо. Это [выглянув в окно] соответствует местным метеорологическим условиям. Но уже ищем мать-и-мачеху :) Спасибо :)
2010-03-05 08:04 pm UTC
При прочих равных даже и не убедить, что вы хороши. Толпы верят рекламе.
2010-03-04 06:16 pm UTC
*удел обновлять сайт*
2010-03-05 04:08 pm UTC
Осьмое марта йпт
2010-03-04 10:57 am UTC
на самом деле ты зря ругаешь человека, который это пишет. Во-первых, он это пишет не для тебя, а для себя. Для него это серьзный учебный пример. Мало прочитать умную книжку, надо самому прочувстовать технологию и ее особенности. Пусть он пишет, выкладывает на сайт и показывает свое "творение" гуру. Дальше многое зависит от сообщества, если оно действительно обладает теми позитивными качествами, то оно не станет на него орать "вон из отрасли, бездарь", а тактично укажет на ошибки и поможет развиваться дальше. Человек будет ковырять существующие наработки гуров, разбираться, учиться. Таким образом мы через какое-то время получим нормального разработчика, кто-то из таких пойдет дальше и сможет сам развивать джангу дальше.
Во-вторых, на Django пишется легко и быстро, поэтому возникает искушение не разбираться с чужим пагинатором, а сделать свой, и это даже может получиться быстрее. Это тоже источник кучи модулей.
Кстати, в популярности Django есть один сильный плюс - он является центром притяжения для разработчиков. Конечно, кто-то сидит в TurboGears, Pylons, etc, но главные рабочие руки в Django, нет растаскивания мозгов по уголкам.
А вот в Erlang такого центра нет. Поэтому "выход в люди" в сфере веб может нанести ему больше вреда, чем пользы.
вот очень правильно пишет человек: http://lionet.livejournal.com/51003.htm
Это Java-сообщество может себе позволить иметь 5 мощных универсальных фреймворков уровня не ниже Django - там столько кадров, что на каждый хватит.
Здесь еще не все базовые вебовские вещи решены, а уже пошло растаскивание по углам. Зачем мне 5 json-парсеров? Дайте лучше 1, но хороший.
2010-03-04 02:20 pm UTC
Но ты затрагиваешь ценный аспект обучения людей — это сообщество. Так вот оно у нас (русскоязычных пользователей) не такое сильное. Как таковых лидеров толпы не много, есть умные и уважаемые люди, но у них нет времени. Как только была переведена Django Book начали появляться люди которые никогда не залазили в англоязычные тусы.
Web Erlang сейчас проходит законный процесс. Идет вливание новой крови, но люди не находят элементарных вещей. Конечно же проще заимствовать то, что было до этого с небольшой переоценкой с учетом нового опыта (которого не всегда бывает достаточно). Кстати из перечисленного списка ничего не могу сказать только о способах работы с Ruby. Возможно JSON-парсеры — это плохо, но обилие шаблонов и веб-фреймворков хорошо.
2010-03-04 07:53 pm UTC
Мне кажется, такая проблема есть у всех локальных языковых сообществ. Самое большое всегда будет англоязычное - в силу статуса английского языка как международного.
Переводы это хорошо, потому что не все знают язык. Среди тех, кто знает, все равно немалая часть тех, кому удобнее воспринимать на родном.
Django очень правильная вещь, в том смысле, что она сразу ставит процесс разработки и мышления про веб-разработку на правильные рельсы: вот MVC, вот четкое разделение задач, вот шаблон, в котором сделано все, чтобы ты не мог его испортить программой. Вот за это они мне очень нравятся - за свою абстрактность и легкочитаемость. Я никогда не мог работать со Smarty - настолько сильный рвотный рефлекс они у меня вызывали. Напихано столько много логики, что это уже не шаблон, а кусок программы. Ее нельзя назвать отдельной программой, потому что она все равно теснейшим образом завязана на логику основной программы.
На мой взгляд, правильный шаблон не должен дать прострелить тебе ногу: с одной стороны он должен автоматом экранировать все "опасные" символы, с другой не позволять тебе в нем программировать, еще хотелось бы чтобы хорошо читалось. Я за 15 минут просмотрел все эти шаблонизаторы, некоторые мне не понравились сразу же - какой-то огород нагорожен.
Понравился только ErlDTL. Потому что первое, что написано в документации про него - это как его скомпилировать в .beam. Ощущение, что все остальные авторы об этом не думали или думали как о 10-й фишке. А если шаблон нельзя скомпилировать, то это не шаблон для эрланга.
Второй шаблог где это так заявлено - ErlTL - там прямо функции в шаьлоне, которые будут скомпилены. Но какой же страшный синтаксис! Еще хуже чем пхп с хтмл-тегами. Это читать - с ума сойти.
Хотя в каких-то специфических задачах, перечисленные фреймворки будут лучше.
Но для массового фреймворка нужна какая-то простота и универсальнсть.
еще одна важная проблема фреймворков:
> люди не находят элементарных вещей.
Это проблема. Пока модель Джанго мне наиболее нравится - вся веб-специфика вынесена за скобки, ты думаешь только над бизнес-логикой. И это круто. А когда ты думаешь над тупейшим эскейпом символов, то твоя голова забита и на более высокое понимание задачи тупо нет сил и времени.
Например, мне надо отдать файл. Я не позволю себе это сделать, пока не убежусь, что он находится ниже DocumentRoot. Так вот даже такую банальную проверку приходится писать самому.
Разбить бы все эти фреймворки на модули по отдельным задачам. Уверен больше половины модулей будут иметь один и тот же функционал. Но написано по разному, а если бы были общие компоненты, то выигрывали бы все разработчики.
Как сейчас например Джанго конмоненты можно использовать по отдельности. И отэтого все выигрывают.
А вот в Эрланг фреймворках, я ничего такого не видел даже близко.
Вообще большой вопрос повторное испльзование Erlang-кода.
2010-03-05 10:09 am UTC
2010-03-05 10:25 am UTC
при первоначальном знакомстве меня смутило, что она CMS - то есть круг задач весьма узкий. А мне нужно что-то типа CMF или просто F.
2010-03-05 04:08 pm UTC
2010-03-05 04:12 pm UTC
2010-03-05 11:58 am UTC
2010-03-05 04:07 pm UTC
Хотя я в смятении, стоит ли рекламировать рассылку или нет. Если да, то может быть добавить ссылку с fprog.ru на нее?
Рассылку интересно читать, а не только писать в нее.
2010-03-05 04:21 pm UTC
2010-03-05 04:32 pm UTC
2010-03-05 04:45 pm UTC
2010-03-05 04:54 pm UTC
2010-03-05 07:16 pm UTC
2010-03-05 04:44 pm UTC
2010-03-05 07:18 pm UTC
2010-03-05 07:25 pm UTC
2010-03-06 06:16 pm UTC
2010-03-10 01:54 pm UTC