0
RUBY                  Felipe Schmittan overall approach   PPRO@FEUP 2012
@schmittfelipe
CONTENTS•   Ruby’s history•   What is Ruby?•   Programming paradigms insight•   How it works?•   Ruby’s usage•   Where can...
RUBY’S HISTORY
Timeline: 1993 - 2000Yukihiro Matsumoto•   Created in 1993•   Popular only in Japan•   All documentation written in Japanese
Timeline: 2000 - 2004•   First english language book published in    2000•   Ruby has gained a lot of interest in Agile   ...
Timeline: 2004 - Today•   Ruby on Rails, the framework that    allowed ruby to step up to the spotlight•   Ruby v1.9•   Co...
WHAT IS RUBY?
“I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python. Thats why I decided...
INFLUENCES        Lisp Python                               RubyCLU     Perl      Smalltalk
WHAT IS RUBY?•A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant s...
PROGRAMMING PARADIGMS
Multi-paradigm programming language                    • Functional                    • Object   oriented                ...
HOW IT WORKS?
VS
Getting StartedHelloWorld.javaclass HelloWorldApp {   public static void main(String[] args) {      System.out.println("He...
Getting StartedHelloWorld.rb    puts “Hello World!”                          No main statement                          No...
ObjectJava       String s = String.ValueOf(1);
ObjectJava       String s = String.ValueOf(1);Ruby              s = 1.to_s
ObjectJava       String s = String.ValueOf(1);Ruby              s = 1.to_sEverything is an object!
TypesJavapublic void foo(ArrayList list) {  list.add(“foo”);  }
TypesJavapublic void foo(ArrayList list) {  list.add(“foo”);  }Rubydef foo list  list << “foo”end
Types                  Java                  public void foo(ArrayList list) {                    list.add(“foo”);        ...
TypesIf list is a string: ‘foo’If list is an array: [‘foo’]If list is a stream: foo is written to streamRubydef foo list  ...
Duck Typing“If it walks like a duck and quacks like a duck, it must be a duck.”                                      - Pra...
Iterators  Objects manage their own transversal       Ruby       array.each { |item|         puts item         }No for loo...
Open classes   Ruby     class Array       def average        inject do |sum, var|            sum + var          end / size...
WHO’S USING RUBY?
RECAPInfluences                             Style                   Overall•   Perl’s syntax                     •   Simpli...
MORE STUFF                                      Books              Beginning Ruby: From Novice to Professional (2009)     ...
Ruby an overall approach
Upcoming SlideShare
Loading in...5
×

Ruby an overall approach

1,215

Published on

An overall approach of Ruby. Presentation given at a paradigm programming course at FEUP ’12.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,215
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Ruby an overall approach"

  1. 1. RUBY Felipe Schmittan overall approach PPRO@FEUP 2012
  2. 2. @schmittfelipe
  3. 3. CONTENTS• Ruby’s history• What is Ruby?• Programming paradigms insight• How it works?• Ruby’s usage• Where can I learn more?
  4. 4. RUBY’S HISTORY
  5. 5. Timeline: 1993 - 2000Yukihiro Matsumoto• Created in 1993• Popular only in Japan• All documentation written in Japanese
  6. 6. Timeline: 2000 - 2004• First english language book published in 2000• Ruby has gained a lot of interest in Agile Development community but still unknown elsewhere
  7. 7. Timeline: 2004 - Today• Ruby on Rails, the framework that allowed ruby to step up to the spotlight• Ruby v1.9• Core 100% documented• 96 standard libraries
  8. 8. WHAT IS RUBY?
  9. 9. “I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python. Thats why I decided to design my own language.” -Yukihiro Matsumoto
  10. 10. INFLUENCES Lisp Python RubyCLU Perl Smalltalk
  11. 11. WHAT IS RUBY?•A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
  12. 12. PROGRAMMING PARADIGMS
  13. 13. Multi-paradigm programming language • Functional • Object oriented • Imperative • ReflectiveIt also has a dynamic type system and automatic memory management;
  14. 14. HOW IT WORKS?
  15. 15. VS
  16. 16. Getting StartedHelloWorld.javaclass HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); }}
  17. 17. Getting StartedHelloWorld.rb puts “Hello World!” No main statement No semicolons ( )’s are optional
  18. 18. ObjectJava String s = String.ValueOf(1);
  19. 19. ObjectJava String s = String.ValueOf(1);Ruby s = 1.to_s
  20. 20. ObjectJava String s = String.ValueOf(1);Ruby s = 1.to_sEverything is an object!
  21. 21. TypesJavapublic void foo(ArrayList list) { list.add(“foo”); }
  22. 22. TypesJavapublic void foo(ArrayList list) { list.add(“foo”); }Rubydef foo list list << “foo”end
  23. 23. Types Java public void foo(ArrayList list) { list.add(“foo”); } Ruby (?) return def foo list list << “foo” end(?) Object type
  24. 24. TypesIf list is a string: ‘foo’If list is an array: [‘foo’]If list is a stream: foo is written to streamRubydef foo list list << “foo”end
  25. 25. Duck Typing“If it walks like a duck and quacks like a duck, it must be a duck.” - Pragmatic Dave Thomas
  26. 26. Iterators Objects manage their own transversal Ruby array.each { |item| puts item }No for loops: Loops N + 1 errors
  27. 27. Open classes Ruby class Array def average inject do |sum, var| sum + var end / size end end nums = [1,2,3,4,5] puts nums.average #prints: 3Existing classes can be modified at any time.
  28. 28. WHO’S USING RUBY?
  29. 29. RECAPInfluences Style Overall• Perl’s syntax • Simplicity • Everything is an object• Smalltalk’s semantics • Productivity • Flexible• Python’s design philosophy • Elegant syntax • Large standard library “Actually, Im trying to make Ruby natural, not simple.” - Matz
  30. 30. MORE STUFF Books Beginning Ruby: From Novice to Professional (2009) The Expert’s Voice by Peter Cooper The Ruby Programming Language (2008) O’reilly by David Flanagan and Yukihiro Matsumoto Agile Web Development with Rails (2011) 4th edition Pragmatic Programmers by Sam Ruby, Dave Thomas and David Heinemeier Hansson Web http://www.ruby-lang.org/ http://www.slideshare.net/mbowler/ruby-for-java-programmershttp://www.slideshare.net/vishnu/the-top-10-reasons-the-ruby-programming-language-sucks http://www.fincher.org/tips/Languages/Ruby/
  1. A particular slide catching your eye?

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

×