JRuby on Rails <ul><li>Charles Oliver Nutter </li></ul>
Agenda <ul><li>Who Am I </li></ul><ul><li>What Is JRuby </li></ul><ul><li>Why JRuby on Rails </li></ul><ul><li>Demos </li>...
Who Am I <ul><li>Charles Oliver Nutter </li></ul><ul><li>Senior Staff Engineer at Sun Microsystems </li></ul><ul><li>JRuby...
Why Go To Sun? <ul><li>Work full-time on JRuby </li></ul><ul><li>Opportunity to make real progress </li></ul><ul><li>Sun f...
Why Stay in Minnesota
What Is JRuby <ul><li>100% Java impl of Ruby...Ruby on the JVM </li></ul><ul><li>Pure interpreted, native threaded </li></...
Ruby calling Java <ul><li>require ‘java’ include_class “javax.swing.JFrame” include_class “javax.swing.JButton” frm = JFra...
Ruby calling Java <ul><li>include_class  “java.awt.event.ActionListener” class MyListener < ActionListener   def actionPer...
Why JRuby on Rails <ul><li>Java is pervasive </li></ul><ul><li>Java libraries are exhaustive </li></ul><ul><li>Many still ...
 
What do Rails Devs Get <ul><li>Scads of libraries; if you need it, there’s a lib </li></ul><ul><li>JDBC - universal databa...
What do Java Devs Get <ul><li>A web framework that’s usable </li></ul><ul><li>A useful schema management tool (finally) </...
Depot 2 <ul><li>ActiveRecord-JDBC to MySQL </li></ul><ul><li>Rails integrated with Java EE </li></ul><ul><li>Java Manageme...
What Now: Short Term <ul><li>Fix broken bits </li></ul><ul><ul><li>Marshal-based session </li></ul></ul><ul><ul><li>Interp...
What Now: Long Term <ul><li>Implement remaining C extensions: Mongrel, SSL, others you’d suggest? </li></ul><ul><li>Contin...
Conclusion <ul><li>JRuby on Rails mostly works right now </li></ul><ul><li>JRuby will not be “done” until it’s fully worki...
Information <ul><li>Email:  [email_address] </li></ul><ul><li>Blog: headius.blogspot.com </li></ul><ul><li>JRuby:  www.jru...
Upcoming SlideShare
Loading in...5
×

Charles Nutter Presentations

831

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
831
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Charles Nutter Presentations

    1. 1. JRuby on Rails <ul><li>Charles Oliver Nutter </li></ul>
    2. 2. Agenda <ul><li>Who Am I </li></ul><ul><li>What Is JRuby </li></ul><ul><li>Why JRuby on Rails </li></ul><ul><li>Demos </li></ul><ul><li>What Now </li></ul><ul><li>Conclusion </li></ul>
    3. 3. Who Am I <ul><li>Charles Oliver Nutter </li></ul><ul><li>Senior Staff Engineer at Sun Microsystems </li></ul><ul><li>JRuby Core Developer </li></ul><ul><li>Rubyist wannabe living in a Java world </li></ul><ul><li>Based in Minneapolis, Minnesota, USA </li></ul>
    4. 4. Why Go To Sun? <ul><li>Work full-time on JRuby </li></ul><ul><li>Opportunity to make real progress </li></ul><ul><li>Sun folks get it, want Ruby to succeed </li></ul><ul><li>Java folks need Ruby </li></ul>
    5. 5. Why Stay in Minnesota
    6. 6. What Is JRuby <ul><li>100% Java impl of Ruby...Ruby on the JVM </li></ul><ul><li>Pure interpreted, native threaded </li></ul><ul><li>Born 2001, product of many developers </li></ul><ul><li>Largely Ruby 1.8-compatible </li></ul><ul><li>Slower than Ruby...for now </li></ul>
    7. 7. Ruby calling Java <ul><li>require ‘java’ include_class “javax.swing.JFrame” include_class “javax.swing.JButton” frm = JFrame.new(“My frame”) btn = JButton.new(“My button”) frm.set_size(300, 300) frm.content_pane.add(btn) frm.show </li></ul>
    8. 8. Ruby calling Java <ul><li>include_class “java.awt.event.ActionListener” class MyListener < ActionListener def actionPerformed(event) event.source.text = “New text” end end btn.add_action_listener(MyListener.new) </li></ul>
    9. 9. Why JRuby on Rails <ul><li>Java is pervasive </li></ul><ul><li>Java libraries are exhaustive </li></ul><ul><li>Many still believe Java is the “everytool” </li></ul><ul><li>Java webapp developers are unhappy </li></ul><ul><li>Rails webapp developers are happy </li></ul>
    10. 11. What do Rails Devs Get <ul><li>Scads of libraries; if you need it, there’s a lib </li></ul><ul><li>JDBC - universal database support </li></ul><ul><li>“Good” EE stuff: clustering, failover, deployment, remote management </li></ul><ul><li>Extensive monitoring capabilities </li></ul><ul><li>A gateway to the “enterprise” </li></ul>
    11. 12. What do Java Devs Get <ul><li>A web framework that’s usable </li></ul><ul><li>A useful schema management tool (finally) </li></ul><ul><li>Markup that doesn’t suck </li></ul><ul><li>Four extra days per week </li></ul><ul><li>Happiness </li></ul>
    12. 13. Depot 2 <ul><li>ActiveRecord-JDBC to MySQL </li></ul><ul><li>Rails integrated with Java EE </li></ul><ul><li>Java Management Extensions (JMX) </li></ul>
    13. 14. What Now: Short Term <ul><li>Fix broken bits </li></ul><ul><ul><li>Marshal-based session </li></ul></ul><ul><ul><li>Interpreter bugs </li></ul></ul><ul><li>Performance </li></ul><ul><li>Script-based Java EE/Java library support </li></ul>
    14. 15. What Now: Long Term <ul><li>Implement remaining C extensions: Mongrel, SSL, others you’d suggest? </li></ul><ul><li>Continue expanding ActiveRecord-JDBC </li></ul><ul><ul><li>Abstract out schema definition </li></ul></ul><ul><ul><li>Solidify automatic CRUD support </li></ul></ul><ul><li>More GUI tool support </li></ul>
    15. 16. Conclusion <ul><li>JRuby on Rails mostly works right now </li></ul><ul><li>JRuby will not be “done” until it’s fully working </li></ul><ul><li>ActiveRecord-JDBC opens many doors </li></ul><ul><li>Java EE is actually fun with Rails </li></ul><ul><li>More Rails is more Rails...JRuby enables! </li></ul>
    16. 17. Information <ul><li>Email: [email_address] </li></ul><ul><li>Blog: headius.blogspot.com </li></ul><ul><li>JRuby: www.jruby.org </li></ul><ul><li>ActiveRecord-JDBC and Mongrel-Java: rubyforge.org/projects/jruby-extras </li></ul><ul><li>More JRuby at RubyConf and JavaPolis </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×