2009-10-17 19 views
12

Ruby è un ottimo linguaggio. È veloce e flessibile e mi ricorda molto Python di cui sono anche molto affezionato.Quali sono i problemi reali con Ruby?

Ruby è anche molto popolare, ed è stato per alcuni anni. Ora che ci sono alcuni progetti di "mondo reale" e "aziende di app per rotaie", la mia domanda è questa: quali sono i problemi con Ruby? Quali sono le cose che non fanno particolarmente bene? Esistono altri prodotti o tecnologie che si sono dimostrati particolarmente difficili da gestire in fase di integrazione? Prima di abbracciare Ruby per le applicazioni mission-critical, quali sono le cose che dovrebbero causare la sospensione e la cautela degli sviluppatori?

Inoltre, qualcuno ha compilato un elenco (blog-spam o altro) di alcune delle principali insidie ​​della produzione dello sviluppo di Ruby e come mitigare tali rischi?

EDIT:

Con il termine "mondo reale" Voglio dire mondo degli affari, in contrasto con il mondo accademico dove non ci sono i budget e le scadenze.

+2

Cosa significa "mondo reale" nel titolo della domanda? Che distinzione stai facendo? Esiste un "mondo fantastico" in cui Ruby ha problemi? Cosa significa "mondo reale"? Si prega di definire questo termine. –

+1

Ruby è veloce? Nella mia esperienza è sembrato essere notevolmente più lento di python e tcl. –

+1

Hmm. Lavoro nel mondo accademico, e abbiamo davvero molto budget e scadenze reali. Non sono sicuro di dove stia prendendo l'idea che il mondo accademico no. –

risposta

0

Ruby è un linguaggio interpretato, quindi può essere fino a 50 volte più lento nell'esecuzione di codice rispetto ai linguaggi compilati Just-In-Time come Java e C# (basati su test che ho visto). Se questo è un problema dipende dal funzionamento del sito stesso, poiché la maggior parte dei siti tende ad essere limitata molto più dalla larghezza di banda e dal tempo del database che dal tempo della CPU.

+0

Anche nel momento in cui hai postato questo era inaccurato. Sembra che tu stia descrivendo la risonanza magnetica (Matz Ruby Interpreter) che viene usata come standard per gli altri per creare un'implementazione conforme. JRuby e Rubinius esistevano entrambi al momento del tuo post; ed entrambi usano la compilazione JIT. – bigtunacan

2

Ruby non è veloce. Ha altre qualità, ma se la tua CPU è una sorta di collo di bottiglia (che in molte webapp non è proprio il caso), Ruby non è uno strumento adatto. L'attuale Ruby "standard" non si compila nemmeno in bytecode (come ad esempio Python, ad esempio), ma interpreta invece l'AST, che probabilmente mette il rallentamento nel campo di baseball di 20-100. Tuttavia, questo probabilmente sta per cambiare (o almeno migliorare) con Ruby 1.9. E JRuby, che è basato su JVM come sicuramente sai.

1

Se le prestazioni di Ruby lasciano a desiderare nel vostro caso particolare, vi consiglio di dare un'occhiata allo JRuby. Permette di compilare il codice vanilla Ruby in codice bytecode JVM in modo JIT o AOT e dà accesso alla bontà della concorrenza di Java e ai grandi server di app.

+0

+1 per menzionare la concorrenza – DaveParillo

1

La velocità di Ruby non è davvero il suo problema principale. Il problema più grande è che è single threaded. Il suggerimento di Max A. è buono. JRuby consente la concorrenza.

+0

Oppure, utilizza solo un core di un processore. –

Problemi correlati