<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hsun6</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hsun6"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Hsun6"/>
	<updated>2026-08-08T22:18:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=54167</id>
		<title>CSC/ECE 517 Fall 2011/ch4 4d ls</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=54167"/>
		<updated>2011-10-25T15:43:07Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2011/ch4 4d ls&lt;br /&gt;
----&lt;br /&gt;
= &amp;lt;b&amp;gt;Introduction&amp;lt;/b&amp;gt; =&lt;br /&gt;
What is ruby on rails&amp;lt;ref&amp;gt;[http://en.wikipedia.org/wiki/Ruby_on_Rails http://en.wikipedia.org/wiki/Ruby_on_Rails]&amp;lt;/ref&amp;gt;? What does framework &amp;lt;ref&amp;gt;[http://en.wikipedia.org/wiki/Framework http://en.wikipedia.org/wiki/Framework]&amp;lt;/ref&amp;gt;mean and what can it achieve? What is MVC&amp;lt;ref&amp;gt;[http://www.tutorialspoint.com/ruby-on-rails/rails-framework.htm http://www.tutorialspoint.com/ruby-on-rails/rails-framework.htm]&amp;lt;/ref&amp;gt; and what is its advantage? This article will not only eliminate the above questions in your heart, but also will provide you a practical experience of building a cookbook application and discuss the individual part of the functionality and the operation mechanism which will contribute to the gradual gathering of the knowledge. &lt;br /&gt;
&lt;br /&gt;
==Ruby on Rails==&lt;br /&gt;
[[File:RoR.png]]&lt;br /&gt;
&lt;br /&gt;
Ruby on rails is an open source&amp;lt;ref&amp;gt;[http://en.wikipedia.org/wiki/Open_source http://en.wikipedia.org/wiki/Open_source]&amp;lt;/ref&amp;gt; web application framework provided for Ruby programming language. It is developed by Rails Core Team&amp;lt;ref&amp;gt;[http://rubyonrails.org/core http://rubyonrails.org/core]&amp;lt;/ref&amp;gt; in July 2004. Even though Ruby on Rails is young, it has gained a lot of attention and wined much support from the developers. Another concept, Agile web development&amp;lt;ref&amp;gt;[http://blog.bitzesty.com/what-to-expect-from-an-agile-web-development http://blog.bitzesty.com/what-to-expect-from-an-agile-web-development]&amp;lt;/ref&amp;gt;which can help developers focus on things matters thus adding value to the website and make it better&amp;lt;ref&amp;gt;[http://sixrevisions.com/web-development/agile/ http://sixrevisions.com/web-development/agile/]&amp;lt;/ref&amp;gt;, is presented within the Rails community. Rails provides developers a framework which gives structure for all the code they write. The rails framework helps developers build applications and websites in an easy way because it simplifies and abstracts common repetitive tasks &amp;lt;ref&amp;gt;[http://blog.bitzesty.com/what-is-ruby-on-rails-and-why-should-i-use-it http://blog.bitzesty.com/what-is-ruby-on-rails-and-why-should-i-use-it]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Framework==&lt;br /&gt;
&lt;br /&gt;
Framework is a set of programs and/or code library that helps developer write most of the applications. By using a framework, it will facilitate the development process of the developers and make the developers pay more attention to the specific things they want. Another advantage of framework is it can enable to tie a bunch of discrete components together into something more useful and powerful&amp;lt;ref&amp;gt;[http://www.codeproject.com/KB/architecture/WhatIsAFramework.aspx http://www.codeproject.com/KB/architecture/WhatIsAFramework.aspx]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;b&amp;gt;Introduction to MVC framework&amp;lt;/b&amp;gt;=&lt;br /&gt;
The Model-View-Controller (MVC) principle divides the work of an application into three separate but closely cooperative subsystems. MVC divide the business logic into a Model layer and the view logic into a View layer. The Controller interacts with the Model and passes the required data to the View.&lt;br /&gt;
A Pictorial Diagram of Ruby on Rails framework’s working mechanism is given here&amp;lt;ref&amp;gt;[http://www.oracle.com/technetwork/articles/javase/mvc-136693.html http://www.oracle.com/technetwork/articles/javase/mvc-136693.html]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[File:Figure4.gif]] &lt;br /&gt;
&lt;br /&gt;
==Model (ActiveRecord)==&lt;br /&gt;
* Model maintains the relationship between the tables in a relational database&amp;lt;ref&amp;gt;[http://computer.howstuffworks.com/question599.htm http://computer.howstuffworks.com/question599.htm]&amp;lt;/ref&amp;gt; and the Ruby program code that manipulates database records.&lt;br /&gt;
*Models are Ruby classes, they communicate with database, store and validate data&amp;lt;ref&amp;gt;[http://en.wikipedia.org/wiki/Data_validation http://en.wikipedia.org/wiki/Data_validation]&amp;lt;/ref&amp;gt; and do the business logic. &lt;br /&gt;
*Models should be heavy enough to handle more business logic.&lt;br /&gt;
&lt;br /&gt;
==View (ActionView)==&lt;br /&gt;
*View renders and represents the data in a particular format. View is implemented in ActionView library which is an erb based system for defining presentation templates for data presentation&amp;lt;ref&amp;gt; [http://obsforandroid.wordpress.com/2011/06/24/ruby-on-rails-mvc-framework/ http://obsforandroid.wordpress.com/2011/06/24/ruby-on-rails-mvc-framework/ ]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
*Every web application should use view to do the interaction between the user and server and display what an authorized user wants to see.&lt;br /&gt;
&lt;br /&gt;
==Controller (ActionController)==&lt;br /&gt;
*Controller is implemented in ActionController which is a bridge between the view and the model governing the data flow within the application. &lt;br /&gt;
*Controllers should be light to just perform as a mediator or just retrieve the data from database which is to be passed to view to show. &lt;br /&gt;
*In short, the Controller processes input from the View and communicates with Model objects&amp;lt;ref&amp;gt;[http://www.converttolinux.com/ruby.shtml http://www.converttolinux.com/ruby.shtml]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Practical Example==&lt;br /&gt;
One example of MVC framework is to build a J2EE application. The developer can use servlets, JSPs to achieve many functions such as request a webpage, sending personal information, etc.  The developers are easy to maintain the status of the web applicaton by looing through the MVC of the working projet which is a very easy and an effective way to undate the application.&lt;br /&gt;
In addition, Below is a full http request cycle that can be described into the following steps&amp;lt;ref&amp;gt;[http://sixrevisions.com/web-development/four-ways-ruby-on-rails-can-help-you/ http://sixrevisions.com/web-development/four-ways-ruby-on-rails-can-help-you/]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[File: Mvcme.png|500px‎]]&lt;br /&gt;
&lt;br /&gt;
* The user sends an HTTP request by typing the requested URL into the browser. This request is routed to a specific method in the controller specified by the statements in routes.rb(In the entry: config).&lt;br /&gt;
*The method, being executed on the controller, interacts with the required model, which usually retrieves some data from the database.&lt;br /&gt;
*The controller then passes control to the view which specifies which HTML page should be rendered and makes use of any data passed by the controller.&lt;br /&gt;
*Then the response from the HTML is passed back to the users browser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=&amp;lt;b&amp;gt; Cookbook Application &amp;lt;/b&amp;gt;=&lt;br /&gt;
Now we will build a cookbook application to see what in it, and compare the difference among the files in Model, View and Controller. We will also impart some knowledge such as what is  &amp;lt;%= yield %&amp;gt; for and how to understand the Edit and Create method in Controller.  &lt;br /&gt;
 &lt;br /&gt;
== Creating a simple cookbook application ==&lt;br /&gt;
We may follow steps below to create a new cookbook application.&lt;br /&gt;
*In Rubymine&amp;lt;ref&amp;gt;[http://www.jetbrains.com/ruby/ http://www.jetbrains.com/ruby/]&amp;lt;/ref&amp;gt;, create a New Project named cookbook3 and set the project type to rails application&lt;br /&gt;
[[File: 1s.jpg|500px‎]]&lt;br /&gt;
&lt;br /&gt;
*In the Tools- Run Rails Generator, typing scaffold in the pop-up dialog box. In the case of the cookbook application, you can start by generating a scaffolded recipe: this will represent a single recipe&lt;br /&gt;
[[File: 2s.jpg|500px‎]]&lt;br /&gt;
&lt;br /&gt;
*In the pop-up scaffold dialog box, type recipe title:string description:string instruction:text under the entry Generator arguments.&lt;br /&gt;
*Repeat step 2 to generate a category&lt;br /&gt;
[[File: 3s.jpg|500px‎]]&lt;br /&gt;
&lt;br /&gt;
* Type category name:string under the entry Generator arguments in the Scaffold dialog box.&lt;br /&gt;
*After scaffolding, we need to run db migrate. Migrations are Ruby classes that are designed to make it simple to create and modify database tables. Rails uses rake commands to run migrations. By default, when you run the migrations they will create a categories table with a string column, and a recipes table with 2 string columns and a text column.&lt;br /&gt;
[[File: 4s.jpg|500px‎]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Parts in Controller==&lt;br /&gt;
The controller receives and translates input to requests on the model or view.&lt;br /&gt;
The controllers are typically responsible for calling methods on the model that change the state of the model. In an active model, this state change is then reflected in the view via the change propagation mechanism. In the passive model, the controller is responsible for telling the view when to update.&lt;br /&gt;
&lt;br /&gt;
===Problems and Solutions===&lt;br /&gt;
Problem1: In general, we want our web applications to keep their information in a relational database.  Although it is easy to think from a conceptual point of view, it is difficult to combine relational databases with object-oriented(OO) programming languages&amp;lt;ref&amp;gt;[http://download.oracle.com/javase/tutorial/java/concepts/ http://download.oracle.com/javase/tutorial/java/concepts/]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://www.orm.net/ http://www.orm.net/]&amp;lt;/ref&amp;gt;. Objects are all about data and operations, and databases are all about sets of values, Operations that are easy to express in relational terms are sometimes difficult to code in an OO system.&lt;br /&gt;
&lt;br /&gt;
Solution1: &lt;br /&gt;
*In rails, it uses ORM&amp;lt;ref&amp;gt;[http://en.wikipedia.org/wiki/Object-relational_mapping http://en.wikipedia.org/wiki/Object-relational_mapping]&amp;lt;/ref&amp;gt; libraries map database tables to classes. If in our database there is a table called recipes, our program will have a class named Recipe. Rows in this table correspond to the objects of the class&amp;lt;ref&amp;gt;Agile Web Development with Rails Fourth Editon. Author :Sam Ruby, Dave Thomas, David Heinemeier Hansson&amp;lt;/ref&amp;gt;. Within the particular object, attributes are used to get and set the individual columns. &lt;br /&gt;
*The Rails classes that wrap our database tables provide a set of class-level methods that perform table-level operations. &lt;br /&gt;
*Active Record&amp;lt;ref&amp;gt;[http://ar.rubyonrails.org/ http://ar.rubyonrails.org/]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[http://api.rubyonrails.org/classes/ActiveRecord/Base.html http://api.rubyonrails.org/classes/ActiveRecord/Base.html]&amp;lt;/ref&amp;gt; is the ORM layer supplied with Rails. It follows the standard ORM model: tables map to classes, rows to objects, and columns to object attributes.&lt;br /&gt;
If we want to find the category with a particular id, in ruby code, it looks like this as in method show in category controller:&lt;br /&gt;
@category = Category.find(params[:id])&lt;br /&gt;
The find method does a database access.&lt;br /&gt;
This illustrates two common features of Active Record calls.&lt;br /&gt;
* params is an object that holds all of the parameters passed in a browser request. &lt;br /&gt;
* params[:id] holds the id, or primary key, of the object. &lt;br /&gt;
We can also see the : @categories = Category.all in method index in category_controller. The all method is to retrieve all records from the Category table and assign the collection to a variable called @categories which later will be passed to View to show the category.&lt;br /&gt;
&lt;br /&gt;
Problem2: What is the difference between new and create method in category_controller? &lt;br /&gt;
&lt;br /&gt;
Solution2: The  new method prepares the form for display and is called first; the create method processes the data that was entered and attempts to save it to the db.&lt;br /&gt;
&lt;br /&gt;
Problem3: What is the difference between edit and update in category_controller?&lt;br /&gt;
&lt;br /&gt;
Solution3: Edit retrieves a table entry and displays it in a window.  When the changes are submitted, update is invoked.&lt;br /&gt;
&lt;br /&gt;
===How does Controller Work?===&lt;br /&gt;
&lt;br /&gt;
*The routes.rb determins the page where the welcome page should be.  Before the last statement : match ':controller(/:action(/:id(.:format)))', just add root :to =&amp;gt; 'categories#index'. And the category_controller’s method index will retrieve the data from the database and pass it to the view to show. So controllers is just acted as a bridge between the model and the view.&lt;br /&gt;
&lt;br /&gt;
When user clicks any links, it will first notify the Controller the action the user perform and if the data needed to get from the database, then the controller will communicate with the model to retrieve the data and then pass it to the view to show.&lt;br /&gt;
 &lt;br /&gt;
===Other Stuff===&lt;br /&gt;
&lt;br /&gt;
*We may find that &amp;lt;%= yield %&amp;gt; in application.html.erb and yield identifies a section where content from the view should be inserted. In this case, we will see the page where the routes.rb specified.&lt;br /&gt;
&lt;br /&gt;
* The “recipes_url”, “categories_url” will link to the urls pertaining to recipes and categories which will correspondingly show the recipe and category.&lt;br /&gt;
&lt;br /&gt;
* We can type in Localhost:3000 to find the homepage of our cookbook application where specified in the routes.rb.&lt;br /&gt;
&lt;br /&gt;
==Parts in Model==&lt;br /&gt;
The model manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller). In event-driven systems, the model notifies observers (usually views) when the information changes so that they can react.&lt;br /&gt;
&lt;br /&gt;
The model encapsulates the functional core of an application, its Domain Logic. The goal of MVC is to make the model independent of the view and controller which together form the user interface of the application. An object may act as the model for more than one MVC triad at a time.&lt;br /&gt;
Since the model must be independent, it cannot refer to either the view or controller portions of the application. The model may not hold direct instance variables that refer to the view or the controller. It passively supplies its services and data to the other layers of the application.&amp;lt;ref&amp;gt;[http://www.phpwact.org/pattern/model_view_controller http://www.phpwact.org/pattern/model_view_controller]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Models contain the relationships and validations. &lt;br /&gt;
&lt;br /&gt;
The relationships may be:&lt;br /&gt;
&lt;br /&gt;
• one-to-one (e.g. a university has a chancellor and a chancellor belongs to one university)&lt;br /&gt;
&amp;lt;pre&amp;gt;	&lt;br /&gt;
class Chancellor &amp;lt; ActiveRecord::Base&lt;br /&gt;
      belongs_to :university&lt;br /&gt;
      #...&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class University &amp;lt; ActiveRecord::Base&lt;br /&gt;
      has_one :chancellor&lt;br /&gt;
      #...&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
• one-to-many(e.g. a course has many sections)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Section &amp;lt; ActiveRecord::Base&lt;br /&gt;
      belongs_to :course&lt;br /&gt;
      #...&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Course &amp;lt; ActiveRecord::Base&lt;br /&gt;
      has_many :sections&lt;br /&gt;
      #...&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
• many-to-many(e.g. a course has many professors, professors have many courses)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Course &amp;lt; ActiveRecord::Base&lt;br /&gt;
      has_and_belongs_to_many :professors&lt;br /&gt;
      #...&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;	&lt;br /&gt;
class Professor &amp;lt; ActiveRecord:: Base&lt;br /&gt;
      has_and_belongs_to_many :course&lt;br /&gt;
      #...&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rails includes methods to help you validate the data that you send to models. If we want to make sure that each field is not blank (eg, in category), we can use validation in model category: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Category &amp;lt; ActiveRecord::Base&lt;br /&gt;
      validates :title,  :presence =&amp;gt; true&lt;br /&gt;
      validates :description, :presence =&amp;gt; true&lt;br /&gt;
      validates :instruction, :presence =&amp;gt; true&lt;br /&gt;
      #...&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will ensure that all categories have a title, a description and an instruction. Rails can validate a variety of conditions in a model, including the presence or uniqueness of columns, their format, and the existence of associated objects.&lt;br /&gt;
&lt;br /&gt;
==Parts in View==&lt;br /&gt;
The view obtains data from the model and presents the output of the application to the uses.&lt;br /&gt;
The view generally have free access to the model, but should not change the state of the model. Views are read only representations of the state of the model. The view reads data from the model using query methods provided by the model.&lt;br /&gt;
With an Active model, the view can register itself to receive notifications when the model changes, and the view can then present a more up to date version of the model.&lt;br /&gt;
Sometimes generic reusable view components can be arbitrarily connected to the model in a process known as binding.&lt;br /&gt;
&lt;br /&gt;
In this application, if we add the code below in the show.html.erb file under category folder, then in the page of category#show, we can see two links, which are &amp;quot;Edit&amp;quot; and &amp;quot;Back&amp;quot;, and by clicking these two links, we can be redirected to the edit category page and the category page with all listed categories.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;%= link_to 'Edit', edit_category_path(@category) %&amp;gt;&lt;br /&gt;
&amp;lt;%= link_to 'Back', categories_path %&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;b&amp;gt;Conclusion&amp;lt;/b&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
In this article, some basic knowledge about Ruby on Rails, framework and MVC is introduced. In addition, the article provides some important knowledge about Ruby on Rails through building the cookbook application, and solves some problems that readers may encounter. After reading this article, readers may learn some preliminary knowledge about the MVC, Ruby on Rails, framework and how the model, view and controller communicating with each other as a unit, thus be able to develop web applications using Ruby on Rails.&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;b&amp;gt;References &amp;lt;/b&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:4s.jpg&amp;diff=54166</id>
		<title>File:4s.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:4s.jpg&amp;diff=54166"/>
		<updated>2011-10-25T15:40:51Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:3s.jpg&amp;diff=54165</id>
		<title>File:3s.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:3s.jpg&amp;diff=54165"/>
		<updated>2011-10-25T15:40:41Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:2s.jpg&amp;diff=54164</id>
		<title>File:2s.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:2s.jpg&amp;diff=54164"/>
		<updated>2011-10-25T15:40:29Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:1s.jpg&amp;diff=54163</id>
		<title>File:1s.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:1s.jpg&amp;diff=54163"/>
		<updated>2011-10-25T15:40:18Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:2.jpg&amp;diff=54162</id>
		<title>File:2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:2.jpg&amp;diff=54162"/>
		<updated>2011-10-25T15:39:12Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: uploaded a new version of &amp;amp;quot;File:2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:1.jpg&amp;diff=54161</id>
		<title>File:1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:1.jpg&amp;diff=54161"/>
		<updated>2011-10-25T15:38:45Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: uploaded a new version of &amp;amp;quot;File:1.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Mvcme.png&amp;diff=52055</id>
		<title>File:Mvcme.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Mvcme.png&amp;diff=52055"/>
		<updated>2011-10-15T21:35:03Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Mvc.png&amp;diff=52054</id>
		<title>File:Mvc.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Mvc.png&amp;diff=52054"/>
		<updated>2011-10-15T21:33:29Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: uploaded a new version of &amp;amp;quot;File:Mvc.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Mvc.png&amp;diff=52053</id>
		<title>File:Mvc.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Mvc.png&amp;diff=52053"/>
		<updated>2011-10-15T21:32:18Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: uploaded a new version of &amp;amp;quot;File:Mvc.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Figure4.gif&amp;diff=52052</id>
		<title>File:Figure4.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Figure4.gif&amp;diff=52052"/>
		<updated>2011-10-15T21:09:31Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=52046</id>
		<title>CSC/ECE 517 Fall 2011/ch4 4d ls</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=52046"/>
		<updated>2011-10-15T19:55:38Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: Replaced content with &amp;quot;CSC/ECE 517 Fall 2011/ch4 4d ls
----
= Introduction =

===&amp;lt;b&amp;gt; edit &amp;lt;/b&amp;gt;===


===&amp;lt;b&amp;gt;edit&amp;lt;/b&amp;gt;===


=SECOND=


===&amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt;===

===&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;===

===&amp;lt;b&amp;gt;C&amp;lt;/b&amp;gt;===


= THIRD =

 

= C...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2011/ch4 4d ls&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; edit &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;edit&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=SECOND=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;C&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= THIRD =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] &lt;br /&gt;
*[2] &lt;br /&gt;
*[3] &lt;br /&gt;
*[4] &lt;br /&gt;
*[5] &lt;br /&gt;
*[6] &lt;br /&gt;
*[7] &lt;br /&gt;
*[8] &lt;br /&gt;
*[9] &lt;br /&gt;
*[10] &lt;br /&gt;
*[11] &lt;br /&gt;
*[12] &lt;br /&gt;
*[13] &lt;br /&gt;
*[14] &lt;br /&gt;
*[15] &lt;br /&gt;
*[16] &lt;br /&gt;
*[17] &lt;br /&gt;
*[18] &lt;br /&gt;
*[19] &lt;br /&gt;
*[20] &lt;br /&gt;
*[21] &lt;br /&gt;
*[22]&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=52045</id>
		<title>CSC/ECE 517 Fall 2011/ch4 4d ls</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=52045"/>
		<updated>2011-10-15T19:52:50Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2011/ch4 4d ls&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; edit &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;edit&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=SECOND=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;B&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;C&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= THIRD =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] &lt;br /&gt;
*[2] &lt;br /&gt;
*[3] &lt;br /&gt;
*[4] &lt;br /&gt;
*[5] &lt;br /&gt;
*[6] &lt;br /&gt;
*[7] &lt;br /&gt;
*[8] &lt;br /&gt;
*[9] &lt;br /&gt;
*[10] &lt;br /&gt;
*[11] &lt;br /&gt;
*[12] &lt;br /&gt;
*[13] &lt;br /&gt;
*[14] &lt;br /&gt;
*[15] &lt;br /&gt;
*[16] &lt;br /&gt;
*[17] &lt;br /&gt;
*[18] &lt;br /&gt;
*[19] &lt;br /&gt;
*[20] &lt;br /&gt;
*[21] &lt;br /&gt;
*[22]&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=52044</id>
		<title>CSC/ECE 517 Fall 2011/ch4 4d ls</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch4_4d_ls&amp;diff=52044"/>
		<updated>2011-10-15T19:48:22Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: Created page with &amp;quot;CSC/ECE 517 Fall 2011/ch4 4d ls ---- = Introduction =  ===&amp;lt;b&amp;gt; W &amp;lt;/b&amp;gt;===   ===&amp;lt;b&amp;gt;W&amp;lt;/b&amp;gt;===   =IDby=   ===&amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt;===  [http://www.aptana.com/products/studio3/download Installation ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2011/ch4 4d ls&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; W &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;W&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=IDby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;A&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/studio3/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JB&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/ruby/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JR&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://jruby.org/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
JRuby is a Java implementation of the Ruby programming language on JVM. It is equipped with the features such as high performance, real threading and vast array of libraries. And more importantly, it is platform independent, very easy to install.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntA&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/idea/download/index.html Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Rse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Ne&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/features/ruby/index.html  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;TurboRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/turboruby Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
TurboRuby provides method completion, parameter completion and syntax checking. And the Dependencies View in TurboRuby is a very useful tool because dependencies are updated in real-time during editing and navigation.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; d&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/3rdrail Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
3rdRails has featured such as a it has complete, turnkey Ruby on Rails runtime environment including databases, Ruby, Rails, and the Gem manager, providing the developers to make more accurate decisions and with fewer keystrokes to accomplish a command.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] &lt;br /&gt;
*[2] &lt;br /&gt;
*[3] &lt;br /&gt;
*[4] &lt;br /&gt;
*[5] &lt;br /&gt;
*[6] &lt;br /&gt;
*[7] &lt;br /&gt;
*[8] &lt;br /&gt;
*[9] &lt;br /&gt;
*[10] &lt;br /&gt;
*[11] &lt;br /&gt;
*[12] &lt;br /&gt;
*[13] &lt;br /&gt;
*[14] &lt;br /&gt;
*[15] &lt;br /&gt;
*[16] &lt;br /&gt;
*[17] &lt;br /&gt;
*[18] &lt;br /&gt;
*[19] &lt;br /&gt;
*[20] &lt;br /&gt;
*[21] &lt;br /&gt;
*[22]&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011&amp;diff=52043</id>
		<title>CSC/ECE 517 Fall 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011&amp;diff=52043"/>
		<updated>2011-10-15T19:41:31Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Link title]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1a ms]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1a cs]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1a ri]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1a lj]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1b sa]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1b ds]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1b tj]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1c cm]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1c sj]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1c ka]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1d sr]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1e vs]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1e aa]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1a sc]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1e dm]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1e an]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1e sa]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1e lm]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1g vn]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1f rs]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1f sv]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1g jn]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1h ps]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1e sm]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1i zf]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1g rn]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1i cl]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1d ss]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1i lj]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1h hs]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 1d gs]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 2b ns]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 2b jp]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 2a av]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2f jm]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2e ad]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2e kt]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2e gp]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 2b qu]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2c bs]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 2c rs]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 2a ca]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch1 2b rv]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2c ds]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2b sa]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2f vh]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch2 2e ps]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch3 3a oe]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch3 3h rr]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch3 3h ss]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch3 4b js]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch4 4i aa]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch4 4i sd]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch4 4d mt]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch4 4d ls]]&lt;br /&gt;
