Чому Ruby — це гарний вибір для розробника у 2022/2023 роках

Усім привіт, мене звати Любов Дерев’янко, я розробниця Ruby з більш ніж 6 роками досвіду, Team and Tech Leader. Маю досвід роботи над багатьма різними проєктами, а також люблю навчати і ділитися своїм досвідом. Тому я також виступаю менторкою в процесі стажування нових співробітників, а ще регулярно проводжу tech talks у компанії. Хочу поділитися деякими своїми думками і досвідом з аудиторією DOU.

Світ IT і програмування, зокрема, приваблює все більше людей. Можливість працювати з будь-якої точки світу, постійно розвиватися, вчитися і створювати щось корисне звучить справді спокусливо.

Але що робити, якщо ви — людина, не пов’язана зі світом ІТ, яка в один момент виявила інтерес до програмування. І тепер намагаєтесь зрозуміти: з чого почати? Яку мову вибрати і де її застосовувати? Який попит саме на такого розробника? Чи легко знайти роботу?

У цій статті я спробую відповісти на ці запитання в контексті Ruby. Оскільки Ruby — чудова мова програмування, яка дає нам можливість насолоджуватися процесом розробки і створювати складні вебдодатки. Також вона не має жорсткого порогу входу і її досить легко вивчити.

Поговорімо про Ruby

Ruby була випущена в 1995 році й з того часу не перестає розвиватися та набирати популярність. У 2006 році Ruby отримала масове визнання.

Зростання популярності мови пояснюється попитом на програмне забезпечення, написане на Ruby, особливо Ruby on Rails — це фреймворк для розробки вебдодатків.

Тепер Ruby входить до складу більшості дистрибутивів ОС Linux, поставляється з Mac OS X і доступна для користувачів інших операційних систем.

Станом на серпень 2022 року Ruby входить до топ 20 найпопулярніших мов програмування за версією авторитетного спеціалізованого рейтингу Tiobe.

Що таке Ruby і для чого він використовується

Ruby використовується в різних сферах: від системного адміністрування до розробки складних динамічних вебдодатків.

Основним напрямком є, звичайно, веброзробка. Вже згаданий вище Ruby on Rails — дуже крутий і ефективний інструмент, який використовувався для створення багатьох відомих сервісів. Зокрема, Twitter, Airbnb, Crunchbase, Dribbble, Bloomberg, Netflix, SoundCloud, Upwork, Hulu, Basecamp, Kickstarter та багато інших.

Мова активно застосовується в системному адмініструванні, а також має інструменти для мобільних додатків (Ruboto, RubyMotion та ін.).

Ruby — це мова ДЛЯ розробників

За словами творця Ruby, основний фокус цієї мови спрямований на продуктивність та задоволення від програмування.

Синтаксис мови простий і зрозумілий навіть для не програмістів (потрібне лише знання англійської), на ньому приємно писати і читати чужий код.

Пріоритет мови — зручність і мінімізація трудових ресурсів програміста для розробки програми. Також Ruby піклується про свободу рішень програміста, надаючи можливості досягти того самого результату кількома різними способами.

Що хорошого в Ruby

Програмування на Ruby має ряд переваг.

Швидкість розробки. Найважливішою перевагою Ruby є висока швидкість розробки, яка досягається завдяки простому синтаксису, а також великому вибору готових рішень для різних типів завдань.

Саме тому Ruby часто обирають для прототипів і MVP, коли потрібно швидко показати якісний робочий продукт. Однак, багато великих і серйозних проєктів також написані на Ruby, як я згадувала вище, і їхня кількість продовжує зростати.

Стандарти. Світ Ruby має чіткі та зрозумілі стандарти програмування, які використовуються спільнотою протягом багатьох років. Це дозволяє ефективно писати структурований код, легко залучати нових людей до проєкту та масштабувати його.

Прозорість і гнучкість. Ruby та Ruby on Rails дозволяють писати чіткий і гнучкий код, який можна буде легко змінити в майбутньому. Своєю чергою це допомагає масштабувати без проблем і втрати якості, що дуже важливо для бізнес-проєктів.

Надійність коду. У світі Ruby розробка базується на методології TDD (test-driven development) для написання якісного коду і впевненості у результаті. Для Ruby on Rails існує дуже багато готових рішень та бібліотек для різних видів автоматичних тестів.

