Articles Archives

Shashank Tiwari

AddThis Social Bookmark Button

If you haven’t read anything really silly in a long time, then here it comes!

The caption of a picture in the Wired magazine reads –
“Jason Fried (left) and David Heinemeier Hansson of 37signals helped develop much of the software that has enabled Web 2.0. Photo credit: Jessica Wynne.”

Here is the link to the original article and the photo — http://www.wired.com/techbiz/media/magazine/16-03/mf_signals

I am wondering if Wired has created a new definition of web2.0! Folks at zillions of companies including Google, Yahoo, Wikipedia, Adobe, Sun, Microsoft and ….developers programming in tons of technologies including JavaScript,PHP, Python, ActionScript, Java and ….you are all out of luck :)

What do you think?

Shashank Tiwari

AddThis Social Bookmark Button

James Ward and I put together an article on porting over an HTML application to Flex. Its published on InfoQ. We used the Pentaho BI Dashboard as the sample application in our endeavor. After reading the article you will realize the simplicity of the task and the quick gains you could get by making such a move. The source code is available for download and a copy of the final application is accessible online.

James is presenting on the same topic this week at JBoss World, with JBoss JMX Console as the example this time.

Shashank Tiwari

AddThis Social Bookmark Button

Bruce Eckel says Java is at an “Evolutionary Dead End”. His perspective is that retrofitting newer features into Java is making it absurdly complex. He states the choice is between no more evolution or breaking away from the past. In any other scenario he suspects things are only going to get worse. As a passing by remark, he proposes moving on to Scala as an exit strategy, if Java continues to evolve while honoring backward compatibility.

Technically his point is valid, realistically what are the millions of Java developers who build Java applications at thousands of enterprises going to do if they can’t incrementally take advantage of some of the newer features? It may be possible for Ruby or even Python to radically break away from its earlier versions and start on a fresh slate because not only do they have lesser number of deployments but on an average they have programmers smarter than the average corporate journeyman.

Java has evolved from being a replacement for C++ to an all pervasive cross domain programming language. One of the primary reasons for this growth has been the abundance of features, availability of commercial and open source implementations of these features and wrapping up of these features in all sorts of APIs, with the assurance of stability.

If we drop everything and restart, won’t Java be a completely new language? How would we guarantee we get everything right this time around? Which portions of Java will benefit from reinvention the most? What will we do while we are busy reinventing, knowing what we are doing is soon to be rendered obsolete — it won’t get done in a jiffy in any case?

Paul Browne

AddThis Social Bookmark Button

Picture the scene: a self help group meeting, plastic chairs arranged in a circle. Sitting on the chairs are an assortment of (mainly) men in their 20’s or 30’s, some smartly dressed, others with 2 day old beards. They fail to look each other in the eye, until one plucks up the courage and mumbles ‘Hello, I’m Paul , and I’ve been writing bad Java code for 10 years‘.

Taking a deep breath he continues: ‘When I got into Java I was using JSP for everything - HTML, talking to databases, doing workflow - anything I could get my hands on‘. Seeing the shock on his comrades faces he adds ‘I was young and I didn’t know what I was doing‘. ‘Then I found Struts and MVC and things became a little bit better. My days had a bit more structure, but things didn’t seem right. Even after I got treatment based on EJB, Spring and Hibernate, I still feel that there is a void at the centre of my coding life‘.

The rest of the group nodded - This was a classic case. ‘I fell in with a bad crowd. Business types with suits and violin cases. They said they’d pay me good money if I built them something just like they asked. Now they don’t believe that it works - it’s all techie stuff to them. Those boys are going to play rough if I can’t show them the goods and let them review the code. What can I do?

There was silence for a while. Then the group leader said

You need to build a system where non-technical people can review the important parts. You’ve used all the major frameworks, and while they’re good in what they do, they’re not helping here. And if you sacrifice maintainability , performance or speed of development, the suits are going to get you.

‘It’s a tough one. Does anybody have any suggestions?’

What would YOU suggest?

AddThis Social Bookmark Button

