Technically, any programming language that supports enough features can code… something. But what? Where can you apply your knowledge of Ruby? What does Ruby make easy and what – hard? In this post, I am trying to answer these questions and give an overview of tasks where you can apply knowledge of Ruby.
Systems scripting and automation
For file crunching, system automation and regular processing, Ruby has same features as Perl, another programming language. Its syntax, however, is much simpler, which means that it is very difficult for even a skillful programmer to do some evil in Ruby. While coders in other programming languages have to struggle a lot to write good code, the programmers in Ruby will have to struggle to write bad code. Or so it is said.
With the release of web framework Ruby in Rails, web application development has a chance to cut down the costs for the projects. Instead of hundreds of thousands of code lines for a complicated web application, Ruby on Rails offers the code, which would “only” have thousands. With this framework, the developers have the ability to work on applications of different difficulty. There is a flaw to it though: event though Ruby on Rails is good for web applications, it is not as good of option if you want to create a CMS (Content Management System, like WordPress, for example). Even though the creation of a CMS in Rails is not impossible, it is not as efficient as with some other technologies.
APIs for non-experts
Ruby gives expert programmers an opportunity for metaprogramming, or making languages that do not remind you of Ruby’s features. Experts can use this for implementations in the future, whereas amateur programmers can easily kill the project because of that.
Network protocols prototype
Ruby’s simple threads, event libraries and protocol libraries make it a useful language for writing simple clients and servers. Its string handling also allows you to create protocols within a short period of time. And you can make simple protocols for common use, as well as more complex ones, by combining Ruby with advanced parsers.
Testing of web applications
Ruby contains tools, using which the programmers can evaluate how the software runs and whether or not the run meets their expectations. Ruby has two libraries, which are calledWatir and Selenium. They automate testing the user interaction with the site. Combined with other technologies, these libraries can deliver reports of successes and failures.
JRuby is efficient compiling Java libraries
Java programmers are famous for having messy libraries, with off-the-shelf items, XML, and open-source libraries. Ruby can solve the messiness of these libraries, arranging and stacking the individual components better than the Java programmers. It has an easy syntax and unit testing frameworks, which both result in readability and ease of use.
JRuby allows experimentation
Using JRuby, programmers dynamically interact with Java libraries, in a same fashion they would interact with them in a scripting language. All the decisions are taken way faster, which significantly increases performance.
Web programming with Java
Any of Ruby on Rails applications can be hosted on Java platforms, such as Jetty, Tomcat or Glassfish, for example. Just with a small set of libraries and help of other technologies, you can hook in the applications after packaging them into WARs (Web application archives). Ruby is much easier to understand than some of the Java technologies like JMX, JTA or JNDI, and you do not need to make any extra purchases of technologies that you will be unlikely to apply to the project.