Величезна кількість готових рішень. Також у Ruby є велика колекція бібліотек (RubyGems) — ви знайдете практично все, що потрібно для реалізації вашої ідеї.

Деякі недоліки Ruby

Як і будь-яка інша мова, Ruby також має ряд питань до неї.

Швидкість роботи. Продуктивність програм Ruby/Rails може бути повільнішою, ніж в інших мовах, але це залежить переважно від розробника. Завжди є спосіб масштабувати та вдосконалювати код для отримання кращих результатів. Якщо якась програма потребує високої продуктивності, це слід враховувати перед впровадженням і додатково перевіряти після. Багато великих компаній і проєктів використовують Ruby для підтримки мільйонів вебкористувачів.

Магія. Ruby та Ruby on Rails спрощують написання коду та приховують багато процесів «під капотом», тому досить легко забути базові знання про те, як все працює (вказівники, сильна типізація, керування пам’яттю, маніпуляції з даними). Це може призвести до проблем з продуктивністю, не оптимізованих рішень і магічних багів. Працюючи здебільшого з Ruby, гарним рішенням буде мати пет-проєкт на мовах програмування нижчого рівня або принаймні на статично типізованих, скомпільованих мовах, щоб «розтягнути» свій мозок.

Як бачите, недоліки Ruby не такі вже й суттєві. Результат завжди залежить від майстерності та відповідальності розробників. А також від практики та зосередженості на якості результату.

Статистика і попит

Ruby — не «мейнстрімова» мова, тому досвідчені розробники Ruby користуються великою популярністю та можуть розраховувати на хороші зарплати. Існує багато проєктів на Ruby і багато місць, де рубісти можуть застосувати свої знання.

Як ми вже говорили раніше, Ruby входить в топ 20 найпопулярніших мов програмування за рейтингом Tiobe. А згідно з нещодавнім опитуванням розробників Stack Overflow 2022, Ruby посідає 17 місце за популярністю серед мов програмування, мов розмітки даних та скриптових мов, що мають найбільший попит.

Також серед вебфреймворків і технологій Ruby on Rails займає 14 місце в рейтингу професійних розробників.

Як бачимо, мова Ruby є вагомою частиною світу програмування і на неї варто звернути увагу. Спробуйте один раз, і ви не зможете відірватися! :)

Чому Ruby — з перших уст

Я провела невелике опитування серед Ruby команди у моїй компанії про те, чому люди обрали цю мову програмування як основну та чи рекомендували б вони її тим, хто тільки намагається визначитися.

Більшість відповідей збігаються, тож я поділюся основними причинами, чому спеціалісти обрали Ruby:

  • Багато чого можна зробити просто, а головне — швидко.
  • Багато готових рішень для стандартних завдань (авторизація, валідація та ін.).
  • Простий і зрозумілий синтаксис (іноді зрозумілий навіть не програмістам).
  • Виявилося, що це цікава і не «попсова» мова.
  • Свідомий вибір і перехід на Ruby, тому що Ruby — про красу та інновації.

Абсолютно всі учасники мого опитування рекомендували б Ruby як першу мову програмування.

Основні причини ті ж:

  • Дозволяє швидко засвоїти великий набір інструментів для створення вебпрограм дійсно високого рівня з помірною складністю коду за короткий час (порівняно з іншими мовами).
  • Навчатися не складно, не такий жорсткий поріг вступу.
  • Ruby та Ruby on Rails — стабільні мова програмування та фреймворк.
  • Можна швидко отримати результат у роботі, і це мотивує вчитися далі.

На завершення хотілося б додати, що Ruby — гарний вибір для розробників у 2022/23 роках. Красива і зручна мова з набором цікавих інструментів, а також активна спільнота дозволяють отримувати задоволення від роботи і постійно розвиватися.

До того ж величезна кількість ресурсів і посібників забезпечать швидкий і цікавий процес навчання.

Сподобалась стаття? Натискай «Подобається» внизу. Це допоможе автору виграти подарунок у програмі #ПишуНаDOU

👍ПодобаєтьсяСподобалось21
До обраногоВ обраному2
LinkedIn

52 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

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

Пишу на Ruby on Rails вже майже рік і всім раджу обходити його стороною 🤮 ... єдиний плюс це те, що MVP можна написати дуже швидко ... підтримка коду, дебаг і т.д. це просто, вибачте, пі*дєц ...

