Що Рубі зробив правильно (чи це був Рейлс)? [зачинено]


13

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

Наприклад:

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

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

Однак я намагаюся зрозуміти основоположні принципи, на яких ґрунтується Рубі, та її зростаючу популярність. Які основоположні принципи Рубі зробили її популярною сьогодні? Або геній одного чоловіка, який сконструював рамки Rails? Якби останнє, Рубі зробив дизайн Рейки кращим / легшим / швидшим? В якому сенсі?

Найчастіше наводиться причина за її творцем: «... хотів весело слабо набрана мова програмування» - я не бачу цього в цілому як для створення нової мови програмування! Програмування - це дуже весело ІМХО незалежно від мови (кожна мова має деякі погані частини, але людина або обходить її, або живе з нею).

Отже, яку нішу використовував (чи робить) Рубі, що не експлуатується сучасними мовами? Що є «сильною точкою» (USP) Ruby, що призвело до його широкого впровадження? Що робила Рубі, чого раніше не робила (або було надзвичайно важко)?

Я не програвач Ruby, а просто Ruby noob і, отже, плутанина.

Відмова : Це НЕ вогняна війна, і я не шукаю типу відповідей на мові програмування Ruby vs. Я шукаю дизайнерські рішення, на яких ґрунтується Рубі, які призвели до широкого прийняття. Яку нішу задовольняє Рубі, щоб вона стала популярною чи це суто віднесена до Рейлів?

Відповіді:


11

Я думаю, Рубі зняла з багатьох причин:

  • Рамкові рамки. Rails зібрала багато корисних моделей, щоб полегшити розробку веб-додатків та підвищити продуктивність розробника. Порівняйте це з багатослівним та нудним веб-розробкою Java та платформою .NET "show one man". Створення веб-додатків веб-журналів за лічені хвилини було падіння щелепи.
    Ви можете побачити "Ефекти рейлів" на багатьох нових веб-рамках JVM, таких як Grails, Play! і весна Роо.
  • Історії успіху, такі як Twitter та Github. Стартапам потрібно якнайшвидше вийти на ринок, і з Rails це можливо. Історії успіху були свідченням.
  • Мова програмування Ruby сама по собі красива, потужна і виразна. ІМХО, Рубі - секретний соус успіху Рейлів.
    Подивіться на красу огірків та синатри, красу DSL, зроблених правильно.
  • Жорстка та смілива громада, яка не боїться експериментувати та впроваджувати інновації.
  • (Особиста думка і може не бути життєво важливою причиною) Створено в Японії. Ніщо не перемагає образ "Зроблено в Японії".
    Для мене вивчення мов програмування, створених у різних країнах, те саме, що зустрічатися з новими людьми. Це весело та виховно.
    Ruby / Японія, OCaml / Франція, Lua / Бразилія, Lisp / Mars :)

5
Цікаво, що ви маєте на увазі під " єдиною людиною шоу .NET платформа", це не фраза, яку я чув раніше?
Carson63000

2
+1 для Lisp / Mars. Де це місце Хаскелл?
Адам

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

1
@Adam "Цивілізація Атлантиди"
Chiron

13

Це не відповідає безпосередньо на заголовкове запитання, але стосується деяких піднятих моментів (тобто чому створено Ruby)

Цитати Юкіхіро "Мац" Мацумото, творця Рубі, які можуть допомогти пояснити, що надихнуло його створення:

  • "Я хотів, щоб мова сценаріїв була потужнішою за Perl і більш орієнтована на об'єкти, ніж Python"
  • "Я сподіваюся, що Рубі допоможе кожному програмісту у світі бути продуктивним, насолоджуватися програмуванням та бути щасливим. Це головна мета мови Ruby".

Отже, Матц хотів надзвичайно об'єктно-орієнтованої мови, розробленої для щастя програміста.


1
Він надзвичайно об’єктно орієнтований. Я маю на увазі +в 1+1це метод.
bpromas

5

Ruby (тогетер з рейками) зробив конвенцію щодо конфігурації популярною.

Старий (не рубін на рейки) був

  • Визначте таблицю бази даних "люди" із полем, яке називається "день народження"
  • Визначте "людину" бізнес-класу із властивістю "день народження"
  • написати довідковий клас для передачі даних між базою даних та бізнес-класом
  • створити gui що люди в списку
  • створити gui для редагування властивостей однієї особи

При домовленості щодо конфігурації основна робота для цього виконується автоматично:

  • Ви визначаєте особу в коді
  • Таблиця бази даних, відображення, gui-елементи автоматично створюються для вас потужним інтерпретатором або генератором коду

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

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

тим часом конвенція щодо конфігурації увійшла до багатьох екосистем, що кодують


4

По-перше, Рубі - це "сучасна мова". Можливо, ви маєте на увазі "Мови, які були популярні, коли Ruby була створена в 1995 році."

Мені подобається Рубі з тих же причин, що мені сподобався Perl:

  1. Це потужне і виразне. Я можу написати про один рядок коду Ruby замість п'яти рядків Java або C ++. Немає повторення, яке не може бути розроблене з мінімальною суєтою.

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

  3. Існує чудова книга про мову ( програмування Ruby ), яка є і читаною, і всеосяжною.

  4. Існує єдине сховище для пакетів із загальнодоступним доступом та зручний інтерфейс командного рядка до сховища.

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

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


Я пам'ятаю, як читав, сподівався, що (що стане Рубі) стане достатньо добрим, щоб замінити Перла в передмові Програмування Рубі.
Риг

@kevin: Це деякі особливості мови, і я їх добре знаю. Однак я хотів би знати "причину створення Ruby", окрім "Я хочу веселої / слабко набраної мови" (чи ця сама причина досить велика ??
Кандидат

1
@Nupul: Ці речі не виконуються комітетом. Мац взяв поняття і написав Рубі. Він показав це деяким іншим людям через деякий час, а деяким із них сподобалось. Ось так було створено LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby та Python. Я думаю, що це те саме для більшості мов програмування. Лише декілька було створено комітетом чи корпоративною ініціативою.
Кевін Клайн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.