&lt;br /&gt;
*[[CSC/ECE 517 Fall 2011/ch4 4c ap]]&lt;br /&gt;
&lt;br /&gt;
*[[trial]]&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48890</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48890"/>
		<updated>2011-09-17T06:15:38Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/studio3/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/ruby/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://jruby.org/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
JRuby is a Java implementation of the Ruby programming language on JVM. It is equipped with the features such as high performance, real threading and vast array of libraries. And more importantly, it is platform independent, very easy to install.&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/idea/download/index.html Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/features/ruby/index.html  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;TurboRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/turboruby Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
TurboRuby provides method completion, parameter completion and syntax checking. And the Dependencies View in TurboRuby is a very useful tool because dependencies are updated in real-time during editing and navigation.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;3rdRail&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/3rdrail Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
3rdRails has featured such as a it has complete, turnkey Ruby on Rails runtime environment including databases, Ruby, Rails, and the Gem manager, providing the developers to make more accurate decisions and with fewer keystrokes to accomplish a command.&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48889</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48889"/>
		<updated>2011-09-17T06:15:22Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/studio3/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/ruby/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://jruby.org/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
JRuby is a Java implementation of the Ruby programming language on JVM. It is equipped with the features such as high performance, real threading and vast array of libraries. And more importantly, it is platform independent, very easy to install.&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/idea/download/index.html Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/features/ruby/index.html  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;TurboRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/turboruby Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
TurboRuby provides method completion, parameter completion and syntax checking. And the Dependencies View in TurboRuby is a very useful tool because dependencies are updated in real-time during editing and navigation.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;3rdRail&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/3rdrail Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
3rdRails has featured such as a it has complete, turnkey Ruby on Rails runtime environment including databases, Ruby, Rails, and the Gem manager, providing the developers to make more accurate decisions and with fewer keystrokes to accomplish a command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48888</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48888"/>
		<updated>2011-09-17T06:14:51Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/studio3/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/ruby/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://jruby.org/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
