SlideShare a Scribd company logo
Adventures
of Java developer
 in Ruby world
     by Orest Ivasiv
        @halyph
WARNING!
A Presentation is NOT
   a Documentation!



                        2
Agenda
•   Background
•   Project issues and language choice
•   Ruby History
•   “Trololo”
•   Ruby Ecosystem review




                                         3
Background
•   My experience: 5+ years in industry
•   Java is my primary language
•   1st ruby experience – 05/2007
•   08/2012 real Ruby project
•   Language agnostic, only pragmatic choices
•   Co-organizer of




                                                4
Project requirements
•   Scripting language
•   Easy to learn
•   Simple distribution model
•   Language Community
•   Local community size
•   Ecosystem




                                5
Language Matrix
                           Java   Python   Ruby    Groovy   Perl
Well adopted               +      +        +       -        -
Cross-platform             +      +        +/-     +        +
Easy Maintainable          +      +        +       +        -
Huge community             +      +/-      +       +/-      -
Nice to start app from     -      +        +       +        -
scratch
Lots of third-party libs   +      +        +       +/-      +
Speed of execution         +      +        +/-     -        +
Application distribution   +      +/-      +/-     +        +/-
model and dependency
issues
Runtime environment        +      +/-      +/-     +/-      +/-
setup
My Language sympathy       Native - exp    + exp   +/-      Hate it
                                                                      6
History


        Lisp      Smalltalk           Perl           Ruby           Java           C#

•1958          •1983          •1989          •1993          •1995          •2000




                                                                                        7
Ruby History
•   02/24/1993 - Pre-history age. Without code
•   12/21/1995 - Ruby is in public. V.0.95
•   12/25/1996 - Ruby 1.0 released
•   10/27/1999 - the first Ruby book
•   xx/07/2004 - DHH first released Ruby on Rails
•   xx/12/2005 - version 1 of Ruby on Rails was released
•   xx/10/2007 -        bundle/ship RoR w/ OS X Leopard




                                                       8
Ruby History




               9
10
Ruby trolls on early days
September 20, 2007   here is a list of the top 10
                     reasons that anything (and probably
                     everything) related to Java sucks
                     ass in comparison to Ruby and
                     Rails.

                     ... Fuck compilers ... Java
                     Programmers are Morons ... they all
                     suck ass ... Jimmy Gosling?
                     Hahahahahahahaha...




                                                       11
Ruby trolls on early days




                            12
Ruby trolls on early days




                            13
Ruby trolls on early days




 Maybe "Fuck You" means something different in Copenhagen?    14
Ruby trolls on early days
May 13, 2007




               • Ruby on Rails vs Java
               • Ruby on Rails vs PHP
               • Ruby on Rails vs .NET




                                         15
Ruby implementations

                     Which to pick ?
•   Ruby 1.8, MRI
•   Ruby 1.9, YARV
•   JRuby
•   Rubinius
•   IronRuby
•   MacRuby



                                   16
Python Community




                   17
Java Culture


Enterprise
   Big company
 Big departments



                   18
Ruby Culture

        =
Start-Up Culture
   Just the get App running

                              19
How to find non-crappy
         Gem?




                         20
How to find non-crappy
         Gem?




                         21
How to find non-crappy
          Gem?


• Evaluate gem
  o   Documentation
  o   Source code
  o   Open/Closed issues
  o   Gems Dependency
  o   Curation of maintainer
  o   Tests



                               22
:Ruby => *nix




                23
Implement Ruby Gem

    Ruby Style
      Guide
• Follow the better practices




                                24
Implement Ruby Gem
1. How to write own gem?
2. When is it necessary?
3. How to start? FTW?
  o   Find the mentor
  o   Pick proper test framework
  o   Pick the bootstrap tools




                                   25
Tools & Gems
•   Git
•   Gem
•   Bundler   Maven
•   Rake
•   Rspec
•   irb
•   Ri
•   Rdoc, TomDoc, YARD
•   Thor


                           26
Tools & Gems




               27
IDE vs. Text Editor




                      28
Debug Ruby Code
• Ruby-debug
• Pry
• RubyMine debugger




                        29
Ruby Testing
• Test::Unit
• minitest             Which to pick ?
• Rspec
• Cucumber
…
• Tons of other gems




                                         30
