Как стать автором
Обновить

Комментарии 26

Sinatra — замечательная штука, чтобы собрать что-то на коленке. Но это же просто набор методов, которые можно использовать для взаимодействия с клиентом по HTTP. Всё остальное придется писать руками, изобретать тысячу велосипедов.

Как вообще можно сравнивать Sinatra с Rails? Это все равно, что сравнивать мотоблок с автомобилем.
Аналогичное мнение высказывалось в статье.

Но это у Вас уже есть собственный опыт и сформированные взгляды. А как быть тем людям, которые только делают первые шаги по стезе Ruby? Я, к примеру, когда начинал изучать Ruby, понял, что браться сразу за Rails не стоит. И я не знал, что Sinatra — на самом деле не фреймворк. И я тоже задавался вопросом зачем придумали каждый из инструментов. В статье собрано множество различных мнений. В комментариях, будут ещё. Думаю, другим новичкам это будет на пользу.

Про мотоблок и автомобиль спорить не буду.

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

Синатра — это для тех, кто представляет себе, как написать рельсы с нуля и очень хочет этим заниматься.
вы меня, конечно, извините, то руби — это не только ваши рельсы, и далеко не всегда web-приложения.
НЛО прилетело и опубликовало эту надпись здесь
не смешите меня рассказами про то, что есть руби вне рельс. Это такая же профанация, как ObjC вне Эппла.
Как Вы себе пресдавляете ситуацию, в которой Вы бы могли сказать: «Да, руби вне рельс есть»?
Puppet, chef, vagrant, еще куча приложений — это не руби? Или их нет?
Понятно, что объемы кода несопоставимы, но все же, отрицать наличие руби отдельно от рельс — как-то не очень корректно.
например, у питона нет такой явной консолидации. У Руби есть.

Пока не появились рельсы, никому кроме вредного японца руби был нафиг не нужен
Почему же? Было и есть ему применение вне веб. Было бы оно никому не надо никто бы не писал для него расширения и не создавалось бы несколько реализаций (загляните не wiki).

А чего Вы Юкихиро Мацумото вредным называете? :-D
Мацумото вредный, потому что он длительное время целенаправленно вредил рельсам.

С самого начала взрывного роста популярности рельс Матц испытывал смесь из ревности, раздражения и зависти по отношению к рельсам: ведь никто не воспринимал и не воспринимает его детище в отдельности от рельс.

В итоге длительное время на сайте руби вообще не было упоминания рельс. Было всякое невообразимейшее штако, но не рельсы.

Дальше пошел саботаж. Например, в 1.8.7-patchNNN Матц втихаря выкатил чудесный патч, поломавший нахрен ассоциации в рельсах. Очень тонко и филигранно: ошибку можно было найти очень не сразу.

Потом Матц устроил юникод. В приличных обществах за то, что он натворил, ставят к стенке, а потом отправляют исправлять содеянное, но тут не получилось. Он умудрился на два года (!) сорвать переход на новую версию руби, потому что выкаченные им апдейты принципиально не годятся для современного интернета, который весь на UTF-8.

В итоге получилось его угомонить только взяв на формальную работу в Хероку (я не ошибся?), где ему приказали перестать вредить рельсам и его японское чувство ответственности теперь в конфликте с его отношением к гайдзиновской поделке.

Всё, что вы видите на ruby-lang — это именно попытка хоть как-то доказать, что не рельсами едиными. По факту это не более чем попытки заявить о существовании у Монголии своей космической программы.
Т. е. Вы хотите сказать что Хайнмайер сделал из штако конфетку?
Да, безусловно.

Посмотрите на куски рубийного кода, который был до рельс. Это просто инфернальный ужас какой-то. Только в рельсах появился code conventions и был наложен негласный мораторий на большинство практик из дорельсового руби.

О каких конкретно инструментах идёт речь?
Как можно изучать фреймворк, не зная особенностей языка на котором он написан?

Вот потому я и начал штудировать просто Ruby, попутно пытаясь построить маленькие проекты на Sinatra.