Таке враження, що рубісти приходять, пишуть MVP, звільняються, йдуть в іншу компанію, пишуть там MVP, звільняються і так далі ... а потім рекрутери бігають і шукають того, хто це 💩 буде підтримувати ...

PS: До цього працював з JS/TS, Java, Python ...

Сам починав з Рубі, і також рекомендував би його як першу мову. Він зможе навчити багатьом гарним навичкам з самого старту, а Ruby on Rails до цих пір найкращий MVC фреймворк за допомогою якого можна зручно і швидко писати, а новачкам зрозуміти як працює бекенд у 90% аппів. Там ще й цікаві іновації є в останніх Рельсах, які виглядають привабливіше аніж всратий рендер компонентів на бекенді і дегідратація на фронтенді опісля.

Те що вакансій менше не значить що треба все кидати і бігти за JS потягом, на Рубі до цих пір стартують багато проектів, ну і є багато легасі. З досвідом я краще буду працювати з класичним Рельс проектом аніж всратою лапшою на Го/Пітоні/Джс та хоррором з Ангуляр/Реактом. Не знаю як в Україні, але в Європі в Лінкедіні мені частенько пишуть HRи з цікавенькими Рубі вакансіями, і це не завжди легасі.

Серед динамічних мов Рубі/Еліксир все ще топові у своїх нішах. Якщо якимось дивом бізнес заскейлився до маштабів коли моноліту на Рельсах недостатньо (що в 99% випадків просто не трапляється), вузькі моменти завжди можна винести в якийсь Раст мікросервіс.

Швидкість розробки

А чи можна ототожнювати швидкість розробки із запахом коду?

не можна.
на «пхп» швидше писати якісний код ніж неякісний на С.

Вперше це було зафіксовано після появи Smalltalk. на якому писало купа народу — які нам відомі як отці аджайл :)

Matz захоплювася Smalltalk. І так — швидкість розробки, як на Smalltalk — стала традиційна в текстах про Ruby.
Потім — «як на Smalltalk» — зникло.

В дійсності у всіх трьох — пхп, рубі і пітон — найкраща швидкість розробки серед мейнстрім мов. Трішки гірша — у джс.

І якість коду — тут ні до чого. Тут властивості мов.

Ruby посідає 17 місце за популярністю

ого, нічого собі

Ruby on Rails займає 14 місце

де я раніше був, чому не починав з рубі?

Бо ви думали, що Рубі то фуфло і роботи не знайти, і що Рубі вмерло.

Станом на серпень 2022 року Ruby входить до топ 20 найпопулярніших мов програмування за версією авторитетного спеціалізованого рейтингу Tiobe.

Улетев вниз на 7 позиций за 1 год и теперь проигрывая даже, прости Господи, перлу.

Навіщо плутати людей? Особливо початківців.

Як писали нище, все визначається динамікою вакансій. Вибираєте ринок, аналізуєте на ньому динаміку пропозицій для розробників по мовам програмування — ось вам і найпривабливіші мови програмування та фреймворки для початківця.

З технічної точки зору майже неможливо оцінити яка саме мова вистрілить. Це як у бізнесі, ніхто, насправді, не знає, саме який напрямок бізнесу буде самий успішний — або ризикувати і обирати навмання або йти за трендом.

Ruby on Rails все ще залишається дуже зручним інструментом для створення прототипу нового проекту, коли заздалегідь невідомо куди саме він буде розвиватися. Багато чого є з коробки, все +/- на своєму місці і новачкам треба небагато часу щоб влитися в роботу.

Потім вже почнуться танці з оптимізацією, винесення якихось частин у мікросервіси абощо. А може і ні, як, наприклад, Shopify, що заявили про монолітну архітектуру і щасливі з нею працювати

І для чого писати цією напівмертвою мовою, якщо є пайтон з джанго, який став де-факто заміною рубі ще багато років тому?

який став де-факто заміною рубі ще багато років тому?

мої клієнти мають іншу думку з цього приводу і готові платити непогані гроші для розробки своїх проектів саме на Ruby/Rails

Ну та ясно, що підтримка легасі дорого коштує) Коли пишеш напівмертвою мовою, яку знає 3.5 розробника на ринку, а переписувати з нуля на сучасну технологію «не на часі», то за підтримку будуть платити добре, звісно. Інша справа, що такий легасі проект з норм бабками ще треба знайти, та й не кожному деву подобається некрофілія.

