Recent Posts

RSS Feeds

Java an SUV, I love my SUV



Well I generally try to stay away from most of the flame wars but this little bit made me want to respond.

With Web applications, nearly all of the engineering happens in the SQL database and the interaction design, which is embedded in the page flow links.  None of the extra power of Java is useful when the source of persistence is a relational database management system such as Oracle or SQL Server.  Mostly what you get with Java are reams of repetitive declarations at the top of every script so that the relevant code for serving a page is buried several screens down.  With a dynamic language such as Lisp, PHP, Perl, Python, Tcl, you could do bind variables by having the database interface look at local variables in the caller's environment.  With Java the programmer is counting question marks in the SQL query and saying "Associate the 7th question mark with the number 4247", an action that will introduce a bug into the program as soon as the SQL query is modified (since now the 7th question mark has been moved to become the 8th question mark in the query).

Perhaps most of the 'engineering' that Greenspun and his students do happens in the DB but in most every enterprise level application that I've been involved in the DB is only a small fraction of the actual design work.
Java, perl, python, ruby, Obj-C, C++, VB, etc. all have their strengths and weaknesses. VB is probably much better for building 6 week long school projects cause you never have to maintain it, you never have to even run it after you pass the class, so who really cares what the arch is, how easy it is to maintain, how well it scales etc. If your doing most of the engr in the db why not just serve up your db into vb forms...

Now on to some specifics.

  • embeded in the page flow links
  • This practice is documented in my J2EE AntiPatterns book as an antipattern that inexpierenced people get stuck in. Perhaps the point of all this is to teach the students how not to do it?
  • matching the 7th ? to 4247
  • Who uses plain ol JDBC anymore? Your are more or less wasting your time if your not using CMP on an EJB project or a relational object bridge such as Hibernate on your pojos.
  • None of the extra power of Java is useful when...
  • Hows that? Clearly little or no understanding of J2EE, what is for, how to use it. Again if you are building a quick hack in a single semester college class, J2EE is probably not what you need. Heck, if you are building a 6 week long project that will only be run once, the J2EE is probably not what you need. But if you are trying to build a large scale application that performs complex business logic you certianly dont want to be using VB. Do you really want to put all your logic into the db? That is way back in the 70's.

This whole thing is just another reason why I think college computer degress are not what they should be. Not trying to say that all CS grads are poor developer/arch or anthing like that, its just that college should be teaching people how to think, not how to poorly build applications in a single type of technology. Why not have a 4 year degree where you have to build two big enterprise type applications (maybe the HR system for the school, and the class booking system). Build it in VB/.NET, Perl/Python/C/C++ and J2EE. The the final two years the same people that built it would have to maintain it. Anyway, this is digressing into another post where I rant about college degrees, I'll leave that for another time...

And oh yeah, my Expedition is a great off roader, we have been all over the mountains around Breck and not been stuck once. (we probably will this week end cause I posted this :-)

Permalink     No Comments