CSC/ECE 517 Fall 2011/ch1 1a lj: Difference between revisions
Line 7: | Line 7: | ||
[[File:Ruby.jpg]] | [[File:Ruby.jpg]] | ||
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). | 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). [1] | ||
=What is an IDE= | =What is an IDE= |
Revision as of 02:18, 9 September 2011
CSC/ECE 517 Fall 2010/ch1 1a lj
Introduction
In this Wiki, several kinds of IDEs for Ruby language is shown and their features are compared carefully.
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). [1]
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. [1] 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
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. [2]
Aptana RadRails
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. [3] RadRails is now included as part of Aptana Studio 3. [4]
RubyMine
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. [5]
NetBeans IDE
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. [6] In the following comparison we will use NetBeans IDE 6.9.
Comparison of Different IDEs for Ruby
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 |
Features
Eclipse | RubyMine | NetBeans | Aptana RadRails | |
---|---|---|---|---|
Open Source | Commercial | Open Source | Open Source | |
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 |
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 |
Shortcuts
Eclipse
Shortcut | Description | |||
---|---|---|---|---|
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 |
References
[1] http://en.wikipedia.org/wiki/Integrated_development_environment
[2] http://en.wikipedia.org/wiki/Eclipse_(software)
[3] http://en.wikipedia.org/wiki/RadRails
[4] http://www.aptana.com/products/radrails