CSC/ECE 517 Fall 2011/ch1 1a cs
CSC/ECE 517 Fall 2010/ch1 1a cs
Introduction
What is Ruby?
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 here 1. In addition, if you have problems installing or getting ruby, please see the IBM page here 2
What is IDE?
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.
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. Most IDEs have tools that allow you to:
- Write and edit source code
- See errors as you type
- See highlighted code syntax
- Automate repetitive tasks
- Compile code
- Browse class structures
- View JavaDocs
- Use drag-and-drop utilities for easy building of features, such as graphic objects or creating database connections
The mostly used IDE are: Aptana RadRails, Ruby Mine, Eclipse, and NetBeans. You may find more information: IDE 3.
IDEs for Ruby
Aptana RadRails
Installation is here, click me!
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. Clickhere 4 for the latest release version. You can find the supporting documentation here.
JetBrains RubyMine
Installation is here, click me!
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. Here 5 is the latest release version. You can find the RubyMine documents and live demos in JetBrains website 6.
IntelliJ IDEA
Installation is here, click me!
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. 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 IntelliJ IDEA 8.
RDT Eclipse
Installation is here, click me!
The RDT Eclipse stands for Ruby Development Tools plug-in for Eclipse. To install ruby, please go to 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 Eclipse and how to install Eclipse 9 may found above. Third, in order to make it work, RDT is required to install (see IBM page for more help, click 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, this link maybe useful.
Netbeans Ruby Support
Installation is here, click me!
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 Resource 11. About how to install the ruby support into the Netbeans IDE. You may find this 12 useful. The main features the IDE offer are on this website 13. If one encounters problems when installing the plug-in in Netbeans, here is for latest upgrade or notification from their official website. A useful community supported by Netbeans is this
Textmate
Installation is here, click me!
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 on wiki page 14.
JRuby
Installation is here, click me!
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.
3rdRail
Installation is here, click me!]
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.
TurboRuby
Installation is here, click me!]
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.
Comparison
Basic Comparison
IDE | RadRails | Ruby Mine | IntelliJ IDEA | RDT Eclipse | Netbeans Ruby Support | TextMate |
---|---|---|---|---|---|---|
Developer | Aptana, Inc. | JetBrains | JetBrains | IBM Corp. | Oracle Corp. | MacroMates Ltd. |
Platform | cross-platform | cross-platform | cross-platform | cross-platform | cross-platform | Mac OS |
Latest Release Version(can be used) | Aptana Studio 3 | Ruby mine 3.2.4 | IntelliJ IDEA 10.5 | 24 Jul 2008 | NetBeans IDE 6.9.1 | TextMate 2 |
General Features Comparison
IDE | RadRails | Ruby Mine | IntelliJ IDEA | RDT Eclipse | Netbeans Ruby Support | TextMate |
---|---|---|---|---|---|---|
Keywords autocompletion | YES | YES | YES | YES | YES | YES |
Syntax highlighting | YES | YES | YES | YES | YES | YES |
Code formatting | YES | YES | YES | YES | YES | YES |
Error reporting | YES | YES | YES | YES | YES | YES |
Error correction suggestion | YES | YES | YES | YES | YES | YES |
Step-through debugging | YES | YES | YES | YES | YES | YES |
General autocompleting | YES | YES | NO | YES | YES | NO |
Auto-spell checking | YES | YES | NO | YES | YES | NO |
Code folding | YES | YES | YES | YES | YES | YES |
Coloring | YES | YES | YES | YES | YES | YES |
Refactoring Comparison
Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.
IDE | RadRails | Ruby Mine | IntelliJ IDEA | RDT Eclipse | Netbeans Ruby Support | TextMate |
---|---|---|---|---|---|---|
Encapsulate Field | YES | YES | NO | YES | NO | NO |
Type generalization | NO | NO | NO | YES | NO | NO |
Merge class parts in file | YES | NO | NO | YES | NO | NO |
Merge with external class parts | YES | NO | NO | YES | NO | NO |
Extract Method | YES | NO | NO | YES | NO | NO |
Split temporary variable | YES | NO | NO | YES | NO | NO |
Move Method | YES | NO | NO | YES | NO | NO |
Move Field | YES | NO | NO | YES | NO | NO |
Rename Method | YES | YES | YES | YES | YES | YES |
Pull Up (move to a superclass) | YES | NO | NO | YES | NO | NO |
Push Down (move to a subclass) | YES | NO | NO | YES | NO | NO |
Inline class | YES | NO | NO | YES | NO | NO |
Debugger Comparison
IDE | Debugger |
---|---|
RadRails | In the 3.0.4 Release (2011-08-15) , it has fixed and improved the problem: Unable to run Ruby debugger on Windows.
It can set breakpoints, inspect variables, control execution where the Radrails can help you with eliminating theses bugs. |
Ruby Mine | 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 website 15 |
IntelliJ IDEA | When doing debugging, it is easy to take snapshots of arbitrary threads and dump them to dedicated debugger for further investigation.
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. |
RDT Eclipse | The debugger functionality in Eclipse plug-in version is integrated as part of Aptana Studio 3 16, which implement almost the same as what RadRials' |
Netbeans Ruby Support | 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 Fast Ruby debugger 17, which also works with JRuby 18. |
TextMate | 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.
It is easy to simply run a specified location in the code to check the value and invoke methods of objects. |
Version Control Comparison
IDE | Version Control Systems |
---|---|
RadRails | RadRails integrates with CVS, Git 19and SVN systems. It dose not integrate with Perfoce or with VCS 20 that use the Window SCC 21 interface convetion |
Ruby Mine | Ruby Mine integrates with CVS, Git, SVN, GitHub and Perforce. version_control 22 in jetbrains |
IntelliJ IDEA | IntelliJ IDEA integrates with CVS, Git, SVN and Perforce. |
RDT Eclipse | RDT Eclipse integrates with CVS, SVN, Git, Mercurial and Clearcase |
Netbeans Ruby Support | Netbeans integrates with CVS,SVN, Mercurial and Clearcase. It dose not integrates with Git. |
TextMate | TextMate integrates with CVS, SVN, Git. |
Conclusion
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.
References
- [1] http://www.ruby-lang.org/en/about/
- [2] http://www.ibm.com/developerworks/opensource/library/os-rubyeclipse/#N10062
- [3] http://en.wikipedia.org/wiki/Integrated_development_environment
- [4] http://www.aptana.com/products/studio3/download
- [5] http://www.jetbrains.com/ruby/download/
- [6] http://www.jetbrains.com/ruby/documentation/index.html
- [7] http://www.jetbrains.com/idea/download/
- [8] http://www.jetbrains.com/idea/documentation/index.jsp
- [9] http://www.eclipse.org/downloads/
- [10] http://www.ibm.com/developerworks/opensource/library/os-eclipse-rdt/index.html
- [11] http://netbeans.org/features/index.html
- [12] http://wiki.netbeans.org/RubyInstallation
- [13] http://netbeans.org/features/ruby/index.html
- [14] http://en.wikipedia.org/wiki/Lightweight_methodology
- [15] http://www.jetbrains.com/ruby/features/ruby_debugger.html
- [16] http://aptana.org/products/radrails
- [17] http://blogs.oracle.com/observatory/entry/installer_the_fast_ruby_debugger
- [18] http://jruby.org/
- [19] http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:version_control
- [20] http://en.wikipedia.org/wiki/Revision_control
- [21] http://docs.activestate.com/komodo/4.4/scc.html
- [22] http://www.jetbrains.com/idea/features/version_control.html