210 likes | 362 Views
Getting Started with Ruby. What’s Ruby?. Ruby is an OO, dynamic, agile language Everything’s an object For example, try puts -1.abs Derives strengths of Perl, Smalltalk, Python Created by Matz in mid 90’s Prevalent in Japan; recent buzz in the US It’s a lightweight language
E N D
What’s Ruby? • Ruby is an OO, dynamic, agile language • Everything’s an object • For example, try puts -1.abs • Derives strengths of Perl, Smalltalk, Python • Created by Matz in mid 90’s • Prevalent in Japan; recent buzz in the US • It’s a lightweight language • Clean, Higher signal-to-noise ratio • There is no compiler to stand in your way • Quite flexible–you’ll see when you use it
History • Created by Yukihiro Matsumoto (Matz) in 1993 • Slowly being accepted in the west • Popularized by some key players in the industry • Gaining strength in various applications • Ruby-On-Rails (ROR)
Downloading Ruby • Ruby site • http://www.ruby-lang.org • For windows, you may use one-click installer http://rubyinstaller.rubyforge.org
Ruby Version • You can find the version of ruby you’re using by typing ruby –v
Running Ruby • Run ruby and type commands • Interactively using irb • Save code to file and run it • I’ll run it directly from notepad2 • Other tools and Plugins available as well
IDEs • Comes with FreeRIDE IDE • Mondrian IDE • TextPad generally used on Mac • Command line and Notepad(2) works great as well! • The following blog entry shows you how • http://tinyurl.com/as8z7
Documentation… • ri • RDoc at http://www.ruby-doc.org
Object-Oriented • Ruby treats almost everything as objects • nil is an object (try: puts nil.methods) • Even classes are objects! • You use them like objects • These objects simply represent their class Pizza is a const that references Pizza class object
Less Clutter • Code less, do more • Java: • Ruby GOJ
Less Clutter • Clean language • Less noise • ; is not needed • Parenthesis are optional • Variables don’t have type specification • Last statement of a method returns automatically • You can even return multiple values!
Variables • Dynamic typing • Output:
Types • Everything is an object
Another function Returns an array Assigns elements of array to individual variables
Ruby Conventions • Conventions are very important • Sometimes convention simply makes code look better • At other times, it means something significant [you will learn some conventions the hard way ]
Class/Method conventions • Class names, modules names, and constants start with upper case • SportsCar, ValueOfPI, DAYS_IN_WEEK • Methods and variables start with lowercase and use underscore • start_engine(), miles_driven • Instance variables have @ • @fuel_level • Class variables use double ats • @@suggested_pressure • Global variables use $ • $ozone
Method convention talks to you • You can figure out what a method is up to from its looks • Methods may end with an = • the method may appear as l-value Query method Doesn’t modify object Has side effect; mutates object
Global and Predefined Variables • This is hideous • You may be setting some global variable and not know it (familiarize yourself) • Some predefs: $_, $0, $$, $&, $!, …
"" vs '' (Double vs. Single Quotes) • '' is a simple string • Expressions within "" are evaluated • Better to use ' if you don’t have expressions