Qual è il vantaggio di JRuby (o di qualsiasi altro linguaggio convertito in JVM)? Perché dovrebbe usarlo?

6

Diciamo che mi piace molto Ruby e conosco Java. Qual è l'accordo dietro questi linguaggi J * e Iron * che ti permettono di usare la sintassi di una lingua straniera per compilarli in un bytecode JVM o .NET?

In sostanza, qual è il vantaggio? È solo perché ti piace il runtime di una lingua, ma non la sintassi?

Si prega di avvisare!

    
posta Alexandr Kurilin 20.10.2011 - 00:46
fonte

2 risposte

8

Sposta l'onere di mantenere molte piattaforme native dalla lingua alla JVM. In questo modo è più facile per i manutentori della lingua gestire più piattaforme oltre a fornire prestazioni eccellenti per le attività noiose e noiose ad es. scrivere una buona garbage collection ecc.

L'erculeo di lavoro per fornire una buona infrastruttura sottostante di solito non è facilmente visibile dal "fuori" ma è piuttosto grande.

Inoltre, la JVM significa essenzialmente che le nuove piattaforme sono quasi libere di effettuare il porting. Nel mio lavoro eseguiamo il codice Java su una piattaforma IBM non mainstream - qualsiasi programma Java ben scritto funziona in modo immediato.

    
risposta data 20.10.2011 - 00:55
fonte
3

Il punto è che, una volta ottenuta una lingua per girare correttamente su una determinata piattaforma e interfacciarla con essa, puoi fondamentalmente sfruttare tutte le librerie esistenti per quella piattaforma (con poco o nessun sforzo a seconda della piattaforma).

Molto simile a quando Ruby chiama le librerie C, puoi fare in modo che JRuby invochi le librerie Java. E potresti preferirlo, per una serie di motivi:

  • Java rafforza la sicurezza della memoria. Quindi, quando si chiama in Java invece di C, c'è meno motivo di preoccupazione
  • Qualsiasi strumento / libreria che si desidera utilizzare è solo (o meglio) implementato per Java.
  • Si desidera estendere un sistema basato su Java esistente con una lingua come Ruby.
  • Ti piace Java.

In breve, la piattaforma Java è un ecosistema enorme e ricco. Ed essere in grado di sfruttarlo con uno dei tanti linguaggi popolari invece di essere legato a Java è positivo sia per la piattaforma sia per le comunità di altri linguaggi.
La tua scelta di lingua e piattaforma non dipende più l'una dall'altra. Ciò significa che non dovrai scrivere in una lingua che non ti piace sfruttare una funzione della piattaforma che ritieni necessaria, o che non ti chiuderai da una piattaforma solo con la tua scelta linguistica.

Si noti che quanto sopra si applica a .NET, sebbene gli Iron-stuff non sembrano essere ancora decollati per quanto ne so. Ma dato che c'è F # e Nemerle e il fatto che C # consente anche la programmazione terser di Java (con Linq per esempio) e che nonostante Mono l'ecosistema .NET abbia forti legami con Windows, chissà se lo sarà mai.

    
risposta data 20.10.2011 - 01:29
fonte

Leggi altre domande sui tag