CSC/ECE 517 Fall 2011/ch1 1a ri: Difference between revisions
No edit summary |
|||
(14 intermediate revisions by 2 users not shown) | |||
Line 58: | Line 58: | ||
Users can download the latest version [http://homepage2.nifty.com/sakazuki/rde_en/download.html here]. The tutorial can be found [http://homepage2.nifty.com/sakazuki/rde_en/manual.html here]. | Users can download the latest version [http://homepage2.nifty.com/sakazuki/rde_en/download.html here]. The tutorial can be found [http://homepage2.nifty.com/sakazuki/rde_en/manual.html here]. | ||
= Comparison = | = Comparison of some famous IDEs = | ||
===<b>Features</b>=== | ===<b>Features</b>=== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 130: | Line 130: | ||
| No | | No | ||
| No | | No | ||
|- | |||
!JRuby | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|Yes | |||
|No | |||
|Yes | |||
|- | |||
!Geany | |||
|Yes | |||
|Yes | |||
|yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|- | |||
!IntelliJ IDEA | |||
|Yes | |||
|Yes | |||
|yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|- | |||
!Bluefish | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|- | |||
!Shift EDIT | |||
|Yes | |||
|Yes | |||
|yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|- | |||
!TurboRuby | |||
|Yes | |||
|No | |||
|Yes | |||
|No | |||
|No | |||
|Yes | |||
|Yes | |||
|- | |||
!Arcadia | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|- | |||
!Ruby Development Environment(RDE) | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|} | |} | ||
Line 286: | Line 367: | ||
| Yes | | Yes | ||
|- | |||
!JRuby | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|Yes | |||
|No | |||
|No | |||
|- | |||
!Geany | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|Yes | |||
|No | |||
|- | |||
!IntelliJ IDEA | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|Yes | |||
|Yes | |||
|- | |||
!Bluefish | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|Yes | |||
|No | |||
|- | |||
!Shift EDIT | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|Yes | |||
|Yes | |||
|No | |||
|- | |||
!TurboRuby | |||
|Yes | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|- | |||
!Arcadia | |||
|yes | |||
|No | |||
|No | |||
|Yes | |||
|Yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|- | |||
!Ruby Development Environment(RDE) | |||
|Yes | |||
|yes | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|No | |||
|} | |} | ||
===<b>Version control</b>=== | ===<b>Version control</b>=== | ||
Almost all the ruby IDE under comparison support CVS, Subversion or Git. And some of the IDEs also supported other version control software, such as Ruby Mine also support perforce and GitHub, etc. Their detailed features are | Almost all the ruby IDE under comparison support CVS, Subversion or Git. And some of the IDEs also supported other version control software, such as Ruby Mine also support perforce and GitHub, etc. Their detailed features are | ||
1. All the files that have been changed, deleted, just created and not yet under version control, are displayed in a single Changes tool window | 1. All the files that have been changed, deleted, just created and not yet under version control, are displayed in a single Changes tool window | ||
2. The editor uses color coding to highlight added/deleted/modified lines. | 2. The editor uses color coding to highlight added/deleted/modified lines. | ||
3. Use the diff viewer to resolve merge conflicts in an intuitive way. | 3. Use the diff viewer to resolve merge conflicts in an intuitive way. | ||
4. Patches and Arbitrary Reverting, creating patches directly from the code that you can later apply and merge with repository files. | 4. Patches and Arbitrary Reverting, creating patches directly from the code that you can later apply and merge with repository files. | ||
5. View revision history for project/folder/file | 5. View revision history for project/folder/file | ||
Latest revision as of 03:12, 18 September 2011
Introduction
There are a lot of IDEs(Integrated Development Environment) for Ruby language, they have different features and can be applied on different platforms. Here is a brief introduction and feature comparisons of popular Ruby IDEs.
List and introduction of Ruby IDEs
Aptana RadRails
Aptana RadRails is a free and open source development tool that allows programmers working with Ruby or Ruby on Rails to utilize a fully featured free IDE for programming. This free IDE for Ruby is an excellent tool for programmers using these tools to debug code and ensure that the code they produce is completely free of errors. Aptana RadRails comes from the makers of Apanta Studio, and it is now included in Aptanta Studio 3, here is the latest release version.
Ruby Mine
RubyMine is the smart IDE for Ruby projects with intelligent full-featured code editor for effective Ruby development, here is its latest release version and its tutorial link. It is built on built on JetBrains' IntelliJ IDEA platform.
Eclipse and EasyEclipse
EasyEclipse packages together Eclipse, the open-source software development platform, and selected open source plugins. Eclipse is one of the most popular programming IDEs available today. Very few development environments can stand against it in terms of features or ease of use. Except for editing very small/few number of files, for which the fast responsiveness of the simple editors might be more desirable, Eclipse is becoming the most preferred development environment emacs. The open source license and the plugin system has also meant that the IDE today supports most of the popular programming languages making Eclipse far more than just a Java IDE.
NetBeans
NetBeans IDE is a free, open-source integrated development environment for software developers. The NetBean ruby support plug-ins provide an integrated development environment for building, running, testing, and debugging ruby and ruby on rails applications. The latest release NetBeans 7.0 is no longer support ruby (you could find those information here), however, you could download a ruby-only version of the Netbeans IDE or add ruby support to your NetBeans IDE download. Here is the instructions for ruby installation.
RubyForge
RubyForge is a collaborative software development management system dedicated to projects related to Ruby programming lanaguages started by ruby central, it houses one-click ruby installer for programmer to set up the ruby programming environment on Windows. And rake, available at RubyForge.org, is Ruby’s build tool. Rake offers a language for performing builds, offering the best of Make and Ant. It also demonstrates how the flexible syntax of Ruby makes it easy to create highly specific domain-specific languages.
ActiveState Komodo
ActiveState Komodo is a professional IDE for Python, php, ruby, JavaScript, Perl and Web Dev. And whether you develop for Windows, Mac or Linux-or all three-Komodo is a fast, full-featured IED that you can rely on. For using it, you could try a free trial, also you could buy the professional Komodo IDE. Komodo IDE was a software previously geared toward dynamic languages such as Perl, PHP and Python. And now, Komodo also support ruby.
Eric
Eric is a full featured Python and Ruby editor and IDE, written in python. It is based on the cross platform Qt gui toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everyday’s quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder. Eric4 includes a plugin system, which allows easy extension of the IDE functionality with plugins downloadable from the net. You could find the latest release of Eric here.
Free ride
FreeRIDE is a project hold in RubyForge.org, and it’s a pure Ruby Integrated Development environment. FreeRIDE aims to be a fully-featured, first-class IDE on a par with those available for other languages, with all the best-of-breed features that you would expect in a high-end IDE. Actually, in current state, FreeRIDE cannot yet be called a real IDE although it is already being used by many Ruby developers. What is does have ia a stable infrastructure with all the working plumbing needed for the hordes of anxious Ruby developers that want to create plugins to extend the functionality of FreeIDE.
JRuby
JRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code (similar to Jython for the Python language). The latest release is 1.6.4, and the tutorial can be found here.
Geany
Geany is a lightweight cross-platform GTK+ text editor based on Scintilla and including basic Integrated Development Environment (IDE) features. It is designed to have short load times, with limited dependency on separate packages or external libraries. It is available for a wide range of operating systems, such as BSD, Linux, Mac OS X, Solaris and Windows. Among the supported programming languages are C, Java, JavaScript, PHP, HTML, CSS, Python, Perl, Ruby, Pascal, Haskell and many others. The latest release is 0.20, the tutorial can be found here.
IntelliJ IDEA
IntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ." A 30-day fully functional trial of the IntelliJ IDEA commercial edition for various platforms can be freely downloaded. Also available is an open source Community Edition. Its supported language include Ruby. The stable release is 10.5.1, and the tutorial can be found here.
Bluefish
Bluefish is a web design editor focused towards the development of dynamic websites. Bluefish supports development in (among others) HTML, XHTML, CSS, XML, PHP, C, C++, JavaScript, Java, SQL, Perl, ColdFusion, JSP, Python, Ruby and shell. Bluefish is available on most platforms, including Linux, Solaris and Mac OS X, and Windows. Bluefish is developed in C/GTK+ and can be used integrated in GNOME or independent from GNOME. Bluefish fills the niche market between the plain text editors and the full swing IDE: Bluefish is relatively lightweight and easy to learn, while still providing many features to support the development of websites. The latest stable version is Bluefish 2.0.3, the tutorial can be found here.
Shift EDIT
ShiftEdit is an web-based IDE for developing PHP, Ruby, Python, Perl, HTML, CSS and JavaScript via FTP, SFTP and Dropbox. The following browsers are supported: Firefox 3.6, Chrome 5, Safari 5, IE7+. ShiftCreate Ltd are the company behind ShiftEdit. ShiftEdit will always be free.You can get started here.
TurboRuby
TurboRuby is a complete, integrated development environment built from the ground up to streamline Ruby development with high efficiency coding and visualization tools. The latest release can be found here, and the tutorial can be found here.
Arcadia
Arcadia is a Light Integrated Development Environment (IDE) for Ruby written in Ruby using the classic tcl/tk GUI toolkit. The latest release can be downloaded here, and the tutorial can be found here.
Ruby Development Environment(RDE)
RDE is a Ruby IDE and Ruby editor on Windows. You can edit, run and debug scirpts on it. RDE is more light and quick than heavy other IDEs.Ruby is a console application. This is a weak point for Windows users, because GUI applications are popular on Windows. You can use Ruby like a GUI applications on RDE. RDE is the best tool to use and study Ruby on Windows. Users can download the latest version here. The tutorial can be found here.
Comparison of some famous IDEs
Features
Ruby editor | Integrated debugging | Code navigation | Unit testing | Refactoring | Code analysis | Rake integration | |
---|---|---|---|---|---|---|---|
Apanta RadRails | Yes | Yes | Yes | No | No | Yes | No |
Ruby Mine | Yes | No | Yes | Yes | Yes | Yes | Yes |
Eclipse & EasyEclipse | Yes | Yes | Yes | Yes | Yes | Yes | No |
Net Beans | Yes | Yes | No | Yes | Yes | Yes | Yes |
Active State Komodo | Yes | Yes | Yes | No | No | No | No |
Apanta RadRails | Yes | Yes | Yes | No | No | No | No |
JRuby | Yes | Yes | No | No | Yes | No | Yes |
Geany | Yes | Yes | yes | No | No | No | No |
IntelliJ IDEA | Yes | Yes | yes | No | No | No | No |
Bluefish | Yes | Yes | No | No | No | No | No |
Shift EDIT | Yes | Yes | yes | No | No | No | No |
TurboRuby | Yes | No | Yes | No | No | Yes | Yes |
Arcadia | Yes | Yes | No | No | No | No | No |
Ruby Development Environment(RDE) | Yes | Yes | No | No | No | No | No |
Refactoring Support
Rename | Extract Method | Extract Module | Extract Superclass | Introduce/Inline Variable | Introduce Variable | Introduce Constant | Introduce Field | Introduce Parameter | Inline Variable | Pull up/down Members | Change Method Signature | Override Method | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ruby Mine | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes
|
Eclipse & EasyEclipse | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes |
Net Beans | Yes | No | No | No | No | Yes | Yes | Yes | Yes | No | No | No | No |
Ruby Editing
Syntax/semantic highlighting | Error highlighting | Grammatically checking on the fly | Mark occurrence | Keywords /statement completion | Auto-indenting | Code formatting | code folding | Code template | |
---|---|---|---|---|---|---|---|---|---|
Apanta RadRails | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Ruby Mine | No | Yes | No | No | No | Yes | Yes | Yes | Yes |
Eclipse & EasyEclipse | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes |
Net Beans | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Active State Komodo | Yes | No | Yes | No | Yes | No | Yes | No | No |
Free ride | Yes | No | No | No | No | Yes | No | Yes | Yes |
JRuby | Yes | Yes | No | No | No | No | Yes | No | No |
Geany | Yes | Yes | No | No | No | No | No | Yes | No |
IntelliJ IDEA | Yes | No | No | No | No | No | No | Yes | Yes |
Bluefish | Yes | No | No | No | No | No | No | Yes | No |
Shift EDIT | Yes | No | No | No | No | No | Yes | Yes | No |
TurboRuby | Yes | Yes | Yes | No | No | No | No | No | No |
Arcadia | yes | No | No | Yes | Yes | No | No | No | No |
Ruby Development Environment(RDE) | Yes | yes | No | No | No | No | No | No | No |
Version control
Almost all the ruby IDE under comparison support CVS, Subversion or Git. And some of the IDEs also supported other version control software, such as Ruby Mine also support perforce and GitHub, etc. Their detailed features are
1. All the files that have been changed, deleted, just created and not yet under version control, are displayed in a single Changes tool window
2. The editor uses color coding to highlight added/deleted/modified lines.
3. Use the diff viewer to resolve merge conflicts in an intuitive way.
4. Patches and Arbitrary Reverting, creating patches directly from the code that you can later apply and merge with repository files.
5. View revision history for project/folder/file
System requirement
Almost all the ruby IDE are cross-platform development tools, they could be run on windows, Linux, Mac OS and Solaris. A cross-platform development environment allows the developers not only to maximize the use of their available resource but also choose the development strategy to suit their needs.
Conclusion
Users accustomed on working in Eclipse can continue using the RadRails plugin. Eclipse provides excellent debugging capabilities. NetBeans supports multiple languages like C++, Java. RubyMine is exceptionally good when it comes to refactoring and can be chosen over other IDE's if this is of greater utility. RubyMine also has an intelligent code editor which others don't.
The document covers some of the major IDE's in the market for Ruby. Every IDE has its own advantages and disadvantages. The criteria for choosing a specific IDE solely depends on the perspective of a Ruby programmer and which features he wants the most from the IDE as compared to others.
References
- [1]: http://en.wikipedia.org/wiki/Integrated_development_environment
- [2]: http://en.wikipedia.org/wiki/Ruby
- [3]: http://www.aptana.com/products/studio3/download
- [4]: http://www.jetbrains.com/ruby/quickstart/index.html
- [5]: http://www.eclipse.org/
- [6]: http://netbeans.org/features/index.html
- [7]: http://en.wikipedia.org/wiki/RubyForge
- [8]: http://www.activestate.com/komodo-ide
- [9]: http://eric-ide.python-projects.org
- [10]: http://en.wikipedia.org/wiki/JRuby
- [11]: http://www.geany.org
- [12]: http://en.wikipedia.org/wiki/IntelliJ_IDEA
- [13]: http://en.wikipedia.org/wiki/Bluefish_(text_editor)
- [14]: http://shiftedit.net/
- [15]: http://www.embarcadero.com/products/turboruby
- [16]: http://arcadia.rubyforge.org/
- [17]: http://homepage2.nifty.com/sakazuki/rde_en/index.html