Tushar Joshi has authored an article titled “Introduction to Spring IDE 2.0″. The article describes the required steps and dependencies to install Spring IDE and demos some basic features of version 2.0.

Tushar concludes his article by stating that: “Spring IDE provides features like Spring Explorer, Beans Cross Reference, Graph View and Code completion in the bean XML editor hence making the life of a Spring Framework user easier.”

http://www.springframework.org/node/523

Tim O

AddThis Social Bookmark Button

Conversations between loosely coupled services presentation by Gregor Hohpe on InfoQ. It’s an interesting presentation for people who want to learn more about what BPEL and CDL really mean.

AddThis Social Bookmark Button

Google Guice is a Dependency Injection Framework that can be used by Applications where Relationship/Dependency between Business Objects have to be maintained manually in the Application code. Since Guice support Java 5.0, it takes the benefit of Generics and Annotations thereby making the code type-safe. This article gives good introduction for google guice.

AddThis Social Bookmark Button

Eclipse is an extensible platform for building IDEs.Tool builders contribute to the Eclipse platform by wrapping their tools in pluggable components, called Eclipse plug-ins, which conform to Eclipse’s plug-in contract. The basic mechanism of extensibility in Eclipse is that new plug-ins can add new processing elements to existing plug-ins. And Eclipse provides a set of core plug-ins to bootstrap this process. This article explains the eclipse plug-in architecture.

Tim O

AddThis Social Bookmark Button

I recently had a chance to talk to James Ward about Adobe Flex. For those of you who don’t know Flex, the two second summary is that Flex is way of publishing Flash 9 content that is aimed squarely at you - the developer. I started out by asking him about Cairngorm…what is Cairngorm?
The Cairngorm Microarchitecture is a lightweight yet prescriptive framework for rich Internet application (RIA) development. - from Adobe Lab’s Cairngorm Page
I asked him a few questions about Flex, the pricing model, what is open-sourced, what is not, related open source projects, and the viability of JavaFX. Read more for the interview…
Tim O

AddThis Social Bookmark Button

Three years ago, Dan Diephouse founded the XFire project to provide an alternative to Apache Axis. In the subsequent years, XFire has matured into an easy-to-use, high-performance SOAP stack with first-class support for the Spring Framework: once the challenging newcomer, now the new standard for deploying web services on the Java platform. I recently had a chance to sit down with both Dan Diephouse and Paul Brown of Envoi Solutions to discuss the merger of XFire and IONA’s Celtix project into a new project, Apache CXF, currently under incubation at the Apache Software Foundation.

In the following interview, I ask both Dan and Paul about CXF. What differentiates CXF from projects like Apache Axis? How has XFire been affected by the Apache Incubator? And, some questions about corporate support of open source projects?

Read on for the full interview with Dan Diephouse and Paul Brown.

Paul Browne

AddThis Social Bookmark Button

A while back , I wrote an article for O’Reilly’s sister site , Java.net about How to add Ajax to your Struts Application. While it was pretty straightfoward (as is Ajax underneath all the hype), it still involved a little to much JavaScript for my liking. Nothing against JavaScript, but if you write it , you have to support it. Far better to use a standard Ajax library , like DWR , Prototype or Dojo.

So , along comes Struts 2. Be careful - it’s good , but a different beast under the covers from Struts 1. It does a lot of things better - for example , the way it has Actions as normal POJO’s makes it a lot of things easier to unit test.

Struts 2 also gives you Ajax ‘out of the box’. No writing of javascript, no debugging against various browsers; just configure and go. A full description of how to setup Struts 2 to use Ajax is in this wiki article. The quick version is:

1. Setup Struts 2
2. Add the Struts-Ajax URL and Div Tag.

That’s it. Ajax without the fuss.

Even better that the Struts guys have implemented the Ajax functionality using the Prototype Ajax Library, so you get the benefit of all the improvements there.

What do you think? Will you move to Struts 2 just for the new Ajax capabilities?

AddThis Social Bookmark Button

Red Hat and Exadel announced an exciting strategic partnership. Exadel is contributing their commercial products, RichFaces and Exadel Studio Pro, to open source at jboss.org. The Ajax4jsf project has also moved to jboss.org as JBoss Ajax4jsf.

The Ajax4jsf framework is implemented using a component library that adds AJAX capability to your existing pages without having to write any JavaScript code or replace existing components with new AJAX widgets. Ajax4jsf also takes full advantage of the benefits of the JSF framework including lifecycle, validation, and conversion facilities, along with the management of static and dynamic resources.Shunmuga Raja writes about ajax4jsf here .

Introduction to Ajax4Jsf

AddThis Social Bookmark Button

The Streaming API for XML (StAX) is a groundbreaking new Java API for parsing and writing XML easily and efficiently.StAX provides is the latest API in the JAXP family, and provides an alternative to SAX, DOM, TrAX, and DOM for developers looking to do high-performance stream filtering, processing, and modification, particularly with low memory and limited extensibility requirements. Here you can read the full article

Streaming API for XML

AddThis Social Bookmark Button

Java 6 provides the Common Scripting Language Framework for integrating various Scripting Languages into the Java Platform. Most of the popular Scripting Languages like Java Script, PHP Script, Bean Shell Script and PNuts Script etc., can be seamlessly integrated with the Java Platform. Support for Intercommunication between Scripting Languages and Java Programs is possible now because of this. It means that Scripting Language Code can access the Set of Java Libraries and Java Programs can directly embed Scripting Code. Java Applications can also have options for Compiling and Executing Scripts which will lead to good performance, provided the Scripting Engine supports this feature. ShunmugaRaja explains in detail here

Scripting Language for the Java Platform

AddThis Social Bookmark Button

How easy it was to get fairly complex server side validation working with Struts 2 by just using annotations. No XML whatsoever. Struts 2.0 comes with new set of Robust Validation Features. Most of the common Validation Activities related to a Web Application are taken care by the Framework itself which means that only less burden lies on the shoulders of a Developer. Shunmuga Raja writes about struts 2.0 validations here

Struts 2.0 Introduction and Validations using Annotations

AddThis Social Bookmark Button

An interceptor can be used to intercept the existing business functionality to provide extensible or add-on features. They provide pluggable architecture and are generally callback methods that will be called by the framework in response to a particular set of events/actions if properly registered and configured. They follow the standard Interceptor pattern and they have various advantages in an application design. They can be used to monitor the various parts of the input that are passed to an application to validate them. They even have the capability to overwrite the core functional logic of the module.

A Hibernate application can be structured in a way such that certain methods can be make to be invoked when a particular life-cycle event occurs. Not always the API in a software/product will completely satisfy the application needs and requirements. Hibernate is no more away from this. Therefore, Hibernate API is designed in such a way to provide pluggable framework through the notion of Interceptors.

As we can see, the maintenance of this logging information should happen whenever when an insert/update goes to the Database. Such a logger interceptor can be easily plugged into the application with minimal code change because of the flexible design of Hibernate. Shunmuga Raja writes about Inteceptors in Hibernate here.

Interceptors in Hibernate.
Introduction to Java Server Faces

AddThis Social Bookmark Button

JSR-181, which is the “Web Services Metadata for the Java Platform”, simplifies the development of Web-Services in the Java/J2EE environment. Ordinary Java classes can be turned immediately into Web-Services by applying Web-Services specific meta-data (in the form of annotations) to the code. No need for the application developers to use the SOAP API’s for parsing, validation, construction, sending and receiving messages as the container will implicitly do that. Also, generation of WSDL (Web Services Description Language) files are also taken care by the container so there is only minimal burden left on the developers to create a Web-Service using the Meta-data API.

The entire API for developing Web-Services is available in javax.jws and javax.jws.soap packages. Among the several types of enterprise beans, stateless session beans are an excellent choice to be represented as a Web-Service component, since they are stateless in nature. Remember that all the interactions that take place between Web-Services applications are stateless (i.e. no history of the conversations are maintained) so stateless enterprise beans could represent an ideal solution for developing Web-Service components. Shunmuga Raja explain’s in detail here.

EJB 3.0 and WebServices

Integrating Struts With Spring

AddThis Social Bookmark Button

Red Hat and Exadel Partner to Bring Rich Developer Tools to Red Hat’s JBoss Platform
Red Hat the world’s leading provider of open source solutions, and Exadel, the leader in providing rich application components for creating a new generation of enterprise solutions, announced a strategic partnership that will add mature, Eclipse-based developer tools for building service-oriented architecture (SOA) and rich, Web 2.0 applications to Red Hat’s integrated platform, including Red Hat Enterprise Linux and JBoss Enterprise Middleware. This move marks the first time that a high caliber set of Eclipse-based developer tools will be available in open source. Marcelo Giorgi explains how to build JSF application using exadel here.

Building JSF application with Exadel.
Integrating Struts With Spring

AddThis Social Bookmark Button

One of the main problem in software development is related to the maintenance task, and the capacity of a software component to be resilient to changes among time. It is important to keep our code clean. We will be able to change the code without the need to spend hours understanding exisiting code. Marcelo Giorgi writes about Refactoring in Eclipse 3.2 and how to use the clean up wizard in Eclipse 3.2.

Refactoring in Eclipse 3.2

Dejan Bosanac

AddThis Social Bookmark Button

Filip Hanik of Covalent Technologies wrote an excellent article in which he describes his series of performance/scalability tests of the new NIO connector that has been added to Tomcat 6. In tests he also includes Jetty and Glassfish containers. The article contains very good explanation of challenges in adapting NIO environment to blocking IO requirements. The good news is that the answer to the question from the title is yes, servlet containers can scale, led by Tomcat 6 that handled 16000 concurrent connections without problems.

Shashank Tiwari

AddThis Social Bookmark Button

The March 26, 2007 issue of InfoWorld has reviewed a bunch of Java IDEs and passed its latest judgment. The report is accessible online at http://akamai.infoworld.com/pdf/special_report/2007/13SRjava.pdf.

There are 2 main conclusions - (1) Eclipse base IDEs are doing better than those not based on it and (2) Borland’s JBuilder 2007 is the best IDE in the market today.

While the Eclipse vs. NetBeans debate has surfaced again and again in the past, it seems like the current trend is that Eclipse has been re-categorized as a framework rather than an IDE and specific implementations or aggregation of plugins based on the Eclipse framework are the ones being compared with NetBeans.
Also, the InfoWorld review has praised NetBeans without giving it that many credits. It has been specifically mentioned that the version 6.0, which is in beta, promises to be a great option.
Towards the end three alternatives, to the IBM, Borland and the NetBeans IDEs, are also enlisted. These are Eclipse, as such, (perhaps the MyEclipse distribution), IntelliJ and Oracle’s JDeveloper. IntelliJ is praised as being a great IDE for pure coding.

The article includes a tabular comparison of the three main IDEs it evaluates. The table is a good way to quickly assess the capability of the IDEs and perhaps one could use it to quickly pick a suitable IDE for ones needs .

AddThis Social Bookmark Button

Starting from EJB 2.1, Timer Services are available for building J2EE Applications that depends on time based services. Time based services are mostly used in scheduling applications. Technically, these scheduling applications are called workflows. A workflow defines a configurable sequence of activities or tasks that will take place at a particular point of time. Before EJB 2.1, one has to manually code for building and deploying time-based workflow systems. But, with the invent of EJB 3.0, thanks to Annotations and Dependency injections, life has become still more easier for creating such applications.

EJB 3.0 Timer Services - An Overview

AddThis Social Bookmark Button

Mustang has few interesting changes in the Collections APIs, one amoung them is the Deque. Deque is used for the Bi-Directional traversal. It has different implementations including BlockingDeque,ArrayDeque,etc.

Deque and ArrayDeque

Deque is the abbreviation of “Double Ended Queue”. A Collection that allows us to add (or) remove elements at both ends. Deque supports total size of collection for both fixed and unspecified size limits.

Deque implementation can be used as Stack(Last in first out ) or Queue(First in First Out).For each insertion, retrieval and removal of elements from deque there exists methods in 2 flavours. One will throw exception if it fails in an operation and another one returns status or special value for each operation.

What is new in Java 6.0 Collections API?

Robert Cooper

AddThis Social Bookmark Button

Ola notices a change to the Hpricot gem:

This is just so cool, I cannot contain it. For those of you who haven’t heard about Hpricot, it is one of why the lucky stiff’s incredibly cool tools (which he probably will use to take over the world any day now…). It’s HTML parsing goodness, very flexible, with the goal of being able to parse (and fix) everything that Firefox handles.

“So what?” you’re probably asking… Well, Hpricot uses Ragel and some C code to achieve blinding speed. This means JRuby can’t run it. Or I should say couldn’t run it:

orpheus:~/workspace/jruby> jruby bin/gem install hpricot –source http://code.whytheluckystiff.net
Bulk updating Gem source index for: http://code.whytheluckystiff.net
Select which gem to install for your platform (java)
1. hpricot 0.5.110 (jruby)
2. hpricot 0.5.110 (mswin32)
3. hpricot 0.5.110 (ruby)
4. hpricot 0.5 (ruby)
5. hpricot 0.5 (mswin32)
6. hpricot 0.5.0 (ruby)

That’s right, Hpricot is now more promiscuous than any other gem with native parts.
What can you do with it? Well, I’m just going to point you to _why’s own description of it. All he says at http://code.whytheluckystiff.net/hpricot/ will work fine in JRuby!

How did this come to be? Well, me and _why did some joint hacking, which was helped along by the fact that Adrian Thurston (the genius behind Ragel) recently added Java support to it. So, basically, most of the Ragel definition is exactly the same for both the C and the Java versions. The native code has been factored out, and both versions are buildable with rake from _why’s code repository.

This is important. Don’t think anything else. This strategy will, and can, be used for other gems with native parts. It’s just a question of time.

Yeah, I can’t help but wonder how long it will be before this becomes SOP.

AddThis Social Bookmark Button

I have written one small program on how to execute scripts in Java 6.0

Introduction

In this article i will write a small program using Scripting feature in Java 6.0, a new feature introduced in Java 6.0 mustang. This is cool and more useful when we are working with the scripting languages. I am not going to explain in depth, will explain with very small example. In my next article i will write about the advanced features in script programming in java. Follow the steps to run your first script program in Java 6.0 :

Java Scripting in Java 6.0 (Mustang) - Article
Spring Resources and Articles
Struts Tutorials and Articles

Jim Farley

AddThis Social Bookmark Button

The mobile phone market doesn’t need yet another innovative device design. We’re well-served by RAZRs and Treos and Dash’s (oh my!). But it desperately needs innovation in the smartphone OS area.

[Sorry for parking this in the Java area for now, but technical difficulties leave me no alternative.]

Mike Loukides

AddThis Social Bookmark Button

It’s finally happened! Sun has released Java under an open source license. Not only that, they did it in the best possible way: using GPL version 2, not some bizarre concoction of their own. Congratulations to Jonathan Schwartz, James Gosling, and everyone else involved with this decision.

What’s surprising, of course, is how long it took. We’ve talked about it for years, written articles and editorials–but after lots of “maybe next year,” some of us never really believed it would happen. And it’s worth noting that a complete JDK hasn’t yet been released; just the compiler (javac) and the Hot Spot VM, with the rest of the JDK coming in the first half of 2007. But what’s available under the GPL today is substantial: as Gosling has said on a number of occasions, the JVM is the crown jewel.

So, now that we have the crown jewels in our hands, and the other bits coming in a few months, we need to ask the hard question. Is it too little, too late? It’s certainly not too little. But too late?

Sun has always been a company that many developers have loved to hate. People have been dancing on Java’s grave ever since Gosling first gave us a look at a USENIX conference back in 1995. I know–I was there. I doubt that this announcement will convince any of the historical Java-bashers. For them, the license is irrelevant.

