Was hat Ruby richtig gemacht (oder war es Rails)? [geschlossen]


13

Die meisten Programmiersprachen haben einige Entwurfsentscheidungen, die ihre Verwendung und Anwendbarkeit beeinflussen.

Beispielsweise:

  • Python konzentrierte sich auf die Wartbarkeit / Lesbarkeit von Code und ließ Einrückungen ein Teil der Sprache selbst sein.
  • Javas Absicht war es, plattformübergreifend OOP 'einfacher' und 'freundlicher' als C ++ zu machen
  • Objective-C wurde als OO-Wrapper für C entwickelt, ohne die Zukunft von C ++ zu kennen
  • Erlang ist für hochfehlertolerante und gleichzeitige Systeme konzipiert
  • PHP wurde für die dynamische Erstellung von Webseiten entwickelt
  • CoffeeScript wurde entwickelt, um die guten Teile von Javascript zu enthüllen, OOP-syntaktischen Zucker hinzuzufügen und die Nuancen (Globals etc.) von JS "hinter den Kulissen" etc. zu verbergen.

Jede Programmiersprache versuchte, eine bestimmte Nische IMHO auszunutzen und zu nutzen. Das Obige sind meine Perspektiven auf die Grundprinzipien der Programmiersprachen, die ihre Entwicklung und weit verbreitete Anwendbarkeit bestimmten. Natürlich gibt es noch viel mehr, aber die Liste ist nur als Beispiel gedacht

Ich habe jedoch Probleme damit, die Grundprinzipien, auf denen Ruby basiert, und seine wachsende Popularität zu verstehen. Was waren die Gründungsprinzipien von Ruby, die es heute populär machen? Oder ist es das Genie eines Mannes, der das Rails-Framework entworfen hat? Wenn das letztere der Grund war, warum Ruby das Entwerfen von Rails besser / einfacher / schneller gemacht hat? In welchem ​​Sinne?

Der am häufigsten genannte Grund für die Erstellung einer neuen Programmiersprache ist "... wollte eine spaßige, schwach getippte Programmiersprache". Das Programmieren macht einfach Spaß, unabhängig von der Sprache (jede Sprache hat einige schlechte Teile, aber man kommt entweder darum herum oder lebt damit).

Welche Nische hat Ruby ausgenutzt (oder tut es), die von den aktuellen Sprachen nicht ausgenutzt wird? Was ist die Stärke von Ruby, die zu seiner breiten Akzeptanz geführt hat? Was hat Ruby gemacht, was vorher nicht gemacht wurde (oder extrem schwierig war)?

Ich bin kein Ruby-Programmierer, sondern nur ein Ruby-Noob und daher die Verwirrung.

Haftungsausschluss : Dies ist KEIN Flammenkrieg und ich suche nicht nach Antworten in Ruby vs. Programmiersprache. Ich suche nach Gestaltungsentscheidungen, auf denen Ruby basiert und die zu einer breiten Akzeptanz geführt haben. Welche Nische erfüllt Ruby damit, populär geworden zu sein, oder wird das nur Rails zugeschrieben?

Antworten:


11

Ich denke Ruby ist aus vielen Gründen gestartet:

  • Das Rails-Framework. Rails fügten viele nützliche Muster zusammen, um die Entwicklung von Webanwendungen zu vereinfachen und die Produktivität der Entwickler zu steigern. Vergleichen Sie dies mit Javas ausführlicher und langwieriger Webentwicklung und der .NET-Plattform "one man show". Das Erstellen von Weblog-Webanwendungen in wenigen Minuten war umwerfend.
    Sie können die "Rails-Effekte" auf vielen neuen JVM-Webframeworks wie Grails, Play! und Spring Roo.
  • Erfolgsgeschichten wie Twitter und Github. Startups müssen so schnell wie möglich auf den Markt kommen, und mit Rails ist dies möglich. Erfolgsgeschichten waren ein Beweis.
  • Die Programmiersprache Ruby selbst ist wunderschön, mächtig und ausdrucksstark. Meiner Meinung nach ist Ruby die geheime Soße für Rails Erfolg.
    Schauen Sie sich die Schönheit von Gurke und Sinatra an, die Schönheit von DSLs, die richtig gemacht wurden.
  • Eifrige und mutige Gemeinschaft, die keine Angst vor Experimenten und Innovationen hat.
  • (Persönliche Meinung und möglicherweise kein wichtiger Grund) Es wurde in Japan erstellt. Nichts geht über das Image von "Made in Japan".
    Das Erlernen von Programmiersprachen, die in verschiedenen Ländern erstellt wurden, ist für mich das gleiche wie das Kennenlernen neuer Leute. Es macht Spaß und lehrreich.
    Ruby / Japan, OCaml / Frankreich, Lua / Brasilien, Lisp / Mars :)

5
Neugierig darauf, was Sie unter "der Ein-Mann-Show- .NET-Plattform" verstehen , ist es kein Satz, den ich zuvor gehört habe?
Carson63000

