RVM

RVM: RVM expands as Ruby Environment Manager or Ruby Version Manager. RVM makes it easy to install and switch between multiple ruby versions on OS X and Linux. RVM allows us to you run multiple different rubies (versions) in separate terminals concurrently. RVM lets us use different rubies (versions) in a manner that won’t mess with your existing ruby install. RVM provides features such as gemsets that aren’t typically supported on many ruby installs. RVM enabling engineers to center around building up their applications as opposed to dealing with their dependencies by handling all relevant execution paths, environment variables, and installed third-party libraries by Swapping them out.
RVM allows the developer to test out new versions, deploy existing applications without worrying about breaking changes, and ensure that application infrastructure management takes as little time as possible by encapsulating different Ruby language versions into separate environments. With tools like Bundler, RVM makes installing, running, and managing a Ruby application a simple and streamlined process. By using RVM to manage your application’s environment, you can create a reliable set of dependencies for your Ruby application, ease deployment concerns and mitigate upgrade issues

rbenv:
rbenv is the ruby-version-switcher. It allows you to manage multiple installations of Ruby. It is hugely popular among Ruby programmers as a lightweight version management tool for Ruby.
Advantages of rbenv:
1. Provide help for determining application-specific Ruby versions.

2. Let you change the global Ruby version on a for each client premise.

3. Allow you to override the Ruby version with an environment variable.

4. It doesn’t need be loaded into your shell. Rather, rbenv’s shim approach works by adding an directory to your $PATH.

5. rbenv empowers developers to manage project dependencies by utilizing a plug-in called rbenv-gemsets.

6. It doesn’t need changes to ruby libraries for compatibility.

Disadvantages of rbenv:
1. rbenv doesn’t include built-in Ruby installation mechanism.

2. rbenv does not have the built-in features required to manage large projects

3. In rbenv shim approach, if something is installed in one ruby it will make it accessible in all rubies.

4. It depends on Bundler and its binstubs to manage gems.

5. In rbenv,all binaries of all rubies and gems are constantly available in shell however they will do nothing when called.

6. It is not possible to check if ruby/gem binary is accessible in the system, separate calls to gem, binaries or rbenv are required to find out if it is really available.

7. Execution of binaries is 50ms slower as compared to binaries run in RVM

Benefits of Using Ruby on Rails over Other Frameworks
• The process of programming is much faster in Ruby than with other frameworks and languages because Ruby is Pure-object-oriented and it has access to a vast collection of open source code available within the Rails user community.
• One of key standards of Ruby on Rails development is convention over configuration, consequently the codes are much clearer, straightforward and generally self-documented.
• The Rails conventions also make it easy for developers to move between different Rails projects, as each project will tend to follow the same structure and coding practices.
• Ruby is best at creating web application of data entities quickly so that you can focus on the special functionality rather than on the query operations: insert, update and delete.
• It uses Agile software development method which applies a collaborative approach between cross functional teams for finding apt solutions. This ultimately promotes adaptive planning and development, fast delivery, scope for improvement and encourages speedy and flexible responses mitigating hurdles.
• It is a MVC (Model-View-Controller) framework which provides default structures for creating web pages, web services and database. This makes use of already present web standards, such as XML, HTML and JavaScript.
• A key characteristic of Ruby on Rails is its utilization of Representational State Transfer (REST) architecture that rests around the relationship between the client and the server
• The coding process involved is precise, making the codes short and clear to understand. The speed of MVP development in Ruby is considerably higher when compared with similar languages such as PHP or Python.
• Rails is famous for its harness and fixtures which act as supporting codes that will make it easier for programmers to write their test cases. Also, Rails creates simple test stubs that can be extended by programmers.

Advantages of Ruby:
1. Can be embedded into Hypertext Markup Language (HTML)
2. Offers encapsulation of data methods within objects
3. Scalable and big programs written in Ruby are easily maintainable
4. Has a simple and easy syntax that allows the new developer to learn Ruby very quickly and effectively.
5. Ability to write multi-threaded applications with a simple API
6. Offers advanced array class
7. Able to write external libraries in Ruby or C
8. Allows “reserved word” to be used as an identifier as long as the parser doesn’t perceive an ambiguity
9. Better security features
10. It has a debugger
11. It has flexible syntax
12. Powerful string handling
13. Can easily be connected to DB2, MySQL, Oracle, and Sybase

Disadvantages of Ruby:
1. Learning it can be difficult

2. Lacks informational resources

3. Not all website hosts can support Rails because it can be more resource intensive than PHP.

4. Slower processing time (CPU time) compared to other programming languages