Introductie
• Werkzaam in ICT sinds 1990
• Per 1 september 2007 bij
Wisdom Ordina
• Software ontwikkeling en docent
informatica
• Sinds 1998 Javaan
• Sinds 2006 Ruby on Rails
vrijdag 7 november 2008 3
Wat is JRuby?
vrijdag 7 november 2008 4
Wat is Ruby?
• Programmeertaal
• Ontwikkeld in 1993
• Door Yukihiro Matsumoto
• Objectgeörienteerd
• Geïnterpreteerd
• Dynamisch
vrijdag 7 november 2008 5
Wat is Ruby? (2)
• Geschreven in C
• Ook wel Matz’ Ruby genoemd
(naar Yukihiro Matsumoto)
• http://www.ruby-lang.org
• Versie 1.8.6/7
vrijdag 7 november 2008 6
Ruby on Rails
• Webapplication framework
• 2004
• David Heinemeijer Hanson
• Principes:
• Convention over configuration
• Don’t Repeat Yourself
vrijdag 7 november 2008 7
Ruby on Rails
• Snelle ontwikkeling / geen compilatieslag
• Model-View-Controller
• ActiveRecord / Migraties
• Web 2.0 / Ajax integratie
• Ondersteuning voor testen
vrijdag 7 november 2008 8
Wat is JRuby?
vrijdag 7 november 2008 9
JRuby == Ruby
vrijdag 7 november 2008 10
Wat is JRuby?
• Ruby implementatie in de Java VM
• Compatibel met Ruby 1.8.6
• Compatibility d.m.v. testen
• Ruby spec site:
http://spec.ruby-doc.org
• Laatste JRuby versie is 1.1.5
http://www.jruby.org
vrijdag 7 november 2008 11
Sun op J-Fall 2006
vrijdag 7 november 2008 12
Java Platform
Java
Ruby
JVM Python
JVM
Java ECMAScript
PHP
API
API
Copyright(C) 2008 Sun Microsystems, Inc. 4
vrijdag 7 november 2008 13
Maar ...
JRuby ≠ Ruby
vrijdag 7 november 2008 14
JRuby ≠ Ruby
• Native threaded
• No Native \"C\" extentions
• Java extentions for
ActiveRecord-JDBC
RMagick4J
Mongrel
• No Continuations
vrijdag 7 november 2008 15
Wat kun je met JRuby?
• Execute Ruby code in de JVM
• Access Java classes vanuit Ruby
• Access Ruby classes vanuit Java
vrijdag 7 november 2008 16
Waarom?
vrijdag 7 november 2008 17
Waarom?
Twee invalshoeken:
• Vanuit de commercie
• Vanuit de techniek
vrijdag 7 november 2008 18
Vanuit de commercie
• Opleveren wat de klant nodig heeft
i.p.v. wat de klant wil hebben
• Snellere time-to-market
• Manier om hierop aan te sluiten:
Agile development / SCRUM
vrijdag 7 november 2008 19
Scrum intro filmpje: hPp://nl.youtube.com/watch?v=6s3mdDYzaKI
vrijdag 7 november 2008 20
vrijdag 7 november 2008 21
Vanuit de commercie
• Opleveren wat de klant nodig heeft
i.p.v. wat de klant wil hebben
• Snellere time-to-market
• Manier om hierop aan te sluiten:
Agile development / SCRUM
• Tools om hierop aan te sluiten
vrijdag 7 november 2008 22
Vanuit de techniek
• (J)Ruby on Rails voor agile projecten
• Java is voorgeschreven vanuit de klant
vrijdag 7 november 2008 23
Vanuit de techniek
• Gebruik van Java VM:
• Java Virtual Machine is stabiel en snel
• JVM is op veel platformen beschikbaar
• Bekende deployment en tuning
• Minder “politieke” weerstand
• JRuby is sneller dan Ruby (volgens Sun)
vrijdag 7 november 2008 24
Charles Nutter
op RubyEnRails 2008:
“If JRuby is slower than Ruby,
file a bug”
vrijdag 7 november 2008 25
Hoe?
vrijdag 7 november 2008 26
Hoe?
• Download en unzip jruby.zip
• Add JRuby.jar to the classpath
• Install gems (libraries) such as Rails
• Use command line tools like IRB,
rake, etc.
vrijdag 7 november 2008 27
Hoe?
• Ontwikkelen en deployen van
(J)Ruby on Rails webapplicaties
• Swing applicaties
• Mix van Java en Ruby
(obv scriptengines)
vrijdag 7 november 2008 28
Hoe?
Deploy Rails applicatie
• via WAR-file
Genereer WAR-file met warbler gem
gebaseerd op JRuby-Rack
• via Directory based deploy
Use Sun’s GlassFish v2 or v3 gem
vrijdag 7 november 2008 29
GlassFish
HTTP HTTP HTTP
Listener Listener Listener
Servlet Bridge
Rails Rails Rails
JRuby JRuby JRuby
JVM
Java OS
Key Rails
code Proc.
vrijdag 7 november 2008 30
Voorbeelden
• Rails app in JRuby
• Swing applications from JRuby
• Mix Rails and Java
vrijdag 7 november 2008 31
0 comments
Post a comment