xenru ([info]xenru) wrote,
Previous Entry  Add to memories!  Share  Next Entry

Erlang в современном вебе

Николай прислал мне интересное письмо размышляя над которым родился вот такой вот пост.

Роль 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? Да конечно. Поскольку язык будет использовать не так широко, то значит и специалистов будет найти сложнее. А значит тогда когда он действительно будет нужен проекты и отношение к сотруднику будет другого порядка. Шанс работать с людьми которые знают чего хотят повышается. Тусовка находясь в которой не падает самоуважение уже большой плюс.
Tags: dev, erlang, future, python

Loading...
  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    Your reply will be screened

    Your IP address will be recorded 

  • 30 comments

[info]zerthurd

2010-03-04 05:10 am UTC

Не знаю, как насчёт веба, а для телекома я в прошлом году вполне удачно набрал команду. На ерланге до этого из людей мало кто писал, но изучали за неделю-другую (Getting Started + Pragmatic Programming) и начинали писать сразу рабочий код, никаких критических трудностей с обучением не было. И да, набрал людей в Новосибирске. В более крупных городах, думаю, набрать будет ещё проще.
Очень важно, чтобы человек хорошо знал предметную область, иметь опыт разработки на ерланге не обязательно. Однако, может так получиться, что у инерционность мышления веб-разработчиков может быть бóльшей, чем в телекоме, и проблемы появятся как раз из-за этого.

P.S.: Спасибо за рекламу рассылки :)

[info]xenru

2010-03-04 02:02 pm UTC

Телеком на другом уровне находится, это как раз и есть та ниша для которой изначально создавался язык. Еще банковская сфера. Но в этих сферах разный дух. Телеком стартапы и банковские "стартапы" (без кавычек даже не получается написать) и веб, это две большие разницы :)

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

P.S. Примазываюсь :)

[info]zerthurd

2010-03-04 04:17 pm UTC

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

[info]ad_null

2010-03-04 07:12 am UTC

Эрланг очень сильно набрал обороты за последний год. Инфраструктура выросла на порядок. Однако, это и расстраивает. Популярность языка неминуемо ведет к приходу в него эникеев, пишущих очередной MVC или еще какой фреймворк, там где совсем другие принципы. Более того, как мы знаем, при росте популярности разработчики самого языка нередко идут в угоду толпы и творят странные вещи..

[info]xenru

2010-03-04 02:25 pm UTC

Думаю с тем, что в школе/вузе до сих пор учат паскалю ФЯПы более менее защищены от эникеев. В Zope-рассылке тоже были люди которые не осилили за несколько лет ковыряния. Есть надежда, что обилие умных слов и необходимость разбираться в математических понятиях остановит совсем уж диких от интеграции и попытки создать свою толпу. А некоторые залетные индивидуумы доставят лулзов окружающим, как товарищ который виртуальный мир пытался писать в рассылке.

Года на 2 я спокоен. К тому же в нем есть такие как Отт, Валкин и Дмитрий у которых есть время для формирования сообщества.

[info]schors

2010-03-04 04:50 pm UTC

Блин. Давай демай как сделать доклад что лучший хостинг - это мы. Вон оно как получилось.. :))))

[info]xenru

2010-03-04 05:19 pm UTC

Вам надо больше media coverage делать. Вон Джино хабр завешали своими баннерами. Сделайте блог в котором пишите о крутых клиентах или абстрактных цифрах как MediaTemple. А то непонятно что и как. Морда сайта до сих пор в новогодних снежинках, а не ландышах. Я за вас болею, а вы меня расстраиваете.

[info]schors

2010-03-04 05:48 pm UTC

> Вам надо больше media coverage делать

Это да...

> Вон Джино хабр завешали своими баннерами

Эти могут увешаться чем угодно. Конкурентов в питоне я пока не боюсь. Я не хря их провоцирую. Пока они не увешают хабр статьями - им ещё далеко. Бороться увешиванием с нашей стороны глупо. Маленькая акция не даст эффекта, а большую мы не потянем.

> Сделайте блог в котором пишите о крутых клиентах или абстрактных цифрах как MediaTemple.

Его тоже надо заполнять. Хотя да, про блог-то я и забыл. twitter уже ведём.

> Морда сайта до сих пор в новогодних снежинках

Мда, спасибо. Это [выглянув в окно] соответствует местным метеорологическим условиям. Но уже ищем мать-и-мачеху :) Спасибо :)

[info]xenru

2010-03-05 08:04 pm UTC

Ну просто совсем как-то мало вас :)

При прочих равных даже и не убедить, что вы хороши. Толпы верят рекламе.

[info]ad_null

2010-03-04 06:16 pm UTC

