Немного жизненного сравнения языков программирования


Есть много параметров по которым можно сравнивать языки программирования. Именно как языки, а не платформы. Популярность, инструменты разработки, область применения, позиция на рынке — это важно, но интересно именно посмотреть на языки сами по себе.
Причём пофигу на их парадигмы: и на Си можно писать в ООП стиле (GTK+ например) и на Java можно делать монады.
А как они именно в жизни?

Program languages on clock
Если вам хочется узнать какой язык популярнее то крайне советую вам почитать статью В поисках самого востребованного языка программирования откуда я нагло стырил КДПВ.

Я же хочу обратить ваше внимание на такие почти субъективные параметры:

1. Набор базовых аксиом.
Есть языки которые похожи на китайский — куча иероглифов. А есть такие как английский, где всего 26 букв, зато из них можно комбинировать слова а из слов предложения.
Очевидно что чем меньше таких вот базовых символов тем проще начать обучение. Но получается больше текста, да.
С другой стороны доводить набор букв до 1 и 0 тоже бессмысленно. Тут нужно подбирать компромис. В среднем во всех языках около 15ти операторов и до десяти базовых типов.
Аксиоматичную мощность можно посчитать и вывести коэффициент. Я даже нашёл какое-то сравнение мощности языков столетней давности.
Это вполне серъёзная и слегка научная задача годная для диссертации. Тут даже и графики красивые в маткаде можно нарисовать и из Википедии накопипастить заумных терминов. По крайней мере всерьёз годик разбираться.
Но вместо этого все пишут диссеры про какую то фигню, в лучшем случае о рефакторинге или RESTе. И кстати тоже не особо мудрённое дело для диссера: метод экстрактнуть или HTTP запрос отправить. Ловите намёк 😉

2. Читабельность.
Большую часть времени программисты читают код а не пишут.
Что такое читабельность начинаешь понимать когда сравниваешь код на питоне и на перле.
Тут такая закономерность: чем высокоуровневей язык программирования, тем лучше читаемость. SQL вообще читается как обычный текст.

3. Синтаксический сахар
Для часто повторяющихся примитивных вещей. Например, в яве строки — это объекты, и по хорошему нужно их конкатенировать вызовом метода. Но чтобы облегчить людям жизнь специально добавили синтаксический сахар когда оператор + выполняет конкатенацию строк.
Но плюс работает только для строк в виде исключения: всем остальным классам переопределять операторы нельзя, чтобы не было удивления в коде.
А вот в C++, C#, Groovy и многих других языках можно делать переопределение операторов и в результате потом часто удивляешься что это за фигня такая в коде: users << new User() пока не узнаёшь что добрые молодцы добавили сахару для добавления в список.
Вообщем, тут опять таки как с языками — если в английском жёсткая грамматика и порядок слов, то в русском пиши как хочешь и синтезируй слова.
В результате иностранцы не могут понять русский.

4. Возможность выстрелить в ногу.
Лучше всего стрелять в ногу на Си: тут ты выхватываешь настоящий Segmentation fault а не унылый NPE. Делишь 1/3 и получаешь 0. Пишешь if (x = 3) и долго удивляешься почему код не работает. И через переполненный буфер хакеры тебе валят сервак.
А ещё в Си бывают приколы когда из-за оптимизирующей опции компилятора программа перестаёт работать вообще.

5. Магия.
Магия это некая фича которая позволяет делать всякие трюки не предусмотренные изначально создателями.
Очень часто мы даже не задумываемся что используем магию.
Например, директивы прекомпилятора и макросы — ими можно и вовсе перевести C++ на олбанский:

#include <iostream>
#include <locale.h>

#if !defined (_MSC_VER) || _MSC_VER < 1400
#error Wrong compiler! Use MSVS 8.0
#endif

#define НАЧЕЛ      {
#define КОНЧЕЛ     ;}
#define ТИПА       int
#define ВДРУГ      if (
#define ТАДА       )
#define НИХРИНА    else
#define ВЗАД       return
#define КАГДИЛА    (
#define ЙО         ;
#define ЖЖОШ(p,n)  for (; (p) <= (n); (p)++)