Language Features
•   Namespaces
•   Mixin
•   Code organization
•   Duck typing
•   Open Classes
•   Blocks




                            31
Ruby Community
•   Social Coding - GitHub
•   Screencasts
•   Podcasts
•   Conferences
•   Tons of Books




                             32
Ruby Ecosystem




                 33
Any Questions?




             34

More Related Content

PDF
Ruby Beyond Rails
PDF
RVM and Ruby Interpreters @ RSC Roma 03/2011
PPTX
Rubykaigi 2017-nishimotz-v6
PDF
Beware of your Hype Value Stores
PDF
Minitest
PDF
Command Line Applications with Ruby
PDF
IJTC%202009%20JRuby
PDF
IJTC%202009%20JRuby
Ruby Beyond Rails
RVM and Ruby Interpreters @ RSC Roma 03/2011
Rubykaigi 2017-nishimotz-v6
Beware of your Hype Value Stores
Minitest
Command Line Applications with Ruby
IJTC%202009%20JRuby
IJTC%202009%20JRuby

Similar to Adventures of java developer in ruby world (20)

PPTX
Optimizing for programmer happiness
PDF
Ruby an overall approach
PDF
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
PDF
Ruby tutorial
PDF
Why JRuby?
PPT
Java, Ruby & Rails
KEY
Ruby on Rails survival guide of an aged Java developer
PDF
From java-to-ruby-book-summary
PPTX
sl slides-unit-1.pptx
PDF
rubyonrails
PDF
rubyonrails
PDF
JRuby, Ruby, Rails and You on the Cloud
PPTX
JRuby in Java Projects
PDF
JRuby - Enterprise 2.0
PDF
10 Things you should know about Ruby
PPTX
Ruby And Ruby On Rails
PDF
遇見 Ruby on Rails
PPT
Ruby on Rails (RoR) as a back-end processor for Apex
PDF
Feels Like Ruby - Ruby Kaigi 2010
PDF
From Java to Ruby...and Back
Optimizing for programmer happiness
Ruby an overall approach
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby tutorial
Why JRuby?
Java, Ruby & Rails
Ruby on Rails survival guide of an aged Java developer
From java-to-ruby-book-summary
sl slides-unit-1.pptx
rubyonrails
rubyonrails
JRuby, Ruby, Rails and You on the Cloud
JRuby in Java Projects
JRuby - Enterprise 2.0
10 Things you should know about Ruby
Ruby And Ruby On Rails
遇見 Ruby on Rails
Ruby on Rails (RoR) as a back-end processor for Apex
Feels Like Ruby - Ruby Kaigi 2010
From Java to Ruby...and Back
Ad

More from Orest Ivasiv (8)

PDF
Why don't you Groovy?
PDF
Vagrant or docker for java dev environment
PDF
OAuth2 and Spring Security
PDF
Dockerizing development workflow
PPTX
When Camel Smiles
PDF
Math synonyms
PPTX
Java Code Quality Tools
PPTX
Time Management: the Hidden Power of Pomodoro
Why don't you Groovy?
Vagrant or docker for java dev environment
OAuth2 and Spring Security
Dockerizing development workflow
When Camel Smiles
Math synonyms
Java Code Quality Tools
Time Management: the Hidden Power of Pomodoro
Ad

Recently uploaded (20)

PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Machine learning based COVID-19 study performance prediction
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Electronic commerce courselecture one. Pdf
PPTX
Cloud computing and distributed systems.
PPTX
Machine Learning_overview_presentation.pptx
PDF
Approach and Philosophy of On baking technology
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
A Presentation on Artificial Intelligence
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
Teaching material agriculture food technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Unlocking AI with Model Context Protocol (MCP)
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
sap open course for s4hana steps from ECC to s4
Machine learning based COVID-19 study performance prediction
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Electronic commerce courselecture one. Pdf
Cloud computing and distributed systems.
Machine Learning_overview_presentation.pptx
Approach and Philosophy of On baking technology
A comparative analysis of optical character recognition models for extracting...
A Presentation on Artificial Intelligence
Review of recent advances in non-invasive hemoglobin estimation
Teaching material agriculture food technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Advanced methodologies resolving dimensionality complications for autism neur...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Programs and apps: productivity, graphics, security and other tools
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Unlocking AI with Model Context Protocol (MCP)