Они не новогодние! Они сезонные! Новогодние прибамбасы мы сняли после каникул :)
*удел обновлять сайт*

[info]xenru

2010-03-05 04:08 pm UTC

Зашел проверил....

Осьмое марта йпт

[info]elisitsky

2010-03-04 10:57 am UTC

Соглашусь с тобой в том, что Django сообщество понемногу опопсяется. Но, у него есть сильная защита - долгие годы и в Python и Django был очень высокий средний IQ, поэтому сообщество имеет серьезный запас хороших наработок. В отличие от ПХП, который впитывал все подряд, "очередной нерабочий пагинатор" не пойдет в массы.
на самом деле ты зря ругаешь человека, который это пишет. Во-первых, он это пишет не для тебя, а для себя. Для него это серьзный учебный пример. Мало прочитать умную книжку, надо самому прочувстовать технологию и ее особенности. Пусть он пишет, выкладывает на сайт и показывает свое "творение" гуру. Дальше многое зависит от сообщества, если оно действительно обладает теми позитивными качествами, то оно не станет на него орать "вон из отрасли, бездарь", а тактично укажет на ошибки и поможет развиваться дальше. Человек будет ковырять существующие наработки гуров, разбираться, учиться. Таким образом мы через какое-то время получим нормального разработчика, кто-то из таких пойдет дальше и сможет сам развивать джангу дальше.
Во-вторых, на Django пишется легко и быстро, поэтому возникает искушение не разбираться с чужим пагинатором, а сделать свой, и это даже может получиться быстрее. Это тоже источник кучи модулей.

Кстати, в популярности Django есть один сильный плюс - он является центром притяжения для разработчиков. Конечно, кто-то сидит в TurboGears, Pylons, etc, но главные рабочие руки в Django, нет растаскивания мозгов по уголкам.
А вот в Erlang такого центра нет. Поэтому "выход в люди" в сфере веб может нанести ему больше вреда, чем пользы.

вот очень правильно пишет человек: http://lionet.livejournal.com/51003.html?thread=1150523#t1150523
Erlang сейчас местами напоминает Джаву, кстати. Что не есть гут.

5 способов работать с Ruby, нет 6: http://twitter.com/dmitriid/status/7033485275
Минимум 5 шаблонизаторов: http://twitter.com/dmitriid/status/7058486007
Минимум 5 JSON-парсеров: http://twitter.com/dmitriid/status/7058512355
Минимум 6 веб-фреймворков: http://twitter.com/dmitriid/status/7033114466

и так далее и тому подобное :)


Это Java-сообщество может себе позволить иметь 5 мощных универсальных фреймворков уровня не ниже Django - там столько кадров, что на каждый хватит.
Здесь еще не все базовые вебовские вещи решены, а уже пошло растаскивание по углам. Зачем мне 5 json-парсеров? Дайте лучше 1, но хороший.

[info]xenru

2010-03-04 02:20 pm UTC

Это не ругание, а брюжжание :) Пишут, делятся, пытаются пиарить, это есть хорошо.

Но ты затрагиваешь ценный аспект обучения людей — это сообщество. Так вот оно у нас (русскоязычных пользователей) не такое сильное. Как таковых лидеров толпы не много, есть умные и уважаемые люди, но у них нет времени. Как только была переведена Django Book начали появляться люди которые никогда не залазили в англоязычные тусы.

Web Erlang сейчас проходит законный процесс. Идет вливание новой крови, но люди не находят элементарных вещей. Конечно же проще заимствовать то, что было до этого с небольшой переоценкой с учетом нового опыта (которого не всегда бывает достаточно). Кстати из перечисленного списка ничего не могу сказать только о способах работы с Ruby. Возможно JSON-парсеры — это плохо, но обилие шаблонов и веб-фреймворков хорошо.

[info]elisitsky

2010-03-04 07:53 pm UTC

> это сообщество. Так вот оно у нас (русскоязычных пользователей) не такое сильное.
Мне кажется, такая проблема есть у всех локальных языковых сообществ. Самое большое всегда будет англоязычное - в силу статуса английского языка как международного.
Переводы это хорошо, потому что не все знают язык. Среди тех, кто знает, все равно немалая часть тех, кому удобнее воспринимать на родном.

