Помогу опытному джаверу перейти на руби

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

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

Нода идеальная штука, когда нужен мобильный бек энд с рест API на json и данные мы храним в mongo. Быстрее в разработке не придумаешь, но два минуса:
— в проекте крупном проекте где больше 2х девов, кодебейс может стать очень сложным в понимании, нормальное логирование затрудненно.
— когда нужна веб часть, то никакие експрессы не идут в сравнение с ROR подобными фреймворками, как symfony, django, RoR

Еще один плюс у руби это малое количество разработчиков на рынке, при высокой востребованности.

node.js = 1
ruby ~ 150
python ~ 150
php ~1170

При всех входящих, опытный java разработчик, со знанием spring/hibernate и какого нибудь javascript фреймворка очень легко переходит на руби.

К чему я все это пишу, предлагаю для опытного джавера помошь в переходе, могу подтянуть с недостающими скилами, объяснить концепции.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

А что, если следующий мейнстрим будет за Node и JS?

Windows 8, Firefox OS, относительно одинаковый front- back- end в web app, туча библиотек, аддоны, простота. Видел мало, но хвалебных отзывов о стойкости высоконагруженных проектов и простоте реализации. ПейПал, Групон..

Каковы недостатки технологии, кроме сложности понимания растущего кода?

девесифицировать

Святые угодники...

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

«Куда идти опытному джаверу?» — плохо относящийся к теме заголовок.

Слова «java script» из текста топика были переписаны на «javascript», например.

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

В начале, после рождения, каждый язык молодой и прекрасный. Он так здорово и легко может делать какой нибудь фокус, вроде вызова функции самой же этой функцией, при чём, без упоминания этой функции в тексте программы, длинна которой обычно не превышает сотни символов. Да вообще все программы на этом языке не длиннее ста символов. Но все эти программы умеют делать только этот замечательный фокус. Больше ничего. Потом проходит двадцать или тридцать лет и язык превращается в монстра. Он умеет всё. Иногда кажется, что он сам пишет программу. У него десятки фреймворков и своя студия или даже две. Но беда в том, что программы, которые на нём может писать, становятся очень большими, в сотни тысяч строк, и для того чтобы их нормально писать нужны архитекторы, нужны годы практики и понимание многоуровневых абстракций. Так хочется иногда бросить всё и вспомнить как легко и просто было раньше написать Hello World в пол-байтовой программе. И вот однажды появляется новый язык. Он так здорово и легко может делать какой нибудь фокус, вроде вызова функции самой же этой функцией при чём без упоминания этой функции в тексте программы, длинна которой...

Такі да.
Також є можливість краще реалізувати саму мову.

Если хочется стартапов и хардкора то лучше выбирайте scala. Стартапы на ранней стадии на ruby это в основном очень примитивные веб-приложения. Scala гораздо интереснее, и что главное — привычнее.

Какие есть примеры стартапов, которые выбрали Scala на ранней стадии?

Вы правы конечно, но первую версию твиттера, airbnb и гитхаб мне как-то примитивными приложениями сложно назвать тоже

кстати курсера это не просто скала, а плей фреймворк, разница такая же как руби и рор

но первую версию твиттера мне как-то примитивными приложениями сложно назвать тоже
лол, а мне легко

ну покажите пример не примитивного, которое создали вы

От этого твиттер в1 перестанет быть примитивным?

а, вы тольно про твитер, да, тут согласен

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

Яммер ужеж слез, причем года 3 назад еще

Корсера всё-таки стартовала не со scala
tech.coursera.org/...la-at-coursera

We love Scala because it provides a type safe language with powerful concurrency primitives on top of a mature technology platform. A handful of Stanford students wrote the first lines of Coursera using PHP. As the engineering team grew, we began searching for our future technology platform. After experimenting with many technology platforms including Python and Go, we have settled on Scala and the Play Framework because it meets our needs best.

На скале прототип в разы медленнее делается чем на рельсах

Это да. В первую очередь из за долгого цикла code — compile — redeploy, во вторую из за того что ruby более популярен и библиотек в нем больше.
И я бы не скзал что прям в разы, скорее процентов на 20-25. Все зависит от команды.