Звідки ви собі взяли, що мова напівмертва і що проекти то суцільна некрофілія?) Чесно, я не здивований, адже це доволі поширена думка серед розробників, що не пишуть на Рубі, яка завжди грунутується на «ну це ж Рубі»)

Якщо не помиляюся, то пітон популярніший за рубі, але рельси популярніші за джанго

А вот что в нем есть из коробки чего нет в Джанго? Ну чисто,чтоб таки нужно было?

Стаття повна маячня. Ніякої конкретики, суцільна вода. Хоч би одне корисне посилання, курс, книжка, відео, на те як і де вчити рубі, але ні. Тільки словесний понос. Ruby — це жахливий варіант для початківця. Нікому не раджу це робити.
Аргументів можна навести багато, але я приведу всього лише один, який від Ruby не залишить і мокрого місця:
Go to — Djinni — Ruby — без досвіду = 4 вакансії )
Словом, удачі рубістам — початківцям )

Go to — Djinni — Ruby — без досвіду = 4 вакансії )
Словом, удачі рубістам — початківцям )

Открываем ссылку dou.ua/forums/topic/40201, скроллим вниз таблицы, Ruby — candidates per job: 0.59... Sapienti sat :)

Тобто на ті 4 вакансії на всю країну подалася аж одна людина? Прямо мова програмування майбутнього :)

Але насправді, отой пік популярності 10-12 років тому привів до появи деякої кількості проєктів на Ruby, навіть в ентерпрайзі. І деякі з них досі живі, бо за ті 12 років обросли слоями бізнес-логіки і інтегрувалися з іншими системами так, що викинути їх не можна, а переписувати їх нікому не хочеться — так і існують. Такий собі «Кобол на мінімалках». Одним словом, і рубіст собі знайти роботу сьогодні зможе.

Прямо мова програмування майбутнього :)

Это «аргумент» из той же корзины, что и «работать в нашей компании большая честь». Тебе шашечки или денег заработать? Мне второе, а в этом контексте «1 человек на 4 вакансии» (что конечно же нонсенс, не нужно воспринимать буквально) — это очень хорошо по совершенно очевидным причинам...

(впрочем, если задача стоит как заработать все деньги мира вообще, то в руби задерживаться не стоит — четко виден потолок)

Наразі мало людей вчить Ruby із власної волі (коментарі до цієї статті явно показують чому), тому переважно джуни робляться на курсах від компаній, які одразу і беруть на роботу на позицію trainee/junior. Того і вакансій без досвіду дуже мало, як і людей, що на неї претендують.

одна відома галєра з ТОП-2 має великий аканут рубістів, але чи вартує воно того...)

Динамічна типізація з магією. Ні дякую. Write once, wtf everywhere.
Там в голанг дженерики підвезли, тому тим більше не потрібно.

Там в голанг дженерики підвезли, тому тим більше не потрібно.

Ну хіба якщо мазохіст, якому подобається if err != nil замість нормальних ексепшинів, чи відсутність сетів з коробки (вони там це роблять через ж.., тобто через мапу). А так є куди кращі альтернативи — Scala, Java, Python, на крайняк TS.

Ну хіба якщо мазохіст, якому подобається if err != nil замість нормальних ексепшинів

Ексепшни в го є, називається паніками.
Але в більшості випадків, якщо є іде не так, то це не привід кричать «ааа» та зривати стек ексепшоном в паніці. В го-коді зазвичай можна помітити всі шляхи виконання, і вставить обробку (retry, log/ignore) де треба, в коді з ексепшонами взагалі не зрозуміло звідки може вилетіть нежданчик.

чи відсутність сетів з коробки

Трагедія. От реально практично не мав потреби в сетах, а коли мав — не розумію з map[string] bool катастрофічно не так.
І да, є дженерики. Якщо в стандартну бібліотеку ще не включили сети, там вже наплодили 100500 ліб на гітхабі.

Scala, Java, Python, на крайняк TS.

У го з коробки низьке використання пам’яті, та нативна швидкість виконання помножена на корутини.
Статична типізація разом з купою лінтерів які виявляють ще більше багів.
Ну і він вчиться елементарно, це не скала-фп, і не фабрики декораторів сінглтонів з джави.
При тому, що дженерики вже завезли (хоча і без них було норм), тому по структурам даних вони зрівнялись.

