Wednesday, January 30, 2008

Ruby vs Java Conundrum

The Ruby language and Rails framework have been gaining rapid prominence and fast becoming development platforms of choice for many Web 2.0 applications and sites. This rapid rise is raising questions on the abilities and applicability of Java technologies for particular kind of products. Many visionaries and early adopters of Ruby and Rails framework have already sounded the death knell for Java. Impetus iLabs has invested significant time, effort and technological expertise to take a hard look at Java and Ruby platforms and to separate the facts from the fiction, an initiative to make users aware, informed, and ahead of new developments in the technology space.

Java

Java refers to a number of computer software products and specifications that together provide a system for developing and deploying cross-platform applications. Java is used in a wide variety of computing platforms spanning from embedded devices and cell phones on the low end to enterprise servers and super computers on the high end.

Java has gained enormous popularity since it first appeared. Its rapid ascension and wide acceptance can be traced to its design and programming features, particularly in its promise that you can write a program once, and run it anywhere. With Java, you can often get software for free and is one of the first programming languages to consider security as part of its design.

Security measures cannot be implemented with any degree of assurance without a reliable framework for program execution. Java provides multiple levels of reliability measures, beginning with the Java language itself.

Java: Pros

* Javas population of programmers is huge.

* Javas open source community thrives. Open source projects exist across a wide spectrum of problem spaces and fill many different niches. With Java, you can often get software for free that youd have to build yourself or pay for on other languages.

* Java is mature. Java is often the safest choice.

* Java is scalable. Weve learned enough from experience to build applications that scale.

* Java offers choice.

* Java Technology is mature and provides proven solutions for enterprise level problems such as Two-phase commit, and distributed objects.

Java: Cons

Like any programming language, Java is not without drawbacks. A study conducted by Wily in 2003 has reported the J2EE performance and availability was generally average to poor. Java has also been receiving stiff competition with IBM launching consulting support for PHP in February 2005.

* The Java Platform Is Weakening

Successful programming languages seem to emerge every decade or so. Bell Labs developed the C programming language in the early 1970s, C++ was released by AT&T in 1985 and slowly subsumed C because it had features allowing object-oriented programming. Sun released Java in 1996, and it rapidly emerged as a popular language for Internet development. Java has been growing steadily ever since. Trivial logic dictates were due for a new programming language around now, and Java should start to decline soon.

* Complexity

Javas complexity is increasing. With one massively complex framework after another, Java vendors embraced EJB and the most complicated version imaginable of web services and XML. EJB vendors redesigned EJB from scratch twice, forcing significant migrations on their customers.

* Availability

In a 2003 study, Wily (http://www.wilytech.com/news/releases/031120.html) reported that J2EE performance and availability were generally average to poor.

* Competition

In February 2005, IBM announced consulting support for PHP. Ruby on Rails has passed 500,000 total downloads. Peter Yared, Suns previous application server CTO predicted that J2EE would lose to LAMP (open source software consisting of Linux, Apache web server, MySQL, and a dynamic language such as Python, Perl, or PHP)

Ruby language

Ruby is a reflective, dynamic, object-oriented programming language. It combines syntax inspired by Perl with Smalltalk-like object-oriented features, and also shares some features with Python, Lisp, Dylan, and CLU. Ruby is a single-pass interpreted language.

Ruby Pros

* Productivity: Ruby and Ruby on Rails have higher productivity measured as Lines of code per feature size and time to build feature.

* Short ramp up times, well motivated team and experienced team can be productive on RoR platform in less than a week cross training

* A long list of industry visionaries are supporting Ruby

o Martin Fowler, chief scientist at ThoughtWorks

o James Duncan Davidson, creator of Ant and Tomcat, is using Rails in a start-up to develop a web-enabled rich application that will be the primary offering of that company.

o David Geary, key designer for several successful web development frameworks including JavaServer Faces (JSF) is speaking and blogging about Rails with regularity.

o Richard Monson Haefel, once one of two voting individuals for the Java Community Process (JCP) recently led the Burton Group in a discussion with high-profile U.S. companies about Ruby on Rails as an important emerging technology. He has also published a paper about using Rails with Oracle.

* Ruby and Ruby on Rails have higher productivity which leads to other benefits like:

o More productivity leads to fewer developers per project.

o You spend less effort on communication for small projects.

o Having fewer developers per project also lowers management costs per project.

o When you finish applications sooner, you deliver their value to the business sooner.

Ruby Cons

* As a new language, Ruby could potentially stagnate, which could make scarce resources even harder to find.

* There are not as many deployed Ruby applications in production yet, so we dont have as much definitive proof of the ultimate scalability of Ruby.

* The Ruby community is not as well established as the Java community, so its harder to find third-party components, frameworks, education, and services.

* Ruby is less structured than Java and has fewer automated features to protect applications from abuse. This flexibility is both a strength and a weakness.

Summary

Impetus strongly believes that in the current scenario Java and Ruby technology platforms will continue to coexist and address different need. RoR and Ruby platform is much better suited for a particular type of Web Applications and Sites where application programmers can control the database.

Java technology platform is proven and addresses issues like two phase commit and distributed objects very well.

In the coming future the equations may change, Ruby platform has a high chance of overtaking Java Platform to be the platform of choice for building all types of application. Impetus believes that the following factors are conducive of Rubys probability of replacing Java

* Network ubiquity and increasing bandwidth changes the dynamics and premises on which the distributed architecture principles were built. Thin client and layered architectures were necessitated for conserving network bandwidth and reducing network traffic due to latency. In a world with fast and fat pipes of connection these premises would not hold anymore. This tilts the balance in favor of Ruby and ROR.

* CPU cycles and memory is becoming ridiculously cheap. Performance and scaling up potentially will be lesser of an issue as you could use more hardware to scale up applications without having to take on a huge cost burden. This again tilts the balance in Rubys favor.

Vineet Tyagi is Director of Engineering,Impetus Technologies (http://www.impetus.com).Amara Blog25866
Ailee Blog39510

0 Comments:

Post a Comment

<< Home

Besucherza sexsearch