0,0
рейтинг
19 февраля 2013 в 18:12

Разное → Я придумал Erlang, потому что его не существовало перевод


Автор статьи — Joe Armstrong, разработчик Erlang

Я, как программист-старожил, люблю иногда вспоминать свою молодость …

Когда, в далеком 1967, я только начинал учиться программировать, я выбирал между языками Fortran и Algol. Про Algol ходило множество слухов, но практически никакой полезной информации нельзя было найти, так что я начал с Fortran.

На написание одной программы в среднем уходило 3 недели:

неделя 1 — написание программы на бумаге и отправка в компьютерный центр, где мне делали перфокарты;
неделя 2 — проверка перфокарт, и загрузка их в компьютер;
неделя 3 — получение и анализ результатов.

Когда компилятор доходил до первой синтаксической ошибки в программе, — он останавливался, и это отбрасывало меня обратно в самое начало, к первой неделе. Для исправления 10 ошибок в программе могло потребоваться 30 недель!

Хотя в некотором роде это было даже хорошо — это учило думать до написания программы и не делать ошибок.

В 1970 я учился в университете. Я мог самостоятельно печатать перфокарты, и время, необходимое на этот этап, с недели сократилось до 4 часов. Я по прежнему писал на Fortran'е.

В 1974 у меня появился доступ к компьютеру Honywell DDP516 — с огромной памятью в 32 Кб. Наконец-то компилятор Fortran компилировал программу из 100 строчек меньше чем за неделю!

И в этом же году я начал работать в CERN и использовать суперкомпьютер CRAY1, который компилировал 100 тысяч строк кода на Fortran в 1 пикосекунду (хаха, на самом деле он был в миллион раз медленнее моего сегодняшнего мобильника)!

И я по-прежнему писал на Fortran'е.

Вскоре я смог поиграться с DEC10 — теперь я уже мог писать код на Fortran'е, Basic'е и Assembler'е, и он был многозадачным! Если бы я жил в США, я бы стал Биллом Гейцем, но я обитал в Эдинбурге.

В 1976 я получил работу на NORD10 на Fortran'е и Assembler'е, и этот компьютер был по-настоящему быстрый, справлялся с программами за секунды!

В 1980 я все еще программировал на FORTRAN (забыл название машины). Все файлы лежали в одной папке, не было полноэкранного редактора, не было системы контроля версий. Я написал около 150 тысяч строк кода на Fortran'е для всего этого!

1985 год — я присоединился к Ericsson с потрясающим VAX11/750. Наконец-то я смог полноценно изучать новые языки. Прощай Fortran!

Я изучил (в разной степени) Lisp, Prolog, awk, bash, smalltalk, TCL, и стал профи в Prolog (аррррр — прелесть моя)

Я игрался с практически всеми языками, которые мне только попадались (ML, forth, ...)
1986 — начало периода Erlang (я не мог изучать Erlang, так как он тогда не существовал, так что можно сказать, что я создал его) — это был отпрыск от Prolog+Smalltalk.

Потом я изучил (хреновенько) C. Mike Williams (со-разработчик Erlang) сказал, что мой код на C — дерьмо и выглядит как мой Fortran. Его фраза отправила мой C в мусорную корзину…

Когда начал набирать популярность C++, я попытался прочитать про него книгу… До сих пор осталась вмятина на стене за пианино, куда я ее швырнул в порыве гнева! Ведь я считал, что усовершенствование C должно сделать вещи проще, а все оказалось еще более запутанным!

Время шло.

Я попробовал Java, впечатлен не был, хотя конечно это и получше чем C++, но насколько же он многословен! Пальцы немеют, когда на Fortran'е пишешь сотни строчек кода для реализации простейших вещей — тоже самое и на Java. Я также в последствии программировал на Python (норм), Ruby (норм), Lua (получше), Javascript (моя любовь :-). Изучение этих языков действительно отняло у меня много времени. У меня 15-летний опыт Fortran — достаточный, чтобы стать профи в нем, 10 лет Prolog, 20 лет Erlang, и тд.

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

IDE's и системы контроля версий сделали наш мир только хуже. У вас есть все старые версии бардака и сам бардак, и IDE подразумевает, что вы даже не можете увидеть этот бардак. Все же лучшая IDE в мире — это ваш МОЗГ.