Але в більшості випадків, якщо є іде не так, то це не привід кричать «ааа» та зривати стек ексепшоном в паніці.

Це вам так в секті го розповідали? Бо в нормальних мовах є різні типи ексепшинів з різними способами їх хендлити, і ні в кого з цим проблем не виникає. І код виходить чистий: логіка — окремо, обробка помилок (після трая) — окремо, а не гоферська лапша, де все підряд.

а коли мав — не розумію з map[string] bool катастрофічно не так.

Все так, все так. Костилі замість базової структури даних — це норма.

дженерики вже завезли (хоча і без них було норм)

Все ясно, недаром я писав про мазохістів. Гугл дав вкрай примітивний інструмент, з розрахунком на ідіотів, для яких осилити нормальну мову було би проблемою (згадуємо знамениту цитату спонсора мови). А потім го підхопили на хвилі хайпу, і адепти го всерйоз розповідають, що копіпастити код як макака — так і має бути. Хоча ніби всім програмістам має бути очевидно, що копіпаст — це не окей.

Єдине, що хорошого є в го — ця лоу левельність. Але як мова — то повна жесть і примітивізм. Краще вже на расті писати.

Гугл дав вкрай примітивний інструмент, з розрахунком на ідіотів, для яких осилити нормальну мову було би проблемою

Ага, а треба ж було зробити супер-складний інструмент, з яким би були здатні працювати лише генії! Або ні, треба було зупинити розвиток мов програмування десь між асмом та С/С++, бо все, що придумали далі — то було тільки спрощення «з розрахуном на ідіотів»!

Гугл пояснював навіщо йому гошка — щоб вчорашній студент (яких можна гребти з ринку вагонами за три копійки) міг написати мікросервіс, який би легко скейлився в клауді гугла для обробки як одного запита на рік, так і мільйона запитів на секунду, і при цьому не вимагав від студента бути генієм, а від гугла — зайвих витрат на залізо. Гугл своїх цілей досяг, а те, що комусь не подобається копіпаста чи if err != nil, чи ще щось — то ж не гугла проблеми, що у інших людей інші пріорітети.

Ага, а треба ж було зробити супер-складний інструмент, з яким би були здатні працювати лише генії!

Є купа нормальних інструментів, не рівня «для дебілів» — ті ж самі пайтон, джава, і т.д. Я от хз, яким треба бути ідіотом, щоб не осилити той же пітон. Притому пітон по можливостях аж ніяк не примітивний і копіпастити код там не треба. Скала, для прикладу — то вже так, більше на любителя, але мені подобається, бо справді потужний інструмент.

треба було зупинити розвиток мов програмування десь між асмом та С/С++, бо все, що придумали далі — то було тільки спрощення «з розрахуном на ідіотів»!

Мови після плюсів справді були спрощенням, з одного боку, але з іншого це було і нові можливості, які дозволяли писати простий, потужний і водночас лаконічний код, і не паритися з менеджментом пам’яті, наприклад. Тобто це був розвиток. Там, де на плюсах треба 100 рядків коду — на пайтоні треба 10. А от гоу у всіх сенсах як мова — це деградація. Щось на зразок сішки для ідіотів. Де навпаки треба копіпастити ще більше рядків коду, бо дженеріки — то надто складно для «геніїв» з гугла.

Гугл пояснював навіщо йому гошка — щоб вчорашній студент (яких можна гребти з ринку вагонами за три копійки) міг написати мікросервіс

Що непогано говорить про реальний рівень девів в гуглі. Не генії, як тут деякі думають, а нуби, не здатні осилити навіть пітон. Ну але так, гугл своїх цілей досягнув, які би вони там не були. На щастя, за межами бульбашки гугла є безліч нормальних мов.

Там, де на плюсах треба 100 рядків коду — на пайтоні треба 10

А потім розгрібать динамічний write-only лаконічний код, угу знаємо бачили.

