I wanted to share few important quotations i found from this book.
1) In From Java to Ruby Book, we’ll learn:
• Why the Ruby risk profile is decreasing, even as Java’s rapidly accelerates.
• Where Ruby can help, where it can’t, and where it simply has more growing to do.
• Pilot strategies others have successfully used across many industries and circumstances.
• What industry visionaries say about Ruby.
2) 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,and C emerged in the mid-1970s as a commercially successful language for applications. The new language had critical advantages that application languages of the time didn’t have: speed and close affinity with the rapidly emerging Unix operating system. 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.
If we pay careful attention to the trade press, you’re probably already seeing some signs of decline:
a) Complexity. Java’s 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.
b) Availability. In a 2003 study, Wily reported that J2EE performance and availability were generally average to poor. To add fuel to the fire, Java Lobby, a Java evangelist organization, published an article called “The Fabled ’Five Eights’ of J2EE Availability.” This term stuck and has been hotly debated ever since.
c) Competition. In February 2005, IBM announced consulting support for PHP. Ruby on Rails has passed 500,000 total downloads. By the middle of 2006, there will be seven books about Ruby on Rails. Peter Yared, Sun’s 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).
3) Establishing Rewards
With the costs of Java development firmly in your pocket, your next move is to understand the benefits of Ruby. For this step, you’ll try to make as direct a comparison between Java and Ruby as you can. we'll use tangible and intangible evidence to support your thought process:
• Costs. You’ll directly compare your cost structure under Java to a similar one for Ruby. You’ll take into account both hard and soft costs.
• Visionary opinions. The opinions of several people in the industry carry more weight than others. The movement of visionaries to Ruby or away from Java could also lend support to a Ruby decision.
• Team dynamics. This intangible factor will become increasingly important as Ruby continues to emerge. If the emergence of Ruby is like that of other languages, you’ll find developers want to use it because it’s a new and marketable skill.
• Maintenance. There aren’t any empirical studies about the cost of maintaining Java versus alternatives, but some circumstantial evidence suggests that maintaining simpler systems costs much less, and other studies suggest that applications with fewer lines of code are generally easier to maintain.
4) Weighing Scope and Risk
Once you have an idea of your potential gains, it’s time to focus on the other side of the equation. As an emerging programming language, Ruby has a different set of challenges from Java:
• 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 don’t have as much definitive proof of the ultimate scalability of Ruby.
• The Ruby community is not as well established as the Java community,so it’s 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.
5) The House of Pain
After hearing all the hype around Ruby on Rails and other frameworks, you might be tempted to bolt for the exit too soon, but take a deep breath first. Don’t let anyone tell you that Ruby is the answer to every question. Java does have some tremendous advantages over most other programming languages:
• Java’s population of programmers is huge. With Java’s massive pool of programmers, you can always find developers to hire or supplement your staff with temps, consultants, or even offshore development.
• Java’s 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 you’d have to build yourself or pay for on other languages.
• Java is mature. Java is often the safest choice.Java is scalable. We’ve learned enough from experience to build applications that scale.
• Java offers choice. You don’t have to paint yourself into a corner with Java, because you have so many open standards defining many important interfaces and vendors to choose from.
Technology
In general, Java is a safe choice. It’s mature, complete, and ready for outsourcing. For good reasons, Java has dominated Internet integration projects. Sure, Java can handle the most difficult enterprise integration issues. It has got features to solve notoriously hard problems:
• Two-phase commit. When the same application needs to coordinate two resources—such as two databases, for example—you sometimes need sophisticated software to tie the two together to keep things consistent. That software often uses two-phase commit,and Java supports it.
• Powerful object-relational mapping. Say your company’s new DBA, a PhD student with ten years of schooling but no practical experience, proudly brings you a database model that is in 14th normal form. After they stop screaming, your programmers tell you they have never heard of 14th normal form, but they are quite sure that they don’t want to subject their object model to such torture.Instead, your best programmers use a framework to translate data between the database schema and the objects of your application.That technique is known as object-relational mapping. Java has mature frameworks that do it well; Ruby doesn’t.
• Distributed objects. When you need to build applications that span many different computers across the room, or even across the ocean, you sometimes need specialized software to help different pieces of the application communicate. Java can manage distributed objects in many ways. Ruby’s options are more limited.
6) Outsourcing
Offshoring centers like the ones in Bangalore, India, have tens of thousands of developers providing an inexpensive programming alternative. Make no mistake; in many cases, these centers have programmers who are motivated, skilled, and talented. If your development organization doesn’t communicate with your customers, it doesn’t matter whether they’re in the next building, the next state, or overseas. India’s outsourcing shops increasingly have presences in major United States and European markets with improving project management.
7) Visionaries
If you know where to listen, you can hear all about the adoption of leading-edge technologies well before the rest of the industry. If you want to know where the industry is going, build a network of visionaries you trust. Look at the impressive list of programming visionaries with some vested interest in Ruby on Rails:
• Martin Fowler, chief scientist at ThoughtWorks, prolific and awardwinning author, and one of the most influential thinkers of our time.He has been a vocal proponent of Ruby, and ThoughtWorks is using Ruby on projects. Ruby is a major growth initiative for them.
• Dave Thomas and Andy Hunt, founders of the Pragmatic Programmers,authors, and publishers. The Pragmatic Programmers are investing heavily in several Ruby offerings including an impressive line of award-winning Ruby books.
• James Duncan Davidson, best-selling author and creator of Ant and Tomcat, two of the most popular open source Java frameworks of our time. James Duncan Davidson is using Rails within a start-up to develop a web-enabled rich application that will be the primary offering of that company.
• Stuart Halloway and Justin Gehtland, authors, instructors, columnists,and founders of Relevance, LLC. Relevance is offering a series of courses on Ruby on Rails and is offering Rails development services.
• David Geary, one of the best-selling Java authors of all time and a key designer for several successful web development frameworks including JavaServer Faces (JSF). David is speaking and blogging about Rails with regularity.
• Richard Monson Haefel, once one of two voting individuals for the Java Community Process (JCP) and a best-selling author. Richard 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.
8) Download statistics from software repositories SourceForge and RubyForge for the most popular integration and persistence frameworks for Java, compared to Ruby on Rails over the same time period.
| Framework | Downloads |
|---|---|
| Spring framework | 280,787 |
| Hibernate framework | 520,061 |
| Ruby on Rails | 500,205 |
9) It is our choices that show what we truly are, far more than our abilities. - J. K. Rowling, author of Harry Potter
10) LAMP
Many experts associate the Ruby language with a development strategy called LAMP, which stands for the open source projects Linux, Apache,MySQL, and Perl/PHP/Python. (Ignore the kickstand, and Ruby is a
P-language too.) LAMP web development tends to have a few overriding characteristics:
• Open source software
• Web-enabled database applications
• Simplicity
• Low cost
• Dynamic programming languages
11) Rails
Although Java has many different web development frameworks that are broadly used, Ruby has one in Ruby on Rails. That level of focus and integration gives Rails an incredible productivity advantage. Rails is an application development framework that focuses on building web applications to front relational databases. It is fundamentally a mix of some glue code on top of several distinct frameworks:
• Active Record. Rails performs all database access through Active Record, but you can plug in other persistence frameworks if you want. Active Record improves programming by discovering the fields and structure, based on some naming conventions, and adding certain things to your classes automatically.
• Action Pack. Rails uses a well-known strategy for separating presentation logic from business logic called Model-View-Controller. Action Pack handles the presentation aspects of Rails.
• Action Mailer. Rails uses Action Mailer to handle e-mail integration for features such as password support.
• Prototype. Rails can make extensive use of Ajax technology to do things like drag and drop and rich user interfaces on the Web.
• ActionWeb Service. You can integrate Rails applications with applications written on other frameworks and languages with Action Web Service.
• Ruby. Rails makes good use of Ruby’s capabilities. Rails uses Ruby’s metaprogramming to make it easier to define database classes and for simpler configuration within Active Record. Rails also improves on Ruby’s core frameworks for web development and for helping Ruby and HTML work together.
12) Key points of Ruby
• The Ruby language has been wrongly pigeonholed as a scripting language.
• Ruby handles integration, data munging, web development, and other rapid development tasks well.
• Ruby on Rails is quick like PHP or Visual Basic and clean like Java.
• Ruby middleware supports database integration, security, messaging,communications, XML, web services, and more.
About the Author
Bruce A. Tate is a kayaker, mountain biker, and father of two. In his spare time, he is an independent consultant in Austin, Texas. In 2001, he founded J2Life, LLC, a consulting firm that specializes in Java persistence frameworks and lightweight development methods. His customers have included FedEx, Great West Life, TheServerSide, and BEA. He speaks at conferences and Java user's groups around the nation. Before striking out on his own, Bruce spent 13 years at IBM working on database technologies, object-oriented infrastructure, and Java. He was recruited away from IBM to help start the client services practice in an Austin startup called Pervado Systems. He later served a brief stint as CTO of IronGrid, which built nimble Java performance tools. Bruce is the author of four books, including the bestselling "Bitter Java", and the recently released Better, Faster, Lighter Java, from O'Reilly. First rule of kayak: When in doubt, paddle like Hell.
3 comments:
"Martin Fowler... one of the most influential thinkers of our time" -- Give me a break. Are you kidding?
Awesome post! I recently wrote a similar post Java vs. Ruby.
Robert and Anonymous,
Thanks a lot for your comments.
Robert: Just now i looked into your site and it is goood.
Thanks
Prashant
Post a Comment