Что сделал Ruby правильно (или это был Rails)? [закрыто]

13

Большинство языков программирования имеют некоторые конструктивные решения, которые влияют на их использование и применимость.

Например:

  • Python фокусировался на удобстве сопровождения / читабельности кода и имел отступы как часть самого языка.
  • Намерение Java заключалось в том, чтобы быть кроссплатформенным ООП «проще» и «дружелюбнее», чем C ++
  • Objective-C был построен как оболочка OO, не зная будущего C ++ в то время
  • Erlang разработан для отказоустойчивых и параллельных систем
  • PHP предназначен для обработки динамического создания веб-страниц
  • CoffeeScript предназначен для демонстрации хороших частей Javascript и добавления синтаксического сахара ООП и сокрытия нюансов (глобальных и т. Д.) JS «за кулисами» и т. Д.

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

Однако я изо всех сил пытался понять основополагающие принципы, на которых основан Ruby, и его растущую популярность. Каковы были основополагающие принципы Ruby, которые делают его популярным сегодня? Или это гений одного человека, который разработал фреймворк Rails? Если последнее, то Ruby сделал проект Rails лучше / проще / быстрее? В каком смысле?

Наиболее часто упоминаемая причина, по мнению его создателя, заключается в том, что «... нужен забавный, слабо типизированный язык программирования» - я не вижу в этом никакой причины для создания нового языка программирования в целом! ИМХО, программирование - это весело, независимо от языка (у каждого языка есть свои плохие стороны, но каждый либо обходит его, либо живет с ним).

Так какая ниша использовала (или делает) Ruby, который не используется современными языками? Какова «сильная сторона» (USP) Ruby, которая привела к его широкому распространению? Что сделал Руби, чего раньше не было (или было чрезвычайно сложно)?

Я не программист на Ruby, а просто нубский Ruby и, следовательно, путаница.

Отказ от ответственности : это НЕ пламенная война, и я не ищу ответы типа Ruby vs Programming. Я ищу дизайнерские решения, на которых основан Ruby, что привело к широкому распространению. Какую нишу удовлетворяет Ruby, чтобы стать популярным, или это просто связано с Rails?

кандидат наук
источник

Ответы:

11

Я думаю, что Руби взлетел по многим причинам:

  • Рамки Rails. Rails собрал воедино множество полезных шаблонов, чтобы упростить разработку веб-приложений и повысить производительность труда разработчиков. Сравните это с многословной и утомительной веб-разработкой на Java и платформой .NET для одного человека. Создание веб-приложений для веб-блогов за считанные минуты было потрясающим.
    «Эффекты Rails» можно увидеть на многих новых веб-платформах JVM, таких как Grails, Play! и Spring Roo.
  • Истории успеха, такие как Twitter и Github. Стартапы должны появиться на рынке как можно скорее, и с Rails это возможно. Истории успеха были доказательством.
  • Сам по себе язык программирования Ruby красивый, мощный и выразительный. ИМХО, Ruby является секретным соусом успеха Rails.
    Посмотрите на красоту огурца и синатры, красоту DSL, сделанную правильно.
  • Стремительное и смелое сообщество, которое не боится экспериментировать и вводить новшества.
  • (Личное мнение и не может быть жизненно важной причиной) Он создан в Японии. Ничто не сравнится с изображением «Сделано в Японии».
    Для меня изучение языков программирования, созданных в разных странах, - это то же самое, что знакомство с новыми людьми. Это весело и познавательно.
    Рубин / Япония, OCaml / Франция, Луа / Бразилия, Лисп / Марс :)
Chiron
источник
5
Вам интересно, что вы подразумеваете под " платформой .NET для одного человека ", разве это не фраза, которую я слышал раньше?
Carson63000
2
+1 за Лисп / Марс. Где это место Хаскелл?
Адам
2
Haskell пришел из глубины земли, где армия маленьких разработчиков, подобных маленьким гномам, создала ее с целью сбить с толку ОО-программистов
Даниэль Гратцер,
1
@ Адам "Цивилизация Атлантиды"
Хирон
13

Это не дает прямого ответа на заглавный вопрос, но затрагивает некоторые вопросы (например, почему был создан Ruby)

Цитаты из Yukihiro 'Matz' Matsumoto, создателя Ruby, которые могут помочь объяснить, что вдохновило его создание:

  • «Я хотел язык сценариев, который был бы более мощным, чем Perl, и более объектно-ориентированным, чем Python»
  • «Я надеюсь, что Ruby поможет каждому программисту в мире быть продуктивным, получать удовольствие от программирования и быть счастливым. Это основная цель языка Ruby».

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

SuperMaximo93
источник
1
Это чрезвычайно объектно-ориентированный. Я имею в виду +в 1+1это метод.
bpromas
5

Ruby (вместе с рельсами) сделал соглашение о конфигурации популярным.

Старый (не рубин на рельсах) путь был

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

При соглашении о конфигурации базовая работа для этого выполняется автоматически:

  • вы определяете человека в коде
  • Таблица базы данных, сопоставление, графические элементы автоматически создаются мощным интерпретатором или генератором кода.

Контрас: вы должны выучить все правила, поэтому изучать рубин на рельсах при первом запуске будет сложнее.

Плюсы: если вы знаете соглашения, то довольно легко понять код другого ruby ​​на rails developpers, потому что каждый вынужден следовать тем же соглашениям.

Между тем соглашение о конфигурации вошло во многие экосистемы кодирования

k3b
источник
4

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

Мне нравится Ruby по тем же причинам, что и Perl:

  1. Это мощный и выразительный. Я могу написать об одной строке кода Ruby вместо пяти строк Java или C ++. Нет повторения, которое не может быть рассмотрено с минимальной суетой.

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

  3. Есть отличная книга по языку ( Programming Ruby ), которая читаема и понятна.

  4. Существует один репозиторий для пакетов общего доступа и удобный интерфейс командной строки для репозитория.

Но мне нравится Ruby лучше, чем Perl, потому что он более читабелен.

Существует множество страниц, сравнивающих Ruby с Python. Мне нравятся они оба. Я предпочитаю Ruby, но у меня ограниченный опыт работы с Python.

Кевин Клайн
источник
Я помню, как читал, надеялись, что (что станет Ruby) станет достаточно хорошим, чтобы заменить Perl в предисловии к программированию Ruby.
Рог
@kevin: Это некоторые из особенностей языка, и я их хорошо знаю. Тем не менее, я хотел бы знать «причину для создания рубин», кроме «Я хочу , чтобы весело / слабо типизированного языка» (или в том , что причина сама по себе достаточно большой ??
PhD
1
@ Nupul: Эти вещи не сделаны комитетом. Мац взял идею и написал Руби. Через некоторое время он показал это другим людям, и некоторым это понравилось. Именно так были созданы LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby и Python. Я думаю, что это то же самое для большинства языков программирования. Лишь немногие были созданы комитетом или корпоративной инициативой.
Кевин Клайн