CSC/ECE 517 Fall 2011/ch1 1a lj

From Expertiza_Wiki
Revision as of 20:24, 25 September 2011 by Jli21 (talk | contribs) (→‎References)
Jump to navigation Jump to search

CSC/ECE 517 Fall 2010/ch1 1a lj


Introduction

In this Wiki, several kinds of Integrated Development Environments (IDEs) for Ruby language are shown and their features are compared.

What is Ruby

Ruby is a dynamic, open-source and general-purpose object-oriented programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. Ruby supports multiple programming paradigms, including functional, object oriented, imperative and reflective. It also has a dynamic type system and automatic memory management. In Ruby, everything is an object. Every bit of information and code can be given their own properties and actions. Ruby is seen as a flexible language, since it allows its users to freely alter its parts. Ruby’s block are also seen as a source of great flexibility. A programmer can attach a closure to any method, describing how that method should act. Unlike many object-oriented languages, Ruby features single inheritance only, on purpose. But Ruby knows the concept of modules (called Categories in Objective-C). <ref> http://www.ruby-lang.org/en/about/ </ref>

What is an IDE

An integrated development environment (IDE) (also known as integrated design environment, integrated debugging environment or interactive development environment) is an application software that provides comprehensive facilities to computer programmers for software development. <ref>http://en.wikipedia.org/wiki/Integrated_development_environment</ref> An IDE normally consists of:

  • a source code editor
  • a compiler and/or an interpreter (computing)|interpreter
  • build automation tools
  • a debugger

Popular IDEs for Ruby

Eclipse

Download Here!

Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme. <ref>http://en.wikipedia.org/wiki/Eclipse_(software)</ref>

Aptana RadRails

Download Here!

Aptana RadRails is a Rapid Application Development IDE for the Ruby on Rails framework. The goal of RadRails is to provide Ruby on Rails developers with everything they need to develop, manage, test and deploy their applications. Features include source control, code assist, refactoring, debugging, WEBrick servers, generator wizards, syntax highlighting, data tools, and much more. <ref>http://en.wikipedia.org/wiki/RadRails</ref> RadRails is now included as part of Aptana Studio 3. <ref>http://www.aptana.com/products/radrails </ref>

RubyMine

Download Here!

JetBrains RubyMine IDE provides a comprehensive Ruby code editor aware of dynamic language specifics and delivers smart coding assistance, intelligent code refactoring and code analysis capabilities. Easy project configuration, automatic Ruby Gems management, Rake support. <ref>http://www.jetbrains.com/ruby/features/index.html </ref>

NetBeans IDE

Download Here!

NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment (IDE) for developing with Java, JavaScript, PHP, Python, Groovy, C, C++ ,Ruby and others. NetBeans IDE is a free, open-source Integrated Development Environment for software developers. All the tools needed to create professional desktop, enterprise, web, and mobile applications with the Java platform, as well as with C/C++, PHP, JavaScript and Groovy. Noting that in NetBeans IDE 7.0, support for Ruby and Ruby on Rails is no longer available in the standard NetBeans IDE build. <ref>http://netbeans.org/features/index.html</ref> In the following comparison we will use NetBeans IDE 6.9.

Comparison of Different IDEs for Ruby

Features

Eclipse RubyMine NetBeans Aptana RadRails
Open Source Commercial Open Source Open Source
Language Multilingual Ruby Multilingual Ruby
Platform Cross-Platform Cross-Platform Cross-Platform Cross-Platform
Copy Support Multiple Processes Support Multiple Processes Support Multiple Processes Support Multiple Processes
Plug-In Plug-In Supported API Supported Plug-In Supported Plug-In Supported
Others Complicated for new learner;

Support client plug-in

Graphical Ruby Debugger;

Model Dependency Diagram for Ruby on Rails projects;

Code refactorings for Ruby with knowledge about Ruby on Rails specifics;

RSpec, Cucumber, Shoulda & Test::Unit test frameworks support with test-runner GUI

From Version7, NetBeans IDE no longer support Ruby Fast, integrated debugger;

Embedded database navigator and query console;

Snippets and wizards;

Deep support for Ruby;

Ruby code generation: constructors, overrides, templates, accessors

Extract Local Variable Yes Yes Yes Yes

<ref>http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fref-menu-refactor.htm </ref> <ref>http://www.ruzee.com/blog/2007/02/rdt-and-radrails-keyboard-shortcuts</ref>

Refactoring

Eclipse RubyMine NetBeans Aptana RadRails
Refactor Support Yes Yes Yes Yes
Rename Yes Yes Yes Yes
Move Yes Yes Yes Yes
Copy No Yes Yes Yes
Change Method Signature Yes Yes Yes Yes
Extract Method Yes Yes Yes Yes
Extract Local Variable Yes Yes Yes Yes
Extract Constant Yes Yes Yes Yes
Inline Yes Yes Yes Yes
Convert Anonymous Class to Nested Yes No Yes Yes
Move Type to New File Yes No Yes Yes
Extract Superclass Yes Yes Yes Yes
Extract Interface Yes Yes Yes Yes
Use Supertype Where Possible Yes Yes No Yes
Push Down Yes Yes Yes Yes
Pull Up Yes Yes Yes Yes
Extract Module Yes Yes Yes Yes
Introduce Parameter Object Yes Yes Yes Yes
Introduce Indirection Yes No No Yes
Introduce Factory Yes No No Yes
Introduce Parameter Yes Yes Yes Yes
Encapsulate Field Yes Yes Yes Yes
Generalize Declared Type Yes No No Yes
Infer Generic Type Arguments Yes Yes No Yes
Safe Delete No Yes Yes Yes

Version Control

Eclipse RubyMine NetBeans Aptana RadRails
Subversion Yes Yes Yes Yes
Git Yes Yes No No
Perforce Yes Yes No No
CVS Yes Yes Yes Yes
Mercurial Yes No Yes No
Clearcase Yes No Yes No
SVN Yes Yes Yes Yes

Editing

Eclipse RubyMine NetBeans Aptana RadRails
Code Completion Available Available Available Available
Type Hierarchy View Available Available Unavailable Available
Smart Indent Available Available Available Available
Syntax Highlighting Available Available Available Available

Shortcuts

Here we choose some representative shortcuts instead of listing all.

Eclipse

Shortcut Description
Alt+/ Content Assist
Shift+Ctrl+K Find Previous
Alt+R Find and Replace
Ctrl+1 Quick Fix
Ctrl+Alt+H Open Call Hierarchy
Shift+Ctrl+R Open Resource
Shift+Ctrl+T Open Type

Rubymine

Shortcut Description
Alt+F1 Switch between views (Project, Structure, etc.).
Ctrl+Tab Switch between the tool windows and files opened in the editor.
Ctrl+J Insert a live template.
Ctrl+Alt+J Surround with a live template.
Alt+Enter Use the suggested quick fix.
Ctrl+D Duplicate the current line or selection.
Ctrl+Space Invoke code completion.

NetBeans

Shortcut Description
Ctrl-F Search for word at insertion point
Alt-G Go to declaration
Ctrl-Shift-0 Show Search Results window
Shift-F10 Open contextual menu
Alt-Enter Show suggestion/tip/hint
Alt-U, then U Convert selection to uppercase
Ctrl-Shift-1/2/3 Select in Projects/Files/Favorites

Radrails

Shortcut Description
Ctrl-Alt-T Jump to the test case of a model or controller and vice versa.
Ctrl-Shift-V Jump to the view of a controller method and vice versa.
Ctrl-Alt-X Factor out a partial from a view. Simply select the code block you want to factor out into a separate partial an press the key combination.
Ctrl-Shift-F Auto-format the selected code (Ruby only). Not that mature, yet, and seems to have problems with regular expression - currently not recommended to use.
Ctrl-Shift-C Toggle comment

Conclusion

This article compares four IDEs for different features. It is hard to say which is the best for Ruby. Eclipse supports plug-ins and RadRails can be plugged into Eclipse. Netbeans provide support for other languages like Java, C++, groovy along with Ruby. RubyMine has an intelligent code editor and it is designed only for Ruby.

References


<references/>





[11] http://tnlessone.wordpress.com/2007/02/28/ruby-rails-ide-comparison-idea-netbeans-radrails/

[12] http://netbeans.org/project_downloads/usersguide/shortcuts.pdf

[13] http://www.jetbrains.com/ruby/webhelp/rubymine.html

[14] http://netbeans.org/project_downloads/usersguide/

[15] http://eclipse-tools.sourceforge.net/

[16] http://pg-server.csc.ncsu.edu/mediawiki/index.php/CSC/ECE_517_Fall_2009/wiki1a_6_aa