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

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

Иными словами
Перешел на Ruby, у него динамическая типизация, нужно меньше писать кода, можно писать больше логики, переходите все на Ruby! Я это говорю, как опытный программист, проработавший год с Java


Неплохо-неплохо
Примерно год я пишу на Java и занимаюсь backend-разработкой
его путь только начался, не судите строго
Может быть Ruby неплох для прототипизации, быстрого старта.

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

А если еще сравнить экосистему, фреймворки и библиотеки, то Java может оказаться более быстрым стартом. Тот же Spring Boot позволяет с минимальными усилиями запускать весьма сложные приложения.
Из общения с высокоуровневыми писателями логики, при разборе инцендента:
— Так давайте разберемся что идет не так, какие данные у вас пришли, как они были трансформированы?
— Я не знаю, оно вот отсюда уже готовое вываливается!

инцИДента

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

Ничего обидного в этом нет, просто коробит, когда родной язык коверкают. Мир? :)

И тут бац в оппонент из тех кто не способен выучить родной язык, ну просто нет и все.
Когда учился знал все правила, но не применял, потому как не вижу их в тексте, нет и все. Сейчас уже и правил не помню особо. Да и забил порядком на это, просто смирился. И это не лень или нежелание, это не способность. Тот же английский я учу перманентно лет 15 и в общем то дальше I speak from my heart не ушел.

Ну а так мир :)
По теме: бездарный код можно писать на любом ЯП, точно так же как и прекрасный код можно писать на любом. Причём здесь трансформации данных? Вы настолько глупы, что на полном серьёзе считаете, что на Ruby пишут приложения, не приходя в сознание, а на Java — только что-то мега-вдумчивое? Я даже оспаривать это не буду, потому что это не точка зрения, это — маразм.
Относительно «ошибки»: извините, но если Вы — грамотный человек, то Вы не напишете слово «инцидент» через «е» — как минимум потому что неоднократно встретите его в книгах, периодических изданиях, письмах коллег. Если же Вы — безграмотный человек, не ведающий о существовании правил орфографии и пунктуации, то с какой стати Ваш маразм должен быть кому-то интересен?
Я не говорил о бездарном коде, я говорил о фремвокизации мозга, когда человек умеет хорошо и быстро комбинировать кубики, он становится в ступор когда из очередного кубика вываливается не то. О чем я и написал выше. А руби тут притом, что вместе с рельсами он как раз и поощряет кубико ориентированную разработку.

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

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

Мне казалось, что наоборот — статическая типизация позволяет отсеять часть ошибок еще на этапе компиляции и задавать меньше вопросов вроде «почему же этот чертов метод возвращает слонов вместо жирафов?»
Но что, если я скажу вам, что можно обойтись и несколькими десятками строк?

А что если можно обойтись несколькими десятками строк на Java? Шок-контент

Такое действительно стоит переводить?
Каждый кулик хвалит свое болото. А вообще прежде чем прийти к web разработке ( которую я долго не признавал), я тоже изучал разные языки, например учил с переменным успехом Java и C#, на C# даже написал пару программок полезных для себя (блокнот, информер курса валют), на Java генератор текста для отчёта по KPI, но самый большой интерес у меня в конце концов вызвал JS, в частности MEAN стек, считаю ли я JS лучше других языков программирования? Нет. Каждый язык программирования, каждый стек технологий предназначен для решения каких-то своих задач. Насчёт быстрой разработки, тоже такой себе вопрос. У меня уже есть пара проектов, расписаны API, фактически готов весь бэкенд, надо только переписать модель под проект и API запросов под модель и фронтед. Мне остаётся только написать логику на фронтенде и вёрстку прикрутить, так что разработка занимает сравнительно небольшое время.

Во-первых, мне непонятно чем ruby "ускоряет разработку", по сравнению с JS.
Все эти якобы преимущества есть во многих фреймворках многих языков, включая JS.
Многословность?
Вот пример на JS одной строкой:


[1,2,3].map(x => x + 2).reverse().

JS код можно использовать (и переиспользовать) и на фронте и на беке еще сильнее ускоряя разработку.
Оба языка динамические, опять таки.


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


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


Можно даже:


using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        var nums = Enumerable.Repeat(2, 5).Select(x => x + 2).Reverse();
        foreach(var x in nums)
            Console.WriteLine(x);
    }
}

С С# немного короче и строгая статическая типизация сохраняется (а еще этот пример, в отличие от вышеприведенных, не выделяет память под массив)

Вы из тех самых людей, которые путают Java с JS? Или тогда я не понимаю, почему вы ссылаетесь на JS, когда в статье речь идет о Java и Ruby

Прежде всего, в статье идет речь о том, что Ruby ускоряет разработку, по сравнению с Java. Моя мысль в том, что


  1. Если нужно что то небольшое — JS будет лучшем выбором, чем Ruby
  2. Если большое, то Java и другие статически типизированные (и потому более многословные) языки будут не менее продуктивными, чем Ruby
Ощущение такое, будто статья из 2008 года. Тогда такой материал был бы актуальным.

Тема рельсов не раскрыта — рассказали бы про современный технологический стек на рельсах: webpacker, actioncable и т.д.
Первый комментарий по существу. Браво!
Все (java-кодеры, если быть более точным) так увлеклись сравнением Java и Ruby, что никто по-моему так саму статью и не прочитал, несмотря на всю её исключительную лаконичность. А она и правда вытащена из какого-то пыльного чулана и весьма бессодержательна, к сожалению.

а мне думается что эта статья всего лишь реклама очередных курсов от skillbox ;))
а вы тут такую полемику развели...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий