Feelin' Groovy

Posted on January 08, 2007 at 03:49 PM by John Repko

Banquet Programming platforms are like holiday dinners - to succeed they have to offer something for everyone, and if they/you sample a bit of everything then they (like you) are likely to end up bloated.

Such is the case with Java, a pretty language with clean syntax that, in its full Enterprise-banquet form, has been compared with eating an elephant. Enterprise Java offers everything, and development teams have to make a lot of technical calls before the first line of code is ever written: EJB or JDO? bean-managed, container-managed, or framework-provided persistence? EJB 3.0 or JDO 2.0? Struts or JSF or Spring? The wrong call, of merely the passage of time can make for pretty hard-to-manage code.

Still, Java's been used in enterprise development for years now; it has a large library of code and many trained developers and all of this makes for a pretty appealing banquet-table. What is a development team to do?

A common answer lies in the realm of "opinionated code," in which the development team chooses a set of beliefs, and architecture follows. Ruby on Rails is a good example of opinionated code: everything, from default directory layouts to ORM framework (ActiveRecord) to dependency injection is baked in.

RoR is great, but it doesn't address the great banquet of Java development and platform that's evolved over the past nine years. Enter Ruby-on-Rails-for-the-Java-set: Groovy (the language) and Grails (the platform).

Groovy is a dynamic language based on Java and strongly influenced by Ruby, and Grails is a JEE-spiced framework modeled-on and very similar to Rails. Groovy reached it 1.0th birthday this week, and Grails is nearing it's 0.4 release, so the platform isn't particularly mature yet, but has solid financial backing and is already being explored in "mission-critical enterprise applications".

"So what?" you say—is this instant relief for enterprise development, or a "wafer-thin mint." My first experiences with GoG indicate the former. Setup is fast, and the initial development environment provides ORM (from Hibernate), inversion of control and MVC (from Spring), logging (log4j), and layouts (from SiteMesh). This is opinionated software, the decisions are made and many of the patterns that have made RoR popular (DRY, convention-over-configuration, etc.) are baked in to GoG as well.

Groovy and Grails may not be ready for full enterprise deployment, but the platform is easy to grasp for both Java and Ruby developers, provides much of the development speed and elegance of RoR, and embraces the libraries, seamless integration-to and feel-of JEE. It should be a great platform for prototypes and rapid JEE development, and 2007 should reveal whether it will mature to an enterprise-ready framework.

Tastes great, less filling...

The New Software - party like it's 1999

Posted on December 14, 2006 at 07:53 PM by John Repko

So Netscape had disproved the Law of Gravity - that it was possible and not illegal to create wealth without creating profit, or for that matter without creating revenue. New vistas were possible, and all the failed pioneers of the "video on demand" push (another correct Ellison bet time-shifted back by a decade) had to do little more than change their business cards to jump into the new new thing. The Java language grew out of just such a shift, and several Oracle VoD pioneers quickly hit the jackpot with repurposed "web" businesses.

Two virtuous cycles then spun into being, both with the tailwind of a good economy for most of the decade. In the first cycle, early pioneers in "the web" followed Netscape's path, with similar results. The new millionaires then pumped the newfound wealth back into angel money and venture capital, and funded successive waves of web companies. The second cycle was also a wonder of finance, in which new ventures would do deals with other such ventures for a mix of payments-in-kind and warrants; money didn't have to change hands for wealth to be created, and when any of the players went public, the proceeds would then spread across the industry.

The boom lasted until the Y2K crisis was passed and the tax bill came due in 2000, and produced lots of millionaires, even more chastened investors, and a huge advance in standards (e.g. CSS, JavaScript, Java, Ajax) and some critical framework software, such as Ruby, php, Linux, Apache, and Mysql).

The new companies had money, gusto, talent and energy; what most didn't have was a workable business model. Gravity returned (as gravity will), and it became clear that not only wasn't there a market for lots of online pet stores (to take one example), there might not be a market for any.

The market was ripe for a new model, and The New Software was finally ready to be born.

Ruby joys

Posted on December 09, 2006 at 08:07 AM by John Repko

"The real adventure of experience is not about searching new countries but about the ability to look through new eyes. " Marcel Proust

I was instantly hooked on the Mac - literally. The original Mac had a scrapbook image of a fish - a nice sunfish in pixel art that instantly changed the way I'd look at computers. With new tools you can do new things.

I've been interested in creating flow manufacturing software for about 10 years now, but the tools of creation never quite fit what I was looking to create: hosted, easy-to-use, flexible, interactive software. "Pure" html was too limited, Java too bulky, .Net too monocultural.

I was pulled by the hype into Ruby on Rails, but what I've found with it has more than justified the hype. With Ruby it has been possible for a single developer to make a full system that's rich and interactive—the DHH applications (like Basecamp) on 37signals are a beacon for lots of new developers. Ruby (the language) is gorgeous - a "bicycle for the mind", to quote another Jobs-ism.

I'll post more on the joys of Ruby as we go forward. It's a gorgeous language with a beautiful structure, and with it it's possible to do complicated tasks in fewer words than it takes to describe them.


../themes/pikasoft/views../../themes/pikasoft/views../../themes/pikasoft.