LINUX.ORG.RU

Ruby vs Scala для одиночки или маленькой команды

 ,


1

3

Появилось немного свободного времени, подумал поконкретнее изучить Ruby вместе с рельсами для производства всякой мелкой/средней нетривиальщины от заказчиков, а то от пхп фреймворков устал, а питон с джангой с которым я закрыл пару проектов как-то меня не __улыбают__, не лежит душа.

Но вот есть еще модная Scala вроде как, библиотек всяких заимствовать из явы можно много, в тренде и веселья полный дом.

Может ее? пугает только постоянная отсылка к Java библиотекам, придется рано или поздно их читать хотя бы, похожая история с coffeescript/javascript, где я в итоге сдался и вернулся к старому доброму уродливому javascript, а то написание в одном и дебаг в другом (да и все библиотеки на яваскрипте) это ужас

Как там с фреймворками на Scala? что-то типа рельс есть? Play Framework читал вбросы шаблоны компилит по минуте после каждого исправления или это вранье?

Scala это только для парней из ява-мира или это миф?

p.s. важный фактор это скорость разработки, если не самый важный :)

Перемещено mono из talks

★★★★★

Последнее исправление: umren (всего исправлений: 1)

Попробуй с jruby научиться работать, например.
Попробуй написать свой фрэймворк на руби, например:)

special-k ★★★★
()
Ответ на: комментарий от PolarFox

Не знаю, я для веба в чистом виде не писал и как-то не собираюсь.

тогда не подойдет

umren ★★★★★
() автор топика
Ответ на: комментарий от special-k

Попробуй с jruby научиться работать, например.

профит в мелких средних проектах разве какой-то будет? сомневаюсь.

Попробуй написать свой фрэймворк на руби, например:)

велосипедостроением на болею :)

umren ★★★★★
() автор топика
Ответ на: комментарий от umren

профит в мелких средних проектах разве какой-то будет?

Реальная многопоточность, например.

велосипедостроением на болею :)

Есть прикольный фрэймворк http://cramp.in/
хотел сказать, что он заброшен.. а он не заброшен..\

special-k ★★★★
()

Скала для парней из ява-мира. Другой вопрос, что ява-мир это очень круто и надо только радоваться, что появился шанс приобщиться к нему.

Legioner ★★★★★
()

важный фактор это скорость разработки, если не самый важный

Не знаю возможностей Play в этом плане. В Java/Scala мире обычно смакуют всякие асинхронные или архитектурные понты вместо того насколько быстро пишется бложек. Но вроде на Play можно писать не заморачиваясь

Но java придется трогать, если не язык, то платформу и экосистему

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от special-k

Реальная многопоточность, например

толку от нее не на cpu intensive applications? mri с головой хватит.

umren ★★★★★
() автор топика

Play Framework читал вбросы шаблоны компилит по минуте после каждого исправления или это вранье?

На тестах у меня перекомпиляция что-то порядка секунды занимала, может, чуть меньше. Это, конечно, не практически мгновенная перекомпиляция, как в Revel на Golang, но раздражает мало. Хотя долгие циклы отладки в Play не гонял, может, со временем, стало бы и раздражать.

KRoN73 ★★★★★
()

Но вот есть еще модная Scala вроде как, библиотек всяких заимствовать из явы можно много, в тренде и веселья полный дом.

В scala тебе доступна вся мощь java-платформы и это огромный плюс.

Play Framework читал вбросы шаблоны компилит по минуте после каждого исправления или это вранье?

Почти. Готовься ставить на девелоперский комп >= core i7, >= 8 гигов оперативы и ssd. play framework это нереальный монстр в котором такого трындеца наворотили, что при прочтении кода волосы на одном месте шевелиться начинают.

Scala это только для парней из ява-мира или это миф?

Не только, но если ты начнешь на ней писать, то придешь в ява мир :) Собственно я в этот мир пришел через скалу :)

Reset ★★★★★
()
Ответ на: комментарий от vertexua

В Java/Scala мире обычно смакуют всякие асинхронные или архитектурные понты вместо того насколько быстро пишется бложек.

Ага, akka + spray это сила :)

Reset ★★★★★
()
Ответ на: комментарий от vertexua