Итак, что же делать со своим образованием? Постараюсь предположить, с чего вы могли бы начать.

Вы можете выбирать из более чем 20-ти языков (все из них хороши для той или иной задачи). То, что заняло у меня 40 лет изучения, вы можете попытаться изучить за 2-3 года, в этом нет ничего невозможного.

Какие же языки должен изучать новичок, что должно преподаваться в школах?

Несмотря на огромное разнообразие языков на любой вкус, остановиться на чем-то одном — нелегкая задача. Старики говорят: «выбирайте язык в соответствии с проблемой, которую необходимо решить». Легко так сказать, когда вы знаете 20 (а то и больше) языков (с разной степенью профессионализма), — но если в важем багаже только Java и C — такой совет не сильно вам поможет! Особенно весело, когда решение задачи на CLP-языке занимает всего несколько строк, а на том-же C — тысячи!

Итак, вот мои рекомендации к изучению:

  • C
  • Prolog
  • Erlang (ням-ням :)
  • Smalltalk
  • Javascript
  • Haskell/ML/OCaml
  • LISP/Scheme/Clojure


Пару лет должно быть достаточно (НА ОДИН ЯЗЫК). Я не имею в виду «быстрый старт», или что-то вроде. Если вы хотите быстро-кодить — немедленно бегите в магазин за книгой «PHP для чайников» и проведите следующие 20 лет, гугля вопросы вроде «как посчитать длину строки».

Мы еще крайне слабы во взаимодействии разных программ и модулей, написанных на разных языках. По прежнему лучший способ взаимодействия заключается в использовании юниксовских find… | grep | uniq | sort | …
Фундаментальная причина этого в том, что должен существовать некий промежуточный язык взаимодействия различных компонент с четко прописанными протоколами.

Взаимодействие за счет передачи сообщений — один из путей, основа объектно-ориентированного программирования, но это реализовано плохо в большинстве языков. Если бы все приложения в мире общались по сокетам и лисповским S-выражениям и имели бы стандартные описания протоколов обмена, — тогда мы бы могли намного эффективнее повторно использовать код.
Сегодня концентрация языков и различных методов огромна, но то, как объединять эти методы воедино — реализовано крайне плохо. Изучайте протоколы, а не языки.

И изучайте АЛГОРИТМЫ.

Ваше здоровье!

P.S. Годы в статье приблизительные

Автор статьи: Joe Armstrong; Оригинальная статья на английском; Автор перевода: metadiel

Друзья, призываю всех, кто неравнодушен к IT тематике и стартапам и знает английский, присоединиться к переводу интересных англоязычных статей! На выходе: прокачка английского, расширение горизонтов и респект со стороны тех, кто не может позволить себе читать их в оригинале. Пишите в личку!
Перевод: Joe Armstrong
Михаил Томшинский @tomshinsky
карма
90,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разное

