<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Ruby Programming Language</title>
	<link>http://www.rubydersleri.info</link>
	<description>Ruby Programming Language</description>
	<pubDate>Mon, 24 Mar 2008 00:35:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Ruby programming language</title>
		<link>http://www.rubydersleri.info/ruby-programming-language.html</link>
		<comments>http://www.rubydersleri.info/ruby-programming-language.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:35:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/ruby-programming-language.html</guid>
		<description><![CDATA[
Ruby is a dynamic, reflective, general purpose object-oriented programming language. Originating in Japan in the mid 1990s, Ruby was initially developed and designed by Yukihiro &#8220;Matz&#8221; Matsumoto and combines syntax inspired by Perl with Smalltalk-like object-oriented features.
Ruby supports multiple programming paradigms (including functional, object oriented and imperative), and features a dynamic type system and automatic [...]]]></description>
			<content:encoded><![CDATA[<p><img HEIGHT="78" WIDTH="130" BORDER="0" SRC="http://tbn0.google.com/images?q=tbn:haxQ5FMA5PljsM:http://www.bitwisemag.com/images/illustrations/cover/11/ruby_landscape.jpg" /></p>
<p>Ruby is a dynamic, reflective, general purpose object-oriented programming language. Originating in Japan in the mid 1990s, Ruby was initially developed and designed by Yukihiro &#8220;Matz&#8221; Matsumoto and combines syntax inspired by Perl with Smalltalk-like object-oriented features.</p>
<p>Ruby supports multiple programming paradigms (including functional, object oriented and imperative), and features a dynamic type system and automatic memory management; it is therefore similar in varying respects to Python, Perl, Lisp, Dylan, and CLU.</p>
<p>In its current, official implementation, written in C, Ruby is a single-pass interpreted language. As of 2008, there are a number of alternative implementations of the Ruby language, including Rubinius, JRuby and IronRuby, each of which takes a different approach, with JRuby providing just-in-time compilation functionality.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/ruby-programming-language.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Classes</title>
		<link>http://www.rubydersleri.info/classes.html</link>
		<comments>http://www.rubydersleri.info/classes.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:33:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Classes]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/classes.html</guid>
		<description><![CDATA[The following code defines a class named Person. In addition to &#8216;initialize&#8217;, the usual constructor to create new objects, it has two methods: one to override the &#60;=&#62; comparison operator (so Array#sort can sort by age) and the other to override the to_s method (so Kernel#puts can format its output). Here, &#8220;attr_reader&#8221; is an example [...]]]></description>
			<content:encoded><![CDATA[<p>The following code defines a class named Person. In addition to &#8216;initialize&#8217;, the usual constructor to create new objects, it has two methods: one to override the &lt;=&gt; comparison operator (so Array#sort can sort by age) and the other to override the to_s method (so Kernel#puts can format its output). Here, &#8220;attr_reader&#8221; is an example of metaprogramming in Ruby: &#8220;attr_accessor&#8221; defines getter and setter methods of instance variables, &#8220;attr_reader&#8221; only getter methods. Also, the last evaluated statement in a method is its return value, allowing the omission of an explicit &#8216;return&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/classes.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Strings</title>
		<link>http://www.rubydersleri.info/strings.html</link>
		<comments>http://www.rubydersleri.info/strings.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:33:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Strings]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/strings.html</guid>
		<description><![CDATA[a = &#8220;\nThis is a double quoted string\n&#8221;
a = %Q{\nThis is a double quoted string\n}
a = &#60;&#60;BLOCK
This is a multi-line double quoted string
BLOCK
a = %/\nThis is a double quoted string\n/
]]></description>
			<content:encoded><![CDATA[<p>a = &#8220;\nThis is a double quoted string\n&#8221;<br />
a = %Q{\nThis is a double quoted string\n}<br />
a = &lt;&lt;BLOCK<br />
This is a multi-line double quoted string<br />
BLOCK<br />
a = %/\nThis is a double quoted string\n/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/strings.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Language features</title>
		<link>http://www.rubydersleri.info/language-features.html</link>
		<comments>http://www.rubydersleri.info/language-features.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:33:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Language features]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/language-features.html</guid>
		<description><![CDATA[Ruby code runs slower than many compiled languages (as is typical for interpreted languages) and other major scripting languages such as Python and Perl. However, in future releases (current revision: 1.9), Ruby will be bytecode compiled to be executed on YARV (Yet Another Ruby VM). Ruby&#8217;s current memory footprint for the same operations is higher [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby code runs slower than many compiled languages (as is typical for interpreted languages) and other major scripting languages such as Python and Perl. However, in future releases (current revision: 1.9), Ruby will be bytecode compiled to be executed on YARV (Yet Another Ruby VM). Ruby&#8217;s current memory footprint for the same operations is higher than Perl&#8217;s and Python&#8217;s.<br />
Omission of parentheses around method arguments may lead to unexpected results if the methods take multiple parameters. The Ruby developers have stated that omission of parentheses on multi-parameter methods may be disallowed in future Ruby versions; the current (Nov 2007) Ruby interpreter throws a warning which encourages the writer not to omit (), to avoid ambiguous meaning of code. Not using () is still common practise, and can be especially nice to use Ruby as a human readable domain-specific programming language itself, along with the method called method_missing().<br />
A list of &#8220;gotchas&#8221; may be found in Hal Fulton&#8217;s book The Ruby Way, 2nd ed (ISBN 0-672-32884-4), Section 1.5. A similar list in the 1st edition pertained to an older version of Ruby (version 1.6), some problems of which have been fixed in the meantime. retry, for example, now works with while, until, and for, as well as iterators.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/language-features.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Language comparison</title>
		<link>http://www.rubydersleri.info/language-comparison.html</link>
		<comments>http://www.rubydersleri.info/language-comparison.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:32:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Language comparison]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/language-comparison.html</guid>
		<description><![CDATA[Some features which differ notably from languages such as C or Perl:
Names which begin with a capital letter are treated as constants, so local variables should begin with a lowercase letter.
The sigils $ and @ do not indicate variable data type as in Perl, but rather function as scope resolution operators.
To denote floating point numbers, [...]]]></description>
			<content:encoded><![CDATA[<p>Some features which differ notably from languages such as C or Perl:</p>
<p>Names which begin with a capital letter are treated as constants, so local variables should begin with a lowercase letter.<br />
The sigils $ and @ do not indicate variable data type as in Perl, but rather function as scope resolution operators.<br />
To denote floating point numbers, one must follow with a zero digit (99.0) or an explicit conversion (99.to_f). It is insufficient to append a dot (99.), because numbers are susceptible to method syntax.<br />
Boolean evaluation of non-boolean data is strict: 0, &#8220;&#8221; and [] are all evaluated to true. In C, the expression 0 ? 1 : 0 evaluates to 0 (i.e. false). In Ruby, however, it yields 1, as all numbers evaluate to true; only nil and false evaluate to false. A corollary to this rule is that Ruby methods by convention — for example, regular-expression searches — return numbers, strings, lists, or other non-false values on success, but nil on failure (e.g., mismatch). This convention is also used in Smalltalk, where only the special objects true and false can be used in a boolean expression.<br />
Versions prior to 1.9 lack a character data type (compare to C, which provides type char for characters). This may cause surprises when slicing strings: &#8220;abc&#8221;[0] yields 97 (an integer, representing the ASCII code of the first character in the string); to obtain &#8220;a&#8221; use &#8220;abc&#8221;[0,1] (a substring of length 1) or &#8220;abc&#8221;[0].chr.<br />
The notation &#8220;statement until expression&#8221;, unlike other languages&#8217; equivalent statements (e.g. &#8220;do { statement } while (not(expression));&#8221; in C/C++/&#8230;), actually never runs the statement if the expression is already true.<br />
Because constants are references to objects, changing what a constant refers to generates a warning, but modifying the object itself does not. For example, Greeting &lt;&lt; &#8221; world!&#8221; if Greeting == &#8220;Hello&#8221; does not generate an error or warning. This is similar to final variables in Java, but Ruby does also have the functionality to &#8220;freeze&#8221; an object, unlike Java.<br />
Some features which differ notably from other languages:</p>
<p>The usual operators for conditional expressions, and and or, do not follow the normal rules of precedence: and does not bind tighter than or. Ruby also has expression operators || and &amp;&amp; which work as expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/language-comparison.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Syntax</title>
		<link>http://www.rubydersleri.info/syntax.html</link>
		<comments>http://www.rubydersleri.info/syntax.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:32:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/syntax.html</guid>
		<description><![CDATA[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. When used, the sigil changes the semantics of scope of the variable. The most striking difference from C and Perl is that keywords are [...]]]></description>
			<content:encoded><![CDATA[<p>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. 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.</p>
<p>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 &#8220;getter&#8221; and &#8220;setter&#8221; 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&#8217;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.</p>
<p>See the examples section for samples of code demonstrating Ruby syntax.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/syntax.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Semantics</title>
		<link>http://www.rubydersleri.info/semantics.html</link>
		<comments>http://www.rubydersleri.info/semantics.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:32:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Semantics]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/semantics.html</guid>
		<description><![CDATA[Ruby is object oriented: every data type is an object, including classes and types which many other languages designate as primitives (such as integers, booleans, and &#8220;nil&#8221;). Every function is a method. Named values (variables) always designate references to objects, not the objects themselves. Ruby supports inheritance with dynamic dispatch, mixins and singleton methods (belonging [...]]]></description>
			<content:encoded><![CDATA[<p>Ruby is object oriented: every data type is an object, including classes and types which many other languages designate as primitives (such as integers, booleans, and &#8220;nil&#8221;). Every function is a method. Named values (variables) always designate references to objects, not the objects themselves. Ruby supports inheritance with dynamic dispatch, mixins and singleton methods (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 modules 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.</p>
<p>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, &#8217;self&#8217; Object), with object orientation (everything is an object) or functional programming (it has anonymous functions, closures, and continuations; statements all have values, and functions return the last evaluation). It has support for introspection, reflection and metaprogramming, as well as support for interpreter-based[5] threads. Ruby features dynamic typing, and supports parametric polymorphism.</p>
<p>According to the Ruby FAQ [6], &#8220;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, you may or may not be put off by the huge difference in design philosophy between Python and Ruby/Perl.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/semantics.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>History</title>
		<link>http://www.rubydersleri.info/history.html</link>
		<comments>http://www.rubydersleri.info/history.html#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:32:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[History]]></category>

		<guid isPermaLink="false">http://www.rubydersleri.info/history.html</guid>
		<description><![CDATA[The language was created by Yukihiro Matsumoto, who started working on Ruby on February 24, 1993, and released it to the public in 1995. &#8220;Ruby&#8221; was named as a gemstone because of a joke within Matsumoto&#8217;s circle of friends alluding to the name of the Perl programming language .
As of December 2007, the latest stable [...]]]></description>
			<content:encoded><![CDATA[<p>The language was created by Yukihiro Matsumoto, who started working on Ruby on February 24, 1993, and released it to the public in 1995. &#8220;Ruby&#8221; was named as a gemstone because of a joke within Matsumoto&#8217;s circle of friends alluding to the name of the Perl programming language .</p>
<p>As of December 2007, the latest stable version is 1.8.6. Ruby 1.9.0 was released in December, but it is considered a development release. Several virtual machines are being developed for Ruby. These include JRuby, a port of Ruby to the Java 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 released as part of Ruby 1.9.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubydersleri.info/history.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