Повторюсь. Експешни в мові є, вони кидаються та траяться, хоч інакшим синтаксисом аніж в джаві.
Різниця, що «помилки» у вами згаданих мовах вважаються exceptional та вимагають зривання стеку та окремої обробки. У го помилки — це shit happens, який є таким же валідним значенням як і успішний результат. Якщо файл не знайдено, то це не привід валить стек а просто чекнуть err != nil та заретраїть \ створить його. Якщо конекшон обірвався, то чекнуть помилку та зробить реконект на місці. Якщо помилка при закритті дескриптора то взагалі забить та залогать.
Якщо казати про ідеальний варіант, то в «нормальних мовах» це щось алгебраїчного типу Result[T] який ще можна монадоподібним кодом загорнуть в лінійний код. Цим способом доречі вже можна писати в го.
(upd: якщо вам так не подобається чекать еррори, можна їх throw-ать на самому нижньому рівні, а потім ловить зверху як в джаві. тільки так чомусь ніхто не робить. цікаво чому)

Все так, все так. Костилі замість базової структури даних — це норма

Ну чим `map[string] bool` принципово відрізняється від `set string`, хіба що писать менше?

Угу, угу. Есть у меня небольшой сайт на го, питоновский бы такой работал годами на впс в 256Мб.
Го — 2Гб почти сразу после старта и падает намертво больше 12гб через три недели, стабильно.
Нагрузки на сайте нет вообще.
А так низкая память, ага.

Скорость тоже ниочем, она всегда запросами ограничивается. В ГО имхо проще стрельнуть себе в ногу и получить медленее.
Может и память и скорость зависят в первую очередь от квалификации девелопера, а не языка?

в сенсі, тут же очевидна протічка ресурсів.
додайте профайлер кількома рядкамі в коді, і подивіться що ці гігабайти алокує. Вангую що якийсь джун постійно забуває буфери\рідери закривати \ вивільняти з мапи.

Та есть, конечно. Но кто будет оплачивать профайлинг и поиск утечек в чужом коде?
Там 3 разных многопоточки(нафиг не нужные, но так, наверно, было модно) и какие-то еще загрузки ресурсов при старте.
Клиент предпочитает оплачевать больше памяти и рестарт.

Профайлінг в го це дуже просто. Додаєте кілька рядків коду, заходите тулзою по урлу і отримуєте граф алокацій, граф виконання, можете подивитись скільки у вас рутин висить давно (і явно жере пам’ять) тощо.
За мірками спільноти це не нормально, бо наприклад найрозповсюдженіша помилка незакритого рідера елементарно ловиться лінтером.

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

Я и так могу догадаться какая из рутин скорее всего ест память. Проблема в том, что она состоит из 30+ файликов по 200строчек кода и в каждом файлике куча процедурок. И так каждая из «микропотоков», ага.
Документация — отсутвуют, как и спецификация что вообще оно все делать должно.

Я не експерт у рубі, але виглядає так, що пітон витіснив рубі

Вы вообще продакшен код на руби видели? Ну там какой-то который средний мидл расширял?
Красота — это не про руби. Часто красота его на уровне Perl.
Простота? Да хз с чем надо сравнить чтоб считать, что он простой.
Инновации? Нет, раньше это было круто, но сейчас ничего особо модноги и инновационного нету.
Rails — миллион пакетов, пришел к тому же, что и cpan перловский. Пакеты есть, поддерживать некому, совместимость проверять — некому.

Учится не сложно и с питоном. Да с любыми интерпретируемым языком, вобщемто.

Вы вообще продакшен код на руби видели? Ну там какой-то который средний мидл расширял?

Средний мидл без присмотра (читай отлаженного процесса) напишет неподдерживаемое говно на любом ЯП (ваш кэп).

На питоне вы сможете это говно прочитать. На руби вы повиснете на месяц.

На руби вы повиснете на месяц.

Обоснований, конечно же, не будет? :)

Та какие обоснования могут быть? Могу сказать, что читать проекты на руби сложнее, чем на перле и го. А если еще и гемы не подтянутся по очередной несовместимости, то блин можно вообще надолго висеть. Даже перловые репы настолько часто не ломаются, тут руби номер1 просто.
Нет, я допускаю, что существуют люди которым условия в разных местах циклов/часто за пределами страницы заходят, но это перебор имхо.

Та какие обоснования могут быть?

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

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

