SlideShare ist ein Scribd-Unternehmen logo
1 von 34
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

Weitere ähnliche Inhalte

Ähnlich wie Adventures of java developer in ruby world

10 Things you should know about Ruby
10 Things you should know about Ruby10 Things you should know about Ruby
10 Things you should know about Rubysikachu
 
JRuby - The Best of Java and Ruby
JRuby - The Best of Java and RubyJRuby - The Best of Java and Ruby
JRuby - The Best of Java and RubyEvgeny Rahman
 
The story of language development
The story of language developmentThe story of language development
The story of language developmentHiroshi SHIBATA
 
MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?Joshua Ballanco
 
Ruby for Beginner
Ruby for BeginnerRuby for Beginner
Ruby for BeginnerMi Ji Kim
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approachFelipe Schmitt
 
RubyならMacでしょう
RubyならMacでしょうRubyならMacでしょう
RubyならMacでしょうvincentisambart
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyHiroshi SHIBATA
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)Shanda innovation institute
 
Better Framework Better Life
Better Framework Better LifeBetter Framework Better Life
Better Framework Better Lifejeffz
 
Rake: Not Your Father's Build Tool
Rake: Not Your Father's Build ToolRake: Not Your Father's Build Tool
Rake: Not Your Father's Build Toolfilmprog
 
Why i love ruby than x
Why i love ruby than xWhy i love ruby than x
Why i love ruby than xSamnang Chhun
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Hiroshi SHIBATA
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Gozhubert
 
Better framework, better life
Better framework, better lifeBetter framework, better life
Better framework, better lifeDaniel Lv
 

Ähnlich wie Adventures of java developer in ruby world (20)

Setup ruby
Setup rubySetup ruby
Setup ruby
 
10 Things you should know about Ruby
10 Things you should know about Ruby10 Things you should know about Ruby
10 Things you should know about Ruby
 
JRuby - The Best of Java and Ruby
JRuby - The Best of Java and RubyJRuby - The Best of Java and Ruby
JRuby - The Best of Java and Ruby
 
The story of language development
The story of language developmentThe story of language development
The story of language development
 
MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?MacRuby: What is it? and why should you care?
MacRuby: What is it? and why should you care?
 
Ruby On Rails Ecosystem
Ruby On Rails EcosystemRuby On Rails Ecosystem
Ruby On Rails Ecosystem
 
JRuby: The Hard Parts
JRuby: The Hard PartsJRuby: The Hard Parts
JRuby: The Hard Parts
 
Ruby for Beginner
Ruby for BeginnerRuby for Beginner
Ruby for Beginner
 
Ruby an overall approach
Ruby an overall approachRuby an overall approach
Ruby an overall approach
 
RubyならMacでしょう
RubyならMacでしょうRubyならMacでしょう
RubyならMacでしょう
 
The Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of Ruby
 
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
[.Net开发交流会][2010.06.19]better framework better life(吕国宁)
 
Better Framework Better Life
Better Framework Better LifeBetter Framework Better Life
Better Framework Better Life
 
Rake: Not Your Father's Build Tool
Rake: Not Your Father's Build ToolRake: Not Your Father's Build Tool
Rake: Not Your Father's Build Tool
 
Why i love ruby than x
Why i love ruby than xWhy i love ruby than x
Why i love ruby than x
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
Why ruby
Why rubyWhy ruby
Why ruby
 
Better framework, better life
Better framework, better lifeBetter framework, better life
Better framework, better life
 
RoR_2_Ruby
RoR_2_RubyRoR_2_Ruby
RoR_2_Ruby
 

Mehr von Orest Ivasiv

Why don't you Groovy?
Why don't you Groovy?Why don't you Groovy?
Why don't you Groovy?Orest Ivasiv
 
Vagrant or docker for java dev environment
Vagrant or docker for java dev environmentVagrant or docker for java dev environment
Vagrant or docker for java dev environmentOrest Ivasiv
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring SecurityOrest Ivasiv
 
Dockerizing development workflow
Dockerizing development workflowDockerizing development workflow
Dockerizing development workflowOrest Ivasiv
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality ToolsOrest Ivasiv
 
Time Management: the Hidden Power of Pomodoro
Time Management: the Hidden Power of PomodoroTime Management: the Hidden Power of Pomodoro
Time Management: the Hidden Power of PomodoroOrest Ivasiv
 

Mehr von Orest Ivasiv (8)

Why don't you Groovy?
Why don't you Groovy?Why don't you Groovy?
Why don't you Groovy?
 
Vagrant or docker for java dev environment
Vagrant or docker for java dev environmentVagrant or docker for java dev environment
Vagrant or docker for java dev environment
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring Security
 
Dockerizing development workflow
Dockerizing development workflowDockerizing development workflow
Dockerizing development workflow
 
When Camel Smiles
When Camel SmilesWhen Camel Smiles
When Camel Smiles
 
Math synonyms
Math synonymsMath synonyms
Math synonyms
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality Tools
 
Time Management: the Hidden Power of Pomodoro
Time Management: the Hidden Power of PomodoroTime Management: the Hidden Power of Pomodoro
Time Management: the Hidden Power of Pomodoro
 

Kürzlich hochgeladen

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 

Kürzlich hochgeladen (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

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

Hinweis der Redaktion

  1. 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.
  2. 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
  3. 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
  4. 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...
  5. May 13, 2007http://www.youtube.com/watch?v=PQbuyKUaKFo
  6. “JavaProgrammersarewritingstrangeRubyCode.”
  7. https://github.com/h3rald/ruby-compendiumhttp://infoether.com/ruby-and-rails-whitepaper
  8. Як я обирав Рубі для поточного пректу. Показати матрицюЯкі основні критерії були? РЕСТ АПІ, кросс платформеністьЧому не Пайтон?Проблеми з ДжДК, креші, бандлер