Co Ruby zrobiła dobrze (czy było to Rails)? [Zamknięte]

13

Większość języków programowania ma pewne decyzje projektowe, które wpływają na ich użycie i zastosowanie.

Na przykład:

  • Python koncentrował się na łatwości utrzymania / czytelności kodu i miał wcięcia jako część samego języka.
  • Intencją Javy było, aby platforma OOP była „łatwiejsza” i „przyjaźniejsza” niż C ++
  • Cel C został zbudowany jako opakowanie OO wokół C, nie wiedząc wówczas o przyszłości C ++
  • Erlang jest przeznaczony do wysoce odpornych na uszkodzenia i współbieżnych systemów
  • PHP przeznaczony do obsługi dynamicznego tworzenia stron internetowych
  • CoffeeScript zaprojektowany, aby odsłonić dobre części Javascript i dodać cukier syntaktyczny OOP oraz ukryć niuanse (globale itp.) JS „za kulisami” itp.

Każdy język programowania próbował wykorzystać i wykorzystać konkretną niszę IMHO. Powyżej są moje poglądy na to, jakie były podstawowe zasady języków programowania i które regulowały ich ewolucję i powszechną adaptację. Oczywiście jest ich o wiele więcej, ale lista ma jedynie charakter przykładowy

Jednak starałem się zrozumieć podstawowe zasady, na których opiera się Ruby i jej rosnącą popularność. Jakie były podstawowe zasady Ruby, które sprawiają, że jest dziś popularny? Czy jest to geniusz jednego człowieka, który zaprojektował framework Rails? Jeśli to ostatnie sprawiło, że Ruby sprawiła, że ​​projektowanie Railsów było lepsze / łatwiejsze / szybsze? W jakim sensie?

Najczęściej cytowanym powodem twórcy jest „... chciałem bawić się słabo napisanym językiem programowania” - nie uważam tego za powód do stworzenia nowego języka programowania! Programowanie to czysta zabawa IMHO bez względu na język (każdy język ma pewne złe strony, ale albo się go obchodzi, albo żyje z nim).

Więc jaką niszę wykorzystał (lub robi) Ruby, która nie jest wykorzystywana przez obecne języki? Jaki jest „mocny punkt” (USP) Ruby, który doprowadził do jego powszechnego zastosowania? Co Ruby zrobiła, czego wcześniej nie robiono (lub było niezwykle trudne)?

Nie jestem programistą Ruby, ale po prostu Ruby Noob i stąd zamieszanie.

Oświadczenie : To NIE jest wojna z ogniem i nie szukam odpowiedzi w języku Ruby kontra język programowania. Szukam decyzji projektowych, na których opiera się Ruby, które doprowadziły do ​​powszechnego przyjęcia. Jaką niszę Ruby zyskała na popularności, czy jest to wyłącznie przypisanie Railsom?

Doktorat
źródło

Odpowiedzi:

11

Chyba Ruby wystartowała z wielu powodów:

  • Ramy Rails. Szyny zmontowały wiele użytecznych wzorców, aby ułatwić tworzenie aplikacji internetowych i zwiększyć produktywność programistów. Porównaj to do pełnego i żmudnego programowania w Javie oraz platformy .NET „one man show”. Tworzenie aplikacji internetowych do blogów w ciągu kilku minut było oszałamiające.
    Możesz zobaczyć „efekty Railsów” w wielu nowych strukturach JVM, takich jak Grails, Play! i Spring Roo.
  • Historie sukcesu takie jak Twitter i Github. Startupy muszą jak najszybciej wejść na rynek, a dzięki Rails jest to możliwe. Historie sukcesu były dowodem.
  • Sam język programowania Ruby jest piękny, potężny i wyrazisty. IMHO, Ruby to sekretny sos sukcesu Railsów.
    Spójrz na piękno Ogórka i Sinatry, piękno DSL-ów zrobione dobrze.
  • Chętna i odważna społeczność, która nie boi się eksperymentować i wprowadzać innowacje.
  • (Osobista opinia i może nie być istotnym powodem). Powstaje w Japonii. Nic nie przebije wizerunku „Made in Japan”.
    Dla mnie nauka języków programowania tworzonych w różnych krajach jest tym samym, co poznawanie nowych ludzi. To jest zabawne i edukacyjne.
    Ruby / Japan, OCaml / France, Lua / Brazil, Lisp / Mars :)
