Высокопроизводительные сервисы на 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 — это название фреймворка. Удивился и даже полез гуглить)

© Habrahabr.ru