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

  1. написать спорное название
  2. добавить контент, основанный на личном опыте (а не фактических данных), чтобы оправдать заголовок
  3. разверните на Medium и получите аплодисменты

Давайте теперь шаг за шагом перейдем к вашей статье и, пожалуйста, извините за мой прямой подход:

Неоднозначный, похожий на английский синтаксис Ruby, который делает рельсы такими простыми, именно поэтому он непростой.

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

Вы утверждаете «синтаксис Ruby неоднозначен»: почему? когда это на самом деле происходит? Вы можете привести пример неоднозначного синтаксиса Ruby? Могу привести десятки однозначных примеров:

puts "I am simple"
3.times do
  puts "Do you understand me?
end
1.day.ago
3.hours.ago
10.seconds.from_now
Book.pages.build(number: 10)
Article.update(title: "I am a click bait article")

английский синтаксис Ruby делает рельсы такими простыми

Я не думаю, что Rails прост из-за синтаксиса Ruby. Rails прост в использовании благодаря своей архитектуре. Синтаксис языка не имеет ничего общего с тем фактом, что фреймворк прост.

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

Я действительно не могу следить за тобой здесь. Rails - это просто, а не просто, но Ruby не имеет к этому никакого отношения.

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

Я думаю, что если вы когда-нибудь действительно включали 1.000 библиотек в свое приложение, у вас будут другие проблемы, а не отладка 😅.
Не могли бы вы еще раз привести примеры того, где это когда-либо причиняло вам боль? Я очень доволен своей продуктивностью в Ruby именно потому, что я всегда могу легко отслеживать и отлаживать свои программы, трассировка стека дает мне всю необходимую информацию, интерпретируемый язык позволяет мне отлаживать точный код, который я написал, дополнительные IDE и инструменты дают мне все необходимое, чтобы углубиться в подробности того, что происходит в моем приложении. Вы когда-нибудь сталкивались с другими фреймворками? Вы когда-нибудь пытались отладить ошибку, например, в Angular2?

Простой пример:

NoMethodError — undefined method `firs’ for #<Post::ActiveRecord_Relation:0x00007f8a06ae6ba8>
Did you mean? first:
 activerecord (5.1.4) lib/active_record/relation/delegation.rb:125:in `method_missing’
 randumb (0.5.2) lib/randumb/relation.rb:197:in `method_missing’
 activerecord (5.1.4) lib/active_record/relation/delegation.rb:95:in `method_missing’
 app/controllers/home_controller.rb:3:in `index’

Существует Stacktrace, ваш код выделен и указывает точную строку, в которой произошла ошибка, и даже предполагает, что у вас может быть опечатка, и вы на самом деле имели в виду first. Разве это не приятно и легко отлаживать? Знаете ли вы, что Ruby теперь интегрирует did_you_mean? Если вы хотите пожаловаться на ошибки Ruby, по крайней мере укажите на этот очень интересный доклад Оливье Лакана.

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

Уже тысячи лет люди говорят «волшебство» о вещах, которых они не понимают, и я согласен: если вы не знаете, как сделать ваши запросы эффективными и как правильно использовать pluck или Arel, чтобы повысить производительность, вы получите практически невозможную поддержку стратегий кэширования.
Я особенно чувствую вас с Rails, который поможет вам на первых этапах разработки вашего первого веб-приложения и сделает все очень простым с самого начала; когда пора сделать шаг вперед и начать делать свои страницы работоспособными, никто вам в этом не поможет: вам нужно знать SQL, вам нужно читать статьи, вам нужно иметь опыт. Никакой фреймворк не спасет вашу жизнь, извините.

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

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

Извините, но вещи не ломаются случайно, обычно на то есть причина. Я даю вам подсказку: посмотрите на свою трассировку стека. Я также открою вам еще один секрет: нет ничего плохого в поиске проблемы в Google и сэкономьте часы на поисках ошибки, которую вы не можете понять. Есть хорошее место под названием Stack Overflow, где люди помогают друг другу решать проблемы и работать более эффективно: это называется прагматизмом, и ваши клиенты будут счастливы, зная, что вы прагматичны в решении их / своих проблем.

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

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

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

Я действительно удивлен твоим личным неудачным опытом. Поверьте, это не Rails. Это вина разработчика. И да, навыки программирования имеют значение, если только это не используется в качестве веского оправдания: «Этот код так плохо написан, и я трачу так много времени на исправление регрессий! Это определенно из-за Rails и этого дурацкого английского синтаксиса Ruby. Если бы только у меня были типы, ничего бы этого больше не случилось ».

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

Действительно? Кофейный скрипт? Еще? Хорошо, верно, Rails предоставляет это по умолчанию… очень плохо… Вы когда-нибудь думали об использовании Webpack? Может ли это показаться решением ваших сложных задач внешнего интерфейса? Потому что они сказали мне, что он работает довольно хорошо и, знаете что, он интегрирован в Rails 5.1!

Дорожная карта для Rails мрачна

До сих пор ты имеешь в виду? Что именно вам не понравилось? Или вы предсказываете будущее?

Swift, Rust, Go и другие языки завтрашнего дня, можете ли вы сочетаться с современным мышлением, создать сообщество, ставя простоту в качестве основной цели дизайна, и спасти веб-разработку от самой себя?

Я что-то пропустил? Как языки программирования соотносятся с лучшими веб-фреймворками? Вы просите языки программирования, чтобы спасти веб-разработку? 😲

Заключить

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

Извини, Роб, я не люблю, когда ты делаешь выводы из небольшого (плохого) личного опыта. Если ты когда-нибудь проедешь мимо Цюриха, тебе принадлежит.

Ваше здоровье