Django очень правильная вещь, в том смысле, что она сразу ставит процесс разработки и мышления про веб-разработку на правильные рельсы: вот MVC, вот четкое разделение задач, вот шаблон, в котором сделано все, чтобы ты не мог его испортить программой. Вот за это они мне очень нравятся - за свою абстрактность и легкочитаемость. Я никогда не мог работать со Smarty - настолько сильный рвотный рефлекс они у меня вызывали. Напихано столько много логики, что это уже не шаблон, а кусок программы. Ее нельзя назвать отдельной программой, потому что она все равно теснейшим образом завязана на логику основной программы.
На мой взгляд, правильный шаблон не должен дать прострелить тебе ногу: с одной стороны он должен автоматом экранировать все "опасные" символы, с другой не позволять тебе в нем программировать, еще хотелось бы чтобы хорошо читалось. Я за 15 минут просмотрел все эти шаблонизаторы, некоторые мне не понравились сразу же - какой-то огород нагорожен.
Понравился только ErlDTL. Потому что первое, что написано в документации про него - это как его скомпилировать в .beam. Ощущение, что все остальные авторы об этом не думали или думали как о 10-й фишке. А если шаблон нельзя скомпилировать, то это не шаблон для эрланга.
Второй шаблог где это так заявлено - ErlTL - там прямо функции в шаьлоне, которые будут скомпилены. Но какой же страшный синтаксис! Еще хуже чем пхп с хтмл-тегами. Это читать - с ума сойти.
Хотя в каких-то специфических задачах, перечисленные фреймворки будут лучше.
Но для массового фреймворка нужна какая-то простота и универсальнсть.

еще одна важная проблема фреймворков:
> люди не находят элементарных вещей.
Это проблема. Пока модель Джанго мне наиболее нравится - вся веб-специфика вынесена за скобки, ты думаешь только над бизнес-логикой. И это круто. А когда ты думаешь над тупейшим эскейпом символов, то твоя голова забита и на более высокое понимание задачи тупо нет сил и времени.
Например, мне надо отдать файл. Я не позволю себе это сделать, пока не убежусь, что он находится ниже DocumentRoot. Так вот даже такую банальную проверку приходится писать самому.

Разбить бы все эти фреймворки на модули по отдельным задачам. Уверен больше половины модулей будут иметь один и тот же функционал. Но написано по разному, а если бы были общие компоненты, то выигрывали бы все разработчики.

Как сейчас например Джанго конмоненты можно использовать по отдельности. И отэтого все выигрывают.
А вот в Эрланг фреймворках, я ничего такого не видел даже близко.
Вообще большой вопрос повторное испльзование Erlang-кода.

[info]dmitriid

2010-03-05 10:09 am UTC

По идее Zotonic сейчас максимально близко к идее «компоненты можно использовать по отдельности». Но им опять же нужна внятная документация

[info]elisitsky

2010-03-05 10:25 am UTC

Спасибо, надо посмотреть повнимательнее на нее.
при первоначальном знакомстве меня смутило, что она CMS - то есть круг задач весьма узкий. А мне нужно что-то типа CMF или просто F.

[info]xenru

2010-03-05 04:08 pm UTC

Если бы я знал, что ты про нее не знаешь, то я бы тебе дал ссылку :)

[info]elisitsky

2010-03-05 04:12 pm UTC

[info]alexott

2010-03-05 11:58 am UTC

коммьюнити начинает образовываться, например, только за вчера пришло 4 новых человека в список рассылки erlang russian и список становится все более активным. ну и fprog.ru пытается популяризовать этот язык и ФП

[info]xenru

2010-03-05 04:07 pm UTC

Может отсюда вошли, за блогом следит много ненавистников :)

Хотя я в смятении, стоит ли рекламировать рассылку или нет. Если да, то может быть добавить ссылку с fprog.ru на нее?

Рассылку интересно читать, а не только писать в нее.

[info]zerthurd

2010-03-05 04:21 pm UTC

Уже 9 человек. Аналитики имеют полное право написать, что интерес к функциональному программированию за прошедшие сутки вырос на 3% и продолжает расти.

[info]zerthurd

2010-03-05 04:32 pm UTC

10

[info]alexott

2010-03-05 04:45 pm UTC

3% в день, умножить на 365 дней :-)

[info]zerthurd

2010-03-05 04:54 pm UTC

[info]xenru

2010-03-05 07:16 pm UTC

[info]alexott

2010-03-05 04:44 pm UTC

насчет fprog.ru надо обсуждать с львом и другими - вроде не собирались делать пока полноценный ФП-шный ресурс...

[info]xenru

2010-03-05 07:18 pm UTC

[info]alexott

2010-03-05 07:25 pm UTC

[info]7iam

2010-03-06 06:16 pm UTC

Вот вы пишете: «Необходимость в Erlang'е подходит тогда когда надо решать инфраструктурные задачи эффективным образом...» А можно по-подробнее, что это за задачи такие? (что называется, для тех кто (пока?) не в теме)

[info]xenru

2010-03-10 01:54 pm UTC

Базы данных, шины передачи сообщений, веб сервера, etc
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…