Qu'est-ce que Ruby a bien fait (ou était-ce Rails)? [fermé]

13

La plupart des langages de programmation ont des décisions de conception qui influencent leur utilisation et leur applicabilité.

Par exemple:

  • Python se concentrait sur la maintenabilité / lisibilité du code et avait l'indentation faire partie du langage lui-même.
  • L'intention de Java était d'être OOP multiplateforme «plus facile» et «plus convivial» que C ++
  • Objective-C a été construit comme un wrapper OO autour de C ne connaissant pas l'avenir de C ++ à l'époque
  • Erlang est conçu pour les systèmes hautement tolérants aux pannes et concurrents
  • PHP conçu pour gérer la création dynamique de pages Web
  • CoffeeScript conçu pour exposer les bonnes parties de Javascript et ajouter du sucre syntaxique OOP et masquer les nuances (globales, etc.) de JS `` dans les coulisses '', etc.

Chaque langage de programmation a essayé d'exploiter et de capitaliser sur un créneau particulier à mon humble avis. Ce qui précède sont mes perspectives sur quels étaient les principes fondateurs des langages de programmation et qui ont gouverné leur évolution et leur adoptabilité généralisée. Bien sûr, il y en a beaucoup plus, mais la liste n'est donnée qu'à titre d'exemple

Cependant, j'ai eu du mal à comprendre les principes fondateurs sur lesquels Ruby est basé et sa popularité croissante. Quels étaient les principes fondateurs de Ruby qui le rendent populaire aujourd'hui? Ou est-ce le génie d'un homme qui a conçu le framework Rails? Si ce dernier était-ce que Ruby a rendu la conception de Rails meilleure / plus facile / plus rapide? Dans quel sens?

La raison la plus souvent citée par son créateur est «... voulait un langage de programmation amusant faiblement typé» - je ne vois pas cela comme une raison de créer un nouveau langage de programmation! La programmation est très amusante à mon humble avis, quelle que soit la langue (chaque langue a quelques mauvaises parties, mais on peut la contourner ou vivre avec).

Alors, quel créneau Ruby a-t-il exploité (ou exploite-t-il) qui n'est pas exploité par les langues actuelles? Quel est le «point fort» (USP) de Ruby qui a conduit à son adoption généralisée? Qu'est-ce que Ruby a fait qui n'a pas été fait auparavant (ou qui a été extrêmement difficile)?

Je ne suis pas un programmeur Ruby, mais juste un noob Ruby et donc la confusion.

Avertissement : Ce n'est PAS une guerre de flammes et je ne cherche pas de réponses de type Ruby vs langage de programmation. Je recherche les décisions de conception sur lesquelles Ruby est basé et qui ont conduit à une adoption généralisée. Quel créneau Ruby satisfait-il pour devenir populaire ou est-ce uniquement attribué à Rails?

Doctorat
la source

Réponses:

11

Je suppose que Ruby a décollé pour plusieurs raisons:

  • Le framework Rails. Rails a assemblé de nombreux modèles utiles pour faciliter le développement d'applications Web et augmenter la productivité du développeur. Comparez cela au développement Web détaillé et fastidieux de Java et à la plate-forme .NET "one man show". La création d'applications Web de blog en quelques minutes était une mâchoire.
    Vous pouvez voir les "effets Rails" sur de nombreux nouveaux frameworks Web JVM comme Grails, Play! et Spring Roo.
  • Des histoires à succès comme Twitter et Github. Les startups doivent arriver sur le marché dès que possible et avec Rails, c'est possible. Les histoires de réussite étaient une évidence.
  • Le langage de programmation Ruby lui-même est beau, puissant et expressif. À mon humble avis, Ruby est la sauce secrète du succès de Rails.
    Regardez la beauté du concombre et du Sinatra, la beauté des DSL bien faites.
  • Communauté désireuse et courageuse qui n'a pas peur d'expérimenter et d'innover.
  • (Opinion personnelle et peut ne pas être une raison vitale) Il est créé au Japon. Rien ne vaut l'image du "Made in Japan".
    Pour moi, apprendre des langages de programmation créés dans différents pays revient à rencontrer de nouvelles personnes. C'est amusant et éducatif.
    Rubis / Japon, OCaml / France, Lua / Brésil, Lisp / Mars :)