В первую очередь из за долгого цикла code — compile — redeploy
О, эксперты в треде, ты точно скалу/плей когда нибудь пробовал?

Уже второй проект пишем. А вот ты видимо только

пробовал
Не самый большой проект будет компилироваться минутами при хорошем железе. Особенно если cake pattern исползуешь.

А можно на первый взглянуть?

На первый к сожалению взглянуть нельзя, так как это кастомный софт который используется только у заказчика. А вот на второй пожалуйста — appath.com

действительно нетривиальная штука, а что вы для интеграции 3rd party API используете? В смысле fuse, mule, servicemix, spring integration или самописное?

Че, уже второй проект пишешь, а про команду ~run не знаешь?

И че, проект все равно перекомпилируется, и происходит это очень долго.

Там компиляция инкрементальная, у меня в среднем пока я табнулся в браузер и нажал ф5 уже все перекомпилировано.

А как насчет github.com/spray/sbt-revolver.
Рекомпиляция только измененных классов + отсутствие нужды руками тушить приложуху, все делает магический re-start.

а шо такое этот опытный джавер и какой план перехода ?

могу подтянуть с недостающими скилами, объяснить концепции
Опытный джавист и без посторонней помощи прочитает доку по руби и рельсам и пойдет педалить код
в проекте крупном проекте где больше 2х девов
Мдяяя... :)
Дальше серьезно:
предлагаю для опытного джавера помошь в переходе, могу подтянуть с недостающими скилами, объяснить концепции.
Какие это в руби такие концепции, которые на объяснять __опытному__ джависту?
И как вы собираетесь «подтягивать» с недостающими скилами?
Лично у меня с руби одна проблема — недостаток практики, думаю это самая популярная проблема. Но ее можно решить только ... наращиванием практики :)
.
Трололо секция:
Руби это стартапы — таких очень много.
Стартапы — это довольно часто возможность поработать с «джунами с завышенным ЧСВ». Афикеть преимущество для __опытного__ джависта :)
Какие это в руби такие концепции, которые на объяснять __опытному__ джависту?
Что не стоит писать больше ста строк кода в одном классе, хотя бы
Что не стоит писать больше ста строк кода в одном классе, хотя бы
Так уж получилось что опытный джавист уже знает о Cyclomatic Complexity (хотя бы из этого www.sonarqube.org/...tic-complexity ) и понимает что мерять надо не строчками :)

Если опытному джависту надоело писать сто строк кода в одном класе, он, очевидно, выберет скалу\груви\кложур, а не руби.

Имелось ввиду больше 2-х сервер сайдных девов на ноде, у вас есть другой опыт работы с нодой? Как вы аккумулировали логи для 1 запроса пользователя?

наращиванием практики :)

практика есть у меня, но я не хочу превращать это в объявление о работе

Стартапы — это довольно часто возможность поработать с «джунами с завышенным ЧСВ»

На сколкьо я понимаю, вы экстраполируете свой опыт стартапов в Украине на весь остальной мир?

Имелось ввиду больше 2-х сервер сайдных девов на ноде
Та я понял что имелось ввиду, но это не меняет «смешность» фразы.
Если более серьезно, то инфраструктура/платформа, для которой 2 человека — это крупный проект, еще очень не зрелая.
вы экстраполируете свой опыт стартапов в Украине на весь остальной мир?
Не только свой, не только в Украине, но таки да экстраполирую.
практика есть у меня, но я не хочу превращать это в объявление о работе
А тогда что же вы предлагаете? Если просто «поговорить про концепции», то для опытного спеца — это не помощь, он сможет легко найти 100500 объяснений и понять хоть некоторые из них.
Та я понял что имелось ввиду, но это не меняет «смешность» фразы.
Самое печальное, что я это утверждаю почти серьезно, разработка больше 2-человек в ноде грозит проблемами, вы ж знаете что в джава скрипте с объектом можно в любой момент сделать что угодно, заменить, добавить, удалить поле метод, и когда не ты весь код пишешь, тебе приходит какой-то объект, который должен был быть ’заэнхансен’ новыми методами в одном из колбеков, но не не был и ты бьешься головой.
А тогда что же вы предлагаете? Если просто «поговорить про концепции», то для опытного спеца — это не помощь, он сможет легко найти 100500 объяснений и понять хоть некоторые из них.

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