2
+1 für Lisp / Mars. Woher kommt dieser Ort Haskell?
Adam

2
Haskell kommt aus der Tiefe der Erde, wo eine Armee kleiner Zwerge wie Entwickler es mit der Absicht erschuf, OO-Programmierer zu verwirren
Daniel Gratzer,

1
@Adam "The Atlantis Civilization"
Chiron

13

Hiermit wird die Titelfrage nicht direkt beantwortet, sondern es werden einige Punkte angesprochen (z. B. warum Ruby erstellt wurde).

Zitate von Yukihiro 'Matz' Matsumoto, dem Schöpfer von Ruby, die vielleicht erklären, was seine Kreation inspiriert hat:

  • "Ich wollte eine Skriptsprache, die leistungsfähiger als Perl und objektorientierter als Python ist."
  • "Ich hoffe, dass Ruby jedem Programmierer auf der Welt hilft, produktiv zu sein, Spaß am Programmieren zu haben und glücklich zu sein. Das ist der Hauptzweck der Ruby-Sprache."

Im Grunde wollte Matz eine extrem objektorientierte Sprache, die für das Glück des Programmierers entwickelt wurde.


1
Es ist extrem objektorientiert. Ich meine, das +In 1+1ist eine Methode.
Bpromas

5

Ruby (zusammen mit Schienen) machte die Konvention über Konfiguration populär.

Der alte (nicht rubinrote auf Schienen) Weg war

  • Definieren Sie eine Datenbanktabelle "Personen" mit dem Feld "Geburtstag".
  • Definieren Sie eine Business Class "Person" mit der Eigenschaft "Geburtstag".
  • Schreiben Sie eine Hilfsklasse für die Datenübertragung zwischen Datenbank und Geschäftsklasse
  • erstelle eine gui die wie personen in einer liste sind
  • Erstellen Sie eine Benutzeroberfläche, um die Eigenschaften einer Person zu bearbeiten

Mit Konvention über Konfiguration wird die Basisarbeit dafür automatisch erledigt:

  • Sie definieren eine Person im Code
  • Datenbanktabelle, Mapping, GUI-Elemente werden von einem leistungsstarken Interpreter oder Codegenerator automatisch für Sie erstellt

contras: Man muss alle Konventionen lernen, deshalb ist es schwieriger, Ruby on Rails im ersten Durchgang zu lernen.

Profis: Wenn Sie die Konventionen kennen, ist es ziemlich einfach, den Code anderer Ruby-on-Rails-Entwickler zu verstehen, da jeder die gleichen Konventionen befolgen muss.

Inzwischen hat die Konvention über die Konfiguration in vielen kodierenden Ökosystemen Einzug gehalten


4

Erstens ist Ruby eine "aktuelle Sprache". Vielleicht meinst du "Sprachen, die beliebt waren, als Ruby 1995 erstellt wurde."

Ich mag Ruby aus den gleichen Gründen, aus denen ich Perl mag:

  1. Es ist kraftvoll und ausdrucksstark. Ich kann über eine Zeile Ruby-Code anstelle von fünf Zeilen Java oder C ++ schreiben. Es gibt keine Wiederholung, die nicht mit minimalem Aufwand herausgerechnet werden kann.

  2. Es ist dynamisch. Methoden und Eigenschaften können zur Laufzeit erstellt werden, sodass ich Objekte um extern definierte Dinge wie Datenbanktabellen wickeln kann, ohne die Definition dieser Dinge zu duplizieren und ohne die Anwendung neu zu erstellen.

  3. Es gibt ein ausgezeichnetes Buch über die Sprache ( Programming Ruby ), das sowohl lesbar als auch umfassend ist.

  4. Es gibt ein einziges Repository für Public-Domain-Pakete und eine praktische Befehlszeilenschnittstelle zum Repository.

Aber ich mag Ruby besser als Perl, weil es besser lesbar ist.

Es gibt zahlreiche Seiten, die Ruby mit Python vergleichen. Ich mag sie beide. Ich bevorzuge Ruby, habe aber nur begrenzte Erfahrungen mit Python.


Ich erinnere mich, dass ich beim Lesen gehofft hatte, dass (was Ruby werden würde) gut genug sein würde, um Perl im Vorwort der Ruby-Programmierung zu ersetzen.
Rig

@ Kevin: Das sind einige der Merkmale der Sprache und ich bin mir ihrer bewusst. Ich würde jedoch gerne den "Grund für das Erstellen von Ruby" kennen, außer "Ich möchte eine lustige / schwach typisierte Sprache" (oder ist dieser Grund selbst groß genug?
PhD

1
@Nupul: Diese Dinge werden nicht vom Komitee gemacht. Matz nahm eine Idee und schrieb Ruby. Nach einer Weile zeigte er es einigen anderen Leuten, und einigen von ihnen gefiel es. So entstanden LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby und Python. Ich denke, dass es für die meisten Programmiersprachen das gleiche ist. Nur wenige wurden durch Ausschüsse oder Unternehmensinitiativen geschaffen.
Kevin Cline
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.