Ruby Programming Language

15% Off Textbooks
Buy Textbooks - Unbeatable Deals. Free Shipping + eBooks are 50% Off.
iChapters.com/limited-time-offer

Extend Visual Studio
Extend Your Visual Studio Toolset. Visit Visual Studio Gallery Today.
www.VisualStudioGallery.com

Ruby Programming
Find Bargain Prices On Ruby Programming.
BizRate.com

Valuable Technology News
Make profitable technology decisions for your small business.
www.bMighty.com

Ruby (programming language) - Wikipedia, the free encyclopedia
... 2000, the first English language book Programming Ruby was printed, which was ... Ruby has been described as a multi-paradigm programming language: it allows ...
en.wikipedia.org

Ruby programming language - encyclopedia article - Citizendium
Ruby is a general-purpose computer programming language made available as open ... The designers of Ruby (and other programming languages created after Pascal) ...
en.citizendium.org

The Ruby Programming Language | Barnes & Noble.com
Find The Ruby Programming Language plus much more at BN.com. Free 3-Day Delivery on orders over 25 dollars.
search.barnesandnoble.com

The Ruby Programming Language | O'Reilly Media
Bestselling author David Flanagan teams up with Ruby creator Yukihiro Matz Matsumoto and writer/cartoonist/programmer why the lucky stiff to bring you the ...
www.oreilly.com

O'Reilly - Safari Books Online - 9780596516178 - The Ruby Programming ...
9780596516178 - The Ruby Programming Language - The Ruby Programming Language is the authoritative guide to Ruby and provides comprehensive coverage of versions 1.8 ...
safari.oreilly.com

The Ruby Language
... chapter to be a self-contained reference to the core Ruby language. ... Ruby is a line ... from the book "Programming Ruby - The Pragmatic Programmer's ...
phrogz.net




Warning: mkdir() [function.mkdir]: Permission denied in /home/webs/affiliatelib2/CacheManager.php on line 12

Warning: mkdir() [function.mkdir]: No such file or directory in /home/webs/affiliatelib2/CacheManager.php on line 12