Это уже пошли какие-то совсем забористые фантазии на тему. Гемы в проекте лочатся — именно для того, чтобы не было проблемы «очередной несовместимости». Поэтому если твой проект собирался вчера — он соберется и сегодня, и завтра, и возможно даже через 10 лет, если только ты сам руками не полез менять зависимости (ладно, через 10 может и не соберется — более чем вероятны проблемы с нативными расширениями, но то отдельная песня). Менеджер зависимостей достаточно хорош в разрешении конфликтов, просто по умолчанию он пытается минимизировать скоуп изменений (не трогает залоченное пока не попросят явно), и именно поэтому возможны «неразрешимые» конфликты. Поскольку менеджер всегда пишет конкретно какие версии каких зависимостей несовместимы, фикс практически никогда не представляет собой проблемы. В худшем случае есть вариант «обновить все» — не очень популярный в проде, но резолвящий 99% несовместимостей (оставшийся процент — заброшенное говно мамонта). Если у тебя есть такие проблемы с зависимостями в руби как ты пишешь — ты что-то делаешь очень не так...

Так такой код на питоне не встречается.
Я как бы как фрилансер встречаюсь постоянно с кодом на разных языках. Руби — вне конкуренции. Даже блин код на фортране и прологе не вызывает таких проблем.
На практике нефига оно не работает как вы пишите.

На практике нефига оно не работает как вы пишите.

Что на практике не работает так как я пишу? bundle install? А как он работает на практике?

Я как бы как фрилансер встречаюсь постоянно с кодом на разных языках. Руби — вне конкуренции.

Anecdotical evidence это называется. Ну хоть не «сын маминой подруги»... :)

А в чому суть статей «Ось чому ви повинні обрати Х» де немає конкретних прикладів чому саме Х краще за все інше? В секції «що хорошо в рубі» можна підставити наприклад Python і суть взагалі не зміниться.

Краще напишіть на яку мову програмування можна перекваліфікуватись з Ruby. Elixir.

Elixir — мова для роботи з I/O. Синтаксис, документація та спільнота
dou.ua/forums/topic/31854

Ох знову цей Годзілла сплив. А тепер давайте подивимось ще на рубі скрізь призми 12-15 років, коли Ruby разом з Ruby on Rails на деяких час захопив хайповий мейнстрим і чому так і не вистрілив. Пункт перший — перформанс, від самого початку він в рубі був жахливим, тому команда почала над ним працювати і зламала зворотню сумісність і навіть після цього перформанс всеодно був далеко за рівнем конкурентних стеків, на які мітив рубі з рельсами — Java та .NET. Друге — складнючий синтаксис, у мови відверто азійська ієрогліфічна ідеологія, величезна кількість способів зробити одне і те саме. Беремо С подібний синтаксис — усе чітко та лаконічно, три можливих оператори циклу які закривають абсолютну більшість потреб. Pascal чи ML подібні синтаксиси, уме те саме. Мови з підтримкою контейнерів зазвичай додають foreach цикл, як синтаксичний цукор для спрощення коду. Але в в рубі вирішили розгорнутись: lop do ... end, while ... end, until ... end, begin ... end while, for in do end, x.each do end, def ... end. Два типи умовних операторів, if та unless. Доволі цікавий оператор case when when else тощо. Багатьом цей весь сахар дуже сподобався, код ніби стає більш лаконічним, але насправді потрапивши у воронку промислової розробки, код на рубі поступово почав вироджуватись в код на perl — тобто через якийсь час його перестає розуміти навіть його автор. Далі інфоаструкиура — пакетні менеджери, IDE, юніт тести із моками і так щоб це підтримувалось IDE, належна документація і книжки де розумні дядьки по типу Мартіна Фаулера, Скотта Маєрса та іньших писали збірки рецептів і пояснювали як робити можна і як не треба тощо — цього усього проти конкурентних стеків у рубі просто не було. Ну а далі чудову ідею Rails, швидко скопіювали конкуруючі стеки — на сам перед Spring Boot та Django і Ruby перекочував у нішу адмінтских скріптів по типу Cheef. Чи можлива реінкарнація коли Go Lang, D та Rust — «підросли», а нішу AI/ML узяв Pyhon — на мій особистий погляд — ні.

Чому

Ви так i не вiдповiли чому.

Ruby — це гарний вибір для розробника у 2022/2023 роках

Вибачте але це неправда.

Швидкість розробки.
Стандарти.
Прозорість і гнучкість.
Надійність коду.
Величезна кількість готових рішень.

Все цє можна сказати про будь яку іншу mainstream мову.

Прозорість

vs

Магія.

Ви самі собі суперечите.

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