Adventuresof 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          ...
Background•   My experience: 5+ years in industry•   Java is my primary language•   1st ruby experience – 05/2007•   08/20...
Project requirements•   Scripting language•   Easy to learn•   Simple distribution model•   Language Community•   Local co...
Language Matrix                           Java   Python   Ruby    Groovy   PerlWell adopted               +      +        ...
History        Lisp      Smalltalk           Perl           Ruby           Java           C#•1958          •1983          ...
Ruby History•   02/24/1993 - Pre-history age. Without code•   12/21/1995 - Ruby is in public. V.0.95•   12/25/1996 - Ruby ...
Ruby History               9
10
Ruby trolls on early daysSeptember 20, 2007   here is a list of the top 10                     reasons that anything (and ...
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 daysMay 13, 2007               • Ruby on Rails vs Java               • Ruby on Rails vs PHP          ...
Ruby implementations                     Which to pick ?•   Ruby 1.8, MRI•   Ruby 1.9, YARV•   JRuby•   Rubinius•   IronRu...
Python Community                   17
Java CultureEnterprise   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 D...
:Ruby => *nix                23
Implement Ruby Gem    Ruby Style      Guide• Follow the better practices                                24
Implement Ruby Gem1. How to write own gem?2. When is it necessary?3. How to start? FTW?  o   Find the mentor  o   Pick pro...
Tools & Gems•   Git•   Gem•   Bundler   Maven•   Rake•   Rspec•   irb•   Ri•   Rdoc, TomDoc, YARD•   Thor                 ...
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                      ...
Language Features•   Namespaces•   Mixin•   Code organization•   Duck typing•   Open Classes•   Blocks                    ...
Ruby Community•   Social Coding - GitHub•   Screencasts•   Podcasts•   Conferences•   Tons of Books                       ...
Ruby Ecosystem                 33
Any Questions?             34
Upcoming SlideShare
Loading in …5
×

Adventures of java developer in ruby world

2,113 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Adventures of java developer in ruby world

  1. 1. Adventuresof Java developer in Ruby world by Orest Ivasiv @halyph
  2. 2. WARNING!A Presentation is NOT a Documentation! 2
  3. 3. Agenda• Background• Project issues and language choice• Ruby History• “Trololo”• Ruby Ecosystem review 3
  4. 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. 5. Project requirements• Scripting language• Easy to learn• Simple distribution model• Language Community• Local community size• Ecosystem 5
  6. 6. Language Matrix Java Python Ruby Groovy PerlWell adopted + + + - -Cross-platform + + +/- + +Easy Maintainable + + + + -Huge community + +/- + +/- -Nice to start app from - + + + -scratchLots of third-party libs + + + +/- +Speed of execution + + +/- - +Application distribution + +/- +/- + +/-model and dependencyissuesRuntime environment + +/- +/- +/- +/-setupMy Language sympathy Native - exp + exp +/- Hate it 6
  7. 7. History Lisp Smalltalk Perl Ruby Java C#•1958 •1983 •1989 •1993 •1995 •2000 7
  8. 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
  9. 9. Ruby History 9
  10. 10. 10
  11. 11. Ruby trolls on early daysSeptember 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. 12. Ruby trolls on early days 12
  13. 13. Ruby trolls on early days 13
  14. 14. Ruby trolls on early days Maybe "Fuck You" means something different in Copenhagen?  14
  15. 15. Ruby trolls on early daysMay 13, 2007 • Ruby on Rails vs Java • Ruby on Rails vs PHP • Ruby on Rails vs .NET 15
  16. 16. Ruby implementations Which to pick ?• Ruby 1.8, MRI• Ruby 1.9, YARV• JRuby• Rubinius• IronRuby• MacRuby 16
  17. 17. Python Community 17
  18. 18. Java CultureEnterprise Big company Big departments 18
  19. 19. Ruby Culture =Start-Up Culture Just the get App running 19
  20. 20. How to find non-crappy Gem? 20
  21. 21. How to find non-crappy Gem? 21
  22. 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
  23. 23. :Ruby => *nix 23
  24. 24. Implement Ruby Gem Ruby Style Guide• Follow the better practices 24
  25. 25. Implement Ruby Gem1. 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. 26. Tools & Gems• Git• Gem• Bundler Maven• Rake• Rspec• irb• Ri• Rdoc, TomDoc, YARD• Thor 26
  27. 27. Tools & Gems 27
  28. 28. IDE vs. Text Editor 28
  29. 29. Debug Ruby Code• Ruby-debug• Pry• RubyMine debugger 29
  30. 30. Ruby Testing• Test::Unit• minitest Which to pick ?• Rspec• Cucumber…• Tons of other gems 30
  31. 31. Language Features• Namespaces• Mixin• Code organization• Duck typing• Open Classes• Blocks 31
  32. 32. Ruby Community• Social Coding - GitHub• Screencasts• Podcasts• Conferences• Tons of Books 32
  33. 33. Ruby Ecosystem 33
  34. 34. Any Questions? 34

×