Chiron
la source
5
Curieux de savoir ce que vous entendez par "la plate-forme .NET One Man Show ", ce n'est pas une phrase que j'ai déjà entendue?
Carson63000
2
+1 pour Lisp / Mars. Où est-ce que ça place Haskell?
Adam
2
Haskell vient du plus profond de la terre où une armée de petits développeurs nains comme l'a créé avec l'intention de confondre les programmeurs OO
Daniel Gratzer
1
@Adam "The Atlantis Civilization"
Chiron
13

Cela ne répond pas directement à la question du titre, mais répond à certains points soulevés (c'est-à-dire pourquoi Ruby a été créé)

Citations de Yukihiro 'Matz' Matsumoto, créateur de Ruby, qui peuvent aider à expliquer ce qui a inspiré sa création:

  • "Je voulais un langage de script plus puissant que Perl et plus orienté objet que Python"
  • "J'espère voir Ruby aider tous les programmeurs du monde à être productifs, à profiter de la programmation et à être heureux. C'est le principal objectif du langage Ruby."

Donc, fondamentalement, Matz voulait un langage extrêmement orienté objet conçu pour le bonheur des programmeurs.

SuperMaximo93
la source
1
Il est extrêmement orienté objet. Je veux dire que l' +in 1+1est une méthode.
bpromas
5

Ruby (togehter with rails) a rendu la convention sur la configuration populaire.

L'ancienne voie (non rubis sur les rails) était

  • Définissez une table de base de données "personnes" avec un champ nommé "anniversaire"
  • Définir une "personne" de classe affaires avec un "anniversaire" de propriété
  • écrire une classe d'assistance pour le transfert de données entre la base de données et la classe affaires
  • créer un gui que la façon dont les personnes dans une liste
  • créer une interface graphique pour modifier les propriétés d'une personne

Avec une convention sur la configuration, le travail de base pour cela se fait automatiquement:

  • vous définissez une personne dans le code
  • la table de base de données, le mappage, les éléments gui, sont automatiquement créés pour vous par un interprète ou un générateur de code puissant

contras: vous devez apprendre toutes les cenventions, donc apprendre le rubis sur des rails sur la première manche est plus difficile.

avantages: une fois que vous connaissez les conventions, il est assez facile de comprendre le code des autres développeurs ruby ​​on rails car chacun est obligé de suivre les mêmes conventions.

pendant ce temps, la convention sur la configuration est entrée dans de nombreux écosystèmes de codage

k3b
la source
4

Premièrement, Ruby est un "langage courant". Peut-être que vous voulez dire "Langues qui étaient populaires lors de la création de Ruby en 1995."

J'aime Ruby pour les mêmes raisons que j'aimais Perl:

  1. C'est puissant et expressif. Je peux écrire sur une ligne de code Ruby au lieu de cinq lignes de Java ou C ++. Il n'y a aucune répétition qui ne peut pas être prise en compte avec un minimum d'agitation.

  2. C'est dynamique. Les méthodes et les propriétés peuvent être créées au moment de l'exécution, donc je peux encapsuler des objets autour de choses définies en externe, comme des tables de base de données, sans dupliquer la définition de ces choses et sans reconstruire l'application.

  3. Il existe un excellent livre sur le langage ( Programming Ruby ) qui est à la fois lisible et complet.

  4. Il existe un référentiel unique pour les packages du domaine public et une interface de ligne de commande pratique pour le référentiel.

Mais j'aime mieux Ruby que Perl car il est plus lisible.

Il existe de nombreuses pages comparant Ruby à Python. Je les aime tous les deux. Je préfère Ruby, mais j'ai une expérience limitée avec Python.

Kevin Cline
la source
Je me souviens avoir lu qu'on espérait que (ce qui allait devenir Ruby) deviendrait assez bon pour remplacer Perl dans l'avant-propos de Programmation Ruby.
Rig
@kevin: Ce sont certaines des caractéristiques du langage et je les connais bien. Cependant, j'aimerais connaître la «raison de créer Ruby» autre que «Je veux un langage amusant / faiblement tapé» (ou est-ce que cette raison elle-même est assez grande ??
PhD
1
@Nupul: Ces choses ne sont pas faites par le comité. Matz a pris une idée et a écrit Ruby. Il l'a montré à d'autres personnes après un certain temps, et certains d'entre eux l'ont aimé. C'est ainsi que LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby et Python ont été créés. Je pense que c'est la même chose pour la plupart des langages de programmation. Seuls quelques-uns ont été créés par un comité ou une initiative d'entreprise.
kevin cline