LINUX.ORG.RU

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

 ,


1

3

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

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

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

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

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

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

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

★★★★★

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

А что за проект абстрактно хотя бы? сколько народу пилило? что бы представлять все же скорость обучения примерно, был ли «гуру» который показывал и бил по рукам? как оценивали что это good enough ?

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

Проблема в Scala (и соответственно Play) когда пытаешься собрать на медленном компе _большой_ проект. Нарастание времени конпеляции примерно как у C++ - на хэлловорлде всё бегает, на огромном жирном монстре можно утром стать конпеляться и приходить в обед.

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

А, ну тут стоит отметить, что я в варианте с Java-кодом тестировал. Scala мне как-то совсем не нравится :) А sbt вообще в тихий ужас вгоняет.

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

Если правильно помню, у Excelsior бОльшая часть кода на скале

+На Скале можно героически писать как на яве (порождая говно, но неважно)

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

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

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

Проблема в Scala (и соответственно Play) когда пытаешься собрать на медленном компе _большой_ проект. Нарастание времени конпеляции примерно как у C++ - на хэлловорлде всё бегает, на огромном жирном монстре можно утром стать конпеляться и приходить в обед.

Жесть, люблю когда все по F5 обновляется, как-то настраивает на продуктивность, кроме того макбук мой не шибко производительный.

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

Enter Acts as Taggable On. [...] specific keyword (namely tags), [and] allows you to specify an arbitrary number of tag «contexts» that can be used locally or in combination ...

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

Короче да, рубисты любят чтобы программный интерфейс говорил сам за себя.

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

нет, твой макбук скорее всего шибко производительный, но если захочешь пересобирать из исходников Play2 + твой сайт на VPS-хостинге на виртуалке со 100 мегабайтами оперативки и 1 гигабайтом жесткого диска - добро пожаловать в ад. Обычно этим аргументом манипулируют в холиворах похапэшники, типа а у нас сборка моментальная и оперативки не занимает, ггг

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

А что за проект абстрактно хотя бы?

Сбор данных с серверов и поставка на mapreduce кластера для обработки.

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

В некотором смысле был. В «некотором» потому что работает в другом отделе в соседнем офисе и консультировался я с ним не очень часто :)

сколько народу пилило?

1

как оценивали что это good enough ?

Throughput возрос на порядок, узким местом наконец стал канал, количество факапов по причине поломки системы поставки сократилось в итоге до нуля.

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

как у C++ - на хэлловорлде всё бегает, на огромном жирном монстре можно утром стать конпеляться и приходить в обед.

На одной из моих прошлых работ было дежурство по «канпелянию» :) Заключалось это в следующем. Утром надо было поставить проект на сборку и после обеда убедиться, что собралось. Если не собралось, то приходилось засиживаться до позднего вечера :)

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

Архитектура? Там таких слов не знали :) Собственно это одна из причин почему проект собирался 4 часа.

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

Тебе повесть надо что ли написать про тэги у сущностей?

Enter Acts as Taggable On

Я не понял, это инструкция по включению или что? Отдельно написать видимо лень не позволила?

Нажал на ссылку слева, кнопка назад в браузере не работает. Веб-девелоперы, чо.

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

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

Читать документацию и догадываться? Ты точно серьёзно? Ладно, вопрос исчерпан, спасибо.

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

где это написано в документации

можно догадываться

кнопка назад в браузере не работает

То было для отключенного js

Ты сделал мой вечер. Это руби так влияет?

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

догадываться

все должно быть предсказуемо

Блджад, прекрати, у меня челюсть онемела уже.

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

Наверно, я вообще не читал этот текст (Acts as Taggable - все и так понятно), я сразу пошел смотреть код. А что развило твое тугодумие.. и погубило чувство юмора? Или ты просто любишь читать кулстори..

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

А что развило твое тугодумие.. и погубило чувство юмора?

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