насколько быстро пишется бложек

бложек наврядли, скорее всякие букинги, екомерсы с фичами, клоны авито и airbnb c несерьезными инвестициями, экстранеты по осваиванию бюджетных денег, BL на работников для hr компаний.

Это что на прицеле/в очереди сейчас.

То есть абстрактно тут максимум будет «средняя посещаемость» и мне важна в первую очередь такая вещь как скорость разработки, а не архитектура или асинхронность, Scala+Play в этом отношении конкурент рубям или я зря смотрю в ее сторону?

umren ★★★★★
() автор топика
Ответ на: комментарий от umren

Scala+Play в этом отношении конкурент рубям или я зря смотрю в ее сторону?

Должно быть в определенной мере, но все же сильно зацепляет Java мир. Вам вероятно прийдется туда чуть копнуть.

vertexua ★★★★★
()
Ответ на: комментарий от umren

Scala+Play в этом отношении конкурент рубям или я зря смотрю в ее сторону?

Думаешь там есть такая же толпа джемов? Поищи джемы под свои задачи, поищи либы для явы - вот тебе и будет ответ, пожалуй.

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 1)
Ответ на: комментарий от Reset

У Java их со всеми версиями пол миллиона. Без учета версий - 68000.

У Ruby кстати тоже 68000, но не ясно считали версии или нет.

Но это погода на Марсе )

vertexua ★★★★★
()
Ответ на: комментарий от Reset

В данном случае это либы заточенные по API раилс, предназначенные для решения определенных задач (часто что бы добавить функционал достаточно просто добавить джем в Gemfile). А вообще это стандартный формат библиотек для руби.

special-k ★★★★
()
Ответ на: комментарий от special-k

Нужно понимать привычки каждой экосистемы и платформы.

Java программисту в голову не пришло выпустить Maven артефакт для добавления поддержки тегов в сущности )

vertexua ★★★★★
()
Ответ на: комментарий от Legioner

Скала для парней из ява-мира. Другой вопрос, что ява-мир это очень круто и надо только радоваться, что появился шанс приобщиться к нему.

учить 2 языка одновременно, причем один чисто для приобщения к легаси части сего мира?

umren ★★★★★
() автор топика
Ответ на: комментарий от special-k

Обьясни поподробнее, а то может быть я не правильно понял в чем соль

Я просто к тому, что если это добавление множества из enum к сущности, то делается это обычным ManyToMany или спецмаппингами некоторыми. Что особенного тут происходит?

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от umren

Тебе не языка бояться нужно, язык Java скорее всего ты уже знаешь по дефолту если писал на других, а вот то как работают приложения, нюансы JVM, всякие способы сборки, деплоймента, логгирования

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

а вот то как работают приложения, нюансы JVM, всякие способы сборки, деплоймента, логгирования

уже страшно, там все ТАК сложно? мне убийцу фейсбука пока писать не нужно с 999999 запросами в наносекунду, рекомендуете ретироваться в руби? а то я всегда предпочитаю более практический подход к делу, осознание крутости akka не думаю, что как-то повляет на результат в виде веб-проектов средней сложности)

важный аспект еще это размер команды, насколько я знаю в ява-скала-мире там принято содержать целый bandwagon разработчиков, а я вот один предпочитаю работать либо с кем-то в паре только - тут опять мифы?

umren ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Здесь как раз применяются возможности руби по метапрограммированию. Для примера возьмем http://rubydoc.info/gems/acts-as-taggable-on/frames

Сначала я просто запишу джем в Gemfile

gem 'acts-as-taggable-on'
Затем выполню в корневой директории проекта
bundle install
С этого момента библиотека подключена.

Далее в классе модели я добавляю строчку

acts_as_taggable
Т.е. например
class User < ActiveRecord::Base
  acts_as_taggable
  #...
  #...
  #...
end
После этого сам класс и объекты класса получат определенное поведение (методы), как об этом было написано http://rubydoc.info/gems/acts-as-taggable-on/frames

Кстати практически для всех джемов есть такая дока.

Т.е., например, если бы лор был написан на рельсах, то можно было бы легко добавить тэги в любую сущность.

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 3)
Ответ на: комментарий от Reset

