Oct 29

Trails and Matt’s AppFuse

Java, Tech, Web Frameworks No Comments »

Matt has written about Trails – like Rails, but with Tapestry, Spring and Hibernate.

I put in a cheaky comment to see what a video on setting up a simple web application would look like. Matt thinks it would be 20 minutes long. That is on a good day, with no mistakes. Compare this scenario to the Rails demo.

Matt talked about how we seem to produce so many files in Java, due to the way we architect things:

model.Person
dao.PersonDAOTest
dao.PersonDAO
dao.hibernate.PersonDAOHibernate
service.PersonManagerTest
service.PersonManager
service.impl.PersonManagerImpl
webapp.action.PersonActionTest
webapp.action.PersonAction
web/pages/personList.jsp
web/pages/personForm.jsp

The last two JSPs can be generated, but that’s still a buttload of classes (9) just to CRUD (and test!) a database table. Not too mention all the files you need to edit for Spring and i18n.

dao/hibernate/applicationContext-hibernate.xml
service/applicationContext-service.xml
test/web/web-tests.xml
web/WEB-INF/classes/ApplicationResources_en.properties
web/WEB-INF/menu-config.xml

Ouch. Matt also pointed out that he has had requests to add support in AppFuse to generate all of these files for you. This would look good in a demo, but how about maintainence?

This is an issue with code gen in general, and one that you see a lot in languages like Java. Even with tools such as great IDEs (IntelliJ/Eclipse) and and code gen, that only helps when you are writing the code. What about reading it (which you do a lot more of in a applications life time (hopefully!)).

What I like about Rails is that it isn’t about code gen. It is about smart defaults which are extension points. For simple CRUD dynamic web sites the defaults can work well, and your application is done quickly. If you need to extend the functionality then you get in there and put in the extension points (in this case, you normally just create the right methods / objects).

I have always liked the mantra of:

make simple things simple, and hard things possible

I think that a lot of frameworks don’t allow this.

I also think that there is a HUGE difference between a dynamic website, and a web application, and would choose very different tools depending on which of these I am building.

There are many great choices out there.

Oct 29

This is Sick. And Wrong. :)

Tech 143 Comments »

I opened up Brian Mc’s entry:

[mccallister@knight mccallister]$ cat tcc-test
#!/usr/local/bin/tcc -run
#include

int main()
{
printf("Hello World\n");
return 0;
}
[mccallister@knight mccallister]$ time ./tcc-test
Hello World

real    0m0.019s
user    0m0.020s
sys     0m0.000s
[mccallister@knight mccallister]$

All I could do was sit and shiver for a few seconds :)

Oct 29

Quantity versus Quality

Personal 1 Comment »

I was driving all over a suburban neighbourhood and I noticed that almost all yards had signs for Bush or Kerry.

I started to add up the signs and found that:

- There were 5 Kerry HOUSES for each Bush HOUSE
- Each Bush house had 5 signs
- Some Bush houses had HUGE HUGE HUGE signs (making up for something? ;)

Oct 27

RE: My Very Own Bile on Java

Java, Tech 1 Comment »

Joe Ottinger has got out a rant of his own (are you are St. Louis fan? jk :).

He rants about Java from all angles:

  • JVM: It sucks as it isn’t on every desktop
  • API: “The API sucks for a lot of reasons. It lacks real focus, often providing multiple paths to a single end; Swing or AWT? StringTokenizer or Scanner? Date or Calendar? DOM or SAX? Reader or InputStream?”
  • The People: He complains about some of the requests from Java users

I have an issue with some of the issues, mainly the complaints about changes to the Java language.

JAVA IS A PLATFORM!

Embrace other languages. Embrace other ways to express your ideas. There is NO perfect language.

NOTE: Joe, I agree with your memory management issues. I think you are correct. I just singled out ONE point, that although Java the language doesn’t need to be changed for everyones whim, I wish that Sun thought of Java as more of a platform (as .NET does), and puts more behind other languages, which allow people to express themselves in a way that makes sense to them. That is all mate :)

