2015-11-03 10 views
6

C, Java, C# und Python werden von Anfang an kompiliert. Dank Facebook ist PHP jetzt auch kompilierbar und kann auf HHVM laufen, was die Leistung von Programmen erhöht. Ruby ist nicht kompilierbar und ist langsamer als die oben genannten Sprachen. Ist es möglich, dass Ruby in Zukunft kompilierbar sein wird (wie PHP mit HHVM)? Oder vielleicht gibt es Gründe, warum das nicht sein kann?Kann Ruby in Zukunft kompiliert werden?

+1

Willkommen bei Stack Overflow. Ihre Frage fördert Meinungen und Spekulationen, keine spezifischen Antworten. Bitte lesen Sie "[help/on-topic]" für Informationen zum Thema und "[help/dont-ask]" für Fragen, die Sie nicht stellen sollten. Ruby könnte in der Zukunft kompilierbar sein, aber wann und ob ist verschwommen. –

+1

Alle derzeit existierenden und sogar letzten Implementierungen von Ruby haben Compiler: YARV, Rubinius, JRuby, IronRuby, MagLev, Topaz, Cardinal, RubyGoLightly, XRuby, SmallRuby, BlueRuby, Alumina, Ruby.NET, das andere IronRuby (es gab zwei verschiedene Implementierungen mit dem gleichen Namen), RedSun, MacRuby, MRuby, RubyMotion und wahrscheinlich Tonnen anderer, die ich vergesse. Die einzigen zwei Implementierungen, die niemals Compiler hatten, waren IoRuby (das nie veröffentlicht wurde) und MRI (das veraltet ist und nicht gewartet wird). JRuby begann als reiner Interpreter, fügte aber später einen Compiler hinzu. Interessanter: ... –

+1

... IronRuby begann als reiner * Compiler *, fügte aber später einen Interpreter hinzu, um die Leistung * zu verbessern! Natürlich kann Ruby kompiliert werden. Alle Sprachen können kompiliert werden. Compilation und Interpretation sind Züge von ... naja ... dem Compiler oder Interpreter (duh!), Nicht der Sprache. Die Leistung ist eine Funktion der Menge an Geld/Ressourcen/Personen/Doktorarbeiten, die für eine schnelle Umsetzung ausgegeben wurden. Java begann hundegerecht und wurde erst schnell, als Java-Firmen Smalltalk- und Lisp-Know-how kauften. (Oracle HotSpot ist im Kern immer noch eine leicht modifizierte Smalltalk-VM.) –

Antwort

2

Die Frage macht falsche Aussagen/Annahmen.

  1. Alle von der Sprache, die Sie erwähnten (C, Java, C#, Python, und Rubin) zusammengestellt. Der Unterschied ist , wenn sie kompiliert werden (Laufzeit vs vorkompiliert).
  2. Rubin kann als 1,9
  3. Ruby ist nicht „langsamer“ als die andere Sprache nur zu Bytecode vorkompilierte werden, da es in der Regel zur Laufzeit kompiliert wird (das ist ein großer Irrtum,). Der Code startet schneller, wenn er vorkompiliert wird, aber Vorkompilieren des Codes wird es nicht schneller ausführen.
Verwandte Themen