2009-03-30 15 views
9

Sono un principiante con Ruby. Ho sentito le seguenti lamentele su Ruby e speravo che la community di Stack Overflow potesse affrontare ogni punto sollevato.Per quali ragioni le persone scelgono Ruby su Java?

lamentele più comuni su Rubino che ho sentito:

  • Ruby è più lento di Java
  • Rubino non è staticamente tipizzato
  • Non è adatto per i grandi progetti

Date queste ammesso che le dichiarazioni basate su opinioni, in che modo Ruby è "migliore" di Java? e Ruby sarà mai una lingua ampiamente utilizzata da aziende e privati?

+0

Se ritieni che dovresti sempre pensare alle prestazioni dell'applicazione in contrasto con il rigato di codice scritto/facilità di scrivere quelle righe, ti suggerirei che Ruby non è per tu. Non sono d'accordo sul fatto che questo abbia senso nel caso generale, comunque. –

+0

Sembra molto simile a un letto confortevole perfetto per le guerre di fiamma. Non c'è una risposta giusta o sbagliata a questa domanda, solo un mucchio di opinioni in entrambe le direzioni. –

+0

"Dovremmo sempre pensare alle prestazioni dell'applicazione e non alle righe di codice che hai scritto." - decisamente no, in generale! Il potere di calcolo è economico rispetto alle risorse umane (programmatore). Ecco perché di solito uso Java invece di C++ ;-) –

risposta

3

La velocità di Ruby è notevolmente pari a increased in the latest version. Anche se nelle versioni precedenti Ruby è slower than other scripting languages.

+0

Tutte le implementazioni di Ruby mostrate nell'attuale gioco di benchmark sono più recenti delle versioni mostrate in quell'articolo del blog - non sono versioni precedenti! (rubino 1.8.7 rubino 1.9.1p0 jruby 1.2.0) – igouy

0

Ruby è un linguaggio popolare già :)

non sono d'accordo con te su "Dobbiamo sempre pensare alla performance" e "Ruby è meglio di Java". In alcuni progetti, la leggibilità del codice potrebbe essere più importante delle prestazioni. Pensa al codice C++ ottimizzato che nessuno può leggere e mantenere, ad esempio. E non c'è prova perfetta del fatto che "Ruby è meglio di Java". Dove hai preso quell'informazione?

+0

http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ Qui è il link che dice per un'iterazione che richiede 86 ms. Quindi, se si tratta di un progetto di grandi dimensioni, le mie applicazioni rallentano. Il cliente desidera solo prestazioni. Non gli importa quanto chiaramente ha scritto. – Manoj

+0

È vero che su alcuni progetti le prestazioni sono ciò che il cliente desidera. Ma non è vero che la prestazione è l'unica preoccupazione. E il cliente che desidera che la sua applicazione venga modificata regolarmente? La manutenibilità è importante qui. Se si desidera solo la prestazione, suggerisco di andare con C++ :) – Gant

+0

C++? Lento. L'assemblaggio sarebbe migliore, probabilmente il codice della macchina migliore. Certo, potrebbe non essere consegnato fino al 22 ° secolo ... –

1

La risposta alla domanda "quale lingua è migliore, questo o quello?" è sempre soggettivo. Certo, l'obiettività è valida e puoi in qualche modo giungere a una conclusione sul fatto che una lingua sia migliore per l'attività/progetto X.

Tuttavia, anche se la tua squadra è felice con un'altra lingua che non è la prima scelta per un determinato compito/progetto, ma il lavoro può essere fatto comunque ... un team saggio sceglierà la lingua che rende li felici perché la loro produttività sarà anche maggiore.

Concludendo, nessuno può dirti che la sua scelta è migliore della tua scelta. Possono provare a persuaderti, ma se per qualche ragione il linguaggio X ti rende più eccitato, non possono fare nulla al riguardo.

Detto questo: Ruby 1.9+ è migliorato molto per quanto riguarda le prestazioni. Se me lo chiedi, la mia opinione parziale è scegliere Ruby perché mi piace. Ma se volessi un'opinione imparziale, dovremmo discutere più aspetti ed esaminare cosa esattamente vuoi fare con la lingua/struttura ecc.

1

Ti consiglio di provare entrambe le lingue e poi decidere quale pensi sia meglio.

2

Per alcuni scopi, Ruby funziona troppo lentamente. Per gli altri, è abbastanza veloce.

Per alcuni scopi, Java richiede troppo tempo per essere sviluppato.

Per alcune applicazioni, la digitazione statica non è necessaria, per altri è altamente auspicabile.

La dimensione del progetto è in gran parte irrilevante.

In un certo senso, Java è migliore di Ruby, in altri modi Ruby è migliore di Java. Chiunque sostenga che uno sia "migliore" in qualsiasi circostanza probabilmente non ne sa abbastanza per avere un'opinione valida.

E che dire di JRuby?

Penso che sia ormai ben documentato che Ruby è "popolare". Non come "popolare" come Java, C++ o C, ad esempio, ma comunque popolare.

Vedi

0
come è Ruby 'meglio' di Java?

Non lo è, e Java non è "migliore" di Ruby. Entrambi hanno i loro pro e contro, e dipende dal tuo progetto; qual è lo strumento migliore per per il lavoro.

+0

Per favore dimmi i pro di Ruby .. – Manoj

9

Ruby è più lento di Java da eseguire ma più veloce da scrivere o leggere. Quale è più importante per te? Non conosco nessuna azienda al mondo che passerebbe se gli fosse data l'opportunità di (dire) di ridurre il tempo di sviluppo a metà al costo di raddoppiare il proprio hardware.

Ruby non è tipizzato in modo statico, ma nemmeno Python, Perl, Lisp, script di shell, ecc. È davvero un problema per te? Sono sicuro che potresti trovare altrettante persone in linguaggi dinamici che si lamenterebbero che Java, C#, C++, ecc., Sono tipizzati staticamente. Non mancano esempi di sistemi costruiti su linguaggi dinamici.

Concordo sul fatto che Ruby non è adatto per progetti di grandi dimensioni, ma nessuno dei due è quello che abbiamo oggi. Lo stato dell'ingegneria del software è abbastanza chiaro per me: nessuno può costruire in modo affidabile grandi sistemi. Almeno Ruby rende i tuoi progetti più grandi più piccoli in linee di codice, il che li rende (in qualche modo) più gestibili. È sintatticamente più ricco quindi puoi dire (qualcosa di più vicino a) cosa intendi. È più veloce da scrivere, quindi scoprirai più rapidamente se stai andando nella direzione giusta oppure no.

Se questi sono i migliori argomenti contro Ruby, allora Ruby sta facendo meglio di quanto pensassi.

0

A seconda di cosa è necessario fare.

Ci aspettiamo che il nostro codice funzioni da decenni. Rimanere con Java puro significa che siamo abbastanza sicuri che le tecnologie rimarranno "di moda" e che i futuri colleghi possano mantenere il codice. Andare per la lingua del giorno, finirà per significare che avrete programmi scritti in lingue che sono andate fuori moda e quindi è più difficile da mantenere.

"Pure java" significa fondamentalmente che stiamo con il Java Runtime standard e le implementazioni delle specifiche Sun (come JavaServer Faces). Non è noioso come sembra :)

Problemi correlati