Adventures of java developer in ruby world

  • 1. Adventures of Java developer in Ruby world by Orest Ivasiv @halyph
  • 2. WARNING! A Presentation is NOT a Documentation! 2
  • 3. Agenda • Background • Project issues and language choice • Ruby History • “Trololo” • Ruby Ecosystem review 3
  • 4. Background • My experience: 5+ years in industry • Java is my primary language • 1st ruby experience – 05/2007 • 08/2012 real Ruby project • Language agnostic, only pragmatic choices • Co-organizer of 4
  • 5. Project requirements • Scripting language • Easy to learn • Simple distribution model • Language Community • Local community size • Ecosystem 5
  • 6. Language Matrix Java Python Ruby Groovy Perl Well adopted + + + - - Cross-platform + + +/- + + Easy Maintainable + + + + - Huge community + +/- + +/- - Nice to start app from - + + + - scratch Lots of third-party libs + + + +/- + Speed of execution + + +/- - + Application distribution + +/- +/- + +/- model and dependency issues Runtime environment + +/- +/- +/- +/- setup My Language sympathy Native - exp + exp +/- Hate it 6
  • 7. History Lisp Smalltalk Perl Ruby Java C# •1958 •1983 •1989 •1993 •1995 •2000 7
  • 8. Ruby History • 02/24/1993 - Pre-history age. Without code • 12/21/1995 - Ruby is in public. V.0.95 • 12/25/1996 - Ruby 1.0 released • 10/27/1999 - the first Ruby book • xx/07/2004 - DHH first released Ruby on Rails • xx/12/2005 - version 1 of Ruby on Rails was released • xx/10/2007 - bundle/ship RoR w/ OS X Leopard 8
  • 10. 10
  • 11. Ruby trolls on early days September 20, 2007 here is a list of the top 10 reasons that anything (and probably everything) related to Java sucks ass in comparison to Ruby and Rails. ... Fuck compilers ... Java Programmers are Morons ... they all suck ass ... Jimmy Gosling? Hahahahahahahaha... 11
  • 12. Ruby trolls on early days 12
  • 13. Ruby trolls on early days 13
  • 14. Ruby trolls on early days Maybe "Fuck You" means something different in Copenhagen?  14
  • 15. Ruby trolls on early days May 13, 2007 • Ruby on Rails vs Java • Ruby on Rails vs PHP • Ruby on Rails vs .NET 15
  • 16. Ruby implementations Which to pick ? • Ruby 1.8, MRI • Ruby 1.9, YARV • JRuby • Rubinius • IronRuby • MacRuby 16
  • 18. Java Culture Enterprise Big company Big departments 18
  • 19. Ruby Culture = Start-Up Culture Just the get App running 19
  • 20. How to find non-crappy Gem? 20
  • 21. How to find non-crappy Gem? 21
  • 22. How to find non-crappy Gem? • Evaluate gem o Documentation o Source code o Open/Closed issues o Gems Dependency o Curation of maintainer o Tests 22
  • 24. Implement Ruby Gem Ruby Style Guide • Follow the better practices 24
  • 25. Implement Ruby Gem 1. How to write own gem? 2. When is it necessary? 3. How to start? FTW? o Find the mentor o Pick proper test framework o Pick the bootstrap tools 25
  • 26. Tools & Gems • Git • Gem • Bundler Maven • Rake • Rspec • irb • Ri • Rdoc, TomDoc, YARD • Thor 26
  • 28. IDE vs. Text Editor 28
  • 29. Debug Ruby Code • Ruby-debug • Pry • RubyMine debugger 29
  • 30. Ruby Testing • Test::Unit • minitest Which to pick ? • Rspec • Cucumber … • Tons of other gems 30
  • 31. Language Features • Namespaces • Mixin • Code organization • Duck typing • Open Classes • Blocks 31
  • 32. Ruby Community • Social Coding - GitHub • Screencasts • Podcasts • Conferences • Tons of Books 32

Editor's Notes

  • #4: Issues with Ruby ecosystem. Is Ruby really cross platform? Pitfalls with the Ruby language. Packaging and application distribution, pros&cons. Ruby CLI application facilities. Project based experience.
  • #9: See http://blog.nicksieger.com/articles/2006/10/20/rubyconf-history-of-rubyhttp://gunnertech.com/2011/11/ruby-on-rails-history-a-look-back/27 October 1999: Matz and Keiju’s book is published, the first Ruby book
  • #10: See http://blog.nicksieger.com/articles/2006/10/20/rubyconf-history-of-rubyhttp://gunnertech.com/2011/11/ruby-on-rails-history-a-look-back/27 October 1999: Matz and Keiju’s book is published, the first Ruby book
  • #12: http://www.javalobby.org/java/forums/t101687.html->http://www.jroller.com/obie/entry/top_10_reasons_why_java1) Java has a compilerRuby does not. That's great! Fuck compilers and their false sense of security. Too often is bad code checked in or even deployed to production, simply because it compiled. No such luxury in the Ruby world.2) Java framework authors are not application developersPrime example: the JBoss guys, who are paid handsomely to work on framework code all day. Sure, they're exposed to real application development, but they don't do it themselves. As a result, none of their handiwork is extracted from actual working codebases. Which is a shame, because if it were extracted from actual working codebases then it might actually not suck.All Rails core and plugin contributors of significance are fulltime application developers, starting at the top with DHH himself and the Rails core team. Day in and day out we write applications in Ruby and extract the useful bits out for other Rails developers to make use of via gems and plugins.3) Most Java Programmers are MoronsThis has to do with the number of people in the world that describe themselves as Java programmers and work at day jobs doing Java programming. What are there, like 2 million of them? More? So it's just a numbers thing, really. There just aren't that many good programmers overall in the world -- and most them wouldn't be caught dead doing Java.4) Java is too FragmentedJava has a gazillion open-source frameworks and they all suck ass. So what do Java teams do to cope? Cobble those suck-ass frameworks together into custom layered homebrews that are nothing more than exponential explosions of sheer, despicable suck-assiness.In stark contrast, in the Ruby world, we only have Rails. All Rails projects are structured the same way and follow the same conventions. That's a good thing, since it means that Rails developers can move across projects with relative ease.5) Java is Too SlowHa. This is one of my favorite reasons, for the bloody irony of it. You see, Java isn't actually slow. Everyone reading this knows that it got plenty fast over the last five years or so. Nevertheless, 90% of the world that knows of Java thinks that it is slow, because of its association with crappy slow Java applets and crappy slow Java loading screens on mobile devices.Ruby *is* slow, compared to Java, and yet it is fast enough. Amazing, isn't it.6) Java doesn't have blocks and closuresDo I really need to rehash this reason? No. I don't think so.7) Java has Integrated Development Environments (IDEs)Closely related to Reason #3 Most Java Programmers are morons. Everyone knows that the best programmers use Vim and Emacs. Then come the TextMate users. If you need to use an IDE then you suck, period.8) Java has good debugging supportJava has great and powerful debugging (which is very necessary since most Java code sucks so much ass). Ruby has ridiculously pitiful debugging support, which means our code actually needs to be well-tested and readable.9) Java Makes a Lot of Money for VendorsThis is potentially the most subtle of all of the reasons on the list. Basically, the integrity of most anything having to do with Java is corrupted by the way that it is inextricably linked to a web of intrigue involving money, big vendors and bullshit enterprise politics and pandering. Ruby doesn't make major money for anyone except Pragmatic Dave.10) Java does not have DHHIn the words of my inimitable friend Zed Shaw, "If DHH ain't doing it, you don't fucking do it. (Seems every time some clever fellow gets into trouble it's because of that.)"Who does Java have? Jimmy Gosling? Hahahahahahahaha...
  • #16: May 13, 2007http://www.youtube.com/watch?v=PQbuyKUaKFo
  • #20: “JavaProgrammersarewritingstrangeRubyCode.”
  • #34: https://github.com/h3rald/ruby-compendiumhttp://infoether.com/ruby-and-rails-whitepaper
  • #35: Як я обирав Рубі для поточного пректу. Показати матрицюЯкі основні критерії були? РЕСТ АПІ, кросс платформеністьЧому не Пайтон?Проблеми з ДжДК, креші, бандлер