Меня ведь читают любители функциональных языков? Какие полезные коробочные продукты (т.е. те, которыми можно пользоваться, не имея никакого представления о реализации) на них написаны
( Read more... )
Я для себя объясняю так, что ерланг он про инжиниринг вообще, а все остальное про маргинальные эксперименты. Т.е. чем эрленг для базы данных лучше питона понятно, но чем тот же хаскелль лучше - уже не очень. Эрленг мог бы и нефункциональным быть (наверное).
Мое знакомство с эрлангом ограничивается тестовым заданием Эха, а с хаскелем попыткой написать программу для диссертации знакомого. Пока вывод такой - эрланг - это плохой язык с хорошим рантаймом (которого я не увидел), а хаскел наоборот.
я написал tonsky, что на эрланге есть продукты, потому что это язык, придуманный под реальный проект. большой как в инженерном, так и в бизнесовом плане.
то-есть это не яваскрипт как игрушка для нового браузера, не скала как жирная надстройка, не лисп как академический язык. ну и не ф-шарп, который вообще, прости осспади, помесь в-бейсика с окамлом.
эрланг - промышленное решение под реальные задачи. просто так вышло, что оно хорошо подошло много подо что ещё.
Эрланг - хороший язык. Странноватый в синтаксисе, но хороший: 1. Однозначно читается. Нет оверлоадинга операторов. Это гуд. Это хорошо для работы в группе, для код-ревью. 2. Очень простой язык и синтаксис - язык реально проще и однозначнее всех остальных промышленных языков. Проще питона, проще C, и уж естественно, проще C++. 3. Из-за его функциональности и concurrency-ориентированности, он позволяет избегать каких-то ошибок, которые возникают достаточно часто. В частности, no shared state - это фишка именно языка, а не рантайма. Это гуд.
Ну и рантайм неплохой, к тому же. Интроспекция всякая явно лучше, чем у хаскеля.
Мне как раз не нравятся совсем уж простые языки, хочется сахара всякого. Проблемы в освоении дает концептуальная сложность, а всякие мелкие фишечки не приятны и не сильно замедляют. Ну и рекорды совсем не понравились.
Я очень сознательно разделяю языки для работе в команде, и для индивидуального потребления.
Для индивидуального тебе нужен настолько мощный и гибкий инструмент, насколько ты можешь с ним сладить. Ты можешь потратить годы на то, чтобы выучить все его фишки, и быть очень производительным с ним.
Но в команде важно другое. В команде важно, чтобы любой человек мог читать код любого другого, хотя бы на уровне кода. Концептуальная сложность концептуальной сложностью, но чтобы до неё дойти, нужно хотя бы суметь продраться через синтаксис и идиомы. Если в команде два человека, не дай бог, выучат разные подмножества мощного инструмента (C++, Perl, Haskell), так и до концептуальной сложности не дойдёт - твои коллеги при code review застрянут на ближайшей запятой.
Поэтому мне нравится Haskell, C++, Perl. Но мне лично. Но для групповой разработки как минимум последние два применимы гораздо хуже, чем Erlang.
На то вы и генерал! Вообще, когда изучаю сложный язык, типа скалы (скала еще и концептуально сложная) или руби, то от всех этих красот плююсь, потому что работать надо, а не закорючки изучать, зато потом...
Практика показывает, что "зато потом" в коллективе никогда не заканчивается. Приходит новый народ и косячит. Более того, ты приходишь на свой же код и косячишь, так как ты и ты через полгода - это два разных человека.
Так не единственный же. Экзамены на знание языка устраивают как плохие конторы, куда никто особо не рвется, так и хорошие, куда очередь стоит. Значит, можно часть людей отсеивать и как-то жить при этом.
Reply
Reply
Reply
Reply
я написал tonsky, что на эрланге есть продукты, потому что это язык, придуманный под реальный проект. большой как в инженерном, так и в бизнесовом плане.
то-есть это не яваскрипт как игрушка для нового браузера, не скала как жирная надстройка, не лисп как академический язык. ну и не ф-шарп, который вообще, прости осспади, помесь в-бейсика с окамлом.
эрланг - промышленное решение под реальные задачи. просто так вышло, что оно хорошо подошло много подо что ещё.
Reply
1. Однозначно читается. Нет оверлоадинга операторов. Это гуд. Это хорошо для работы в группе, для код-ревью.
2. Очень простой язык и синтаксис - язык реально проще и однозначнее всех остальных промышленных языков. Проще питона, проще C, и уж естественно, проще C++.
3. Из-за его функциональности и concurrency-ориентированности, он позволяет избегать каких-то ошибок, которые возникают достаточно часто. В частности, no shared state - это фишка именно языка, а не рантайма. Это гуд.
Ну и рантайм неплохой, к тому же. Интроспекция всякая явно лучше, чем у хаскеля.
Reply
Reply
Reply
Для индивидуального тебе нужен настолько мощный и гибкий инструмент, насколько ты можешь с ним сладить. Ты можешь потратить годы на то, чтобы выучить все его фишки, и быть очень производительным с ним.
Но в команде важно другое. В команде важно, чтобы любой человек мог читать код любого другого, хотя бы на уровне кода. Концептуальная сложность концептуальной сложностью, но чтобы до неё дойти, нужно хотя бы суметь продраться через синтаксис и идиомы. Если в команде два человека, не дай бог, выучат разные подмножества мощного инструмента (C++, Perl, Haskell), так и до концептуальной сложности не дойдёт - твои коллеги при code review застрянут на ближайшей запятой.
Поэтому мне нравится Haskell, C++, Perl. Но мне лично. Но для групповой разработки как минимум последние два применимы гораздо хуже, чем Erlang.
Reply
Reply
Reply
Reply
Reply
Reply
Kafka например
Reply
Leave a comment