Это либы чтоль? Хоть жопой жуй

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

umren ★★★★★
() автор топика
Ответ на: комментарий от special-k

Т.е., например, если бы лор был написан на рельсах, то можно было бы легко добавить тэги в любую сущность.

он связывает эту сущность с какими-то новыми таблицами в бд? а если одни и теже теги нужно на несколько моделей?

umren ★★★★★
() автор топика
Ответ на: комментарий от umren

насколько я знаю в ява-скала-мире там принято содержать целый bandwagon разработчиков

Тут как раз разница большая между Java/Scala. В Java уже все решено, понятно и все проекты стандартны в доску. Можно нанять индусов и будет результат.

В Scala надо набирать 3 задрота и они сделают то же самое. Если набрать много неопытных - грохот будет слышно до кабинета Одерски в Швейцарии.

Я уже не мало пишу на Java и на Scala. И все равно есть нюансы. Платформа отличная, но с наскоку ничего не выйдет

vertexua ★★★★★
()
Ответ на: комментарий от umren

Короче обычный маппинг, например ManyToMany делает. Для рельсоводов делает «сферическую магию чтобы теги были»

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

Суть в том, что это оформленное решение, будет ли что-то подобное для play или что там.. и как это будет выглядить.

special-k ★★★★
()
Ответ на: комментарий от vertexua

Если набрать много неопытных - грохот будет слышно до кабинета Одерски в Швейцарии. Я уже не мало пишу на Java и на Scala. И все равно есть нюансы. Платформа отличная, но с наскоку ничего не выйдет

я рассматриваю сейчас вариант разработку на годик-два потом перейти на что-то более модное как надоест, в случае со Scala придется делать серьезную инвестицию я так понимаю т.к. нужно будет получить много смежных знаний платформы.

umren ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Что особенного тут происходит?

Особенного ничего не происходит, просто удобненько, красивенько, модульность, dry, все дела, и много библиотек именно под рельсы (и еще много под rack).

Но, повторяюсь, я бы провел анализ обеих баз либ на наличие нужных.

special-k ★★★★
()
Последнее исправление: special-k (всего исправлений: 3)
Ответ на: комментарий от special-k

Это всё прекрасно, но на хрена это вообще нужно? Пошёл по ссылке, хотел узнать что оно делает, так там только смутно про то, что предыдущая версия либо не могла социальные сети, а эта уже может. Что это за либа, нахрена она нужна, ничего не понятно. В этом вашем руби вся документация такая паршивая или это я чего-то не понимаю?

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

Я не знаю чего ты не понимаешь, на первой же странице перечислены основные методы которые тебе придется использовать. Например

@user.tag_list.add("awesomer")  # add a single tag.
Ежепонятная строчка, но тем не менее еще и прокомментирована. Чего ты хочешь-то?

special-k ★★★★
()
Ответ на: комментарий от special-k

Чего ты хочешь-то?

Ты не поверишь, но хотелось бы узнать, нафига эту штуку вообще запилили и для чего она предназначена. Добавлять строки в листы?

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

Ява это платформа. Если будешь писать на скале, то нужно будет учить платформу, а не второй язык.

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

Ява это платформа. Если будешь писать на скале, то нужно будет учить платформу, а не второй язык.

ну нафиг тогда, пока руби выглядит безопасным вариантом для практических целей да и учить тут особо ничего не нужно ;) я ленивый.

umren ★★★★★
() автор топика
Ответ на: комментарий от special-k

Добавляет такую штуку как «тэги» к произвольной модели. Ты понимаешь что такое «тэги»?

Спасибо. Будь другом, ткни пальцем, где это написано в документации. Если там такого нет, то ответь пожалуйста на вопрос, в руби вся документация такая паршивая?

Если до тебя вдруг не дошло, объясняю на примере.

Almost every large application includes its own logging or tracing API. In conformance with this rule, the E.U. SEMPER project decided to write its own tracing API. This was in early 1996. After countless enhancements, several incarnations and much work that API has evolved to become log4j, a popular logging package for Java.

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

Там всё просто. У меня с момента начала изучения до запуска первого проекта (highload) на скале с ноля в продакшен ушло три месяца ровно.

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.