Высокопроизводительные сервисы на Crystal, ведение от новичка
Комментарии (11)
10 мая 2017 в 18:58
+1↑
↓
Если же немного снизить планку надежности, то здесь перед нами выбор из Node, Go и Crystal.
Erlang весь надежный, node, go, crystal чуть похуже. Java, C# вообще никак не были упомянуты. Видимо, чтобы до них дошло, нужно, чтобы планка производительности куда-нибудь совсем потерялась. (сарказм)Какие критерии надежности применялись для оценки? Чем надежность Java или C# или Python не устроила? Нет, правда, я уважаю Erlang. Но конкретика же.
10 мая 2017 в 19:09
+3↑
↓
Летом 1889 года Антон Палыч Чехов беседовал с неким И.Я. Гурляндом и заявил: «Если вы в первом акте повесили на сцену пистолет, то в последнем он должен выстрелить. Иначе — не вешайте его.» Вот мне интересно, Erlang-то тут к чему был? Так просто?10 мая 2017 в 19:40
0↑
↓
Пока у меня нет готовых проектов на elixir:-)
11 мая 2017 в 06:03 (комментарий был изменён)
0↑
↓
А чем конкретно не нравится синтаксис Erlang?
В незапамятные времена человек, учивший меня писать на VoiceXML, сказал отличную фразу — «Тут главное правильно вывернуть мозг». Так и с Erlang — как только мозг выворачивается, внутри что-то щелкает и синтаксис Erlang перестает казаться чем-то необычным. И спустя какое-то время думаешь — хм, а переменные-то и впрямь не нужны. Ох, и без циклов можно обойтись. А еще тут какие-то свертки есть… ну и все такое.
По поводу Elixir я лучше ничего не буду говорить :)
10 мая 2017 в 19:38
0↑
↓
Да, C# и Java здесь не затрагивались, мое упущение. Отдельные интересные экосистемы.
10 мая 2017 в 21:19
–1↑
↓
Да просто ничем не подкрепленные утверждения. Что Go — самый быстрый. Автор (то есть, вы) заявляет, но никак ни на что не ссылается. Предполагается, что все написанное — просто догма.10 мая 2017 в 21:26
0↑
↓
В тексте статьи изначально ссылка на одно из сравнений языков по производительности, позднее добавил еще две.
10 мая 2017 в 19:47
0↑
↓
На самом деле в статье многое упущено, например, nim. Немного прояснит ситуацию https://github.com/kostya/benchmarks
10 мая 2017 в 20:27
0↑
↓
Интересные времена настали: резвые новые языки тягаются с дедушками C и C++ и выигрывают. Вот к примеру Crystal (Ruby на стероидах). Или мой любимый Nim (а-ля Python на стероидах) — https://nim-lang.org. Кстати интересно будет сравнение Crystal и Nim (Nim тоже существено быстрее Go).
Как показываеть сравнение CSV Game (https://bitbucket.org/ewanhiggs/csv-game) Nim шустр почти как C, a вот Crystal-я там почему-то нет :)
10 мая 2017 в 20:28
+3↑
↓
Язык пусть и не стабильный на сей момент (alpha всё таки), но лично у меня вызывает только восторг. И по моим личным ощущениям, он ну очень близок к руби.
Принципиальные отличия от руби — типы всё-таки часто приходится указывать явно, что в случае с кортежами, хешами — порой вынуждает искать другие, более удобные для этого случая подходы. хотя приведение типов имеет и пока не реализованный потенциал.
И вместо метапрограммирования как такового, тут компайл-тайм макросы.Еще менее стабильны сейчас библиотеки (shards), ибо каждый апдейт языка приносит пачку breaking changes.
Обещают остановиться делать столько ломающих изменений когда достигнут 1.0.
К 1.0 так же торопятся сделать concurency, сейчас же в полной мере реализованы только корутины (fibers) и каналы.
+ достаточно богатая стандартная библиотека.+ шарды стараются не отставать. даже развиваются фреймворки а-ля синатра (kemal), а-ля рельсы (ametist), + нечто среднее (kemalist, lol). последние два не пробовал.
10 мая 2017 в 23:58
0↑
↓
(kemalist, lol)
В какой-то момент подумал, что lol — это название фреймворка. Удивился и даже полез гуглить)