#define БАЗАР      std::cout << 
#define СЛЫШЬ      << 
#define СТОЙ       system ("echo. & pause");
#define БЛИН       _wsetlocale (LC_ALL, L"Russian_Russia.ACP");

#define ВРОДЕ      try 
#define ИБАНУЦЦО   throw
#define АПСТЕНУ    catch (const char* __чё__)

#define ПРЕВЕД     ТИПА main КАГДИЛА ТАДА
#define МЕДВЕД     ВЗАД 0; КОНЧЕЛ

ТИПА КРУТО КАГДИЛА ТИПА фигня ТАДА
    НАЧЕЛ
    БАЗАР "ВАЩЕ " ЙО
    ВДРУГ фигня == 8 ТАДА ИБАНУЦЦО "мля! " ЙО
    ВЗАД 0
    КОНЧЕЛ

ПРЕВЕД
    НАЧЕЛ
    БЛИН

    ВРОДЕ НАЧЕЛ

    ТИПА фишка = 0 ЙО

    ЖЖОШ (фишка, 10)
        НАЧЕЛ
        БАЗАР фишка СЛЫШЬ " "; 
        ВДРУГ фишка >= 5 ТАДА КРУТО (фишка) ЙО
        КОНЧЕЛ

    КОНЧЕЛ АПСТЕНУ НАЧЕЛ
        БАЗАР "ИБАНУЦЦО invoked: " СЛЫШЬ __чё__;
    КОНЧЕЛ

    СТОЙ
    МЕДВЕД

Теперь давайте сравним языки по этим критериям:
Си
1. Минимальный базовый набор аксиом: В Си всё просто: вот функции, вот структуры, вот указатели, в атаку! Труъ сишники, типа Торвальдса, смотрят на плюсников как на позеров.
2. Читабельность: в Си она низкая i++, j—, for (;;) но сильно выручает что набор минимален.
3. Синтаксический сахар: квадратные скобочки [] для массивов (можно обойтись указателем) и строковые литералы.
4. В ногу вы просто стреляете: выходите за рамки буферов, забываете подчистить память, в результате имеете настоящий Segmentation fault.
5. Как это не удивительно без магии в Си не сделать ни шагу. Магия в Си — это директивы прекомпилятора. На них делается всё: инклдюды, константы, DSL’ы.

Си++
1. Тут уже появляются объекты, но с ними ещё куча свистелок и перделок по числу которых плюсы впереди планеты всей. Вообще появляется ощущение что плюсы тестовый полигон для всех всех концепций программирования.
2. Читабельность почти никакая. Местами спасает только Си-подобный синтаксис.
3. Сахарка хватает: даже хелоу ворлд начинается с переопределённого оператора << для cout.
4. Стреляем в ногу из пулемёта. Классика жанра — множественное наследование.
5. Магия достигается через шаблоны STL и Boost.

Ява
1. Тут просто взяли Си++ и убрали всё лишнее. В результате всё просто: вот класс, вот методы, создаёшь объект и дергаешь методы, если что-то пошло не так кидаешь исключение, «шо не йасно?».
Но всё равно перестарались: вложенные классы, статические методы, примитивные типы. Когда начинаешь готовится к сертификации OSCJP внезапно понимаешь что Явы ты не знаешь.
2. Синтаксис вполне уже читабельный, если не обращать внимание на реликты после Си. По сути lingva franca из-за чего её любят использовать в учебниках.
3. Если знаешь все приколы Си то в ногу стрельнуть уже довольно сложно. Разве что Out of memory или Null pointer exception. Собственно поэтому на Яве и написали кучу энтерпрайзного софта.
4. Магия постигается с помощью аннотаций, которые вообще то не должны влиять на программу. Но по факту по следам аннотаций потом курочат байт код до неузнаваемости.

Си шарп
1. Взяли яву и натащили всего нужного и ненужного в целях маркетинга. Чем структуры отличаются от классов? Зачем нужен yield? Судя по всему он и не так часто используется.
3. Опять переопределение операторов и прочий зоопарк из C++, но уже с уборщиком мусора.
2. Читабельность нормальная. Ну примерно как у Делфи (создатель один и тот же).
4. Для магии всегда придумывают целые технологии, типа LINQ.