Warning: fopen(/home/templatecore2cache//*cluesnet.com/98/98809fe4f14a58927e1911f747b5f9322ec4c726.tc2cache) [function.fopen]: failed to open stream: No such file or directory in /home/webs/affiliatelib2/CacheManager.php on line 130

Warning: fwrite(): supplied argument is not a valid stream resource in /home/webs/affiliatelib2/CacheManager.php on line 131

Warning: fclose(): supplied argument is not a valid stream resource in /home/webs/affiliatelib2/CacheManager.php on line 132



{{Infobox programming language|name = Ruby|logo = |paradigm = Multi-paradigm programming language (functional, imperative, logic, object-oriented (class-based))|year = 1995|designer = Yukihiro Matsumoto, [2007 ([Duck typing)|implementations = Ruby, JRuby, [Perl, Lisp programming language, Scheme (programming language), Python (programming language), CLU programming language, Eiffel programming language, Dylan programming language|influenced = Groovy programming language|operating_system = Cross-platform|website = www.ruby-lang.org-->

Ruby is a [reflection (computer science)
, dynamic programming language, object-oriented programming language. It combines syntax inspired by Perl with Smalltalk-like object-oriented features, and also shares some features with Python (programming language), Lisp (programming language), Dylan (programming language), and CLU (programming language). Ruby is a single-pass interpreted language. Its official implementation is free software written in C (programming language).

History The language was created by Yukihiro Matsumoto, who started working on Ruby on February 24, 1993, and released it to the public in 1995. "Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to Perl name An Interview with the Creator of Ruby.

As of March 2007, the latest stable version is 1.8.6. Ruby 1.9 (with some major changes) is also in development. Poor performance of the current Ruby implementation in comparison to other more entrenched programming languages has led to the development of several virtual machines for Ruby. These include JRuby, a port of Ruby to the Java (programming language) platform, IronRuby, an implementation for the .NET Framework produced by Microsoft, and Rubinius, an interpreter modeled after self-hosting Smalltalk virtual machines. The main developers have thrown their weight behind the virtual machine provided by the YARV project, which was merged into the Ruby source tree on 31 December 2006, and will be released as Ruby 2.0.

Philosophy The language's creator has said that Ruby is designed for programmer productivity and fun, following the principles of good user interface design. The Ruby Programming Language by Yukihiro Matsumoto on 2000-06-12 (informit.com) He stresses that systems design needs to emphasize human, rather than computer, needs The Philosophy of Ruby, A Conversation with Yukihiro Matsumoto, Part I by Bill Venners on 2003-09-29 (Artima Developer):

Ruby is said to follow the principle of least surprise (POLS), meaning that the language should behave in such a way as to minimize confusion for experienced users. Matz has said his primary design goal was to make a language that he himself enjoyed using, by minimizing programmer work and possible confusion. He has said he hadn't applied the principle of least surprise to the design of Ruby, The Philosophy of Ruby, A Conversation with Yukihiro Matsumoto, Part I by Bill Venners on 2003-09-29 (Artima Developer) but nevertheless the phrase has come to be closely associated with the Ruby programming language. The phrase has itself been a source of surprise, as novice users may take it to mean that Ruby's behaviors try to closely match behaviors familiar from other languages. In a May 2005 discussion on the comp.lang.ruby newsgroup, Matz attempted to distance Ruby from POLS, explaining that since any design choice will be surprising to someone, he uses a personal standard in evaluating surprise. If that personal standard remains consistent there will be few surprises for those familiar with the standard.

Matz defined it this way in an interview :

Semantics Ruby is object-oriented: every data type is an object, including even classes and types that many other languages designate as primitives (such as integers, booleans, and "nil"). Every function (programming) is a method (programming). Named values (variables) always designate references to objects, not the objects themselves. Ruby supports inheritance (object-oriented programming) with dynamic dispatch, mixins and singleton patterns (belonging to, and defined for, a single instance rather than being defined on the class). Though Ruby does not support multiple inheritance, classes can import module (programming)s as mixins. Procedural syntax is supported, but all methods defined outside of the scope of a particular object are actually methods of the Object class. Since this class is parent to every other class, the changes become visible to all classes and objects.

Ruby has been described as a multi-paradigm programming language: it allows procedural programming (defining functions/variables outside classes makes them part of the root, 'self' Object), with object orientation (everything is an object) or Functional programming (it has anonymous functions, Closure (computer science), and continuations; statements all have values, and functions return the last evaluation). It has support for Introspection (computer science), Reflection (computer science) and metaprogramming, as well as support for interpreter-basedGreen threads Thread (computer science)s. Ruby features Type system, and supports Polymorphism in object-oriented programming.

According to the Ruby FAQ Ruby FAQ, "If you like Perl, you will like Ruby and be right at home with its syntax. If you like Smalltalk, you will like Ruby and be right at home with its semantics. If you like Python (programming language), you may or may not be put off by the huge difference in design philosophy between Python and Ruby/Perl." How Does Ruby Compare With Python? (FAQ)

Features

Ruby currently lacks full support for Unicode, though it has partial support for UTF-8.

Interaction The Ruby official distribution also includes "irb", an interactive command-line interpreter which can be used to test code quickly. The following code fragment represents a sample session using irb:

$ irbirb(main):001:0> puts "Hello, World"Hello, World=> nilirb(main):002:0> 1+2=> 3

Syntax The syntax of Ruby is broadly similar to Perl and Python. Class and method definitions are signaled by keywords. In contrast to Perl, variables are not obligatorily prefixed with a sigil (computer programming). When used, the sigil changes the semantics of scope of the variable. The most striking difference from C and Perl is that keywords are typically used to define logical code blocks, without braces (i.e., pair of { and }). Line breaks are significant and taken as the end of a statement; a semicolon may be equivalently used. Unlike Python, indentation is not significant.

One of the differences of Ruby compared to Python and Perl is that Ruby keeps all of its instance variables completely private to the class and only exposes them through accessor methods (attr_writer, attr_reader, etc). Unlike the "getter" and "setter" methods of other languages like C++ or Java, accessor methods in Ruby can be written with a single line of code. As invocation of these methods does not require the use of parentheses, it is trivial to change an instance variable into a full function, without modifying a single line of code or having to do any refactoring achieving similar functionality to C# and VB.NET property members. Python's property descriptors are similar, but come with a tradeoff in the development process. If one begins in Python by using a publicly exposed instance variable and later changes the implementation to use a private instance variable exposed through a property descriptor, code internal to the class may need to be adjusted to use the private variable rather than the public property. Ruby removes this design decision by forcing all instance variables to be private, but also provides a simple way to declare set and get methods. This is in keeping with the idea that in Ruby, one never directly accesses the internal members of a class from outside of it. Rather one passes a message to the class and receives a response.

See the #Examples section for samples of code demonstrating Ruby syntax.

"Gotchas" Language comparison Some features that differ notably from languages such as C (programming language) or Perl:

 
Copyright © 2008 opini8.com - All rights reserved.
Home | Terms of Use | Privacy Policy
All Trademarks belong to their repective owners.
Many aspects of this page are used under
commercial commons license from Yahoo!