в джава скрипте с объектом можно в любой момент сделать что угодно, заменить, добавить, удалить поле метод, и когда не ты весь код пишешь, тебе приходит какой-то объект, который должен был быть ’заэнхансен’ новыми методами в одном из колбеков, но не не был и ты бьешься головой.
Можно не значит нужно (это к вопросу про опытного программиста не зависимо от языка).
В общем если отойти от ноды (но на сколько я знаю, там так же применяют такой подход), на фронт-энде часто используют promises, они решают проблему «коллбэк хелл», при правильном использовании.
Конечно вы можете все понять сами, тем более что вы больше на вебе, как я вижу по профилю.
Но вопрос же не конкретно во мне. Просто интересно, что именно вы предлагаете?
фронт-энде часто используют promises, они решают проблему «коллбэк хелл», при правильном использовании.
Я предпочитаю фреймворки типа async использвовать они ’уплощают’ код вполне до читабельного уровня, но я не об этом говорю, скажем так, в ноде нет как в джаве файла где вы зайдете и узнаете четкое описание методов и свойств объекта, только дока или нужно открыть всегда больше 1 файла.
Но вопрос же не конкретно во мне. Просто интересно, что именно вы предлагаете?
ничего не предлагаю уже, часто нужен рубист в напарники на проект, но уже отказался от этой идеи)

Нода — это всего лишь обертка для запуска js на сервер-сайде. Может не стоит свою криворукость на неё навешивать?

P.S. deployd + mongo — Отличная связка для прототипа, но для реального проекта лучше юзать старый добрый пых + мускуль. Особенно, если вы не умеете готовить js.

Коментар порушує правила спільноти і видалений модераторами.

свою криворукость
вы не умеете готовить js

и остальные коменты, в других ветках подобные

в любой момент сделать что угодно, заменить, добавить, удалить поле метод, и когда не ты весь код пишешь, тебе приходит какой-то объект, который должен был быть ’заэнхансен’ новыми методами в одном из колбеков, но не не был и ты бьешься головой.
Вы как-то странно с Нодой работаете ...

только я? вы хотите сказать, что у объекта, app который возвращается в строке ниже, есть четкое определение интерфейса собранное в одном файле, и он не конструируется ’на лету’, не меняется миксинами и т.д.?

var app= require(’express’).express()

Экспресс имеет устоявшееся API с которым можно работать не испытывая перечисленных вами проблемм.

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

У меня такое не раз было на легаси проектах на ASP.NET, у которого статически типизированный C# и он не имеет «недостатков» Ноды.
Мне кажется — корни проблеммы, которую вы описываете, кроются не в языке программирования и не в фреймворке, а в организации рабочего процесса (отсутствие код ревью, рефакторинга, код стайла и т.д.) и не добросовестном планировании (отсутствие нормального архитектора на проекте). Чья в этом вина — уже виднее вам, но руби или джава — это не silver bullet.

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

Нагавнокодить можно везде.
Експрес я просто как пример фреймворка, которого, чтобы понять по исходникам, нужно открыть не 1, не 2 и даже не 3 файла а больше. А про фреймворк, который внутри проекта растет, это я не про веб фреймворк имел ввиду, может быть что угодно.
Корень конечно не в ноде, но в ноде этот корень торчит прям заметно.

А про фреймворк, который внутри проекта растет, это я не про веб фреймворк имел ввиду, может быть что угодно.
Если он не пересекается функционалом с экспрессом, то какая разница, что своего кода больше, чем у экспресса? Экспресс хендлит одно, свой фреймворк — другое. Разделение задач. Проблемы начнутся только когда руками куда-то лезть и
в любой момент сделать что угодно, заменить, добавить, удалить поле метод

