Harvard Prof Likens J2EE to an SUV; Devs React
One Harvard professor, after completing a web services assignment, this month compared Java to an SUV of dev tools, claiming it was overkill in some areas and not up-to-snuff when really going off-road. Reaction from the Java/J2EE community was swift -- although not as predictable as you might think. By special arrangement with J2EE community portal TheServerSide.com, IDN helps you take a look at how Java/J2EE devs see the state of their art, and at the Harvard comments that started it all.
He shares in his blog his "epiphany" that Java is the SUV of programming tools. In part, Greenspun says, " After researching how to do bind variables in Java, he found Java turns out to be much harder and more error-prone than in 20-year-old C interfaces to relational databases. "
To support this conclusion, Greenspun goes onto say:
"A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl. People who are serious about getting the job done on time and under budget will use tools such as Visual Basic (controlled all the machines that decoded the human genome).
"But the programmers and managers using Java will feel good about themselves because they are using a tool that, in theory, has a lot of power for handling problems of tremendous complexity. Just like the suburbanite who drives his SUV to the 7-11 on a paved road but feels good because in theory he could climb a 45-degree dirt slope. If a programmer is attacking a truly difficult problem he or she will generally have to use a language with systems programming and dynamic type extension capability,
Not surprisingly, Greenspun's comments has ignited controversy at Java/J2EE communities. But, what is surprising is that not all Java/J2EE loyalists are bashing Greenspun. By special arrangement with TheServerSide, IDN provides some pointed samples of the conversation going on over there at the Java =SUV thread. Scanning through these comments provides a great overview into what's on the minds of Java/J2EE devs working on enterprise and web services projects.
Productivity -- V.K.
Java can learn a lot from other languages like Perl, Ruby etc. Even simple functions like split, join, regular expressions are missing from the Java Core. Other features in my wish list are double dispatch, overloaded numeric operators, a more powerful select statement, internal iterators etc. Many of these are so simple to do and yet have not been introduced. If Java went open-source, I can bet that features will be introduced in a jiffy.
Productivity -- N.Z.,/i>
You know, I see this sort of comment a lot, and I just don't understand it. Yes, it may initially take a little longer to create a Java-based program than a PHP or Perl-based program. But, that "upfront" cost is tiny compared to maintaining the application. I've had to support enough Perl programs to know that maintained on a script longer than 100 lines is horrific. Give me Java (or any other OO-based language) any day.
Productivity -- E.V.
Don't worry about PHP, I wasn't even thinking about that. I'm talking about C#/.NET. Right now I'm messing my brains with a huge ant build.xml and that's pissing me of. Since when the hell is building a project supposed to be more than a key combination in the IDE? All this sick appetite for XML's and ugly configurations is what's killing the productivity.
If you get to writing Java code, you're pretty well of, but even than there's a lot of verbosity when using EJBs and stuff. Things should be much more leaner! Maybe the Java camp can't see this through all the XMLs, but it's not supposed to be like this. I like java almost as much as C#, but let me tell you, .NET is a much tighter package. And don't give the freedom is not a problem for smart people quote. I don't have problems in fining java related tools, I'm having problems in making things that should be convenience run without an XML!
Here's why he's wrong -- J.S.
"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." Holy Cow!? Ever heard of MVC? Ever heard of abstraction? This guy is stuck in the 80's. The problem with this prof is he has no concept of the possibility of the existence of the idea of a single design pattern. I'm glad I'm not a CS student at Harvard. I'd have to unlearn all that ancient crap when I got out.
Fallout from the Java = SUV Posting -- C.V.
if you wrote a page that list the contents of a simple query, almost every system works for the job. But try a big portal with security, a integrated shop, a Content Managed System.... With Perl or PHP. I Worked 3 years with Perl, and is perfect for make little tasks, read logs... But for complex systems is a nightmare.
Groovy - Jazzing Up Plain Old Java -- G.B.
Dare I say it's obvious to anyone (except some Sun J2EE Junkies) that Java is way too complex and a massive overkill for most tasks. Remember C++? Remember C? Remember Assembler? How history repeats itself, eh?
Bauer gores on to quote from work done by James Strachan (of Geronimo, Jelly, dom4j and more fame) and Bob McWhirter (of Jaxen, dom4j, codehaus and more fame), who have some Java/J2EE issues for complex projects, and are building a new dynamic scripting language code-named Groovy for the Java runtime that lets you do more with less.
G.B. cites Strachan/McWhirter's concerns that
* Java is getting way too verbose when you look at languages like Python or Ruby - we can do much better. e.g. we want simple, clean and great syntax for tuples, lists, and maps and closures.
* We need a new concise language for writing unit tests and scripting Java objects.
* In TDD (Test Driven Development) worlds we spend much more time writing tests than actually writing the code. The actual code could stay Java but for writing all that test glue we could do with a simpler, more dynamic, powerful and concise language for writing all those test.
Harvard?? -- C.F.
Is this the quality of students who go to Harvard? My, my...both the professors and students suck.
Fallout from Java = SUV Posting -- V.C.
J2EE as sold by vendors can be expensive, complex (blueprints) and slow (EJB). So that is a valid point! However, users do DAO (iBatis/Hibrenate), Struts, DisplayTag, Tomcat/Resin/Eclipse for high performance and low costs. In any lang., it depends on your architect. I urge the professor to teach his students to like/love low cost and high performance in any lang.
Productivity -- M.N.
I like Java almost as much as C#, but let me tell you, .NET is a much tighter package. And don't give the freedom is not a problem for smart people quote. I don't have problems in fining java related tools, I'm having problems in making things that should be convenience run without an XML! Get an equiv Java IDE like WSAD. Then it will be "as tight" if not tighter. Oh, then try doing COM+ in C# and call it from a ASP.Net all within the IDE. Use Windows 2003 Server. Let me know how easy it is. And productive.
10,000 Lines of Code = Stupid Students -- S.D.
1. I think this article is little partial - it doesn't talk [about] scalability , security , etc - just talks [about] simple fast ( stupid ?) development using procedural languages / procedural style languages. for a college project (although not MIT) I would also use any stupid asp, VB to get it done faster - who looks at efficiency of code in schools / code review etc - Prof just wants to see the results .. so that's fine ..
2. The bigger issue is that people who learn java don't really understand the OO concepts - if they did then they wont be writing 10, 000 lines of code
3. EJBs to a great extent are a overkill - most of the dot coms went belly up because they just couldn't finish "EJB" apps in time and money - forget [about] maintaining. I would think 10,0000 times before choosing EJB route.
Learning java is to do more with clear OO concepts - if that's clear u have best language on your hand to do wonders
Thanks for Wasting My Time -- P.H.
Can't believe the buzz around this. So a college teacher thinks Java's an SUV and LISP is just swell. Who gives a s--t. How did this get slash-dotted (let alone posted on TSS) to begin with?