More to the point: Java has been the birthing ground or proving ground for many important technologies: the first web containers, Jini, JXTA, aspect-oriented programming, Hibernate, and Spring, to name a few. Lucene made it easy for developers to integrate sophisticated search engines into their applications. The JAIN community had a working, web-startable SIP phone long before VoIP became popular. EJB first interested me because I could see a way to write a database application without writing SQL. That idea is still pretty radical. GPL’d Java will do a lot to make the achievements of the Java community more visible: more people will be willing to look at what Java developers are doing, and take advantage of the great wealth of innovation that Java has driven.

But that isn’t the whole story: that street runs in both directions. As you probably know, EJB 2.0 and 2.1 went badly off course. Whatever promise EJB showed early on, EJB 2.0 and 2.1 had massively complex APIs that made them nearly unusable. These APIs weren’t driven by developers and what they wanted, but by corporate partners and what they thought they needed: software platforms that could solve virtually any problem, while generating nice consulting fees. Clarity and simplicity weren’t virtues that counted for anything. On a number of occasions, Gosling said “Simple things should be simple” (or some variant thereof) from the JavaOne podium. That’s a focus Java has lost–and if you hear that slogan in the next year, you’ll probably hear it from David Heinemeier Hansson or someone else working with Ruby on Rails. Rails’ ActiveRecord succeeds where EJB 2.1 fails: ActiveRecord is simple, extremely capable, pleasant to use, and drives you to do better design work.

I don’t know whether greater involvement by the Open Source community could have kept EJB 2 from running off the rails (so to speak). The EJB 3 specification, which had much more input from the Open Source developers, is a huge improvement. Furthermore, EJB is just a start: everything from Swing to generic collection libraries needs to be revisited in this light. So here’s the challenge: now that Java has an open source license, will greater participation by the open source community help Java return to its roots in simplicity? Will more input from the open source community help to define a platform that’s
simpler and more developer-friendly? If so, then Sun’s announcement is not too late.

One final perspective: I develop an open-source application called JL with a userbase that’s small, but larger than I can count on one hand. I’ve gotten lots of emails thanking me, some free CDs (thanks, Normunds!), and very few problem reports. The issues come largely from people trying to run JL on a Linux distro that doesn’t include a JDK, and the story is always the same: the user found some strange out-of-date JVM (an fruity old Blackdown release, Japhar, or something like that) and installed it. And the answer is always the same: download the JDK or JRE from Sun or from IBM. “Write Once, Run Anywhere” is a good thing–and it’s true, it’s really true. I’ve only once had to fix a cross-platform bug, and that was years ago. I don’t understand why anyone would write platform-specific software: I’ve got Macs, Windows, Linux (and even an ancient Solaris box) at home, and I want anything I write to run on all of them. But “Write Once Run Anywhere” only works if Java–and I mean a good Java–is everywhere. Sun’s announcement may be late, but it’s not too late: a truly open Java can be everywhere, in a way that the current JRE is not.

Open Source Java was inevitable, but it took a long time to come about. It’s finally here. Thanks again to all the people at Sun, and elsewhere, who made it happen.

Dejan Bosanac

AddThis Social Bookmark Button

In this excellent article Christophe Coenraets gives few examples of how you can use Adobe Flex as a presentation layer for your Spring applications.
It is good to see that my Spring middle-layer classes could be reused with one more presentation technology. I like to have options.

Steve Anglin

AddThis Social Bookmark Button

TheServerSide.com is reporting news that the Spring Framework 2.0 is now final.

Dejan Bosanac

AddThis Social Bookmark Button

After introduction of Test Driven Development (TDD) there was only one “testing related mantra” for developers:

write test, write code, refactor

and that was the point were all further discussion stopped. Of course, this is only the introduction to this topic as there are many other factors that should be considered in order to deliver quality software to your customers.

Finally, in past few months I ran across few articles (and blog entries) that broadens discussion on this very important topic. In this post I’ll collect them in one place and summarize their content hoping that they will be a valuable read to you (as they were to me).

