Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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) • Highly portable, works on Linux, UNIX, DOS, Windows 95/98/NT/2K, Mac, etc. 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. 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. 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. 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) Ruby: A Demonstration Now let’s take a look at Ruby in action… Ruby Vs Java / C++ • Ruby • C++ / Java – “Ruby”.length – strlen(“Ruby”); – s.length(); – -5.0.abs – abs(-5.0); – number = Math.abs(number); 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 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 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 “@” Disadvantages (continue) • Potential thread starvation in multithreading – Use in-process thread [non-native] – However, it is lightweight and efficient 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 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.