Собственный фреймворк пишут люди с солидным стажем работы на том или ином языке; те кто знают тонкости как языка так и аналогичных фреймворков на которых он написан.

Однажды читал статью на хабре (жаль, не могу её найти и кинуть ссылку), так там рассказывалось о том, что когда у программиста знания достигают определённого уровня возникает искушение создать собственного «наполеона». Некоторые конторы даже вкладывали солидные суммы денег на создание собственного детища. Да вот только далеко не всегда получается настолько практичный инструмент, как ожидается. И для многих эта тема — как больная мозоль.

Опять таки, подчеркну, речь шла не о новичках, а об уже сформировавшихся специалистах.
Мне кажется с точки зрения времени на получение результата — Синатра попроще будет.

Там надо — установить руби, и гем, и заработает простейший hello world, что-то вроде этого:

1. Установить Ruby

2. Установить Sinatra:
$ gem install sinatra

3. Написать hi.rb руби файл:
require 'sinatra'

get '/hi' do
  "Hello World!"
end

4. Стартовать:
$ ruby hi.rb


5. Результат на http:// 0.0.0.0:4567/hi в браузере увидим:
Hello World!

А дальше чего? Делаем формочку руками и получаем PHP.
НЛО прилетело и опубликовало эту надпись здесь
Есть два типа людей — одни покупают готовый, отлично выглядящий дом, живут в нем полгода, а когда из подвала начинает вонять дерьмом, берут фонарь и спускаются посмотреть, что же там такое. Оказывается канализацию прорвало, надо чинить.
Другие покупают стройматериалы, делают проект, льют фундамент и.т.д.

Не имею ничего против ни первых, ни вторых. Просто люди по-разному получают фан.
НЛО прилетело и опубликовало эту надпись здесь
а зачем нужны глупые аналогии, которые не имеют ничего общего с реальностью?
Во первых, из подвала воняет крайне редко, а канализация может накрыться вне зависимости от метода получения дома в собственность. Во вторых, воторой тип людей исчезающе мал, если вообще существует, так как, если вашу мысль экстраполировать, то и процессоры покупать плохо, нужно паять самому, а то х86 давно морально устарело, а поскольку такого не наблюдается, то и вывод о втором типе людей напрашивается сам. Так что, подход, мягко говоря не живучий.

О зле: хватит пиарить второй тип людей! Каждый джуниор хочет быть вторым типом людей, которых не существует или которые вымирают. Скафолды пишут руками сами, якобы чтобы лучше запомнилось, в результате, тратят кучу времени на то, что генераторы им сами нагенерируют, пишут сами авторизацию, когда все уже придумано до нас, засыпали форумы вопросами о хранении файлов при загрузке из браузера. В общем, занимаются эволюцией, забывая про то, что рождаются сразу людьми, а не тратят миллиарды лет для эволюции из бактерии. Это все выростает в велосипедофилию, и выкорчевать из головы это становится крайне тяжело, а делом заниматься вообще некогда.
Про Padrino даже не упомянули.
Почему же, было упоминание.
Да, прошу прощения, не заметил. Но по-моему сравнивать как раз стоило Rails и Padrino.
Из новых фреймворков, не указанных по первой ссылке, lotus выглядит очень многообещающе; а также roda от Jeremy Evans (автора Sequel), как утверждается, по бенчмаркам обходит даже синатру. Но это, конечно, не лучший выбор для новичков.
В качестве примера создания большой системы, на Ruby, могу привести примеры проектов из CloudFoundry (спонсируемого VMWare), например, BOSH:

Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.

github.com/cloudfoundry/bosh

более 8 тыс коммитов, более 100 контрибутора.

На мой взгляд можно достичь дао изучая архитектурное решение, или просто читая код :) И некоторые элементы системы сделаны на базе Sinatra (например: bosh-registry).

И вот интересный для изучения пример: Cloud Controller

И другой пример — архитектура информационной системы для Британского правительства — AlphaGov так же включает системы на Sinatra, например govuk_content_api (Content API layer for GOV.UK)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории