Che cosa ha fatto Ruby (o era Rails)? [chiuso]

13

La maggior parte dei linguaggi di programmazione ha alcune decisioni di progettazione che ne influenzano l'utilizzo e l'applicabilità.

Ad esempio:

  • Python si è concentrato sulla manutenibilità / leggibilità del codice e ha indentato far parte del linguaggio stesso.
  • L'intenzione di Java era quella di essere multipiattaforma OOP "più semplice" e "più amichevole" di C ++
  • Objective-C è stato costruito come un wrapper OO attorno a C non conoscendo il futuro del C ++ in quel momento
  • Erlang è progettato per sistemi altamente tolleranti ai guasti e simultanei
  • PHP progettato per gestire la creazione dinamica di pagine web
  • CoffeeScript progettato per esporre le parti buone di Javascript e aggiungendo lo zucchero sintattico OOP e nascondendo le sfumature (globali ecc.) di JS 'dietro le quinte' ecc.

Ogni linguaggio di programmazione ha cercato di sfruttare e capitalizzare una particolare nicchia di IMHO. Quanto sopra sono le mie prospettive su quali sono stati i principi fondanti dei linguaggi di programmazione e che hanno governato la loro evoluzione e la loro ampia adozione. Naturalmente ce ne sono molti altri, ma la lista è solo un esempio

Tuttavia, ho faticato a capire i principi fondanti su cui si basa Ruby e la sua crescente popolarità. Quali sono stati i principi fondamentali di Ruby che lo rendono popolare oggi? O è il genio di un uomo che ha progettato il framework Rails? Se era quest'ultimo che Ruby ha reso la progettazione di Rails migliore / più facile / più veloce? In che senso?

Il motivo più comunemente citato dal suo creatore è "... volevo un linguaggio di programmazione debolmente divertente" - non lo vedo come una ragione per creare un nuovo linguaggio di programmazione! La programmazione è pura IMHO a prescindere dalla lingua (ogni lingua ha alcune parti negative, ma una si aggira o vive con essa).

Quindi quale nicchia ha fatto (o fa) lo sfruttamento di Ruby che non è sfruttato dalle lingue attuali? Qual è il "punto di forza" (USP) di Ruby che ha portato alla sua diffusa adozione? Cosa ha fatto Ruby che non è stato fatto prima (o è stato estremamente difficile)?

Non sono un programmatore Ruby, ma solo un noob rubino e quindi la confusione.

Disclaimer : NON si tratta di una guerra di fiamma e non sto cercando Ruby vs programmazione tipo di risposta. Sto cercando le decisioni di progettazione su cui è basato Ruby che ha portato ad un'adozione diffusa. Quale nicchia soddisfa Ruby per diventare popolare o che è puramente attribuita a Rails?

    
posta PhD 13.03.2012 - 21:29
fonte

4 risposte

11

Immagino che Ruby sia decollato per molte ragioni:

  • Il framework Rails. Rails ha riunito molti modelli utili per facilitare lo sviluppo di applicazioni Web e incrementare la produttività degli sviluppatori. Confronta questo con lo sviluppo web prolisso e noioso di Java e la piattaforma .NET "one man show". La creazione di applicazioni Web weblog in pochi minuti è stata una sbalorditiva.
    Puoi vedere gli effetti "Rails" su molti nuovi framework web JVM come Grails, Play! e Spring Roo.
  • Storie di successo come Twitter e Github. Le startup devono raggiungere il mercato il prima possibile e con Rails, questo è possibile. Le storie di successo erano una prova.
  • Il linguaggio di programmazione Ruby è bello, potente ed espressivo. IMHO, Ruby è la salsa segreta del successo di Rails.
    Guarda la bellezza di Cetriolo e Sinatra, la bellezza delle DSL fatte bene.
  • Una comunità avida e coraggiosa che non ha paura di sperimentare e innovare.
  • (opinione personale e potrebbe non essere una ragione vitale) Viene creata in Giappone. Niente batte l'immagine di "Made in Japan".
    Per me, imparare le lingue di programmazione create in diversi paesi è come incontrare nuove persone. È divertente ed educativo.
    Rubino / Giappone, OCaml / Francia, Lua / Brasile, Lisp / Marte :)
risposta data 13.03.2012 - 22:57
fonte
13

Questo non risponde direttamente alla domanda del titolo, ma affronta alcuni punti sollevati (cioè perché è stato creato Ruby)

Citazioni di Yukihiro 'Matz' Matsumoto, creatore di Ruby, che può aiutare a spiegare cosa ha ispirato la sua creazione:

  • "Volevo un linguaggio di scripting più potente di Perl e più orientato agli oggetti di Python"
  • "Spero di vedere Ruby aiutare ogni programmatore del mondo a essere produttivo, a divertirsi con la programmazione e ad essere felice. Questo è lo scopo principale del linguaggio Ruby."

Quindi, in sostanza, Matz voleva un linguaggio estremamente orientato agli oggetti progettato per la felicità dei programmatori.

    
risposta data 13.03.2012 - 23:16
fonte
5

Ruby (insieme ai binari) ha reso popolare convention over configuration

Il vecchio sistema (non ruby on rails) era

  • Definisci una tabella di database "persone" con un campo chiamato "compleanno"
  • Definisci una "persona" di classe business con una proprietà "compleanno"
  • scrivi una guida per trasferire i dati tra database e business
  • crea una GUI che mostra come le persone in una lista
  • crea una GUI per modificare le proprietà di una persona

Con la convenzione sulla configurazione il lavoro base per questo viene fatto automaticamente:

  • definisci una persona nel codice
  • la tabella del database, il mapping, gli elementi gui vengono creati automaticamente per te da un potente interprete o codificatore.

contras: devi imparare tutti i cenobi, quindi imparare a imparare i ruby su rail alla prima esecuzione è più difficile.

pros: una volta che conosci le convenzioni è abbastanza facile capire il codice di altri ruby su sviluppatori di binari perché ognuno è obbligato a seguire le stesse convenzioni.

nel frattempo convenzione sulla configurazione è entrato in molti ecosistemi di codifica

    
risposta data 14.03.2012 - 09:41
fonte
4

In primo luogo, Ruby è un "linguaggio corrente". Forse intendi "lingue che erano popolari quando Ruby è stato creato nel 1995".

Mi piace Ruby per gli stessi motivi per cui mi è piaciuto Perl:

  1. È potente ed espressivo. Posso scrivere su una riga di codice Ruby invece di cinque righe di Java o C ++. Non c'è ripetizione che non possa essere scomposta con il minimo sforzo.

  2. È dinamico. Metodi e proprietà possono essere creati in fase di esecuzione, quindi posso avvolgere oggetti attorno a cose definite esternamente, come le tabelle del database, senza duplicare la definizione di queste cose e senza ricostruire l'applicazione.

  3. C'è un eccellente libro sulla lingua ( Programmazione Ruby ) che è sia leggibile che completo.

  4. C'è un unico repository per i pacchetti di dominio pubblico e una comoda interfaccia a riga di comando per il repository.

Ma mi piace Ruby meglio di Perl perché è più leggibile.

Ci sono numerose pagine che confrontano Ruby con Python. Mi piacciono entrambi. Preferisco Ruby, ma ho un'esperienza limitata con Python.

    
risposta data 13.03.2012 - 21:58
fonte