1 / 14

Presented By Carl Zumbano and Sui Cheng

Presented By Carl Zumbano and Sui Cheng. CS151 – Object Oriented Programming May 10, 2001. Ruby: An Introduction. Created by Yukihiro Matsumoto in 1993 (named after his birthstone) Inspired (in part) by Eiffel and Ada Pure OO language (even the number 1 is an instance of a class)

charlie
Download Presentation

Presented By Carl Zumbano and Sui Cheng

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Presented By Carl Zumbano and Sui Cheng CS151 – Object Oriented Programming May 10, 2001

  2. Ruby: An Introduction • Created by Yukihiro Matsumoto in 1993 (named after his birthstone) • Inspired (in part) by Eiffel and Ada • Pure OO language (even the number 1 is an instance of a class) • Highly portable, works on Linux, UNIX, DOS, Windows 95/98/NT/2K, Mac, etc.

  3. Ruby: An Introduction • Freely available and open-source. • More popular than Python in Japan, probably b/c it handles mutibyte character sets so easily. • Syntax is readable and easy to learn. • Being used for text processing, web apps, general system administration, and AI and math research.

  4. Ruby: the Language • No multiple inheritance, but modules allow the importing of methods. • Has garbage collection. • Exception handling, like Java. • Any class or instance can be extended anytime (even during runtime) • Allows operator overloading.

  5. Ruby: the Language • Can be extended with Ruby or low-level C. • No type declaration. • Has iterators, methods which accept blocks for user-defined control structures (like loops) • Emacs, TextPad, and Vim all have support available for Ruby.

  6. Ruby: A Demonstration #Person Class class Person attr_accessor :name, :age def initialize(name, age) @name = name @age = age.to_i end def inspect "#@name (#@age)" end end #Usage of the class p1 = Person.new('elmo', 4) p2 = Person.new('zoe', 7) #Results p1 # -> elmo (4) p2 # -> zoe (7)

  7. Ruby: A Demonstration Now let’s take a look at Ruby in action…

  8. Ruby “Ruby”.length -5.0.abs C++ / Java strlen(“Ruby”); s.length(); abs(-5.0); number = Math.abs(number); Ruby Vs Java / C++

  9. Advantages using Ruby against Java and C++ • Allow pass by code block • Support Regular Expression • Cleaner code • No need to declare variables • Simple syntax (semi-colon is optional) • Every thing is an object, even a number. No need to call separate function. • Simple object get/set methods declaration

  10. Advantages (continue) • Classes and modules are never closed. • Better Access Control • Dynamic access control • Private methods never accessible directly by another object • Portable and extensible with third-party library • Interactive environment

  11. Disadvantages using Ruby against Java and C++ • No multiple inheritance • However, Ruby offers multiple-inheritance-like capabilities • Ruby is a scripting language • However, Ruby can access to OS features, do same thing as Perl and Python • Different syntax and method definition style • Return statement is optional • Use of expression interpretation • Braces not needed in control statements (if, while) • Instance variable must preceded by “@”

  12. Disadvantages (continue) • Potential thread starvation in multi-threading • Use in-process thread [non-native] • However, it is lightweight and efficient

  13. Closing • Free download for Unix/Windows • Applications includes: • X11 window manager, GUIs, managing server machines and databases. • Want to know more: • Visit http://www.ruby-lang.org

  14. Ruby: References • The Ruby Programming Language by Yukio Matsumoto; Addison Wesley Professional, 2000. • Programming Ruby: A Pragmatic Programmer's Guide by David Thomas and Andrew Hunt; Addison-Wesley Pub Co, 2000.

More Related