Пайтон
1. Большой набор базовых принципов которые плохо подобраны.
2. Читабельность хорошая — издалека вообще со стихами Маяковского можно спутать.
4. Магия достигается использованием сишных либ которые всё умеют. Поэтому на питоне написано половина гуёв на линуксах.
Вообще про питон лично я ничего хорошего не могу сказать — я на нём написал с десяток скриптов и каждый раз это было отстойно. Может в нём и есть какая фишка.

Перл
2. Перл получился в процессе эволюции текстового редактора. И бесспорно имеет самый ужасный write-only синтаксис. Регулярные выражения как раз пришли из перла, что о многом говорит. Мне кажется создатели Brainfuck просто немного упростили Perl.
4. Магия перла в том что одной строчкой можно переколбасить весь текст в документе.

Руби
По сути — объектно-ориентированный Перл.
1. Синтаксис настолько засахаренный что можно получить диабет.
2. Читабельность как у перла, но выручает единообразие — главное понять концепцию.
4. Магия достигается с помощью метапрограммирования поверх динамизма. Например, если вы дёргаете метод которого нет, то можно его перехватить и всё таки выполнить. Так делают динамик файндеры, например.
Всё что в книжках по яве написано «так делать нельзя» в руби пишут «смотрите, можно даже так сделать!».

Ada
Аду создавали в рамках конкурса для армии США. Т.е. изначально попросили академиков придумать самый крутой язык программирования. За что боролись на то и напоролись.
1. Базовый набор огромен. До появления Scala это был самый богатый язык программирования.
2. При этом великолепный читабельный паскальный синтаксис.
3. Сахару достаточно.
4. Магии практически нет — всё итак уже в языке. Хотя тут я не уверен, я не так много кода видел на Аде.

Я не просто так упомянул Аду, почитайте её критику:

Хоар выразил своё сожаление тем, что «погремушки и побрякушки возобладали над фундаментальными требованиями надёжности и безопасности» и предостерёг от «армады ракет, летящих не туда из-за не обнаруженной вовремя ошибки в компиляторе Ады». Никлаус Вирт высказался более сдержанно, но тоже негативно. Он сказал: «Слишком много всего вываливается на программиста. Я не думаю, что, изучив треть Ады, можно нормально работать. Если вы не освоите всех деталей языка, то в дальнейшем можете споткнуться на них, и это приведёт к неприятным последствиям». Жан Ишбиа, руководитель группы разработчиков Ады, выразив своё «уважение и восхищение» Виртом, не согласился с ним, сказав: «Вирт верит в простые решения сложных проблем. Я не верю в такие чудеса. Сложные проблемы требуют сложных решений».

Стоит ли говорить что в результате Ада в жопе а в космос летает софт написанный на Сишечке?

Scala
Скала это попытка сделать Яву функциональной в ущерб здравому смыслу.
Точно так же как и Аду её придумали искусственно в «лаборатории по созданию языков программирования» что уже должно настораживать.
Как и любая функциональщина, она доводит до оргазма всяких умников с «математическим складом ума».
Нормальным инженерам становится страшно когда они представляют как поддерживать проект на Скале. Scala хуже, чем Java. Как минимум, для половины Java проектов.

Очень хорошо это описано в статье Андрея Платова О выборе языка программирования:

Scala даст огромный рост продуктивности по сравнению с Java (так же как C->C++). Это верно для проекта с одним автором в вакууме. Сложность, и безграничные возможности языка отразятся гемороем, который нихера не будет способствовать продуктивности. Вопрос только в том чего будет больше. Я пока не знаю, да и больших Scala проектов в мире по большому счету еще нет.

Очень советую почитать эту статью полностью, считайте её продолжением моей.

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

Ещё по теме

Как выбрать язык программирования

PS

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


Не поленитесь, и почитайте ещё несколько очень важных моих статей для начинающих программистов, студентов и джуниоров.
Также не забудьте вступить в группу IT Juniors куда я пытаюсь собирать ссылки на другие полезные статьи для вас и анонсы курсов и интернатуры в компаниях.

