2015-11-03 15 views
6

C, Java, C# e Python vengono compilati dall'inizio. Grazie a Facebook, PHP è ora anche compilabile e può essere eseguito su HHVM aumentando le prestazioni dei programmi. Ruby non è compilabile ed è più lento delle lingue sopracitate. È possibile che Ruby sarà compilabile in futuro (come PHP con HHVM)? O forse ci sono dei motivi per cui non può essere?Può Ruby essere compilato e più veloce in futuro?

+1

Benvenuti in Stack Overflow. La tua domanda incoraggia opinioni e speculazioni, non risposte specifiche. Si prega di leggere "[help/on-topic]" per informazioni sull'argomento e "[help/dont-ask]" per domande da non chiedere. Ruby potrebbe essere compilabile in futuro, ma quando e se è confuso. –

+1

Tutte le implementazioni attualmente esistenti e anche più recenti di Ruby hanno compilatori: YARV, Rubinius, JRuby, IronRuby, MagLev, Topaz, Cardinal, RubyGoLightly, XRuby, SmallRuby, BlueRuby, Alumina, Ruby.NET, l'altro IronRuby (c'erano due diversi implementazioni con lo stesso nome), RedSun, MacRuby, MRuby, RubyMotion e probabilmente tonnellate di altri che sto dimenticando. Le uniche due implementazioni che non hanno mai avuto compilatori sono state IoRuby (che non è mai stato rilasciato) e MRI (che è deprecato e non mantenuto). JRuby è iniziato come puro interprete, ma ha aggiunto un compilatore in seguito. Più interessante: ... –

+1

... IronRuby è iniziato come un puro * compilatore *, ma ha aggiunto un interprete in seguito per * migliorare * le prestazioni! Ovviamente, Ruby può essere compilato. Tutte le lingue possono essere compilate La compilazione e l'interpretazione sono tratti di ... beh ... il compilatore o l'interprete (duh!), Non la lingua. Le prestazioni sono una funzione della quantità di denaro/risorse/persone/tesi di dottorato spesi per realizzare un'implementazione veloce. Java è iniziato come un cane lento e si è sviluppato rapidamente quando le aziende Java hanno iniziato ad acquistare il know-how Smalltalk e Lisp. (Oracle HotSpot è ancora una piccola Smalltalk VM leggermente modificata). –

risposta

2

La domanda rende dichiarazioni/asserzioni false.

  1. Tutti della lingua lei ha citato (C, Java, C#, Python, e Ruby) sono compilati. La differenza è quando sono compilati (runtime vs precompilato).
  2. Rubino può essere precompilata in bytecode come di 1,9
  3. Rubino non è "più lenta" rispetto l'altra lingua solo perché è tipicamente compilato in fase di esecuzione (questo è un grande equivoco). Il codice si avvierà più rapidamente se è precompilato, ma il precompilamento del codice non lo renderà più veloce .
Problemi correlati