Forum: Italian Ruby user group JRuby e Rails

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
7de465f222e6a9c7fe658e370d0bfe05?d=identicon&s=25 Paolo Montrasio (pmontrasio)
on 2015-07-23 12:44
Ho visto l'annuncio di JRuby 9.0.0.0 e visto che è compatibile con Ruby
2.2 ho finalmente deciso di provarlo con un'applicazione Rails 4.2. Non
sono ancora arrivato ad eseguire i test ma ecco alcune impressioni e
consigli.


1) Serve qualche modifica al Gemfile perché alcune gemme non possono
funzionare dentro la JVM. Nel mio caso

if RUBY_PLATFORM == "java"
  gem "activerecord-jdbcpostgresql-adapter"
else
  gem "unicorn"
  gem "escape_utils" # 10 to 100 times faster than CGI.escape_html and
ERB::Util.html_escape
  gem "pg"
end


2) E' molto più lento a partire. rails c ci mette 25 secondi per
arrivare al prompt contro i 10 di Ruby 2.2.2 e i quasi 0 dopo che spring
è partito. Mi è stato suggerito di usare

$ JRUBY_OPTS="--dev" rails c

e in effetti così scende a 12 secondi. Meglio ma sempre tanti. Googlando
il suggerimento ho trovato
https://github.com/jruby/jruby/wiki/Improving-startup-time e forse ci
sono degli equivalenti di spring (Theine e Drip). Li devo ancora
provare.

3) L'adapter PostgreSQL dà un warning inquietante

NOTE: ActiveRecord 4.2 is not (yet) fully supported by AR-JDBC, please
help us finish 4.2 support - ...

Non so se lo voglio usare in produzione anche se tutti i test dovessero
passare. Probabilmente no e quindi probabilmente non lavorerei con JRuby
su un'applicazione Rails se non per provare com'è. Poi però tornerei a
MRI.

4) L'adapter JDBC non si collega a PostgreSQL con la socket unix domain.
In sviluppo ho sia PostgreSQL che MySQL configurati per accettare
connessioni solo su quella. E' di facile risoluzione ma oltre a
riconfigurare il database dovrei riconfigurare tutti gli altri
database.yml per andare su 127.0.0.1:5432. Una scocciatura e infatti per
ora mi sono fermato qui. Prima o poi completerò il test, ma non vorrei
che prima arrivasse il prossimo luglio :-)

La sensazione è che l'ecosistema JRuby stia ancora rincorrendo e forse è
inevitabile. Mi pare che qui ci sia qualcuno che lo usa in produzione,
che sensazioni avete?

Paolo
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2015-07-23 14:58
Mi fa piacere leggere di aggiornamenti di JRuby che torna utile in
alcune circostanze.
Io l'ho usato in produzione ma un bel pò di anni fa, circa 5. Dovevo
utilizzare una libreria java per la scansione di barcode ed avevo fatto
un app rails 2 che girava sotto glassfish. Ricordo che la documentazione
JRuby on Rails era ottima, allora marchiata sun.
Io però preferisco MRI, anzi più in generale tutto ciò che è sviluppato
in C++, Java = lentezza esasperante.
7de465f222e6a9c7fe658e370d0bfe05?d=identicon&s=25 Paolo Montrasio (pmontrasio)
on 2015-07-23 18:03
Java è lento a partire ma poi è ragionevolmente veloce se si dà tempo
all'ottimizzatore just in time di fare il suo lavoro. Tanti usano Java
persino per giocare (Minecraft). Le mie preoccupazioni, pare fondate,
invece riguardavano i programmi che girano per poco (i test), l'ampiezza
dell'ecosistema e il ritardo rispetto al mondo che gira attorno a MRI.
8c7ac8ba0968d27dd1cac5b973177951?d=identicon&s=25 francesco agati (francescoagati)
on 2015-07-23 18:35
(Received via mailing list)
Ciao Paolo,
Se non uso librerie particolari con ffi e binding c non ci dovrebbe
essere nessun problema con jruby. Le librerie scritte in ruby dovrebbero
girare bene con jruby.
Generalmente cambiando le dipendenze un'app rails gira mediamente bene
su jruby

----- Messaggio originale -----
Da: "Paolo Montrasio" <paolo@paolomontrasio.com>
Inviato: ‎23/‎07/‎2015 18:03
A: "ml@lists.ruby-it.org" <ml@lists.ruby-it.org>
Oggetto: Re: [ruby-it] JRuby e Rails

Java è lento a partire ma poi è ragionevolmente veloce se si dà tempo
all'ottimizzatore just in time di fare il suo lavoro. Tanti usano Java
persino per giocare (Minecraft). Le mie preoccupazioni, pare fondate,
invece riguardavano i programmi che girano per poco (i test), l'ampiezza
dell'ecosistema e il ritardo rispetto al mondo che gira attorno a MRI.