JRuby is a Java implementation of the Ruby programming language on JVM. It is equipped with the features such as high performance, real threading and vast array of libraries. And more importantly, it is platform independent, very easy to install.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/idea/download/index.html Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/features/ruby/index.html  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;TurboRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/turboruby Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
TurboRuby provides method completion, parameter completion and syntax checking. And the Dependencies View in TurboRuby is a very useful tool because dependencies are updated in real-time during editing and navigation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;3rdRail&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/3rdrail Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
3rdRails has featured such as a it has complete, turnkey Ruby on Rails runtime environment including databases, Ruby, Rails, and the Gem manager, providing the developers to make more accurate decisions and with fewer keystrokes to accomplish a command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48887</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48887"/>
		<updated>2011-09-17T06:13:43Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/studio3/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/ruby/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/idea/download/index.html Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/features/ruby/index.html  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://jruby.org/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
JRuby is a Java implementation of the Ruby programming language on JVM. It is equipped with the features such as high performance, real threading and vast array of libraries. And more importantly, it is platform independent, very easy to install.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;3rdRail&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/3rdrail Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
3rdRails has featured such as a it has complete, turnkey Ruby on Rails runtime environment including databases, Ruby, Rails, and the Gem manager, providing the developers to make more accurate decisions and with fewer keystrokes to accomplish a command.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;TurboRuby&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[https://downloads.embarcadero.com/free/turboruby Installation is here, click me!]]&lt;br /&gt;
&lt;br /&gt;
TurboRuby provides method completion, parameter completion and syntax checking. And the Dependencies View in TurboRuby is a very useful tool because dependencies are updated in real-time during editing and navigation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48886</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48886"/>
		<updated>2011-09-17T05:45:24Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.aptana.com/products/studio3/download Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/ruby/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://www.jetbrains.com/idea/download/index.html Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
[http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://netbeans.org/features/ruby/index.html  Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Installation is here, click me!]&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48885</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48885"/>
		<updated>2011-09-17T05:37:10Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Aptana RadRails */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click [http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48884</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48884"/>
		<updated>2011-09-17T05:35:34Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and easier to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a single editor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine documents and live demos in JetBrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins that can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool that means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompleting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem: Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in JetBrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a Netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48883</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48883"/>
		<updated>2011-09-17T05:31:32Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http://www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine docments and live demos in jetbrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem:Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in jetbrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48882</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48882"/>
		<updated>2011-09-17T05:27:46Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http:// www.ruby-lang.org/en/about/ here 1]. In addition, if you have problems installing or getting ruby, please see the IBM page [www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here 2]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE 3].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. Click[http://www.aptana.com/products/studio3/download here 4] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here 5] is the latest release version. You can find the RubyMine docments and live demos in jetbrains [http://www.jetbrains.com/ruby/documentation/index.html website 6]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link 7] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA 8].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse 9] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here 10]. This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource 11]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this 12] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website 13]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page 14].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem:Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in jetbrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website 15]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 16], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger 17], which also works with [http://jruby.org/ JRuby 18].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git 19]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS 20] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC 21] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control 22] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48881</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48881"/>
		<updated>2011-09-17T05:24:35Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http:// www.ruby-lang.org/en/about/ here (1)]. In addition, if you have problems installing or getting ruby, please see the IBM page [www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here (2)]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE (3)].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. Click[http://www.aptana.com/products/studio3/download here (4)] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here (5)] is the latest release version. You can find the RubyMine docments and live demos in jetbrains [http://www.jetbrains.com/ruby/documentation/index.html website (6)]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link (7)] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA (8)].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse (9)] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here (10)]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource (11)]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this (12)] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website (13)]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page (14)].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem:Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in jetbrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website (15)]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3 (16)], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger (17)], which also works with [http://jruby.org/ JRuby (18)].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git (19)]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS (20)] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC (21)] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control (22)] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48880</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48880"/>
		<updated>2011-09-17T05:13:54Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years. For more information, you can see the ruby’s official website [http:// www.ruby-lang.org/en/about/ here[2]]. In addition, if you have problems installing or getting ruby, please see the IBM page [www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 here[3]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE[1]].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. Click[http://www.aptana.com/products/studio3/download here[19]] for the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here[20]] is the latest release version. You can find the RubyMine docments and live demos in jetbrains [http://www.jetbrains.com/ruby/documentation/index.html website[21]]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ This link[22]] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp IntelliJ IDEA[23]].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse[4]] may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here[8]]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource[5]]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this[6]] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html on this website[7]]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology on wiki page[9]].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem:Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found in jetbrains [http://www.jetbrains.com/ruby/features/ruby_debugger.html website[10]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3[11]], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger[12]], which also works with [http://jruby.org/ JRuby[13]].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, [http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control Git[15]]and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS[17]] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC[18]] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. [http://www.jetbrains.com/idea/features/version_control.html version_control[16]] in jetbrains &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1] http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[3] http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[4] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[5] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[6] http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[7] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[8] http://www.jetbrains.com/idea/documentation/index.jsp&lt;br /&gt;
*[9] http://www.eclipse.org/downloads/&lt;br /&gt;
*[10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[11] http://netbeans.org/features/index.html&lt;br /&gt;
*[12] http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[13] http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[14] http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[15] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[16] http://aptana.org/products/radrails&lt;br /&gt;
*[17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[18] http://jruby.org/&lt;br /&gt;
*[19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[20] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[21] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[22] http://www.jetbrains.com/idea/features/version_control.html&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48409</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48409"/>
		<updated>2011-09-09T01:24:15Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem:Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found [http://www.jetbrains.com/ruby/features/ruby_debugger.html here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger], which also works with [http://jruby.org/ JRuby].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control Comparison==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, Git and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[11] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[12] http://aptana.org/products/radrails&lt;br /&gt;
*[13] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[14] http://jruby.org/&lt;br /&gt;
*[15]http://www.google.com/books?id=tjYEAAAAMBAJ&amp;amp;printsec=frontcover&amp;amp;source=gbs_ge_summary_r&amp;amp;cad=0#v=onepage&amp;amp;q=RADRAILS&amp;amp;f=false&lt;br /&gt;
*[16] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[17] http://www.jetbrains.com/idea/features/version_control.html&lt;br /&gt;
*[18] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[19] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[20] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[21] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[22]http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[23] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[24] http://www.jetbrains.com/idea/documentation/index.jsp&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48403</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48403"/>
		<updated>2011-09-09T01:21:17Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a cs&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem:Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found [http://www.jetbrains.com/ruby/features/ruby_debugger.html here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger], which also works with [http://jruby.org/ JRuby].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, Git and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[11] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[12] http://aptana.org/products/radrails&lt;br /&gt;
*[13] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[14] http://jruby.org/&lt;br /&gt;
*[15]http://www.google.com/books?id=tjYEAAAAMBAJ&amp;amp;printsec=frontcover&amp;amp;source=gbs_ge_summary_r&amp;amp;cad=0#v=onepage&amp;amp;q=RADRAILS&amp;amp;f=false&lt;br /&gt;
*[16] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[17] http://www.jetbrains.com/idea/features/version_control.html&lt;br /&gt;
*[18] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[19] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[20] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[21] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[22]http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[23] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[24] http://www.jetbrains.com/idea/documentation/index.jsp&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48402</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=48402"/>
		<updated>2011-09-09T01:19:45Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==General Features Comparison==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Keywords autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Syntax highlighting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code formatting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error reporting&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Error correction suggestion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Step-through debugging&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! General autocompletion&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Auto-spell checking&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Code folding&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Coloring&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Refactoring Comparison==&lt;br /&gt;
&lt;br /&gt;
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Encapsulate Field&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Type generalization&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Merge class parts in file&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!  Merge with external class parts&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Extract Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Split temporary variable&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Method&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Move Field&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Rename Method&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Pull Up (move to a superclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Push Down (move to a subclass)&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Inline class &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
== Debugger Comparison ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
!Debugger&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
| In the [http://aptana.org/products/studio3/releasenotes 3.0.4 Release (2011-08-15)]  , it has fixed and improved the problem:Unable to run Ruby debugger on Windows. &lt;br /&gt;
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs.&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|The debugger has advanced graphical debugger which can be customized, that means it is easy for people to set the view and select toolbar command, etc. It also has the features such as flexible breakpoints, Dedicated Watches View and Remote Debugging. These can be found [http://www.jetbrains.com/ruby/features/ruby_debugger.html here]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
| When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation. &lt;br /&gt;
Also, IntelliJ IDEA provides you with the ability to specify how various objects are displayed in the debugger. In addition, it will save time when one wants to analyze complicated output of the debugger.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|The debugger functionality in Eclipse plug-in version is integrated as part of [http://aptana.org/products/radrails Aptana Studio 3], which implement almost the same as what RadRials'&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|It is all-convenient to set breakpoints, navigate the call stack and switch threads. What is more, debugging Ruby files that are not part of a netbeans project is also handy. This IDE supports the [http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger Fast Ruby debugger], which also works with [http://jruby.org/ JRuby].&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|The main distinct difference is that the debugger is lightweight and faster than the previous ones.  When using the debug functionality, you can have only one Ruby code line processed by the interpreter and the return value will be inserted inline. &lt;br /&gt;
It is easy to simply run a specified location in the code to check the value and invoke methods of objects.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Version Control==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! Version Control Systems&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! RadRails&lt;br /&gt;
|  RadRails integrates with CVS, Git and SVN systems. It dose not integrate with Perfoce or with [http://en.wikipedia.org/wiki/Revision_control VCS] that use the Window [http://docs.activestate.com/komodo/4.4/scc.html SCC] interface convetion  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
| Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
|  IntelliJ IDEA integrates with CVS, Git, SVN and Perforce.&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
|  RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
|  Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! TextMate&lt;br /&gt;
|  TextMate integrates with CVS, SVN, Git.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
In this wiki article, it first presents some advanced and mostly used Ruby IDEs and then compare the different aspects and main features of these IDEs. After reading this article, one would expect to know the basic knowledge of  ruby and form a general conception of advantages in various IDEs. This article imparts readers with knowledge about ruby, and helps to choose from different IDEs to suit one’s specific needs.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;br /&gt;
*[11] http://www.jetbrains.com/ruby/features/ruby_debugger.html&lt;br /&gt;
*[12] http://aptana.org/products/radrails&lt;br /&gt;
*[13] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger&lt;br /&gt;
*[14] http://jruby.org/&lt;br /&gt;
*[15]http://www.google.com/books?id=tjYEAAAAMBAJ&amp;amp;printsec=frontcover&amp;amp;source=gbs_ge_summary_r&amp;amp;cad=0#v=onepage&amp;amp;q=RADRAILS&amp;amp;f=false&lt;br /&gt;
*[16] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control&lt;br /&gt;
*[17] http://www.jetbrains.com/idea/features/version_control.html&lt;br /&gt;
*[18] http://docs.activestate.com/komodo/4.4/scc.html&lt;br /&gt;
*[19] http://en.wikipedia.org/wiki/Revision_control&lt;br /&gt;
*[20] http://www.aptana.com/products/studio3/download&lt;br /&gt;
*[21] http://www.jetbrains.com/ruby/download/&lt;br /&gt;
*[22]http://www.jetbrains.com/ruby/documentation/index.html&lt;br /&gt;
*[23] http://www.jetbrains.com/idea/download/&lt;br /&gt;
*[24] http://www.jetbrains.com/idea/documentation/index.jsp&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47578</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47578"/>
		<updated>2011-09-08T15:26:24Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=47576</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a ms</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_ms&amp;diff=47576"/>
		<updated>2011-09-08T15:25:58Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47321</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47321"/>
		<updated>2011-09-08T03:23:29Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Basic Comparison ==&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47319</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47319"/>
		<updated>2011-09-08T03:22:48Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 ===&amp;lt;b&amp;gt; Basic Comparison &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47315</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47315"/>
		<updated>2011-09-08T03:21:59Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 ===&amp;lt;b&amp;gt;Basic comparison&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47311</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47311"/>
		<updated>2011-09-08T03:21:17Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 ===&amp;lt;b&amp;gt;Basic comparison&amp;lt;\b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47309</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47309"/>
		<updated>2011-09-08T03:20:55Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 ==&amp;lt;b&amp;gt;Basic comparison&amp;lt;/b&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47308</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47308"/>
		<updated>2011-09-08T03:20:45Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 ===&amp;lt;b&amp;gt;Basic comparison&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47306</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47306"/>
		<updated>2011-09-08T03:20:31Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
 ===&amp;lt;b&amp;gt;Basic comparison:&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47255</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47255"/>
		<updated>2011-09-08T02:53:41Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
Here is some basic comparison:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47254</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47254"/>
		<updated>2011-09-08T02:53:26Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
Here is some basic comparison:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version(can be used)&lt;br /&gt;
| Aptana Studio 3&lt;br /&gt;
| Ruby mine 3.2.4&lt;br /&gt;
| IntelliJ IDEA 10.5&lt;br /&gt;
| 24 Jul 2008&lt;br /&gt;
| NetBeans IDE 6.9.1&lt;br /&gt;
| TextMate 2&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47228</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47228"/>
		<updated>2011-09-08T02:38:03Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
Here is some basic comparison:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| Mac OS&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|f&lt;br /&gt;
|f&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47216</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47216"/>
		<updated>2011-09-08T02:34:10Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Comparison */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
Here is some basic comparison:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
| Aptana, Inc.&lt;br /&gt;
| JetBrains&lt;br /&gt;
| JetBrains&lt;br /&gt;
| IBM Corp.&lt;br /&gt;
| Oracle Corp.&lt;br /&gt;
| MacroMates Ltd.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
| cross-platform&lt;br /&gt;
|f&lt;br /&gt;
|f&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|f&lt;br /&gt;
|f&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47184</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47184"/>
		<updated>2011-09-08T02:20:13Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! IDE&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
! IntelliJ IDEA&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! TextMate&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Developer&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|f&lt;br /&gt;
|f&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|f&lt;br /&gt;
|f&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Latest Release Version&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|f&lt;br /&gt;
|f&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47149</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47149"/>
		<updated>2011-09-08T02:03:19Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? &amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|-&lt;br /&gt;
! rich code completion&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47147</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47147"/>
		<updated>2011-09-08T02:02:44Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? ===&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?===&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|-&lt;br /&gt;
! rich code completion&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47146</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47146"/>
		<updated>2011-09-08T02:02:30Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt; What is Ruby? ===&amp;lt;/b&amp;gt;&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;What is IDE?===&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|-&lt;br /&gt;
! rich code completion&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47144</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47144"/>
		<updated>2011-09-08T02:01:10Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
== What is Ruby? ==&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
==What is IDE?==&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|-&lt;br /&gt;
! rich code completion&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47143</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47143"/>
		<updated>2011-09-08T02:00:29Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
== What is Ruby? ==&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
==How to interpret IDE?==&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;JetBrains RubyMine&amp;lt;/b&amp;gt;===&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;IntelliJ IDEA&amp;lt;/b&amp;gt;===&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;RDT Eclipse&amp;lt;/b&amp;gt;=== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Netbeans Ruby Support&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Textmate&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|-&lt;br /&gt;
! rich code completion&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47142</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47142"/>
		<updated>2011-09-08T01:59:19Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
== What is Ruby? ==&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
==How to interpret IDE?==&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;b&amp;gt;Aptana RadRails&amp;lt;/b&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
RadRails (Rapid Application Development IDE) is a free, open source IDE for Ruby and Rails applications. The RadRails IDE is built on the Eclipse RCP, and includes the RDT and Subclipse plug-in. The RadRails tools are also available as Eclipse +plug-ins. Aptana RadRails is a high-rated development tool that seeks to help users program in a more convenient free IDE. When developing a Rails project, there are more things to do than the source code itself. RadRails is now included as part of Aptana Studio 3. No extra download required--now integrated into a singleeditor. [http://www.aptana.com/products/studio3/download Here] is the latest release version. You can find the supporting documentation [http://aptana.org/products/studio3/getting_started here].&lt;br /&gt;
&lt;br /&gt;
==JetBrains RubyMine==&lt;br /&gt;
RubyMine is a new IDE for Ruby and Rails developers, which is built on JetBrains' IntelliJ IDEA platform. RubyMine provides all of the essential features a programmer might expect of an IDE, such as editor, debugging tools, source control integration, code completion, and so on. Besides, RubyMine also provides extra excellent features specific to Ruby, including GUI-based support for RSpec and Test::Unit. [http://www.jetbrains.com/ruby/download/ Here] is the latest release version. You can find the RubyMine docments and live demos [http://www.jetbrains.com/ruby/documentation/index.html here]. &lt;br /&gt;
&lt;br /&gt;
==IntelliJ IDEA==&lt;br /&gt;
IntelliJ IDEA is a code-centric IDE focused on developer productivity. IDEA editor can understands the code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help refactor code. [http://www.jetbrains.com/idea/download/ Here] provides the latest release version of IntelliJ IDEA. You can find the Keymap, How-Tos articles and live demos of IntelliJ IDEA [http://www.jetbrains.com/idea/documentation/index.jsp here].&lt;br /&gt;
&lt;br /&gt;
==RDT Eclipse== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
==Netbeans Ruby Support==&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
==Textmate==&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|-&lt;br /&gt;
! rich code completion&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47102</id>
		<title>CSC/ECE 517 Fall 2011/ch1 1a cs</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2011/ch1_1a_cs&amp;diff=47102"/>
		<updated>2011-09-08T01:44:30Z</updated>

		<summary type="html">&lt;p&gt;Hsun6: /* Textmate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC/ECE 517 Fall 2010/ch1 1a ms&lt;br /&gt;
----&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
== What is Ruby? ==&lt;br /&gt;
Ruby is a programming language, much like PHP, Python, or Perl. However, users of Ruby believe that this programming language has a more sophisticated and powerful syntax than other programming languages. The Ruby language seems to combine the best of all the other languages. For instance, it has Python’s ease of usability, the simplicity which Perl is famous for, and also has the conceptual elegance that Smalltalk is popular for. The Ruby language first originated in the early 1990s but has become extremely popular with programmers all over the world only in the last few years.&lt;br /&gt;
&lt;br /&gt;
==How to interpret IDE?==&lt;br /&gt;
&lt;br /&gt;
Just imagine a picture, you take off shoes and running on the beach on a sunny day. The breeze touches our face and you are free to feel the sand using your feet. But in case that there is maybe a sharpened thing which is a threat to your feet. So we need a tradeoff from direct satisfaction to safety faced. You do not need to worry about whether your feet will be scratched to bleed or something when wearing shoes. So IDE is just like the shoes and command line is just like the bare feet. It is your choice to choose between the command line and the IDE, but it is essential to know that IDE is just a name of set of tools to make it more comfortable and more easy to implement some functionality. There are many shoes brand there are there for you to choose. &lt;br /&gt;
&lt;br /&gt;
IDEs are designed to maximize programmer productivity by providing tightly-knit components with similar user interfaces. This should mean that the programmer has to do less mode switching versus using discrete development programs. However, because an IDE is a complicated piece of software by its very nature, this higher productivity only occurs after a lengthy learning process.&lt;br /&gt;
Most IDEs have tools that allow you to:&lt;br /&gt;
*	Write and edit source code&lt;br /&gt;
*	See errors as you type&lt;br /&gt;
*	See highlighted code syntax&lt;br /&gt;
*	Automate repetitive tasks&lt;br /&gt;
*	Compile code&lt;br /&gt;
*	Browse class structures&lt;br /&gt;
*	View JavaDocs&lt;br /&gt;
*	Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections&lt;br /&gt;
&lt;br /&gt;
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information : [http://en.wikipedia.org/wiki/Integrated_development_environment IDE].&lt;br /&gt;
&lt;br /&gt;
=IDEs for Ruby=&lt;br /&gt;
&lt;br /&gt;
==RDT Eclipse== &lt;br /&gt;
&lt;br /&gt;
The RDT Eclipse  stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to [http://www.ruby-lang.org/en/ here] for your platform of choice. Now that a specific version of Ruby have installed on your computer.  Second, please install the eclipse, more information about what is [http://www.eclipse.org/ Eclipse] and how to install [http://www.eclipse.org/downloads/ Eclipse] may found above. Third, in order to make it work, RDT is required to install (see [http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html here]). This is a plug-in for Eclipse that provides many features you've got used to. On how to download a new version and update your plug-in,  [http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062 this] link maybe useful.&lt;br /&gt;
&lt;br /&gt;
==Netbeans Ruby Support==&lt;br /&gt;
&lt;br /&gt;
The NetBeans Ruby support plug-ins offer an integrated development environment for building, running, testing, and debugging Ruby and Ruby on Rails applications. On how to install latest NetbeansIDE, see [http://netbeans.org/features/index.html/ Resource]. About how to install the ruby support into the Netbeans IDE. You may find  [http://wiki.netbeans.org/RubyInstallation this] useful. The main features the IDE offer are [http://netbeans.org/features/ruby/index.html here]. If one encounters problems when installing the plug-in in Netbeans,  [http://netbeans.org/community/news/community.html here] is for latest upgrade or notification from their official website. A useful community supported by Netbeans is [http://netbeans.org/community/index.html this]&lt;br /&gt;
&lt;br /&gt;
==Textmate==&lt;br /&gt;
&lt;br /&gt;
[http://macromates.com/ Textmate] is a powerful text editor for mac OS. It is beneficial that many people are working to develop bundles and plugins which can extend the functionality of the TextMate so that one can work with many kinds of languages such as Ruby. By using bundles, shortcuts, macros can be added to the TextMate to do further programming. What is more, TextMate is a lightweight development tool which means only a few rules needed to follow in order to do the development. More information about the lightweight tools can be found [http://en.wikipedia.org/wiki/Lightweight_methodology here].&lt;br /&gt;
&lt;br /&gt;
= Comparison =&lt;br /&gt;
&lt;br /&gt;
We classify each features realized by different IDEs as A, B, C and D. If a feature is ranked A among different IDEs, that means that if you are plan to use this feature, it is highly recommended that you should use this IDE.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
! RDT Eclipse&lt;br /&gt;
! Netbeans Ruby Support&lt;br /&gt;
! RadRails&lt;br /&gt;
! Ruby Mine&lt;br /&gt;
|-&lt;br /&gt;
! rich code completion&lt;br /&gt;
|a&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
|b&lt;br /&gt;
 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Conclusion=&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[1]http://en.wikipedia.org/wiki/Integrated_development_environment&lt;br /&gt;
*[2]http://www.ruby-lang.org/en/about/&lt;br /&gt;
*[3]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[4]http://www.eclipse.org/downloads/&lt;br /&gt;
*[5]http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062&lt;br /&gt;
*[6]http://netbeans.org/features/index.html&lt;br /&gt;
*[7]http://wiki.netbeans.org/RubyInstallation&lt;br /&gt;
*[8]http://netbeans.org/features/ruby/index.html&lt;br /&gt;
*[9]http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html&lt;br /&gt;
*[10]http://en.wikipedia.org/wiki/Lightweight_methodology&lt;/div&gt;</summary>
		<author><name>Hsun6</name></author>
	</entry>
</feed>