Была у меня когда-то немецкая локализация винды и какая-то программа, в которой был захардкожен путь «C:\Documents and Settings\...». А в немецкой локализации оно должно было быть «C:\Dokumente und Einstellungen\...».

С тех пор люблю посмеяться с быдлокодеров, которые «сразу идут смотреть код» в интернетах и терпеть не могу пользоваться их высерами. Ибо у них всё время какая-то хуйня происходит, то язык не тот, то для отключённого js. А на пыхпых и на это твоё руби они как мухи на говно слетаются.

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

Да.. ты просто фанат кулстори я смотрю, если дока не начинается с «Once upon a time..» - все, упущение))

Не упущение, а отсутствие фичи. Упущение - это когда дока не начинается с «Это сепулькарий, устройство для сепуления.»

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

На чем прога-то была, уж точно не на руби или пыхе)) Но в доке указали поди, что такого:))

Так забыл уже давно, что за прога-то была. Даже стыдно немного, всё-таки первый встреченный быдлокод.

anonymous
()

Попробуй немного ознакомиться с java(spring|play) и потом писать на rails как на java-spring. Чтобы были, грубо говоря, отдельные уровни dao от моделей, сервисы и прочее. Думаю качество кода руби-рельсового приложения возрастет очень сильно, да и понимание всего.

Такая идея возникла у меня после того как в одой конторе был эксперимент - java прогеры поменялись местами с ruby и наоборот, далее они сделали по проекту. Потом каждый из них вернулся обратно к своей технологии, но для себя они отметили недостатки-достоинства каждой.

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

blan4
()

Scala. Есть Lift, есть Play да и джава-фреймворки никто не запрещал.

LongLiveUbuntu ★★★★★
()

Попробуй Clojure. Язык очень приятный и предсказуемый. Это тебе не Scala где наворотили черт знает что и решили выехать на знакомом синтаксисе (что в итоге у них получилось). Проблема Скалы в том, что она пытается угодить сразу всем сразу. Хочешь писать как на динамическо типизируемых языках? - пожалуйста, можешь опускать типы при определении переменных. Хочешь как в джава и круче - пожалуйста.

А на счет Clojure - Clojure на сервере, ClojureScript на клиенте. В итоге пишешь на одном и том же языке для сервера и клиента, что не может не радовать.

http://www.clojure-toolbox.com/ http://pedestal.io/

P.S Если собираешься потом найти работу на этих языках (Scala, Clojure), то со скалой будет в разы проще, потому что сработал синдром утенка и большинство жаба программистов свалило на скалу.

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

P.S Если собираешься потом найти работу на этих языках (Scala, Clojure), то со скалой будет в разы проще, потому что сработал синдром утенка и большинство жаба программистов свалило на скалу.

Если собираешься потом найти работу, то с жавой будет в разы проще, потому что. Ну а когда внедришься к работодателю как жава-разработчик, можешь со временем уболтать руководство (если сам не оно) повелосипедить на скале/кложе.

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

Если собираешься потом найти работу на этих языках (Scala, Clojure), то со скалой будет в разы проще, потому что сработал синдром утенка и большинство жаба программистов свалило на скалу.

Офис это не для меня, искать фуллтайм и сидеть под гнетом тупых менеджеров уже давно меня не прельщает. Поэтому с перспективы поиска работы язык не имеет значения особо. Заказчикам я могу хоть брейнфак с лиспом аргументировать, главное что бы быстро делалось, это влияет на баблос.

Clojure интересен конечно , но full stack frameworks там нету или я ошибаюсь? Велосипедить долго, работы много, хочу сделать всех счастливыми.

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

Писать на Java ради возможности в один прекрасный день перейти на Scala это мне кажется бредом, сколько ждать то, 5 лет? А если биг босс скажет ну нахер эту вашу Scala там программисты дороже стоят, я лучше вас тут уволю и возьму индусов за похлебку и 3$ в час работать?

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

Ну что ты как маленький в самом деле. Идешь сюда - http://www.clojure-toolbox.com/.