Вы зациклились на експрессе, это был всего лишь пример чего-то относительно сложного, отдающего на выход комплексный объект.

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

Приведите пожалуйста аргументы такого перехода. Судя по з.п. опросу на DOU
senior Java в Киеве зарабатывает 3000-4000, медиана 3500, 68 анкет.
senior Ruby в Киеве зарабатывает 3300-4200, медиана 3500, 9 анкет. Ради +200-300 баксов на senior-е менять специализацию и года 2-3-4 просесть по з.п. пока дорастешь до Ruby senior-а? О_о Ну это cons. Приведите pros в пользу вашего предложения.

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

Второе, это возможность работать напрямую на американские компании, с джавой таких кейсов намного меньше, т.к. это энтерпрайз восновном и редко кто аутсорсит единичным контрактерам из америки в украину такое. Руби это стартапы — таких очень много.

Ну и третий аргумент — это не предполагает отказ от джавы.

Давайте обсудим цифры — сколько реально зарабатывает senior ruby? Каков конкурс на место?

говорит, джава заказов все меньше, скрипты ростут.
Но как вы отличаете глобальный спад рынка Java от небольших колебаний. Вот как похолодание осенью, это не значит что теперь и дальше будет −50 и холоднее, ведь так? Настанет лето и опять потеплеет. Все рынки колеблются, растут и падают. Если рынки упадут, все остальное просто не будет иметь смысла.
Каков конкурс на место?
Хорошего рубиста который умеет работать по TDD сложней найти чем джависта
Давайте обсудим цифры — сколько реально зарабатывает senior ruby?

на украинском рынке — мало, если верить статистике доу.

Тогда извините, нет. Возможно экстремалы пойдут, а 80% хомячков нет, пока не станет мэйнстримом как Java.

Если верить статистике на доу то медиана 2к

Приведите пожалуйста аргументы такого перехода. Судя по з.п. опросу на DOU
senior Java в Киеве зарабатывает 3000-4000, медиана 3500, 68 анкет.
senior Ruby в Киеве зарабатывает 3300-4200, медиана 3500, 9 анкет. Ради +200-300 баксов на senior-е менять специализацию и года 2-3-4 просесть по з.п. пока дорастешь до Ruby senior-а? О_о Ну это cons. Приведите pros в пользу вашего предложения.
1) Практически нету легаси крэпа
2) Выразительный язык
3) Отличное комьюнити
4) Увеличивается скорость разработки

Жаль, что люди все меряют деньгами, и ради $200-300 готовы есть легаси крэп

Вы меня не убедили. Legacy crap — аргумент для воинствующих джунов, а не senior-ов. Как альтернатива писать велосипед с нуля и пробивать лбом 100500 стен вместо фреймворков, это что лучше? Деньги — это главное. Если в Ruby денег меньше и работу найти по факту труднее, то смысла туда идти я не вижу.

Зачем писать велосипед с нуля ? Это так в JavaEE заведено?. Работу рубисту найти не сложно, на первое время одеск как вариант

Давайте еще один аргумент, развитие руби (и груви как подвида) уже само лезет в джаву, даже на джаверских проектах приходится пользовался gradle, chef, как без spok жить я вообще не знаю. В короткосрочной перспективе если мерять деньгками то джава выгодней и скучней.

Еще если RSpec портируют, вообще красота будет

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

Попробуйте GRails и поймете, его реально нельзя юзать, адекватного веб фреймворка нет

4) Увеличивается скорость разработки
Объясните мне пожалуйста, Java Adept, как/чем Вы меряете скорость разработки?

хм, однако 200*12=2400 на дороге не валяются, а тем более 300*12=3600
это ж детям на мороженное, ну и бабам тоже перепадет :)

хм, однако 200*12=2400 на дороге не валяются, а тем более 300*12=3600
И это только за год! А за 100 лет? Это уже не только на мороженое, но и на хату хватит :)

Думаю потребности в квадратных метрах куда раньше 100 лет сократятся до 2-х =)

Підписатись на коментарі