Chiron
źródło
5
Ciekawe, co rozumiesz przez „ One Man Show .NET Platform”, to nie jest zdanie, które słyszałem wcześniej?
Carson63000,
2
+1 za Lisp / Mars. Gdzie to miejsce Haskell?
Adam
2
Haskell pochodzi z głębi ziemi, gdzie stworzyła go armia małych karłów takich jak deweloperzy z zamiarem pomieszania programistów OO
Daniel Gratzer
1
@Adam „The Atlantis Civilization”
Chiron
13

To nie odpowiada bezpośrednio na pytanie tytułowe, ale odnosi się do niektórych podniesionych kwestii (tj. Dlaczego stworzono Ruby)

Cytaty Yukihiro „Matza” Matsumoto, twórcy Ruby, które mogą pomóc wyjaśnić, co zainspirowało jego powstanie:

  • „Chciałem języka skryptowego, który byłby silniejszy niż Perl i bardziej zorientowany obiektowo niż Python”
  • „Mam nadzieję, że Ruby pomoże każdemu programistowi na świecie, aby był produktywny, czerpał przyjemność z programowania i był szczęśliwy. To jest główny cel języka Ruby”.

Zasadniczo Matz chciał bardzo zorientowanego obiektowo języka, który został zaprojektowany dla szczęścia programisty.

SuperMaximo93
źródło
1
Jest niezwykle obiektowy. Mam na myśli, że +in 1+1jest metodą.
bpromas
5

Ruby (razem z szynami) upowszechnił konwencję konfiguracji .

Stara (nie rubinowa na szynach) droga była

  • Zdefiniuj tabelę bazy danych „osoby” z polem o nazwie „urodziny”
  • Zdefiniuj „osobę” klasy biznesowej z właściwością „urodziny”
  • napisać klasę pomocniczą do przesyłania danych między bazą danych a klasą biznesową
  • stwórz GUI, jak osoby na liście
  • utwórz GUI, aby edytować właściwości jednej osoby

W przypadku konwencji dotyczącej konfiguracji podstawowa praca jest wykonywana automatycznie:

  • definiujesz osobę w kodzie
  • tabela bazy danych, mapowanie, elementy gui są tworzone automatycznie przez potężnego interpretera lub generatora kodów

contras: musisz nauczyć się wszystkich wieków, więc nauka rubinu na szynach przy pierwszym uruchomieniu jest trudniejsza.

zalety: gdy poznasz konwencje, dość łatwo jest zrozumieć kod innych deweloperów ruby ​​on rails, ponieważ każdy jest zmuszony przestrzegać tych samych konwencji.

tymczasem konwencja dotycząca konfiguracji weszła w wiele ekosystemów kodowania

k3b
źródło
4

Po pierwsze, Ruby jest „bieżącym językiem”. Może masz na myśli „Języki, które były popularne, kiedy Ruby powstał w 1995 roku”.

Lubię Ruby z tych samych powodów, dla których lubiłem Perla:

  1. Jest mocny i wyrazisty. Mogę napisać o jednym wierszu kodu Ruby zamiast pięciu wierszy Java lub C ++. Nie ma powtórzeń, których nie można by uwzględnić przy minimalnym zamieszaniu.

  2. Jest dynamiczny. Metody i właściwości można tworzyć w czasie wykonywania, dzięki czemu mogę owijać obiekty wokół zewnętrznych elementów, takich jak tabele bazy danych, bez powielania definicji tych rzeczy i bez przebudowywania aplikacji.

  3. Istnieje doskonała książka na temat języka ( Programowanie Ruby ), która jest zarówno czytelna, jak i wyczerpująca.

  4. Istnieje jedno repozytorium dla pakietów domeny publicznej oraz wygodny interfejs wiersza poleceń do repozytorium.

Ale ja lubię Ruby bardziej niż Perl, ponieważ jest bardziej czytelny.

Istnieje wiele stron porównujących Ruby z Pythonem. Lubię ich obu. Wolę Ruby, ale mam ograniczone doświadczenie z Pythonem.

Kevin Cline
źródło
Pamiętam, że czytałem, miałem nadzieję, że (co stanie się Ruby) stanie się wystarczająco dobre, aby zastąpić Perla we wstępie do programowania Ruby.
Rig
@kevin: To niektóre z cech tego języka i jestem tego świadomy. Chciałbym jednak poznać „powód tworzenia Rubiego” inny niż „Chcę zabawnego / słabo napisanego języka” (czy też sam ten powód jest wystarczająco duży?
doktor z
1
@Nupul: Te rzeczy nie są robione przez komitet. Matz przyjął pojęcie i napisał Ruby. Po chwili pokazał to innym ludziom, a niektórym się podobało. Tak powstały LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby i Python. Myślę, że to samo dla większości języków programowania. Tylko kilka zostało stworzonych przez komitet lub inicjatywę korporacyjną.
kevin cline