Комментарии (113)

  • +6
    До сих пор осталась вмятина на стене за пианино, куда я ее швырнул в порыве гнева

    То ли у него стены хлипкие, то ли книга была в металлическом переплёте :)
    Спасибо за статью.
    • +8
      У вас вмятины не осталось?)
      Рады стараться!
    • +11
      В Америке, кстати, многие стены делают из гипсокартона и они действительно хлипкие.
      • +40
        Да, гипсокартонную стенку Страуструпом пробить несложно
        • +14
          И даже книгою Страуструпа.
      • 0
        Мой старый томик по перлу на 600+ (если не больше) страниц, который я так и не осилил до конца, пролетел бы, наверное, насквозь ))))
    • +1
      <del>
      too late
    • +10
      Вы книжку Страуструпа видимо не видели по с++, она здоровая :)
  • 0
    Ссылка на оригинал неверная, там: [erlang-questions] erlc speed (or lack thereof), Make and emake Matthias Lang <>
    Thu Jan 24 13:49:48 CET 2013
    • 0
      Да, вы правы. Но это на erlang.org что-то съехало. На YC тоже линк слетел туда же.
    • 0
      линк поправил. но вид у страницы не товарный)
      • 0
        Хо-хо, да, не очень удобно читать так… (:
  • +21
    А что за еврей Билл Гейц? :)
    • 0
      Хотел узнать тоже самое, хорошо топик обновил перед отправкой. :)
      • 0
        tomshinsky, кстати, из Тель-Авива. Не берусь делать выводы, повлиял ли фактор географической локации на перевод. :)

        А статья, между прочим, понравилась, в мемориз.
    • –1
      Лет 7 этому баяну, если не больше.
  • +3
    Богатый опыт у человека, и подборка рекомендуемых языков — просто класс.
    И вот это чудесно:
    Изучайте протоколы, а не языки.
    И изучайте АЛГОРИТМЫ.

    По переводам отличное предложение. В моём Pocket скопились тысячи интересных статей (число ежедневно растёт), до которых у меня, наверное, уже никогда не дойдут руки. И основная масса почему-то на английском языке. Я буду очень рад, когда смогу получать большую часть новой интересной и полезной информации (качественно оформленной!) на русском языке.
    • 0
      Ух ты, а где вы черпаете эти статьи? Понимаю, что источников должно быть много, но может есть основные?
      • +2
        Несколько однобокая подборка, но в основном всё отсюда:


        Хорошие подборки python/django-ссылок выкладывают ребята из Future Colors. Дайджесты от DOU тоже довольно интересные.

        И ещё я подписан примерно на 3 сотни RSS-лент разной степени интересности и тематики. В свободные минуты просматриваю ленту через gReader на телефоне, шарю их в Pocket, а потом читаю перед сном на планшете.

        Ну, и случайные блуждания по интернету как обычно приводят к жутко интересным материалам, на которые прямо сейчас, естественно, времени нет, но „когда-нибудь я всё это обязательно прочитаю“.
        • 0
          Ого, по счастливой случайности я тоже разработчик на python/django, вы мне подбросили просто кучу интересного материала для чтения. И всего, что тут есть читал только hacker news и net tuts+
          • 0
            Если у вас есть интересные источники, тоже делитесь :)

            Да. И не забываем про работу!
            • +3
              Знакомые каждому и не нуждающиеся в упоминании:

              Новости сферы (и новостные блоги IT):

              Любимые топики reddit:

              Хобби (я фанат игр Half-Life и в свободное время увлекаюсь мэппингом для кс. Поэтому люблю читать про valve и просто читать про gamedev с надеждой осуществить в будущем мечту работы над играми)

              Про django ничего переодического (ну кроме редких статей на хабре и реддите) не читал до сегодняшнего дня, поэтому кланюсь в пояс, спасибо.

              Да. И не забываем про работу!

              Отличное замечание, но, боюсь, для меня работа на сегодня окончена всвязи с сотней вкладок с интересными статьями. :)
              • 0
                Реддит и по геймдеву — круто. Подписался.

                А по джанге я забыл указать агрегатор.
  • +42
    «системы контроля версий сделали наш мир только хуже. У вас есть все старые версии бардака и сам бардак» — рыдаю
  • –1
    Не тот город, похоже, назвали Челябинском…
  • 0
    Ах, прекрасная статья о «программерской» биографии! Теперь становится понятно, почему бородатые дядьки-программисты, ощутившие на себе «прелести» компиляции программ на Fortran`е в далекие 60-70 года критикуют современные языки высокого уровня. Раньше, чтоб написать программу, могло уйти 30 недель! А сейчас любой лошок может сесть и «накодить по бырому» что-нибудь на том же PHP… да, тяжко раньше было, тяжко…
    • 0
      По-моему, им просто стрёмно понимать, что то, на что они потратили 10-20 лет, можно теперь сполна изучить за 1-3 года.
      Да, тяжко раньше было. А сейчас не тяжко? Столько всего, столько различных областей, технологий, подходов…
      • +5
        А то что мы сейчас изучаем по несколько лет — через пару десятилетий (а то и намного меньше) можно будет «загрузить в мозг» за секунды…

        И будем себя утешать что «быстреиспекаемые» будущие программисты не чета нам, старым волкам кодинга, постигавшие премудрости разработки собственным умом, методом проб и ошибок…
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Ну так мощи позволяют!

        Раньше на антикварных процах работали такие игрушки — высший пилотаж! )
  • +3
    А вот эта фраза, о 100К строк кода за 10^(-12) секунд: сейчас его мобильник может за то же время скомпилить 100 миллиардов строк???
    Поясните пожалуйста, я только недавно сел за Ерланг — очень нравится, но не хочется расстраиваться из-за автора…
    • 0
      Думаю, автор имеет ввиду общую производительность системы.
      А быстрая компиляция вполне возможна при распараллеливании.
      • +4
        Однако явно не за пикосекунду, учитывая то, что одна операция на Cray-1 занимала 12.5 нс.
        • 0
          может, имелась в виду всё-таки время компиляции в пересчете на 1 строку кода, с учетом распараллеливания?
          • 0
            здесь был комментарий, написанный без прочтения ранее написаных другими комментариев
    • +8
      что уж, автору и пошутить нельзя?
    • +2
      Вы не переживайте за автора — ему позволительно говорить глупости. Он может и потролить слегка. Это как разговор с виртуозом-музыкантом: Расскажите о себе побольше… или что Вы думаете по этому вопросу? А давайте-ка лучше слабаю чего-нибудь Вам…

      У него есть еще статья про ООП и почему это sucks. Кстати было бы здорово, если б кто перевел качественно ее и сюда выложил.
      • 0
        Говорить и делать глупости иногда полезно — ибо они дают возможность делать умные вещи…
      • 0
        • 0
          Exactly. Благодарю — она самая.

          Еще один перл от дядюшки Джо.

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

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

          На гугло-группах он там появляется на форумах иногда. Увлекательно почитать бывает его суждения в постах когде есть минутка времени…

      • –1
        А я и так знаю, что ООП — это сакс :-D
        … но почитаю, чтобы в который раз убедиться.
        • 0
          Не всегда так. Просто это полярное мнение. Все хорошо в меру. Та статья, надо учитывать для какой эпохи писалась.
          Но если читать беспристрастно, то может показаться, что Джо говорит об ООП только с другой стороны. По сути он попытался изобрести новую парадигму и до сих пор в поиске. Везде прослеживается некое главное замечание: как был бардак так и есть )

          Чудак он большой. Швырнул книжку (надо думать с какой силой) и сделал свой язык. Видать та эпоха программирования крепко приспичила человека. Но это здравая критика — реализовав такой язык можно говорить все что угодно ))

          И еще он байкер, судя по фоткам в сети.
          • +1
            посмотрел…
            оказывается я ее читал раньше, и… минуснул :-D
            видимо не понравилась=)
            А если честно: я вот буквально пару недель как сел за Ерланг, и вы знаете, очень даже объектно-ориентированно выходит (но объект — это процесс, а вызов метода… ну вы поняли, и очень даже классно получается). Короче Ерланг-реализация ООП намного прозрачней чем мейнстримовые.
            А если что, так вот еще и Хаскел-ООП.

            Резюмируя: идейно ООП — классная вещь, но вот качество очень сильно зависит от реализации.
            • +1
              у меня тоже создалось ощущение, что ерланг очень ООП по части идеологии процессов и сообщений. Есть книженция на тему из серии ерланг для ООП-программеров в формате пдф. Если не найдете или не знаете эту книгу — вышлю ссылку.
              • 0
                Я хоть и зарабатываю плюсами, ООП-программистом себя не считаю. То есть ООП — хорошо, но не одним же ООП.
                Извините, меня понесло… Я читаю Programming Erlang — думаю мне пока хватит, может позже. Но все равно спасибо =)
                • 0
                  www.maht0x0r.net/library/computing/erlang.pdf
                  -там есть небольшой раздел про ООП — как раз то, что по сути процессы и есть объекты. Вообще на мой взгляд очень полезная брошюра для новичков и начинающих, но имеющих опыт в других языках.

                  все хорошо в меру — главное чтобы это не стало догмой. Кроме ООП есть масса интересных вещей. Можно применять разные парадигмы эффективно в совершенно казалось бы разных областях.

                  Когда вы будете создавать много кода на Эрланге, станете ощущать недостаток в наследовании и методах.

                  Проблема повторного использования кода (одна из главных задач Джо) до конца исчерпывающе не решена (но не только тут ))) и будут еще решения в новых версиях языка.

                  Советую внимательно изучить код ejabberd. Там есть на что посмотреть. Особенно в последних версиях посмотреть на оформление gen_server|gen_fsm во встраиваемых модулях.
                  • 0
                    Простите, но с какой целью вы все это мне пишете? Мне конечно приятно, что обо мне заботятся, но все же.
                    Я НЕ новичок, я (пока) НЕ собираюсь писать много кода на Ерланге, я вас уверяю, что я никогда НЕ ощущаю недостатка в наследовании и методах, когда пишу на Хаскеле/Агде/Ерланге (и даже на Питоне пишу функционально — и все классно). Я же писал: НЕ одним ООП.
                    Я все равно вам благодарен, но неприятно читая сообщение, понимать, что тебя не понимают уже в который раз.
                    • 0
                      Простите, но с какой целью вы все это мне пишете?

                      Выражаю коллинеарность.

                      Новичками считаются те кто скажем 50 лет писал например на C потом решил попробовать эрланг, или те, кто привык к одному языку и решил выучить новый или сразу начал с оного. Что тут зазорного?

                      Человек, благодаря осознанию собственной некомпетентности в каком-то вопросе приобретает эту самую компетенцию. Обычное дело.

                      а вы уверены, что вас понимают всегда?
                      • 0
                        Вам видимо не с кем общаться…
    • 0
      Why so serious?
  • НЛО прилетело и опубликовало эту надпись здесь
    • –2
      Попробуйте не учить, а осознавать ;)
      • НЛО прилетело и опубликовало эту надпись здесь
  • +7
    Автор прав: язык — это средство переноса алгоритма из головы в компьютер посредством этого языка. Все средства проверки синтаксиса лишь выясняют соответствие скобок друг другу и не забыли ли вы объявить про переменную tmp, потому что компилятор тоже должен быть в курсе. Ни один язык с самыми замечательными способами выражения не сможет написать за вас хорошую программу. Корректор может, конечно, за Пушкиным проверить запятые, но «Я помню чудное мгновение...» может написать только Александр «Наше всё» Сергеевич. Так что Кнут и чтение листингов заведомо хорошего кода спасут эту профессию.

    Ну и как писали классики компьтерной литературы «Фортрановскую программу можно написать на любом языке».
    • 0
      Очень нравится ветка на SO про то, читает ли население Кнута реально (я сам несколько раз пытался, к примеру). Любопытно, как с этим дела у хабраюзеров. Создал бы кто-нибудь опроc на посмотреть…
      • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        как результат на GitHub будет репозитарий вида вопрос-ответ :)
      • 0
        Тут ещё вопрос, что подразумевать под чтением. Я вот читал, представление имею, хотя под конец и хабросил, так ка надоело. Но вот упражнений не делал (хоть ещё в детстве на ассемблере программировал). А если изучать как следует, то нужен минимум семестр полноценной работы. Думаю, мало кто так делал, если только в ВУЗе не было аналогичного курса (и студент не клал на него).
      • 0
        Целиком осилил только третий том (Сортировка и Поиск), и периодически использую как справочник по алгоритмам остальные тома.
  • –1
    IDE подразумевает, что вы даже не можете увидеть этот бардак. Все же лучшая IDE в мире — это ваш МОЗГ
    Вот поэтому-то Erlang и не выстрелил. Если для какого-то языка программирования нет IDE, его удел — стать игрушкой для гиков.
    Единственное исключение — если в заданной предметной области язык просто нечем заменить (или все альтернативы тоже подразумевают vim в качестве IDE). Тогда конечно, мышам ничего не остаётся, как кушать кактус.
    Мозг, может, и лучшая IDE, но его ресурсы не бесконечны, объём кэш-памяти ничтожен, а многопоточность и распараллеливание он и вовсе не поддерживает. Так не лучше ли высвободить ценные мозговые ресурсы для работы с архитектурой?
    • +1
      Не нужно говорить что Erlang «игрушка для гиков» — поскольку на нем очень успешно пишут приложения для финансового сектора и телекомов.
      • 0
        Можно хотя-бы одно в качестве примера? Нет, действительно интересно. Про телекомы и финансовый сектор слышу в каждой статье про Erlang, но вот реальных примеров нет совершенно.
        • +11
          Где угодно. От Facebook Chat'а[1] до серверов Call of Duty[2] до нейропроцессинга[3] до видеосерверов[4] до финансовых систем[5] до real-time систем онлайн-комментов[6] до чатов[7] до систем обработки и анализа рекламного трафика[8] до GitHub'а[9] до… до…

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

          [1] www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
          [2] www.erlang-factory.com/upload/presentations/395/ErlangandFirst-PersonShooters.pdf
          [3] www.springer.com/computer/swe/book/978-1-4614-4462-6
          [4] erlyvideo.org
          [5] klarna.com
          [6] aboutecho.com
          [7] www.ejabberd.im
          [8] www.erlang-factory.com/conference/London2011/speakers/PeroSubasic
          [9] www.infoq.com/interviews/erlang-and-github
          отсюда ©
          • 0
            Вы меня опередели :)
            * которые распределены по удаленным нодам
          • 0
            спасибо. Впечатлен.
            Но про банковский и финансовый сектор снова ни одной ссылки (Klama — из другой оперы, по факту — простой Merchant).
            /me ушел искать подходящую книгу и писать свой Demonware
            • 0
              Чем мерчант не финансовый сектор? Какого плана пример вы хотите? Мы, к примеру, занимаемся обработкой платежей по бесконтактным картам (Smart Processing), но этим дело не ограничивается. На самом деле, там очень много всяческой сервисной и бизнес логики. И преимущественно для этого используется Erlang. В самом процессинге только в части шлюзов используется Python.

              Есть еще Exante, занимаются hft. Erlang используют активно. Чем не финансовый сектор?
              • 0
                Нет, я хотел получить ссылки именно на проекты с «вражеской» стороны. Биллинги на стороне банка, привязываемые к Visa, например. Или какие-нибудь трейдерские решения для биржи. Т.е. финансовый и банковский сектор как таковой, а не его клиентов.
            • 0
              это держится в тайне ;)
              • 0
                Не особо понятно, почему нельзя писать «Мы в банке ХХХ используем Erlang для YYY».
                • 0
                  Чтобы понизить исследуемость системы в общем смысле, но реально да — сложно объяснимо. Не все знают возможности его, многих это пугает как неизвестная область. С другой стороны если у меня есть биржевой бот на ерланге, то мне нет резона его афишировать, снижая тем самым свое конкурентное преимущество… А если биржа на джаббере пашет, то боты на эрланге обозримая реальность, если не так на самом деле. Там вроде все на джавах сейчас. Но это пока.
                • 0
                  В «приват банк» используют Erlang — пруф тут, например erlang-in-ukraine ну или www.google.ru/search?q=приват+банк+erlang.
                  Или это тоже не то?
                  • 0
                    Да, это то, но единичный случай. Здесь нет никакого *минала, но не массово.
                    Одна из причин открытия эрланга как open source, был вакуум популярности, community, драйверов, библиотек. Сейчас ситуация кардинально изменилась, но все еще вакуум присутствует. Эрланг так-же делает серьезный вызов таким платформам как Java и некоторые другие — не всем это нравится. Но большинство причин объясняется бритвой Хэнлона )
                    • 0
                      С каких моментов у вас начинается «сейчас»? Erlang заопенсорсили в 1998 году.
                      • 0
                        в те времена это движение не очень было вообще распостранено
          • 0
            Можно еще яндекс добавить. У них, помимо допиленного ejabberd еще в диске Erlang используется, насколько я помню.
            • 0
              Да да, только не забудьте добавить их комментарии относительно счастливого опыта. Не с сайта и модных презенташек, а из личных бесед.

              Вообще было бы полезнее уже честно написать опытным товарищам какие проблемы они встречали при работе. Например проблемы с dets, mnezia. Теряющиеся ноды там были, еще что-то. То есть это не ставит крест, но грабли-то можно и не собирать же лично всем.
              • 0
                Ой, ну делились они своим опытом Эрланг тусовке. Казалось бы, уж там-то нечего скрывать было. Ничего криминального я не обнаружил в их рассказе. Ну да, были проблемы, Куда ж без этого. Но я не уверен, что их (или каких-то других) бы не было, выбери они иную технологию. Все же не сферического коня писали.
                • 0
                  Ну так а где текст? Почему все проблемы по микрозаметкам в бложиках, а диферамбы скоро иллиаду переплюнут по объему?
                  • 0
                    Видео докладов с Erlang Factory Light из Москвы, вроде бы, еще нигде не опубликовано (если вы все еще о яндексе). Или мне об этом не известно.
                  • +1
                    Чёт по монге такая же ботва, по-моему…
                    • 0
                      По монге есть отличные обзорные тексты, где разбирается и обсасывается каждый косяк.
                      • 0
                        А ссылки на эти тексты можно?
              • 0
                Ответ вам в этом комментарии. Прошу прощения за заминку.
              • 0
                • 0
                  По вашей ссылке:
                  > Без эрланга никуда нам. Почти весь процессинг потоков (кроме того, что на OCaml) и все control flows на нём, и никуда сворачивать не собираемся.

                  За что оно считается? Пруф, что люди не слезут с эрланга? Ну так кинуть вам много много пруфов где люди не слезут с питона, руби, С, явы, скалы, C#?

                  Я подозреваю, хотя и не уверен, что ссылка не та. Я в таких случаях обычно проверяю ссылки предварительно, чего и всем желаю.
                  • 0
                    Комментарий по ссылке считается комментарием «относительно счастливого опыта»? Особенно если учесть контекст в виде lionet.info/pdf/2010-lev-walkin-erlang-experience.pdf
                    • 0
                      Это диферамбы, а мне нужны косяки. Везде есть косяки, и классно узнать о них не из личного опыта.
            • –1
              могу ошибаться, но мне кажется в яндексе боятся и/или недолюбливают/недооценивают/недопонимают эрланг. Но может оно и к лучшему…
        • +1
          Erlang работает внутри телефонных коммутаторов, например, так что вы его не увидите, совершенно.
          • 0
            А можно чуть конкретнее — модель, производитель, цена?
            • 0
              Ну Ericsson AXD 301, конечно…

              www.erlang.se/publications/ericsson_review_axd301_1998012.pdf

              ftp.sunet.se/pub/lang/erlang/workshop/2004/cronqvist.pdf

              The AXD 301 Multi-Service Switch from Ericsson is probably one of the largest industrial software projects using a functional programming language. The AXD 301 presents a fairly complicated execution environment. It has a number of subracks (typically 1-4), each with a number of Central Processors (CP's, typically 2-4), and a number of Device Processors (DPs, typically ~10). The DPs handles the physical interfaces (Ethernet, ATM, SONET etc), and the CP's run the traffic control, configuration and administration software. The CP's are paired, with active and a standby roles, applications on the active CP can run with hot (minimal disruption of service) or warm (application restart) standby. The requirements on availability means that application unavailability should be less than 5 minutes per year. The CP's software is written primarily in Erlang (~2.1 million lines of code), with additional third party software (mostly routing protocols).
    • +1
      • 0
        JetBrains IntelliJ IDEA с плагинами удобнее будет.
      • +1
        вечная бетта и недопиленность
    • 0
      Во-первых, plugins.jetbrains.com/plugin/?idea_ce&pluginId=7083
      Во-вторых, Erlang неплохо читается и глазами. В отличие от всяких там.
      В-третьих, раскройте термин «выстрелил».
      Так не лучше ли высвободить ценные мозговые ресурсы для работы с архитектурой?
      Понятно, что лучше. Джо просто заблуждается.
      • 0
        > Во-вторых, Erlang неплохо читается и глазами. В отличие от всяких там.
        Вот тут Джо как раз совершил чуть ли не единствуннеую ошибку в дизайне языка. Символьные выражения намного проще читаются, чем его первая любовь. Я имею право авторитетно заявить, как человек, пишущий на эрланге пять дней в неделю, и на лиспе — два дня. :)
        • +1
          Речь шла всего лишь про «неплохо», а не «превосходно» :)
    • +1
      А у меня есть IDE, emacs называется.
      • +1
        дедушка Джо имел в виду (видимо потролил тонко, чтобы не вызвать холивары) в качестве IDE именно emacs )

        Меня в нем все устраивает, только бесит иногда тормоза, фолдинг регулярками, отсутствие оного нормальное, подсказки к параметрам функций при наведении мышкой (как в эклипсе), ну и опять-же фолдинг по CTRL-click на файлах, классах.
    • +1
      Erlang не позиционировался, как панацея, и выстреливать ему не нужно было совершенно. Он с успехом употребляется в тех системах, для которых был разработан. Поэтому не стоит делать высокопарные заявления, тем более, что не для всех языков жизненно необходима IDE.
    • 0
      Не ваше?
    • +2
      IDE реально необходимы только наверное для java и C#. Пока на них только пишешь — реально кажется что ну никак без IDE.

      Тот же вон javascript многие пишут в обычных текстовых редакторах и ничего. Обычный редактор, несложная интеграция с компилятором, и REPL — покрывают 90% нужных фичей. А за остальными 10% еще подумаешь надо ли тебе IDE эти запускать, которые все с характером и тормозные.
    • +2
      Я всегда кодил на C++ в Эклипсе. А потом я начал писать проект на Erlang. И был очень расстроен, что нет недостойного плагина для элклипса. (по крайней мере тогда не было). Так как я знал vim и не знал emacs, то стал писать в vim. И вот теперь я когда пишу на C++ или python, то тоже делаю это в vim!

      IDE не заменяет мозгов, оно помогает писать код. А в erl мозгов на строчку кода очень много, так что особо и IDE не нужно.
    • 0
      А плагины для поддержки Erlang в Eclipse и IntelliJ IDEA совсем плохи?
  • +6
    Then I learnt (badly) C — But Mike Williams said my C was crap and looked like Fortran so he
    binned my C… (why use malloc and free and pointers anyway ...)
    Потом я изучил (хреновенько) C. Mike Williams (со-разработчик Erlang) сказал, что C — дерьмо и выглядит как мой Fortran. Его фраза отправила мой C в мусорную корзину…
    По моему неправильно перевели.
    • +2
      Да, похоже речь идёт о том, что автор дерьмово писал на C (как на фортране), а не С дерьмо.
    • 0
      Дада, поправил автора. Спасибо.
  • +2
    Э, я вам раньше ответ написал, чем вы комментарий исправили. То-то я смотрю, что не понимаю вашего последнего комментария.

    Что касается Mnesia, то уже ровным счетом везде написано, что пользоваться ей кроме, как для конфигов, нельзя. Проблемы с dets тоже вполне себе общеизвестны. Тем более, Что часть проблем они между собой делят (что не мудрено, ибо mnesia работает как раз поверх dets). Кроме того, куча свидетельств, что gen_fsm, скорее грабли (особенно, в перспективе), чем хороший инструмент, и что конечные автоматы вполне ровно ложатся на gen_server. Это все не военная тайна. И люди своими открытиями охотно делятся. Просто, во-первых, пожалуй нет места, где собраны все подобные косяки (или я этим не интересовался, ибо натыкался на соответствующие топики заранее), а, во-вторых, похоже вы (или другой интересующийся) не знаете, куда смотреть. Тем не менее, некоторые вещи очень специфичны, вроде поведения мониторов между нодами во время брейнсплита, поэтому всем, похоже, придется наступить на эти грабли, чтобы выбрать подход сообразно своим потребностям.
  • 0
    Мы еще крайне слабы во взаимодействии разных программ и модулей, написанных на разных языках. По-прежнему лучший способ взаимодействия заключается в использовании юниксовских find… | grep | uniq | sort | …

    Фундаментальная причина этого в том, что должен существовать некий промежуточный язык взаимодействия различных компонент с чётко прописанными протоколами.
    По крайней мере, я так думаю, теперь-то всем нам можно несказáнно порадоваться тому, что программы и модули на многих языках (подчас весьма различных!) способны невозбранно обмениваться данными сложной структуры при помощи JSON. (Список языков, для которых существуют средства чтения и записи JSON, можно найти в конце заглавной страницы сайта json.org.)
    • +2
      У json есть фатальный недостаток — неотличимость атома от строки, что делает его использование крайне ограниченным.
      • 0
        %% простейший вариант решения, что-то наподобие этого:
        encode(T) when is_atom(T) ->
          {"___atom___", atom_to_list(T)}.
        
        
        


        или
        bert, может bson

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.