Steve Anglin

AddThis Social Bookmark Button

Ruby expert and evangelist Pate was also able to interview the esteemed open source JRuby project team, found here on this blog and in this excerpt.

Steve Anglin

AddThis Social Bookmark Button

Christophe Coenraets posts this: 30 Minutes Flex Test-Drive for Java Developers. “The objective of this test-drive is to give you, in a very short amount of time, an understanding of how Flex works and what it can do. This test-drive consists of a series of samples kept as concise as possible (typically between 10 and 50 lines of code) to clearly expose features of interest. The samples focus primarily on using Flex with a Java back-end. The intended audience is Java developers with no prior knowledge of Flex.”

Do you think Flex and/or Flash will be big for Java developers; and are you using it? If not, are you considering?

Mike Loukides

AddThis Social Bookmark Button

We’ve just published Getting Started with Hibernate 3, by Jim Elliott. It’s the latest entry in our new series of Short Cuts: short PDFs that get you up and running quickly. Jim is a great author–he works fast, he’s easy to get along with, and he writes really well.

Getting Started with Hibernate 3 is similar to our earlier Hibernate: A Developer’s Notebook. There’s a good reason for that: Hibernate has changed a lot since the book was written, and we couldn’t see letting a good format go to waste. So the Shortcut essentially updates the Notebook. If you enjoyed the notebook, get the Shortcut to bring you up to date. If you’re just getting started, the Shortcut stands on its own.

Our Shortcuts are, in some ways, an experiment in next-generation publishing. We’ve actually been publishing in PDF form for a long time–but now we’re taking it seriously.

Congratulations, Jim, and thanks again for a great book!

Steve Anglin

AddThis Social Bookmark Button

In this JavaWorld.com/ComputerWorld interview, “Sun’s Simon Phipps details open source strategy: As Java moves toward open source, other Sun products will follow.”

Paul Browne

AddThis Social Bookmark Button

On a recent project , the choice was between Enterprise Java (using frameworks such as DWR and Struts) , or Oracle Forms. The newest latest Java technology , versus a 15 year old technology that Oracle is comitted to phasing out (and moving to ADF / Oracle fusion). No contest , you think , until you hear that the decision was made (and rightly so) to us Oracle Forms.

‘What?!’ I hear you say - how could this happen? The project in question was fairly simple - get information and store it in a database. The problem is , despite being mainstream for the last 6 years, there is no standard, easy ‘drag and drop’ method of doing these applications in Java. C# does it in Visual Studio. Oracle does it with Forms. With Java (and despite having doing 10 or so of these projects), there is still too much plumbing that the developer needs to know.

I’m expecting a deluge of ‘have you tried project X’ on this post. And yes, I expect that an Eclipse based tool will probably fill the gap. But for these simple applications , there is no standard way of doing this (standard being a solution that dominates the market in the way Struts did the Web App framework space, until recently). But we’ve been waiting 6 long years!

ruby on rails logo

All of which brings me to Ruby. Ruby on Rails’ sweet spot is exactly these kind of simple, ajax enabled , no frills ‘get info from web and store it on database’ applications. Enterprise Java’s sweet spot is the heavy lifting workflow , Rules , Calculations, Integration with Legacy and other systems , web services and basically anything to do with Business logic. The two are a perfect complement to each other, which is why the news that JRuby now runs Ruby on Rails is especially interesting.

JRuby is a version of Ruby that runs in the Standard Java Virtual Machine (JVM). It means that (1) You don’t have to install Ruby, which might meet resistance in a corporate environment. It also means (2) that all the methods you have available in Java you have available in Ruby. The O’Reilly Ruby site and this Javaworld Article are good places to start learning more about Ruby and linking it into Java. Fellow O’Reilly Blogger Steve Anglin also has more information about the latest JRuby release.

More on Technology in plain English

Steve Anglin

AddThis Social Bookmark Button

After hours or during your lunch away from your Java coding, check out this live panda bear action in Wolong National Park (panda reserve), China.

Paul Browne