Oct 27

RE: Ruby Performance

Tech No Comments »

Charles Miller has written about Ruby Performance.

He discusses a micro benchmark where he passes an XML file using REXML on the Ruby side, and compares it to dom4j on the Java side.

The XML file was large. 25MB. And Ruby was spending far too much time in GC.

It would be interesting to look at the code and see what is going on. I have never had to really push Ruby hard, but have never had any problems like this.

Of course, do you want to use a DOM in this situation anyway? ;)

Oct 27

IBM and Microsoft respond to Websphere vs. .NET Study

Tech No Comments »

A report from IBM was leaked out which had claims that the recent study from TMC which compared .NET to J2EE (using IBMs Rational Rapid Developer, and WSAD) was flawed.

Microsoft has hit back at the report pretty strongly. It is actually a pretty interesting read :)

TSS Thread: IBM and Microsoft respond to Websphere vs. .NET Study

Microsoft hits back at the IBM report inline

Damn benchmarks :)

Where is the Ruby comparison? ;)

Oct 27

“Server open for e-business”

Tech 133 Comments »

I am sorry, but I just crack up every time WebSphere starts up and tells me:

… 5f2f8622 WsServer A WSVR0001I: Server server1 open for e-business

Can’t you picture the marketing guy asking the developer to change the log message from “Server startup complete.” to that?

Oct 26

Economic choices of a consultant

Tech 1 Comment »

David Hannson wrote about Fear-driven technology choices.

At first I thought this was going to have something to do with the world of fear that Bush puts us in ;)

He discusses some of the thoughts that consultants like Matt Raible made. Basically, can you get Ruby gigs? Can you get the same price for those gigs?

Although you can argue that it would be better for “clients” if you choose the best technology for them, unfortunately that isn’t always the way it works. Yes, you can try to find projects which give you this power, but it isn’t guaranteed.

I have worked on projects where I had the ability to use whatever technology made sense, but have also not been in that position. Also, it doesn’t always make sense to use Ruby ;) Forget any technical arguments. There are plenty of others. If I am one new consultant coming into a project that has a team of great Java developers, with a 2.0 product out there, does it make sense to move to Ruby? Maybe not.

I love Ruby. It is fun. It is creative. It is productive. However, I also like tools in the Java world, including the editors (Textmate is good, but is no IDEA in my opinion).

At the end of the day the technology choice is only one part of the puzzle anyway. Give me a bunch of smart guys and the project will be a success (hey, EVEN with something weird like having to use EJB ;). Give me a bunch of guys who don’t care, and the best tools in the world won’t help.

Here’s to all of the tools out there!

NOTE: A search on Dice.com brought back 23 gigs in the US for “Ruby”. We need to change this!

Oct 26

How to build maintainable systems: Simple design

Tech 2 Comments »

Jon Tirsen has ranted on How to build maintainable systems: Simple design.

I have a funny suspicion that the reason that he blogged this was:

I have been to places that had frameworks of hundreds and hundreds of classes that when it came down to it did the equivalent functionality of about two mid-sized classes work. I kid you not.

My guess is he came back from one of these “places” and had to blog again.

Finding a simple design is always a tough thing to do. We always want to make the system as simple as possible, but not more so.

I have run into the issues that Jon spells out, and also the opposite.

I was at one client where the ENTIRE application was one mega-Servlet. Thousands of lines of code. One Servlet. Yup. One.

You could argue that the “design” was simple ;)

Oct 25

Rails Academy: Now video on setting up and using Rails on Windows

Ruby, Tech, Web Frameworks 2 Comments »

Rails first put out a video of a Mac OS X desktop setting up a simple blogging application right in front of your eyes. This has turned into the Rails Academy, and more videos are being added.

For example, there are now new lessons in which you see a full install from scratch on Windows.

It would be funny to do a parady in which someone starts from scratch, sets up a JVM, an application server, an IDE, downloads a bunch of open source tools, etc ;)