Ken Wong Software Development Blog

February 9, 2007

Looking for Code Generation Tools

Filed under: Code Generation, Dot Net, Java — canonw @ 1:03 pm

I am researching ways to reduce code development time. Things have progress a lot over the years. When I first look at code generation back in 1998, there are few choices, and all of them are commercial. Thanks to open source movement. I see many varieties and options in the public domain.

I found Code Generation Network. This portal has the most comprehensive information on code generation. And I learn to use several tools from their website.
I try these tools so far. And none of them win my vote of confident.

Dot Net Based

  • MyGeneration
    I like this a lot. It has many user-contributed templates on object-relationship mapping framework. It’s very flexible, and have non ORM related sample to follow. One of my favorite is Insert SQL generation.
    Unfortunately, the program stability is questionable. I have a Core 2 Duo Thinkpad T60p, and I try to fetch insert SQL on a sizable table in my SQL Server. MyGeneration keeps popping up a message box, and I was forced to kill the process.
  • CodeSmith
    This is a popular commercial tool. Our local user group will demonstrate its usage this month. I thought about trying it out. But pass it.
  • Codus
    it has nice and clean user interface, but few templates. All template are ORM oriented.

Java Based

Frankly, I didn’t spend as much time in the Java. So far, none of the Java based tools share the same intent as the Dot Net based tools.

To be investigated

I have yet to find my ideal tool. So, I will research these tools in later day. MDA becomes an important consideration. But object modeling is not the only objectives I want to accomplish.

My Reflection

After going through my research, I realize my objective must enlarge. Initially, I tried to find an ad hoc code generation tool. But the state is not sophisticated enough.

Let’s put it another way. Why should I use code generation? And what purpose do I try to accomplish?

So far, most code generation tools focus on these area of technologies.

  1. Template engine
  2. Object relationship mapping

To make these code generation more robust. It needs improvement in these area.

  1. A mechanism of describing class definition
  2. Data oriented SQL statement manipulation
  3. Finer grain of control on object relationship mapping
  4. …More

More reflection to come…

August 5, 2006

Barrier of Entry

Filed under: Java — canonw @ 2:13 pm

I try to find a good personal blogger lately. And I learn a lesson why Java will never be as popular as other language like PHP.

Initially, I choose a Java-based bloggers. I used these bloggers in the past. Both Pebble and blojsom are good to use as personal blog server. Both are easy to setup. This time I select Roller Weblogger. The reason I choose this because I want to try out embedded database, Derby.

Among these Java-based bloggers, blojsom is the best. It’s easy to setup, and have good amount of plug-ins. Pebble is like a pet project by Simon Brown. Roller Weblogger tries to recruit more volunteers by being an Apache project.

Frankly, all of them are well polished and with care. However, none of them shares the same appeal as equivalent PHP projects.

For some reason, I tryout WordPress. It takes about 20 minutes to setup and running.

What shock me is this. Comparing the amount of time and knowledge to setup a PHP application, a Java application is more demanding. Among these application, Roller Weblogger takes the longest time to setup. The installation guide is clearly designed for hardcore Java developers and not for average Joe (the guide misses information about Hibernate configuration with Derby). Pebble and blojsom are better but they don’t provide help if you know nothing about web container like Tomcat.

My point is this.  It takes a fair amount of server-side Java knowledge to make these bloggers work. And this is not the first time I’ve experienced this. End-users are expected to know something on Java, especially Tomcat setup (knowledge on web container), JDBC connection setup (kowledge on database setup), etc. This takes time to research, and an average Joe doesn’t have patience to learn it.

On the other hand, setting up WordPress is a snap. Just follow the installation guide, and you’ll have what you want in no time. It is great if I know the required tools — Apache, MySQL and PHP. But it’s not required.  The guide will point you to the right location.
Java is designed to be specialized tools. And average Joe never needs the high end features.

July 25, 2006

Monitors Tools

Filed under: Administration, Java — canonw @ 12:03 pm

Just found these interesting tools for monitoring Java activity.

  1. JDbMonitor – Monitor JDBC Performance. It is very usful if a Java application works with multiple databases. All I need is just one piece of software to monitor all. (Updated: 2006-07-25)
  2. MessAdmin – Notification system and Session administration for J2EE Web Applications. A easy way to track session variables. (Updated: 2006-07-25)
  3. SuperACElet offers this product to cover many aspects of J2EE — EJB, JMX, JMS. The coverage scope is very ambitioius. (Updated: 2006-07-27)

Blog at WordPress.com.