Ищешь разделы - Web Frameworks; SQL Abstraction; Вместо javascript на клиенте, берешь clojurescript.

За сакксесс сториc идешь в гугл clojure group там есть тема и сюда tonsky.livejournal.com. Ребята из aboutecho.com пилят на кложуре довольно активно. Кстати у Никиты можешь посправшивать на счет Clojure в продакшен.

anonymous
()

Как там с фреймворками на Scala?

Отлично, есть все, что есть в яве + много своего.

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

Вранье.

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

Миф.

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

Очень быстрая, если освоиться.

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

Писать на Java ради возможности в один прекрасный день перейти на Scala это мне кажется бредом, сколько ждать то, 5 лет?

Это конечно бред. Зачем ты это написал?

А если биг босс скажет ну нахер эту вашу Scala там программисты дороже стоят, я лучше вас тут уволю и возьму индусов за похлебку и 3$ в час работать?

Биг босс так не скажет, ему пофиг. Такую мелочь решать PMу и, возможно, его руководителю.

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

но если захочешь пересобирать из исходников Play2 + твой сайт на VPS-хостинге на виртуалке со 100 мегабайтами оперативки и 1 гигабайтом жесткого диска - добро пожаловать в ад.

Зачем нужно пересобирать play из исходников в стандартном workflow веб-разработки? Проект каждый раз собирается заново что ли, после каждого изменения в коде в любом месте приложения?

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

Так смешивание нескольких парадигм в одном языке это тот еще п&*%$#ц.

Как же сейчас все нищщастные на C# пишут? И что вообще страшного в смешении ООП и ФП? Они довольно перпендикулярны, как по мне.

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

Слишком мутный, много сущностей, чем-то похоже на autotools в саммых худших проявлениях. Но есть один плюс: конфигурация пишется/копипастится один раз, после чего про sbt можно забыть как про страшный сон.

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

в в стандартном workflow веб-разработки?

не знаю что это такое. У меня всегда был нестандартный workflow. Склонен считать, что это миф, как единороги

Зачем нужно пересобирать play из исходников

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

роект каждый раз собирается заново что ли,

ну, руби-хипстеры например любят использовать воркфлоу commit is deployment, т.е. коммитишь в гит - сервер видит изменения и сам пересобирает весь проект. В таком способе ты обмениваешься исходниками только через гит, и соответственно лишен возможности копировать кросскомпилированые блобы. Если у тебя чисто поверхностный код - то ок. А если ты поправил что-то в кишках фреймворка, то фреймворк очень возможно придется пересобирать, причем регулярно. Еще, например - у некоторых пути на файловой системе уточняются в момент полной сборки проекта, твой билд-скрипт может не поддерживать кросс-компиляцию, а на целевом серваке другая файловая система - всё, приехали. Итп. Всё это решаемо, но как раз в рамках задачи по уменьшению времени на деплоймент.

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

это сложный вопрос. Собирается то, что нужно. И зависит от твоего вокрфлоу.

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

Слишком мутный, много сущностей, чем-то похоже на autotools в саммых худших проявлениях.

Да едрен батон, вы что все, другим sbt пользуетесь? Для хелловорлда там нужен файлик в 2 (две) строчки, для чего-то посложнее - добавить

libraryDependencies ++= Seq (...)

Для интеграции с идеей - еще один файлик с 1 (одной) строчкой.

Я конечно допускаю, что когда имеется гигантский проект с 20 модулями, CI и прочей хренью, начинаются определенные проблемы, но неужели ж в других системах сборки их нет?

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

Для __хелловорлда__

В том то и дело.

еще один файлик с 1 (одной) строчкой.

Вот вот. Там несколько типов файлов и все с разным синтаксисом. Это я имел ввиду, говоря про «сущности».

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

У меня все летает

Это же субъективные характеристики, так что спорить глупо. Но для меня sbt уныло нетороплив даже на моём i7-3770 с 8Гб оперативки и SSD.

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

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

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

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