--
Posted via http://www.ruby-forum.com/.
_______________________________________________
Ml mailing list
Ml@lists.ruby-it.org
http://lists.ruby-it.org/mailman/listinfo/ml
Ff2c5ef7c7d38d18c3cd39d951cc5a07?d=identicon&s=25 Stefano Pigozzi (Guest)
on 2015-07-23 18:45
(Received via mailing list)
2015-07-23 18:34 GMT+02:00 francesco agati
<francescoagati1975@gmail.com>:
> Ciao Paolo,
> Se non uso librerie particolari con ffi e binding c

Credo che FFI funzioni in JRuby. Il problema sono le C extensions che
invece chiamano direttamente funzioni MRI.
71534f04397ad784e01fa97533b9360a?d=identicon&s=25 sickpig@gmail.com (Guest)
on 2015-07-24 06:54
(Received via mailing list)
(scusate per il top posting e per la brevit)

per i punti 3) e 4) prova ad usare https://github.com/headius/jruby-pg
dovresti poterlo usare come dropin replacement della gemma pg  verso
0.17.1
On 23 Jul 2015 12:44, "Paolo Montrasio" <paolo@paolomontrasio.com>
wrote:

Ho visto l'annuncio di JRuby 9.0.0.0 e visto che  compatibile con Ruby
2.2 ho finalmente deciso di provarlo con un'applicazione Rails 4.2. Non
sono ancora arrivato ad eseguire i test ma ecco alcune impressioni e
consigli.


1) Serve qualche modifica al Gemfile perch alcune gemme non possono
funzionare dentro la JVM. Nel mio caso

if RUBY_PLATFORM == "java"
  gem "activerecord-jdbcpostgresql-adapter"
else
  gem "unicorn"
  gem "escape_utils" # 10 to 100 times faster than CGI.escape_html and
ERB::Util.html_escape
  gem "pg"
end


2) E' molto pi lento a partire. rails c ci mette 25 secondi per
arrivare al prompt contro i 10 di Ruby 2.2.2 e i quasi 0 dopo che spring
 partito. Mi  stato suggerito di usare

$ JRUBY_OPTS="--dev" rails c

e in effetti cos scende a 12 secondi. Meglio ma sempre tanti. Googlando
il suggerimento ho trovato
https://github.com/jruby/jruby/wiki/Improving-startup-time e forse ci
sono degli equivalenti di spring (Theine e Drip). Li devo ancora
provare.

3) L'adapter PostgreSQL d un warning inquietante

NOTE: ActiveRecord 4.2 is not (yet) fully supported by AR-JDBC, please
help us finish 4.2 support - ...

Non so se lo voglio usare in produzione anche se tutti i test dovessero
passare. Probabilmente no e quindi probabilmente non lavorerei con JRuby
su un'applicazione Rails se non per provare com'. Poi per tornerei a
MRI.

4) L'adapter JDBC non si collega a PostgreSQL con la socket unix domain.
In sviluppo ho sia PostgreSQL che MySQL configurati per accettare
connessioni solo su quella. E' di facile risoluzione ma oltre a
riconfigurare il database dovrei riconfigurare tutti gli altri
database.yml per andare su 127.0.0.1:5432. Una scocciatura e infatti per
ora mi sono fermato qui. Prima o poi completer il test, ma non vorrei
che prima arrivasse il prossimo luglio :-)

La sensazione  che l'ecosistema JRuby stia ancora rincorrendo e forse
inevitabile. Mi pare che qui ci sia qualcuno che lo usa in produzione,
che sensazioni avete?

Paolo

--
Posted via http://www.ruby-forum.com/.
_______________________________________________
Ml mailing list
Ml@lists.ruby-it.org
http://lists.ruby-it.org/mailman/listinfo/ml
7de465f222e6a9c7fe658e370d0bfe05?d=identicon&s=25 Paolo Montrasio (pmontrasio)
on 2015-07-24 20:49
Avevo provato jruby-pg per prima ma non funzionava per via di questa
issue https://github.com/headius/jruby-pg/issues/11
Ecco perché sono passato all'altra.

Comunque ho fatto progressi perché mi sono reso conto che postgres può
ascoltare sia sulla porta ip che sulla socket unix. I test passano quasi
tutti ma quelli di integrazione falliscono perché non riescono a far
partire il browser https://github.com/jruby/jruby/issues/3170

C'è anche qualche test sui modelli che fallisce ma non ho avuto tempo di
investigare. Potrebbe non dipendere da JRuby.
This topic is locked and can not be replied to.