Ruby an overall approach

1,645 views
1,406 views

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,645
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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/

×