Esiste un motivo per il passaggio incrociato dalla comunità Ruby alla comunità Clojure?

4

Quando osserviamo la sovrapposizione tra la comunità di Ruby - vediamo le seguenti sovrapposizioni:

C'è qualche somiglianza linguistica che ha portato a questo crossover?

    
posta hawkeye 14.12.2013 - 04:54
fonte

3 risposte

4

In un certo senso, Ruby è una "furbizia invisibile". Permette (e incoraggia) più metaprogrammazione rispetto alla maggior parte degli altri linguaggi della sua classe, persino il Python direttamente comparabile. Sto pensando al famoso post, Ruby è un Lisp accettabile . Ci sono limitazioni, tuttavia; le funzioni non sono veramente oggetti di prima classe (ad esempio chiamare un lambda o un Proc è orribile), non è possibile ridefinire la lingua come è possibile con i macro e così via.

Ha senso che le persone che sono attratte da Ruby, che fino a quel momento è stato il linguaggio più pratico e popolare che ha incoraggiato un sacco di metaprogrammazione, sarebbero attratte da un linguaggio che ha librerie migliori (tramite la JVM), corre più veloce di Ruby, è veramente funzionale, è digitato in modo dinamico e incoraggia la metaprogrammazione in misura ancora maggiore di Ruby. Immaginerò che vedrai anche un maggiore crossover dalle comunità Python e Haskell a Scala.

    
risposta data 14.12.2013 - 15:40
fonte
1

Ecco i miei due centesimi. Entrambe le lingue si rivolgono allo stesso mercato:

  • applicazioni web
  • digitato dinamicamente
  • nuovo e brillante (vs c ++, java, c #)

Ruby non è più nuovo e più brillante, e questa sarebbe una delle spiegazioni per il passaggio di alcune società verso il clojure. Tranne che, il clojure ha alcuni vantaggi:

  • uso intensivo di strutture di dati immutabili
  • clean & sintassi del moderno Lisp

Sebbene il clojure sia abbastanza nuovo, alcuni strumenti come lighttable / emacs hanno abbastanza slancio per creare un ambiente di lavoro abbastanza buono. Clojure è anche relativamente facile da imparare (rispetto a haskell).

Quindi direi che alcune persone sono attratte dal clojure perché è nuovo e vogliono esplorare il paradigma funzionale.

    
risposta data 14.12.2013 - 13:18
fonte
1

I progetti di Ruby in generale sembrano scalare verso la JVM. Sia Twitter che Tumblr sono iniziati come progetti Ruby ma ora fanno ampio uso di Scala. La JVM ti dà accesso a nuovi e potenti strumenti come Hadoop e i vari database distribuiti e utility di ricerca.

Ruby tende a trovare il massimo utilizzo su Mac e sistemi basati su Linux. Quindi vuoi un'opzione che riduca i punti di forza di quei sistemi. Dici Mono? Mono potrebbe funzionare ma è ancora fondamentalmente un ecosistema immaturo rispetto alla JVM. In particolare per quanto riguarda il supporto linguistico al di fuori di C #

Allora perché allora Clojure? Clojure aiuta a risolvere alcuni dei problemi che devono affrontare i grandi progetti distribuiti. I linguaggi funzionali tendono a scalare meglio con ampi set di dati concorrenti rispetto ai linguaggi orientati agli oggetti. È anche più facile passare da Ruby a Lisp piuttosto che spostarsi su Scala, che è più simile a ML (SML, OCaml, Haskell, ecc.). Potresti usare JRuby ma, ancora una volta, subirà ancora alcune limitazioni di un linguaggio OO puro.

Infine, Ruby è principalmente popolare come linguaggio web a causa di Rails. Sì, ci sono altre opzioni ma Rails è la stragrande maggioranza in termini di distribuzione. L'utilizzo di Clojure ti consente di accedere a tutti i tipi di soluzioni web mature, progettate per funzionare in quell'ambiente fin dal momento dell'adozione anziché adottarle in quel ruolo 10 anni dopo il rilascio iniziale.

    
risposta data 14.12.2013 - 17:36
fonte

Leggi altre domande sui tag