2008/8/1 Arie Kusuma Atmaja <[EMAIL PROTECTED]> > ngomong-ngomong soal deployment nih, jujur gua ngiri liat demo bean j2ee > (awas kalo gw salah maklumin weh atuh gw bukan orang java lumayan euy > kalo diracunin jruby dari kulon kono) pas deploy ke tomcat apache ama > catalina gitu ya, tinggal main copy paste ke root direktori plung... > abis gitu browser direfresh eh udah detek / kayak main autotest di ruby, > langsung otomatis detek/keliatan juga di lognya. > gitu juga pas nghapus, tinggal delete aja direktori projectnya.. > tuing... langsung kehapus :)) > > ....
Memang seperti itu :) Pertama kali aq belajar itu, kayanya "aneh"... apa bedanya dengan kita naruh script PHP di Apache pada zaman baheula, misalnya ... Ternyata memang beda!! Apache nggak ngerti kalo file tersebut ditambah, dikurangi, ato foldernya hilang, misalnya... Kebetulan aja script tersebut pas di-request oleh client, pas ada, lalu dijalanin, selesai udah deh hilang dari memori... Ini mah model CGI.. Kalo udah mulai ke FastCGI, trus dedicated kayak Mongrel, kerasa kan ribetnya? Di server JavaEE, hal2 tersebut sudah ada "lifecycle"-nya. Aplikasi yang didrop akan diberi "notifikasi hoey kamu waktunya start nich" ala script/server gitu deh. Trus kalo ada file yg berubah alias kita ingin redeploy aplikasi tsb. maka di JavaEE server juga ada istilah "reload", dan ini diurusin oleh server *bukan* oleh aplikasi. Trus kalo folder tersebut didelete alias undeploy (sebenarnya bisa sih pake web interface kita klik tombol "Deploy", tapi "ribet" hehehe... mending pencet DEL aja :P ) maka aplikasi tersebut akan di-notify "oey tolong clean dong dirimu dari memory" ... simpel kan.. sapa bilang JavaEE tuh rumit :-P Justru RoR rumit karena dari awal dia mbikin hal-hal yang sebenarnya sudah diurusin sama low-level app (kayak sebuah server)... katanya DRY principle, mana?? Kaya perlu juga DRO = Don't Repeat Others... di ruby jadi mikir, menerawang... apa ya kira-kira yang bisa semudah > itu? aha! JRuby on Rails! tinggal jadi war, trus habis itu ... jadi > penasaran liat teman2x java demokan kemudahan itu sinergi dengan Ruby. > Setuju... saya sendiri belom pernah first hand experience, tapi mbaca blognya orang2 sono yang sudah pada berhasil **dengan riang** , saya terus terang tertarik dan kayanya bagus :) > Atau, buat yang development dan deployment pake ruby murni maupun selain > JRuby : ada solusi atau akal-akalan lain gak yah buat deployment manja > gini? -_- > Di kerjaan gw lebih banyak "memasukkan Ruby ke dalam aplikasi Java" dan bukannya "menjalankan aplikasi Ruby di atas JavaVM". Tapi either way bagus2 aja koq. Simak saja Ola Bini yang semangat banget (secara core dev JRuby getoh),, tapi secara umum gw setuju dengan poin2 dia -- secara udah nyicip for real :-) Presentasinya di sini : http://www.slideshare.net/deimos/ola-bini-j-ruby-power-on-the-jvm Gw kasih cuplikannya ya... *Ruby Issues - Threading* Ruby 1.8: Green threading No scaling across processors/cores C libraries won't/can't yield One-size-fits-all scheduler Ruby 1.9: Native, non-parallel execution JRuby: Ruby threads are Java threads World class scheduler with tunable algorithms *Ruby Issues - Unicode* Ruby 1.8: Partial Unicode Internet connection applications MUST have solid Unicode Ruby 1.8 provides very partial support App devs roll their own: Rails Multi-byte Ruby 1.9: Full encoding support Drastic changes to interface and implementation Performance issues Each string can have its own encoding JRuby: Java Unicode *Ruby Issues - Performance* Ruby 1.8: Slower than most languages 1.8 is usually called "fast enough" ...but routinely finishes last ...and no plans to improve in 1.8 Ruby 1.9: Improvement, but not scalable New engine about 1.5x for general appliciations Only implicit AOT compilation No JIT, no GC or threading changes JRuby: Compiler provides better performance *Ruby Issues - Memory* Ruby 1.8: Memory management Simple design Good for many apps, but not scalable Stop-the-world GC Ruby 1.9: No change Improved performance => more garbage GC problems could multiply JRuby: World class Java GC's *Ruby Issues - C* Ruby 1.8 & 1.9: C language extensions C is difficult to write well Badly-behaved extensions can cause large problems Threading and GC issues relating to extensions Portable, but often with recompilation No security restrictions in the system JRuby Java extensions GC and threading no problem Kesimpulannya apa? *All the goodness of Ruby, with all the goodness of Java(VM), robust implementation, without the quirks that other Ruby implementations suffer from!* Java secara language aja punya hal2 yang di Ruby gak ada... percaya ga? Annotations! Ini sudah ada di C# / .NET sejak versi 1.0, di Java sejak Java 1.4 (sekarang udah Java 1.6).. dan alhamdulillaah JRuby juga "support" tuh :) Meski dengan syntax 'primitif' yang mirip2 Javadoc-based annotation... kalo di JRuby Rdoc-based annotation kalee: http://blogs.sun.com/sandoz/entry/annotated_scala_groovy_jruby_rhino (perbandingan dengan the big 4 JVM languages: Scala, Groovy, Rhino/Javascript, Jython, kurang BeanShell nich tapi wajar -- BeanShell mah Java2 aja...) "ActiveRecord" (EJB Entity) ala Groovy + annotations: @Entity @Table(name="staff") class Staff implements Serializable { @Id @GeneratedValue Long id String firstname String lastname String position } (siapa bilang Java nggak bisa saingan ama ActiveRecord, tuh di atas buktinya!!) Sebenere ngiri ama Scala (yang syntaxnya lebih canggih dari Java, dan bisa menyaingi *clean*-nya .NET) : @SourceURL("http://coders.com/") { val mail = "[EMAIL PROTECTED]" } class MyScalaClass ... Bandingkan dengan kejorokan Ruby ala RDoc annotations: # This is a mojo description # @goal # @phase "validate" # @requiresDependencyResolution "compile" class MyMojo < Mojo Oya code jorok tsb. terinspirasi dari http://mojo.codehaus.org/jruby-maven-plugin/index.html yang merupakan projek 'ajaib', kenapa ajaib karena di situ menggabungkan keunggulan Maven (dari dunia Java) dengan bahasa/aplikasi Ruby ... Hopefully sooner than later enough kita nggak perlu ribet dengan urusan Capistrano, Mongrel, fastcgi dan kawan2 plus dependency dan goldspike etc. tinggal: mvn jetty:run # aka 'script/server' mvn test # aka 'rake test' mvn site # aka 'rake rdoc' plus plus mvn package # jadilah .war yang siap di-attach email buat client kita scp target/aplikasigue.war [EMAIL PROTECTED]:/opt/tomcat/webapps/ # aka 'cap deploy', masak gini aja perlu bikin tool sih -- cape de! Intinya Maven bisa melakukan semua pekerjaan yang biasanya kita lakukan, bedanya adalah perintah2 di atas berlaku 'universal'.. mo pake Java, Flex, Groovy, Struts, Spring, perintah2nya sama persis... Ah... koq jadi banyak ngelantur yah *"sorry" for my rants* (katanya Arie nggak boleh ngomong sorry sembarangan, jadi ...) -- Best regards, Hendy Irawan [Non-text portions of this message have been removed] ------------------------------------ ID-Ruby Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius, IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb) <*> Kunjungi *arsip milis* id-ruby di http://groups.yahoo.com/group/id-ruby/messages http://www.mail-archive.com/[email protected]/ http://rubyurl.com/Q8DD http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia <*> Baca peraturan id-ruby sebelum posting http://rubyurl.com/gay1 <*> Ikutilah Jajak Pendapat ID-Ruby http://rubyurl.com/3CCt <*> Links ID-Ruby http://rubyurl.com/n96r <*> Database ID-Ruby http://rubyurl.com/Iw3u <*> Kunjungi Situs Resmi Ruby Indonesia http://www.ruby-lang.org/id/ <*> Join Ruby Indonesia on Facebook http://rubyurl.com/QV48 <*> Join Ruby Indonesia on LinkedIn http://rubyurl.com/eh0i Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/id-ruby/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/id-ruby/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