Реклама

15 comments

  1. Sergiy

    Groovy?

    На мой взгляд:
    1. Java на стероидах. Все Java программы — они же сразу и Groovy программы. Но язык с динамической типизацией, а значит — к обычной Java добавлено еще куча новых (почти всегда полезных) конструкций.

    2. Читабельность. Очень хорошая. Многие конструкции на Groovy читаются как фразы на обычном (английском) языке.

    3. Синтаксический сахар. Его много, он удобен и почти всегда полезен. Синтаксис работы с коллекциями и словарями просто очарователен.

    4. Стрельнуть в ногу в Groovy гораздо проще чем в Java т.к. язык динамический.
    Т.е. проблема осложняется, что стреляете вы сейчас, а осознаете, что попали себе в ногу — только после запуска программы. Иногда уже на продакшн сервере 🙂

    5. Магия. Тут ее полно. Ну или наоборот почти нет — это с какой стороны смотреть.
    Groovy очень хорош для работы со всякими DSL (domain specific language). Очень «магически» обычно выходит 🙂

    • stokito

      Всё так 🙂 В плане магии это самый крутой язык из тех что я видел. Сочетание замыканий и AST преобразований дают просто неограниченные возможности.

  2. Ололо

    А в чем суть статьи ? Расказать всему миру, что автор — долбоеб ?

    Чтобы рассуждать о чем-то, нужно как минимум на нем поработать. Из статьи видно, что кроме джавы и говнокода на питоне, автор не писал ни на одном з упомянутых языков. Кроме того, автор забывает о существовании других, языков- как популярных (жаваскрипт, пхп), так и прогрессивных (хаскел, окамл, f#, ерланг).

    Но за фразу «SQL читается как простой текст» — я всё готов простить.
    Спасибо, поржал от души.

    п.с.: who is «Андрей Платов» ? такой же местечковый долбоеб, только еще и старый, который умудряется написать, цитирую: «В завершении можно глянуть на список проектов написанных на C++ от дедушки Страуструпа – не такой уж и впечатляющий список», и линк, где перечиленны все продукты Adobe, Microsoft, Autodesk и тп.

    • stokito

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

      > А в чем суть статьи?
      Суть в том что есть некие свойства языков которые влияют на решение применять их на проекте или нет. И забавным моментом оказывается то, что достоинства языков на практике, т.е. в жизни, могут оказаться их недостатками. Например мощный синтаксис.

      > Чтобы рассуждать о чем-то, нужно как минимум на нем поработать.
      Чтобы понять что море солёное достаточно одной капли. Поверь, мне приходилось делать разные штуки на разных языках: от ассемблера до ILog. Не скажу что опыта много, но мой опыт тоже ценен. Моё резюме, пускай и не полное но открыто. Может и не фонтан, хотя я рад чего достиг. А где твоё?

      > автор забывает о существовании других, языков- как популярных (жаваскрипт, пхп), так и прогрессивных (хаскел, окамл, f#, ерланг).

      Далеко не о всех языках я упомянул, потому что неважно. Это не попытка в двух словах описать язык — для этого есть Лурка, Википедия и Програпедия. Тут главное принцип, причём субъективный.
      Я довольно крутой яваскриптер и делфист, это точно. В PHP я может и не гуру, но точно специалист. Я много перепробовал пытаясь разобраться. На Haskel я тоже успел попрограммить ещё в девятнадцать лет, так что тоже знаю. По настоящему прогрессивного там нет ничего.

      > «SQL читается как простой текст” Спасибо, поржал от души.
      ВЫБРАТЬ все поля ИЗ пользователи ГДЕ роль РАВНА «админ».
      Ухахатывайся, мне не жалко.

      > who is “Андрей Платов”
      Лень по ссылке кликнуть? Даже без клика, так сжато передать столько мыслей это показатель настоящего профессионала.

      Критикуй конструктивней.

      • Sergiy

        Имхо, отвечать таким «ололо» — зря тратить время. Если в их высказываниях и встречается «рациональное зерно», то форма выражения абсолютно нивелирует любую «здравость» подобных высказываний.

  3. Ярослав

    Здравстуйте, попробую быть конструктивным.

    Ссылку переслали друзья, в принципе я спокойно воспринял ваш пост, пока не вчитался.
    Лично меня возмущает ультимативность с которой автор развешивает ярлыки — «говно» иногда не утрудившись полностю разобраться в некотоых деталях. Кроме того удивляет, то что казалось бы коуч и даже возможно консультант? не понимает что каждый язык создан для конкретных целей и не все люди на свете пишут только бизнес-аппликейншены.

    Если стаття не серьезная, и автор просто хотел потролить, специально вызвать батхерт, пошутить или еще чего то заранее прошу извинения, вы мегакруты, я осел.

    Разрешите пройтись по деталям:

    SCALA:
    — Как и любая функциональщина, она доводит до оргазма всяких умников с —“математическим складом ума”. Нормальным инженерам становится страшно когда —они -представляют как поддерживать проект на Скале.

    Это предложение говорит что вы слыхом не слыхали о SICP, о функциональной декомпозиции и чистоте алгоритмов, список можно продолжать долго. Когда я слышу подобного рода высказывания то понимаю что человеку в детстве просто подсунули бейсик или паскаль, усугубив його императивность його мышления в универе Delphi. «Нормальным инженерам» в Лозане и MIT, SCALA в университете читают вместе с теорий програмирования на Schema или Racket. После этого у них проблем с поддержкой проектов на Скале не возникает.

    Python:
    —1. Большой набор базовых принципов которые плохо подобраны.
    —2. Вообще про питон лично я ничего хорошего не могу сказать – я на нём написал с —десяток скриптов и каждый раз это было отстойно. Может в нём и есть какая фишка.

    По поводу первого, ну что вам сказать, Гвидо Ван Россумe смешно; почитайте, что ли, как и кто принимает решения об эволюции Питона, по поводу второго — возможно, вы просто не умете на нем программировать?

    Ruby:
    —Всё что в книжках по яве написано “так делать нельзя” в руби пишут “смотрите, можно —даже так сделать!”.

    Это плохо или хорошо не пойму? Рубисты исповедують другие принципы, для них прагматизм и скорость — это главное. И это совсем не значит, что это плохо.

    С#
    —1. Взяли яву и натащили всего нужного и ненужного в целях маркетинга. Чем структуры —отличаются от классов?

    Странно слышать такое от человека с С,С++(unmanaged) бекграундом. Попробовали сначала хотя бы погуглить перед тем как такое писать.

    —2 Зачем нужен yield?
    Мистер походу ничего не слышал о couroutines и generator’aх, их применении, начните, пожалуй, с википедии.
    —4. Для магии всегда придумывают целые технологии, типа LINQ.
    Я вот не пойму, это плохо или хорошо? Опять таки, кажеться вы называете «магией» просто то, что плохо понимаете. Мсье наверное не слышал о sequence monad и операции bind в хаскеле, и для чего это все добавили в C#.

    Haskell:
    —На Haskel я тоже успел попрограммить ещё в девятнадцать лет, так что тоже знаю. По —настоящему прогрессивного там нет ничего.

    Мы очень любим ваши программы на Haskell. Ваше мнение очень весомо, и да, Пол Худак и весь Йель очень растроены Вашим мнением о ненужности Haskell.

    Ваши мысли о развитии языков:
    —Нужно совершенно новое поколение языков программирования.

    Монсеньор, большинство современных языков, базируются на Lisp и ML семействе, которому уже 50 лет. Кроме того Лисп переживает ренессанс в виде Clojure, посмотрите их хакатоны, вы будете удивлены тем, что люди делают за 24 часа.
    И изменения в Java 8 вдохновлены С#, к которому, в свою очередь, приложились создатели Хаскелля.

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

    Это беглый список моих возввражений Вашему мнению.

    Вы явно сильно зациклились на синтаксисе, причем в императивном виде, место того чтобы искать в языках суть. Потрудитесь перед тем как рассуждать о нужности/ненужности языков подтянуть теорию, прослушать хотя к примеру Programming Languages Дена Гроссмана на Coursera чтобы понять мотивацию и принципы их создания и оперировать более весомыми аргументами чем в данном посте.

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

    С Уважением, ваш Ярослав Носа

    • stokito

      Добрый день, Ярослав,

      Статья серъёзная, просто кажется троллинговой из-за субъективности и поверхностной проработки — это всё таки заметка в блог а не статья на хабру.

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

      Ваши замечания отходят немного в сторону от темы, но попробую ответить.

      > “Нормальным инженерам” в Лозане и MIT, SCALA в университете читают вместе с теорий програмирования на Schema или Racket. После этого у них проблем с поддержкой проектов на Скале не возникает.

      Лозана и МИТ это университеты высшего эшелона которым чтобы оправдать цену за обучение приходится готовить специалистов уровнем выше чем в других.
      SICP это десятилетиями отработанная книга которая обучает основам программирования и простого Лиспа для этого достаточно. Т.е. это вообще-то не очень то и рокет саенс, а может даже и наоборот.
      После прослушки всяких заумных предметов выпускники потом идут в те же Microsoft и Google писать на тех же Си, Питоне, Яве и Си шарпе.
      Может быть конечно часть из них и занимается какими-то задачами где требуется сильные знания в математике и алгоритмистике, но они уже не совсем попадают от определение «обычного инженера».
      Поэтому нужно чётко понимать, что изучение таких курсов это конечно же полезно и может даже интересно, и всё таки очень слабо коррелируется с сегодняшней практикой, а значит в основном будет забыто.

      > После этого у них проблем с поддержкой проектов на Скале не возникает.

      Это очень вряд ли, потому что пока крупных проектов на Скале не так уж и много и говорить об этом рано.
      Зато ребята из JetBrains пришли к выводу что они никак не могут сделать полноценную поддержку Скалы в IDE и начали проектировать свой язык программирования Kotlin. Вот этот язык уже возможно станет предвестником нового поколения языков в которые наверняка уже будут заточены под использование в IDE а не просто в блокноте.

      > Это плохо или хорошо не пойму? Рубисты исповедуют другие принципы, для них прагматизм и скорость – это главное. И это совсем не значит, что это плохо.

      Давайте не будем акцентировать внимание на том, что плохо а что хорошо. Конечно же плохо 🙂 Главное что есть само отличие по такому параметру.

      По поводу структур, yield, и другого то я конечно знаю что это. Я спрашиваю а так ли нужны ли они? Это новые аксиомы. т.е. добавляют букв в язык.
      Например по сути структуры не отличаются от объектов. Да они могут копироваться по значению и хранятся на стеке. Но вот например в Java решили избавится от структур, а сама JVM уже смотрит — если объект маленький то ложит его в стек, если он не влезает в стек то в хип.
      Тоже самое с yield: по сути это просто итератор. Но как новая аксиома он порождает неочевидные проблемы, например обработка исключений.

      Насколько генераторы нужная функциональность чтобы делать для них поддержку на уровне языка?
      В Яве генераторов нет, и как то живут люди. Более того, если посмотреть на частоту использования этого функционала в проектах на Шарпе https://github.com/search?l=csharp&q=yield&ref=searchresults&type=Code то становится непонятно зачем ради такого спорного и малоиспользуемого функционала делать поддержку на уровне языка.
      Вот об этом и написано в статье: что у разных языков разное количество базовых аксиом, и это ощутимо влияет на поддерживаемость проекта.

      > Вы явно сильно зациклились на синтаксисе

      Тут рассматриваются именно сами языки а не платформы и концепции или парадигмы, хотя и пересекается.

      > Потрудитесь перед тем как рассуждать о нужности/ненужности языков подтянуть теорию

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

  4. Виктор

    > да и больших Scala проектов в мире по большому счету еще нет.

    Я возможно ошибаюсь, но как же twitter?

    • stokito

      Твитер все любят упоминать при каждом холиваре. У них там свой зоопарк, а сервис на самом деле довольно-то примитивный

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s