LINUX.ORG.RU

Ruby on Rails?

 , , ,


0

1

Добрый день комрады, потребовалось сесть на бут..., простите, на Ruby для написания web. Творение Матца не юзал со времен 1.6. Поэтому есть несколько вопросов:

  • что почитать по самому языку из наиболее актуальных книг? Очень интересны всякие микрооптимизации, паттерны и архитектуры...
  • Ruby != Rails уже или так и остался DSL для «рельс»? Как продвинулся язык в разрезе применения в продакшене, стартапах, науки и т.п.?
  • собственно, что сейчас можно использовать для web'a на Ruby? Или так и осталось всё - Rails и Sinatrа, остальное полудохлое.
  • асинхронность завезли?
  • он такой же тормоз, как и был?
  • что лучше подходит для проектирование REST API?
  • есть ли нормальные тулкиты под сабж (декстоп для Win, *nix)?

Заранее благодарен, вещи типа «переходи на Python/Nim/Crystal/etc.» не рассматриваются для проекта.

Заранее благодарен, вещи типа «переходи на Python/Nim/Crystal/etc.» не рассматриваются для проекта.

Жаль,что не на Crystal.

Переходи на Perl для проекта, Mojolicious - популярный асинхронный веб-фреймворк, быстрый и с огромным количеством плагинов.

DRVTiny ★★★★★ ()

Вкратце по твоему набросу дела обстоят так. Руби = рельсы и немножко скриптов автоматизации, тренд нисходящий, т.е. это легаси. Синатру можно юзать для лисапедов, никто не запрещает. Из нового такого появилась Roda, на любителя как всегда. С реализациями руби дела намного лучше, чем в 2007. Японский интерпретатор (который теперь с VM) быстрее себя же в наивном исполнениии где-то на порядок, но все равно отстает на синтетике от конкурентов. Сейчас идут работы по прикручиванию к нему JIT. Есть годные реализации под JVM. Асинхронность завезли на уровне примитивов (fibers), но кто-то должен сделать инфраструктуру, а кто это будет делать и зачем? За асинхронностью идут в другие места, но никто не отменял евентмашину, если уж так припрет. Какие еще тулкиты и зачем они тебе я не понял. Это так, лишь бы набросить побольше? Если ты про гуи, то не надо писать гуи на руби. Поверь на слово.

anonymous ()
Ответ на: комментарий от entefeed

Ты недооцениваешь поддержку легаси. Это хлебная тема, и туда так просто не пробьешься. Чем древнее прожэкты, тем более хлебная и блатная. Мастера кобола не дадут соврать.

anonymous ()
Ответ на: комментарий от DRVTiny

Жаль,что не на Crystal.

Кристал сырой и там пока мало что есть. Вот почитай как недавно чинили HashDoS. Страшновато такую сырость выставлять жопой в инет. Сколько там еще может быть уязвимостей страшно представить. Руби то полировали годами на эту тему. И еще мне лично противна идея бинаря на сервере. Там может быть какая угодно жопень и проприетарщина, такой прогресс нам не нужен.

anonymous ()

собственно, что сейчас можно использовать для web'a на Ruby?

Или так и осталось всё - Rails и Sinatrа

плюсую http://www.ruby-grape.org/ классная штука, есть roda, еще для api можешь глянуть rails + https://github.com/Netflix/fast_jsonapi

он такой же тормоз, как и был?

уже давно нет, с каждой версии оптимизируют и улучшают http://benchmarksgame.alioth.debian.org/u64q/ruby.html

в 2.6 добавят jit, пока-что exeprimental, https://medium.com/@k0kubun/the-method-jit-compiler-for-ruby-2-6-388ee0989c13

также есть truffleruby

что лучше подходит для проектирование REST API?

ruby-grape + grape-swagger

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

у ruby очень много хороших, удобных, качественных библиотек аналогов которым по функциональности я не нашел в других языках, например geocoding, xml feed processing ..., для каких-то нишевых научных задач по библиотекам наврное все-же лидирует python

можешь глянуть https://github.com/arbox/machine-learning-with-ruby

Насчет будущего языка - язык развивается назло всем злопыхателям ;)

В 3 версии будет много нововведений, ruby guilds и обмен объектами чем-то напоминает erlang actors с его обменом сообщениями https://olivierlacan.com/posts/concurrency-in-ruby-3-with-guilds/

anonymous ()
Ответ на: комментарий от anonymous

И еще мне лично противна идея бинаря на сервере.

Скачиваешь исходные коды (пишешь оные самостоятельно), компилируешь, запускаешь. Где и что проприетарно, какая ещё жопень? :)

DRVTiny ★★★★★ ()