Philip Greenspun created quite a stir when he discussed one of his Computer Science classes. Students were required to complete a project, and they choose different technologies to do so. Based on watching these groups, Philip felt that Java was like an SUV: Overkill for how it is used, and can't even REALLY handle offroading. Java programmers pummeled him on his blog, email, and slashdot.
His latest blog revisits the topic, hitting out at Java again by saying:
"Lots of professional Java programmers emailed to say "If only those students had used Libraries X and Y, they would have done okay." Sadly X and Y were never the same in any two emails so it is easy to understand how the students went wrong (i.e., it is not obvious how one is supposed to choose among the 100 different ways to get something done in the world of Java tools)."
Read: Fallout from the Java = SUV posting
Original blog on: Java is the SUV of programming tools
Slashdot posting on original blog entry
I somewhat lost this guy when he started saying that to do anything tough you have to drop down to Lisp!
-
Fallout from the Java == SUV posting (135 messages)
- Posted by: Dion Almaer
- Posted on: September 23 2003 09:16 EDT
Threaded Messages (135)
- Hah! by Brian Kapellusch on September 23 2003 09:38 EDT
- Freedom of choice by Luca Masini on September 23 2003 09:53 EDT
-
Freedom of choice by Stephen Wink on September 23 2003 10:16 EDT
-
SQL directly into content page ! by YOYO XXX on September 23 2003 11:32 EDT
- SQL directly into content page ! by Wille Faler on September 24 2003 11:57 EDT
-
SQL directly into content page ! by YOYO XXX on September 23 2003 11:32 EDT
-
Freedom of choice by Stephen Wink on September 23 2003 10:16 EDT
- Freedom of choice by Luca Masini on September 23 2003 09:53 EDT
- Fallout from the Java == SUV posting by Nathan Zumwalt on September 23 2003 10:01 EDT
- What happened to MIT? by Rob Murtha on September 23 2003 10:01 EDT
- Fallout from the Java == SUV posting by Edward Vrajmasu on September 23 2003 10:01 EDT
- Productivity by Nathan Zumwalt on September 23 2003 10:09 EDT
-
Productivity by V K on September 23 2003 10:25 EDT
-
Productivity by Edward Vrajmasu on September 23 2003 10:37 EDT
- Join the Free Java Now Campaign - Viva The Republic! by Gerald Bauer on September 23 2003 10:46 EDT
-
Productivity by John Brand on September 23 2003 11:21 EDT
-
Productivity by Edward Vrajmasu on September 23 2003 11:27 EDT
-
Huh? by Brian Kapellusch on September 23 2003 11:39 EDT
- nevermind by Brian Kapellusch on September 23 2003 11:41 EDT
-
Huh? by Edward Vrajmasu on September 23 2003 11:42 EDT
-
in this case... by Brian Kapellusch on September 23 2003 11:46 EDT
-
in this case... by Cameron Purdy on September 23 2003 12:05 EDT
- surprising LACK of vision by Manolo Gomez on September 23 2003 12:13 EDT
-
in this case... by Gregory Pierce on September 24 2003 04:13 EDT
- in this case... by Gregory Pierce on September 24 2003 04:19 EDT
-
in this case... by Cameron Purdy on September 23 2003 12:05 EDT
- StringBuffer by Simionica Ovidiu on September 23 2003 12:04 EDT
-
in this case... by Brian Kapellusch on September 23 2003 11:46 EDT
- Productivity by John Smith on September 23 2003 11:44 EDT
-
Productivity by Nathan Zumwalt on September 23 2003 11:47 EDT
- is it useful to notice ? by gilles cadignan on September 23 2003 12:04 EDT
- Productivity by John Brand on September 23 2003 03:41 EDT
- In/Out parameters by Toby Reyelts on September 24 2003 12:38 EDT
-
Huh? by Brian Kapellusch on September 23 2003 11:39 EDT
-
swap by pratheep p on September 23 2003 11:34 EDT
- swap by John Brand on September 23 2003 03:15 EDT
-
Productivity by Edward Vrajmasu on September 23 2003 11:27 EDT
-
Productivity by Razvan Caraghin on September 25 2003 04:34 EDT
- Productivity by Edward Vrajmasu on September 25 2003 09:28 EDT
-
Productivity by Neutral Ground on September 26 2003 02:51 EDT
- Productivity by Christian Hilmersen on September 26 2003 03:49 EDT
- Productivity by jelmer kuperus on September 25 2003 06:54 EDT
-
Productivity by Edward Vrajmasu on September 23 2003 10:37 EDT
-
Productivity by Edward Vrajmasu on September 23 2003 10:34 EDT
- Productivity by Mark N on September 23 2003 01:24 EDT
-
Productivity by Diego Parrilla on September 24 2003 03:48 EDT
- No need ;-) by Lofi Dewanto on September 24 2003 04:02 EDT
-
Productivity by Razvan Caraghin on September 25 2003 04:30 EDT
-
Productivity by Edward Vrajmasu on September 25 2003 09:21 EDT
- Productivity by Cameron Purdy on September 25 2003 09:30 EDT
- Productivity by Mike Spille on September 25 2003 09:44 EDT
-
Ant == Productivity! by Lofi Dewanto on September 25 2003 09:57 EDT
-
Ant == Productivity! by Edward Vrajmasu on September 25 2003 10:00 EDT
- Ant == Productivity! by Razvan Caraghin on September 26 2003 04:55 EDT
-
Ant == Productivity! by Edward Vrajmasu on September 25 2003 10:00 EDT
- Productivity == Ant by Lofi Dewanto on September 25 2003 10:16 EDT
-
Productivity by Edward Vrajmasu on September 25 2003 09:21 EDT
-
Productivity by Perrin Harkins on September 23 2003 01:50 EDT
- Productivity by Patrick Nordqvist on September 24 2003 03:25 EDT
- Is the java-community freeing itself from its OO legacy? by Christian Hilmersen on September 24 2003 08:50 EDT
-
Productivity by V K on September 23 2003 10:25 EDT
- Productivity by Nathan Zumwalt on September 23 2003 10:09 EDT
- Harvard?? by code freedom on September 23 2003 10:20 EDT
- Groovy - Jazzing Up Plain Old Java by Gerald Bauer on September 23 2003 10:32 EDT
- Here's why he's wrong... by John Smith on September 23 2003 10:58 EDT
- Fallout from the Java == SUV posting by anon anon on September 23 2003 11:06 EDT
- Fallout from the Java == SUV posting by John Smith on September 23 2003 11:16 EDT
-
Persistence by Brian Kapellusch on September 23 2003 11:23 EDT
- application-level caching in PHP by Perrin Harkins on September 23 2003 01:48 EDT
- Fallout from the Java == SUV posting by chandrasekar ramaswamy on September 24 2003 02:07 EDT
-
Persistence by Brian Kapellusch on September 23 2003 11:23 EDT
- Fallout from the Java == SUV posting by Carlos Vicente on September 23 2003 11:24 EDT
-
Fallout from the Java == SUV posting by Perrin Harkins on September 23 2003 01:55 EDT
-
Fallout from the Java == SUV posting - Perl power by Renat Zubairov on September 28 2003 07:39 EDT
- Fallout from the Java == SUV posting - Perl power by Perrin Harkins on September 28 2003 01:39 EDT
-
Fallout from the Java == SUV posting - Perl power by Renat Zubairov on September 28 2003 07:39 EDT
-
Fallout from the Java == SUV posting by Perrin Harkins on September 23 2003 01:55 EDT
- Fallout from the Java == SUV posting by Slava Imeshev on September 23 2003 15:51 EDT
- Fallout from the Java == SUV posting by Perrin Harkins on September 23 2003 16:37 EDT
- Fallout from the Java == SUV posting by anon anon on September 25 2003 04:09 EDT
- Fallout from the Java == SUV posting by John Smith on September 23 2003 11:16 EDT
- JSPs too hard for MIT CS Seniors and Grad students? by Sheng Sheen on September 23 2003 12:00 EDT
- No news here... by joost de vries on September 23 2003 12:01 EDT
- Java = stick-shift kit car by Ian Mitchell on September 23 2003 12:20 EDT
- Java = stick-shift kit car by anon anon on September 25 2003 04:00 EDT
- Java = stick-shift kit car by Ian Mitchell on September 23 2003 12:20 EDT
- The emporer has no clothes by geoff hendrey on September 23 2003 12:09 EDT
- The emporer has no clothes by Nebojsa Vasiljevic on September 23 2003 16:43 EDT
-
Innovation by Cornellious Mann on September 23 2003 05:06 EDT
-
Innovation by Nebojsa Vasiljevic on September 24 2003 01:20 EDT
- in/out parameter by xuxu666 xuxu on September 24 2003 01:30 EDT
-
Innovation by Nebojsa Vasiljevic on September 24 2003 01:20 EDT
-
Innovation by Cornellious Mann on September 23 2003 05:06 EDT
- The emporer has no clothes by Nebojsa Vasiljevic on September 23 2003 16:43 EDT
- Java/J2EE for Teaching by Lofi Dewanto on September 23 2003 12:14 EDT
- The most fundamentally important thing to note... by John Dale on September 23 2003 12:22 EDT
- Is this the quality of Harvard?! by Wille Faler on September 23 2003 12:23 EDT
- More than an academic? by a san juan on September 23 2003 13:11 EDT
- actually, he probably has more "real-world" experience than you by Perrin Harkins on September 23 2003 13:43 EDT
- actually, he probably has more "real-world" experience than you by Wille Faler on September 23 2003 03:20 EDT
-
actually, he probably has more "real-world" experience than you by anon anon on September 25 2003 04:03 EDT
-
actually, he probably has more "real-world" experience than you by Perrin Harkins on September 25 2003 10:06 EDT
- rofl by Cameron Purdy on September 25 2003 11:36 EDT
-
actually, he probably has more "real-world" experience than you by anon anon on September 26 2003 02:48 EDT
-
actually, he probably has more "real-world" experience than you by Perrin Harkins on September 26 2003 11:03 EDT
-
actually, he probably has more "real-world" experience than you by anon anon on September 26 2003 12:37 EDT
-
actually, he probably has more "real-world" experience than you by Perrin Harkins on September 26 2003 01:51 EDT
-
actually, he probably has more "real-world" experience than you by me havename on September 26 2003 03:52 EDT
- actually, he probably has more "real-world" experience than you by Perrin Harkins on September 28 2003 01:34 EDT
-
actually, he probably has more "real-world" experience than you by me havename on September 26 2003 03:52 EDT
-
actually, he probably has more "real-world" experience than you by Perrin Harkins on September 26 2003 01:51 EDT
-
actually, he probably has more "real-world" experience than you by anon anon on September 26 2003 12:37 EDT
-
actually, he probably has more "real-world" experience than you by Perrin Harkins on September 26 2003 11:03 EDT
-
actually, he probably has more "real-world" experience than you by Perrin Harkins on September 25 2003 10:06 EDT
- Is this the quality of Harvard?! by Roberto Calero on September 29 2003 11:02 EDT
- Thanks for wasting my time. by Paul Hixson on September 23 2003 12:28 EDT
- Thanks for wasting my time. by DODO DODO on September 23 2003 13:26 EDT
- Thanks for wasting my time. by Todd Murray on September 23 2003 01:38 EDT
- Thanks for wasting my time. by DODO DODO on September 23 2003 13:26 EDT
- Fallout from the Java == SUV posting by Vic Cekvenich on September 23 2003 13:13 EDT
- 10,000 lines of code = stupid students != fault of java by sean decor on September 23 2003 14:08 EDT
- EJBs and dot com bust by John Hess on September 23 2003 14:32 EDT
-
SUN should add supporting inheritance to EJB by Eric Chow on September 23 2003 10:07 EDT
-
SUN should add supporting inheritance to EJB by Wille Faler on September 24 2003 11:52 EDT
- SUN should add supporting inheritance to EJB by Eric Chow on September 25 2003 03:41 EDT
-
SUN should add supporting inheritance to EJB by Wille Faler on September 24 2003 11:52 EDT
-
SUN should add supporting inheritance to EJB by Eric Chow on September 23 2003 10:07 EDT
- 10,000 lines of code = stupid students != fault of java by Wille Faler on September 23 2003 15:25 EDT
- Frazil by ashokkumar sankaran on September 23 2003 03:48 EDT
- EJBs and dot com bust by John Hess on September 23 2003 14:32 EDT
- Fallout from the Java == SUV posting by Race Condition on September 23 2003 14:09 EDT
- cheese by Jeff Drost on September 23 2003 17:22 EDT
- Fallout from the Java == SUV posting by hthjf fgfgfg on September 23 2003 15:39 EDT
- Fallout from the Java == SUV posting by Michael Dowling on September 23 2003 16:02 EDT
- Fallout from the Java == SUV posting by Terry Hutchinson on September 23 2003 16:30 EDT
- JSP simpler then J2EE by Shahram Khorsand on September 23 2003 16:32 EDT
- Use the rigth tool for the job! by Niels Peter Strandberg on September 23 2003 17:43 EDT
- Those Who Can Do, Those Who Can't Teach by Daniel Haynes on September 23 2003 18:56 EDT
- Those Who Can Do, Those Who Can't Teach by Wouter Zoons on September 25 2003 01:53 EDT
- Use the rigth tool for the job! by Slava Imeshev on September 23 2003 23:24 EDT
- Those Who Can Do, Those Who Can't Teach by Daniel Haynes on September 23 2003 18:56 EDT
- Smells like M$ paid FUD by Jamie Schiner on September 23 2003 20:52 EDT
- There are more trees in the forest than you can see by Fred Ruopp on September 23 2003 20:59 EDT
- There are more trees in the forest than you can see by Bill Willis on September 23 2003 21:23 EDT
-
There are more trees in the forest than you can see by Mike Spille on September 23 2003 09:38 EDT
- Changes are important by obuchi machini on September 24 2003 03:26 EDT
-
There are more trees in the forest than you can see by Mike Spille on September 23 2003 09:38 EDT
- There are more trees in the forest than you can see by Bill Willis on September 23 2003 21:23 EDT
- Simple can be powerfull by Diana Finis on September 23 2003 21:00 EDT
- Simple can be powerfull by Slava Imeshev on September 25 2003 18:19 EDT
-
Simple can be powerfull by Edward Vrajmasu on September 26 2003 04:13 EDT
-
Simple can be powerfull by Edward Vrajmasu on September 26 2003 04:18 EDT
-
java == physiology? by Rolf Tollerud on September 26 2003 04:38 EDT
-
java == physiology? by Razvan Caraghin on September 26 2003 05:08 EDT
- java == physiology? by hthjf fgfgfg on September 26 2003 09:08 EDT
-
java == physiology? by Razvan Caraghin on September 26 2003 05:08 EDT
-
java == physiology? by Rolf Tollerud on September 26 2003 04:38 EDT
-
Simple can be powerfull by Edward Vrajmasu on September 26 2003 04:18 EDT
-
Simple can be powerfull by Edward Vrajmasu on September 26 2003 04:13 EDT
- Simple can be powerfull by Slava Imeshev on September 25 2003 18:19 EDT
- Fallout from the Java == SUV posting by d c on September 23 2003 22:05 EDT
- unnecessary by pratap nayak on September 24 2003 02:09 EDT
- JSP's are too hard for Harvard grad students? by J Donald on September 24 2003 08:48 EDT
- Phil is here again :-) by Karl Banke on September 24 2003 12:40 EDT
- University Prof with no problems... by Russ P on September 24 2003 14:45 EDT
- The author is confusing J2EE with Java by Matthew Humphrey on September 24 2003 15:54 EDT
- Advice to Philip Greenspun look for a IT job by Jamie Schiner on September 25 2003 00:04 EDT
- Phil you suck as CS instructor by Java Guy on September 25 2003 00:38 EDT
- Are you not leading thee kids up the garden path?? by Nigel Barrett on September 25 2003 06:18 EDT
- This 'professor' does bad publicity for his students by Yuri Sokolovski on September 25 2003 17:34 EDT
- Average Programmer is More Skilled than MIT Grad Students by James Watson on September 26 2003 13:28 EDT
- error by James Watson on September 26 2003 13:30 EDT
-
Hah![ Go to top ]
- Posted by: Brian Kapellusch
- Posted on: September 23 2003 09:38 EDT
- in response to Dion Almaer
Java's just a fad... like the internet and the internal combustion engine. -
Freedom of choice[ Go to top ]
- Posted by: Luca Masini
- Posted on: September 23 2003 09:53 EDT
- in response to Brian Kapellusch
freedom is never a problem for smart people....... -
Freedom of choice[ Go to top ]
- Posted by: Stephen Wink
- Posted on: September 23 2003 10:16 EDT
- in response to Luca Masini
Not only that, but his students had a problem with JSPs and JDBC compared to PHP and .net, and extrapolated it to all of Java. Maybe saying that JDBC is fiddly just isn't controversial enough to get all the publicity he now has? -
SQL directly into content page ![ Go to top ]
- Posted by: YOYO XXX
- Posted on: September 23 2003 11:32 EDT
- in response to Stephen Wink
his students had a problem with JSPs and JDBC compared
I think they wrote SQL directly in JSP pages.
that speaks for itself.
I have had Java/XML classes at university, too. Somehow we didnt run
into similar problems.
Maris -
SQL directly into content page ![ Go to top ]
- Posted by: Wille Faler
- Posted on: September 24 2003 11:57 EDT
- in response to YOYO XXX
his students had a problem with JSPs and JDBC compared
>
> I think they wrote SQL directly in JSP pages.
>
> that speaks for itself.
I worked on a large content management project, where the used CM product more or less FORCED you to write SQL directly into the jsp-page (so much for "content management" abstracting those details..), on top of that: there was no way to get to core functionality of the product elsewhere than in the jsp-pages through jsp-tags unless you wanted to try your skills at guessing what did what in extremely obfuscated code..
Do I need to say that the provider of the unnamed CM product went into chapter 11 this spring?.. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Nathan Zumwalt
- Posted on: September 23 2003 10:01 EDT
- in response to Dion Almaer
Amazing, an opinion from a University professor with no basis in reality (neither the professor nor the opinion). As soon as I saw Lisp mentioned (without sarcasm) as an alternative, I felt comfortable ignoring him.
I'm more interested in why the C#/ASP.NET group did just fine, yet the Java/JSP group stumbled. While I'm mainly a Java guy, I've seen enough C# to know that the API's (and certainly the language constructs) are very similar. Did web forms save the .NET folks? Was JDBC too hard? The author is too busy bashing Java and singing the praises of PHP (urg) to really explain why the Java group failed. -
What happened to MIT?[ Go to top ]
- Posted by: Rob Murtha
- Posted on: September 23 2003 10:01 EDT
- in response to Dion Almaer
This is the place where the internet and unix the swiss army knife of operating systems were born?
>>With a dynamic language such as Lisp, PHP, Perl, Tcl, you could do bind
>>variables by having the database interface look at local variables in the >>caller's environment.
This would be akin to naming your variables after the chip registers to make them easier to load :)
Seriously, in some ways I agree that using PHP and other interpreted languages is easier than Java, but there are plenty of tools out there that are much easier to use than writing code in any language. When I want that level of simplicity I just use a tool like CodeCharge - it's language nuetral and ideal for generating applications from databases.
Reminds me of when I stopped writing assembler and started using C ;)
Rob -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 23 2003 10:01 EDT
- in response to Dion Almaer
Well, productivity is a java issue. -
Productivity[ Go to top ]
- Posted by: Nathan Zumwalt
- Posted on: September 23 2003 10:09 EDT
- in response to Edward Vrajmasu
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 maintance on a script longer than 100 lines is horrific. Give me Java (or any other OO-based language) any day. -
Productivity[ Go to top ]
- Posted by: V K
- Posted on: September 23 2003 10:25 EDT
- in response to Nathan Zumwalt
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[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 23 2003 10:37 EDT
- in response to 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.
Not to mention out/ref parameters. I find almost insulting that i must pass an array as a parameter to a method if I want to return from the method more than one thing. -
Join the Free Java Now Campaign - Viva The Republic![ Go to top ]
- Posted by: Gerald Bauer
- Posted on: September 23 2003 10:46 EDT
- in response to Edward Vrajmasu
If Java went open-source, I can bet that features will be introduced in a jiffy.
Well, dare I say as long as you sit back and wait nothing will happen.
Why not help put pressure on Sun to open-source the Java core and secure the future of Java as an open royality-free standard?
Join the Free Java Now Campaign and take action now. Yes, you can make a difference.
Viva The Java Republic!
- Gerald -
Productivity[ Go to top ]
- Posted by: John Brand
- Posted on: September 23 2003 11:21 EDT
- in response to Edward Vrajmasu
Not to mention out/ref parameters. I find almost insulting that i must pass
> an array as a parameter to a method if I want to return from the method more
> than one thing.
Really? There are several good ways of dealing with the fact that java passes method arguments by value - including references, and wrapping your argument in an array is not one of them. Lets fix your design - not the language.
Br - J -
Productivity[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 23 2003 11:27 EDT
- in response to John Brand
Not to mention out/ref parameters. I find almost insulting that i must pass
> > an array as a parameter to a method if I want to return from the method more
> > than one thing.
>
> Really? There are several good ways of dealing with the fact that java passes method arguments by value - including references, and wrapping your argument in an array is not one of them. Lets fix your design - not the language.
>
> Br - J
String f(String a, String b)
{
a = capitalize(a);
b = capitalize(b);
return a+b;
}
Let's say I want this, and I want a and b to retain their new values. How would you do that without an array/collection?
And please don't tell me to fix the design, this is not design this is pain to make up for the language. Design is something else. -
Huh?[ Go to top ]
- Posted by: Brian Kapellusch
- Posted on: September 23 2003 11:39 EDT
- in response to Edward Vrajmasu
String f(String a, String b)
> {
> a = capitalize(a);
> b = capitalize(b);
> return a+b;
> }
> Let's say I want this, and I want a and b to retain their new values. How > > > would you do that without an array/collection?
> And please don't tell me to fix the design, this is not design this is pain > > to make up for the language. Design is something else.
Strings are objects... Whatever changes you make to them in your "f" method will retain their new values.
What's the problem? -
nevermind[ Go to top ]
- Posted by: Brian Kapellusch
- Posted on: September 23 2003 11:41 EDT
- in response to Brian Kapellusch
Strings are immutable. -
Huh?[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 23 2003 11:42 EDT
- in response to Brian Kapellusch
String f(String a, String b)
> > {
> > a = capitalize(a);
> > b = capitalize(b);
> > return a+b;
> > }
> > Let's say I want this, and I want a and b to retain their new values. How > > > would you do that without an array/collection?
> > And please don't tell me to fix the design, this is not design this is pain > > to make up for the language. Design is something else.
>
> Strings are objects... Whatever changes you make to them in your "f" method will retain their new values.
>
> What's the problem?
String are immutable. a = capitalize(a) is not changing a, is assigning a new object to the reference, a change that won't get out of f(); -
in this case...[ Go to top ]
- Posted by: Brian Kapellusch
- Posted on: September 23 2003 11:46 EDT
- in response to Edward Vrajmasu
Yes, Strings are immutable. But other "normal" objects aren't. If you're writing a String handling library, this is an issue.
Someone had referred to a design issue before. Good design involves passing around objects as compared to Strings. Good design also involves not having long parameter lists.
So, in your case, it's an unfortinate side effect of Java that Strings are immutable. But in general, most OO design doesn't revolve around Strings. -
in this case...[ Go to top ]
- Posted by: Cameron Purdy
- Posted on: September 23 2003 12:05 EDT
- in response to Brian Kapellusch
Yes, Strings are immutable. But other "normal" objects aren't. If you're writing a String handling library, this is an issue.
Strings are immutable for a number of good reasons. Java wasn't designed to replace Perl ... it has other things to worry about like threading. A mutable String type would have to synchronize all its methods or be thread-unsafe ... how fun is that?
If you have to build an application around String manipulation, you may be better off to do all or part of it in a different language, or minimally avoid using the java.lang.String class. Java's not great at everything, and when anything tries to be all things to all people, the result generally sucks. Java is no exception to that rule. (To see what I mean about "all things to all people" ends up sucking, do some .NET development with multiple languages, like half C# and half J#.)
With regards to other Java classes being mutable, there are a number that are mutable and should not have been. I consider java.util.Date (and its java.sql offspring) to be just giant collections of bugs, for example, because they should have been immutable.
On the other hand, a standard set of holder objects for the intrinsic types (mutable int, long, float, double, byte, char, boolean, short, as well as one for java.lang.Object itself) and a nice string processing library would have been (would still be) very nice, and it would still be possible to add multiple return values to the language without breaking anything (or even being too ugly). While we're at it, add an intrinsic decimal type, and replace the Big* atrocities with some leaner implementations. I think most of these are covered by JSR-666 anyway ....
Peace,
Cameron Purdy
Tangosol, Inc.
Coherence: Clustered JCache for Grid Computing! -
surprising LACK of vision[ Go to top ]
- Posted by: Manolo Gomez
- Posted on: September 23 2003 12:13 EDT
- in response to Cameron Purdy
Isn't this guy from MIT?
well, it doesn't matter if it's Harvard or MIT, his principal problem (and the problem with some the people who posted in his weblog) is their inherent lack of vision.
You can't pretend that the arcane use of funtional Perl or PHP is more productive than a good architected Java App, not in a million years.
As far as I can see, the future is integration, just take a look at PHP 5, it's well, basically Java with Perl like syntax.
I would've expected more from someone studying in MIT.
Good thing I got my CS in Ecuador. -
in this case...[ Go to top ]
- Posted by: Gregory Pierce
- Posted on: September 24 2003 16:13 EDT
- in response to Cameron Purdy
java.util.Date IS a collection of bugs and hacks and hopefully one day Sun will either deprecate the entire thing :)
On the other thread - I'm exceedingly surprised to find that something as simple as getting to a database from a JSP is giving MIT students trouble. Heck you can get the required code to fit onto one screen if you just wanted to go about it the quick and dirty way, and even if you decided to be 'correct' and put in a Database Manager with Connection Pooling it should take no longer than 1 day for any competent student project to come up with.
I've actually lost a little bit of respect for the MIT program if something so 'entry level' can't be handled by what I would normally consider an accomplished Computer Science program. I think this experience speaks more about their own level of competence with Java than it does with Java itself (as is sadly more often the case). -
in this case...[ Go to top ]
- Posted by: Gregory Pierce
- Posted on: September 24 2003 16:19 EDT
- in response to Gregory Pierce
Correction on that - that should be Harvard... my apologies to the MIT students I insulted :) -
StringBuffer[ Go to top ]
- Posted by: Simionica Ovidiu
- Posted on: September 23 2003 12:04 EDT
- in response to Edward Vrajmasu
Give a try to StringBuffer. is at least 10x faster then basic String concatenation. -
Productivity[ Go to top ]
- Posted by: John Smith
- Posted on: September 23 2003 11:44 EDT
- in response to Edward Vrajmasu
If you have a problem returning something from a method and you see it as multiple values, there is a good chance that you are not thinking of things as "objects" enough. You are right, you can only return one "thing" from a method. A Collection is a thing made up of similarly-typed things that have some reason to be grouped together. Multi-value returns would probably mess up a good OO design. Java sort of forces you to adopt a better OO design than you might otherwise do. -
Productivity[ Go to top ]
- Posted by: Nathan Zumwalt
- Posted on: September 23 2003 11:47 EDT
- in response to Edward Vrajmasu
Not to mention out/ref parameters. I find almost insulting that i must pass
> > > an array as a parameter to a method if I want to return from the method more
> > > than one thing.
> >
> > Really? There are several good ways of dealing with the fact that java passes method arguments by value - including references, and wrapping your argument in an array is not one of them. Lets fix your design - not the language.
> >
> > Br - J
>
> String f(String a, String b)
> {
> a = capitalize(a);
> b = capitalize(b);
> return a+b;
> }
> Let's say I want this, and I want a and b to retain their new values. How would you do that without an array/collection?
> And please don't tell me to fix the design, this is not design this is pain to make up for the language. Design is something else.
When I moved from C++ to Java in college, I didn't know what I'd do without this sort of functionality. But, to my surprise, it's never been a problem. If I want multiple values returned, I create an object that encapsulates those values.
I'm with the first poster, fix your design. If you fight against the tool you're using, it will never work for you. -
is it useful to notice ?[ Go to top ]
- Posted by: gilles cadignan
- Posted on: September 23 2003 12:04 EDT
- in response to Nathan Zumwalt
It's just sad. In Harvard ? I'm so happy that I studied IT in France. -
Productivity[ Go to top ]
- Posted by: John Brand
- Posted on: September 23 2003 15:41 EDT
- in response to Edward Vrajmasu
String f(String a, String b)
> {
> a = capitalize(a);
> b = capitalize(b);
> return a+b;
> }
> Let's say I want this, and I want a and b to retain their new values. How would you do that without an array/collection?
Yes, but the central question is why do you want that? In reality there is some real requirement behind this, and you have chosen to implement it like this, I would choose a different route, but I cant tell you which one untill I know the real requirement. -
In/Out parameters[ Go to top ]
- Posted by: Toby Reyelts
- Posted on: September 24 2003 00:38 EDT
- in response to Edward Vrajmasu
String f(String a, String b)
> {
> a = capitalize(a);
> b = capitalize(b);
> return a+b;
> }
> Let's say I want this, and I want a and b to retain their new values.
How about this?
Triple<String,String,String> f( String a, String b ) {
return Triple.make( a.toUpperCase(), b.toUpperCase(), a.toUpperCase() + b.toUpperCase() );
}
Triple<String,String,String> result = f( "a", "b" );
String a = result.first();
String b = result.second();
String cat = result.third();
This is much preferable to passing parameters by ref. Now, what would be even nicer is if the Java language had built in support for N-tuples. Then we could turn that into something like
(String,String,String) f( String a, String b ) {
return (a.toUpperCase(), b.toUpperCase(), a.toUpperCase() + b.toUpperCase());
}
God bless,
-Toby Reyelts -
swap[ Go to top ]
- Posted by: pratheep p
- Posted on: September 23 2003 11:34 EDT
- in response to John Brand
<Johan Abrandt>
Really? There are several good ways of dealing with the fact that java passes method arguments by value - including references, and wrapping your argument in an array is not one of them. Lets fix your design - not the language.
</Johan Abrandt>
Ah..Lets talk about writing a "swap" function using call-by-value. -
swap[ Go to top ]
- Posted by: John Brand
- Posted on: September 23 2003 15:15 EDT
- in response to pratheep p
<Johan Abrandt>
> Really? There are several good ways of dealing with the fact that java passes method arguments by value - including references, and wrapping your argument in an array is not one of them. Lets fix your design - not the language.
> </Johan Abrandt>
>
> Ah..Lets talk about writing a "swap" function using call-by-value.
Yes, lets tal about that then. The last swap I implemented was for a quicksort, and it worked just fine. Naturally one can not translate some idioms straight from say C to Java, but then, if that was the goal, why are you using Java and not C? Fix the design, not the language... -
Productivity[ Go to top ]
- Posted by: Razvan Caraghin
- Posted on: September 25 2003 04:34 EDT
- in response to Edward Vrajmasu
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.
> Not to mention out/ref parameters. I find almost insulting that i must pass an array as a parameter to a method if I want to return from the method more than one thing.
you also seem to lack a broader view of the OOP and C++ in particular. did you wonder yourself by any chance WHY java is constructed that way? do you really think that the java creators were so dumb? think again pal. study more, maybe you'll get something afterall. -
Productivity[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 25 2003 09:28 EDT
- in response to Razvan Caraghin
Not to mention out/ref parameters. I find almost insulting that i must pass an array as a parameter to a method if I want to return from the method more than one thing.
>
> you also seem to lack a broader view of the OOP and C++ in particular. did you wonder yourself by any chance WHY java is constructed that way? do you really think that the java creators were so dumb? think again pal. study more, maybe you'll get something afterall.
I studied and compared. I developed in both C# and Java. Did you do that?
And to return your challenge, how do you think out/ref parameters would hurt the master plan behind java?
And please stop drawing general conclusions about my knowledge. If I make specific affirmations that doesn't mean i lack the broader vision. If you put your money where your mouth is and you find a way, I'll go up against you on broader view of the OOP any day. -
Productivity[ Go to top ]
- Posted by: Neutral Ground
- Posted on: September 26 2003 02:51 EDT
- in response to Edward Vrajmasu
not to mention that ever so useless string multiplication function
that everyone uses on an everyday basis that Python has to offer :)
for the most part I would rather code in a language that has industry
support from the big players and not some language that is mostly used
in todays world for hacking together functionality with 40% less code,
hey why don't we just start using vb shell scripting to write enterprise apps
and while we are at it lets just throw away years of experience in developing
best practices for writing applications.
Python is useful I agree but has its place, and that being mostly for shell
scripting from what I have seen thus far. But when I start looking at the
language construct, in particular tabs for grouping code, I get a bit worried,
I for one would hate to maintain code that looks like this:
if blablabla:
do stuff
do more stuff
do even more stuff
than:
if (blablabla)
{
do stuff;
do more stuff;
do even more stuff;
}
So probably a language preference on the one hand and a paradigm preference
on the other. -
Productivity[ Go to top ]
- Posted by: Christian Hilmersen
- Posted on: September 26 2003 03:49 EDT
- in response to Neutral Ground
and while we are at it lets just throw away years of experience in developing
> best practices for writing applications.
IMHO that is just what the EJB community has done. The principles of OO are more or less dead (in typical j2ee application). The problem with this just might be that it is an unconscious act - the whole model could be simplified if the community admitted to itself that what it does is just data-flow and functional design. The problem might also be that the community focuses to much on application architecture and not enterprise architecture. -
Productivity[ Go to top ]
- Posted by: jelmer kuperus
- Posted on: September 25 2003 06:54 EDT
- in response to V K
JDK1.4 has regular expressions
java.util.regex -
Productivity[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 23 2003 10:34 EDT
- in response to Nathan Zumwalt
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 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 ejb's 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! -
Productivity[ Go to top ]
- Posted by: Mark N
- Posted on: September 23 2003 13:24 EDT
- in response to Edward Vrajmasu
<q>
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!
</q>
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. -
Productivity[ Go to top ]
- Posted by: Diego Parrilla
- Posted on: September 24 2003 15:48 EDT
- in response to Edward Vrajmasu
Since when the hell is building a project supposed to be more than than a
> key combination in the IDE?
Real programmers don't need IDEs. They need powerful tools, as ANT (and NANT for .NET). How can you mantain the building scripts if they are created automatically with a wizard?
> .. .NET is a much tighter package. And don't give the freedom is not a
> problem for smart people quote.
Right. If Microsoft does not provide it, you cannot do it. I will tell my boss that I cannot do the new requirements because it is not yet in the Java specs...
> I'm having problems in making things that should be convenience run without
> an xml!
Just an advice. Take your time to create powerful building scripts for your applications, set up good versioning and configuration management procedures, and then relax... -
No need ;-)[ Go to top ]
- Posted by: Lofi Dewanto
- Posted on: September 24 2003 16:02 EDT
- in response to Diego Parrilla
<quote>
Just an advice. Take your time to create powerful building scripts for your applications, set up good versioning and configuration management procedures, and then relax...
<quote>
very true! But you don't need to do this from scratch -> EJOSA (Enterprise Java Open Source Architecture) Template helps you. Execution and Build Management by Ant!
See this article:
http://prdownloads.sourceforge.net/ejosa/ejosa1.3.5-doc.pdf?download
Lofi. -
Productivity[ Go to top ]
- Posted by: Razvan Caraghin
- Posted on: September 25 2003 04:30 EDT
- in response to Edward Vrajmasu
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 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 ejb's 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!
you really don't get what ant is really about aren't you
it seems to me that you also don't get java in general. -
Productivity[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 25 2003 09:21 EDT
- in response to Razvan Caraghin
you really don't get what ant is really about aren't you
> it seems to me that you also don't get java in general.
Don't patronize me, please. Ant is for IDE/deployment/etc independence, but that's NOT much! Any decent IDE has an 'import directory to project' function or something that works just fine. There are project converters (Eclipse to IDEA, etc.) all over the place.
Ant is mania for independence where that independence doesn't count. -
Productivity[ Go to top ]
- Posted by: Cameron Purdy
- Posted on: September 25 2003 09:30 EDT
- in response to Edward Vrajmasu
Edward: Don't patronize me, please. Ant is for IDE/deployment/etc independence, but that's NOT much! Any decent IDE has an 'import directory to project' function or something that works just fine. There are project converters (Eclipse to IDEA, etc.) all over the place. Ant is mania for independence where that independence doesn't count.
I would over-generalize and say that IDEs are developer-centric and ANT is project-centic. There is a difference. For throwing together a Windows GUI, the VS.NET IDE can manage it just fine. For building a couple of EJBs, JBuilder is OK. For larger projects, in my experience, the IDE as a concept doesn't match the requirement, and thus becomes cumbersome. Ant, among others, tries to address the project issue specifically, and generally does a good job.
There's no "one size fits all" solution. Even Java with its near-universal acceptance, from embeddeds to servers to handhelds to supercomputers to real time systems to PCs, only is applicable to a subset of "software problems".
Peace,
Cameron Purdy
Tangosol, Inc.
Coherence: Clustered JCache for Grid Computing! -
Productivity[ Go to top ]
- Posted by: Mike Spille
- Posted on: September 25 2003 09:44 EDT
- in response to Edward Vrajmasu
\Edward Vrajmasu\
Don't patronize me, please. Ant is for IDE/deployment/etc independence, but that's NOT much! Any decent IDE has an 'import directory to project' function or something that works just fine. There are project converters (Eclipse to IDEA, etc.) all over the place.
Ant is mania for independence where that independence doesn't count.
\Edward Vrajmasu\
The true value of Ant is, IMHO, that it lets you build _automated_ scripts in a manner that's platform-neutral, and which hooks into Java constructs rather nicely. For developers, you get some nice constructs but it's not, as you indicate, all that big of a deal. For an _organization_, however, it's a different story. My own Ant scripts are used not just for project building, but for creating releases, running automated tests, and for setup in various logical corporate environments (development labs --> various QA labs --> pre-production --> production). As a plus I can freely alternate between our HP-UX servers, various Linux client boxen, and do development work at home on my PC, all with pretty simple Ant scripts. The key is that portability and adaptabilty to different environments is easy to achieve - we have a "global" ant build file here and individual ant build files range 20-100 lines tops. Compare this to shell scripting, IDE capabilities, Makefiles, iMake, and similar utilities, and Ant is a clear winner.
If you're one guy working on a certain code base, you may not think all that much of Ant. If you're part of an organization that needs to deploy code in multiple environments, and you want build-consistency across multiple operating systems, then Ant starts to distinguish itself. This is especially true since release-candidate builds and deployment obviously cannot use an IDE - but I can use Ant either from an IDE or in RC builds or various deployments, and this gives me a commonality that sharply reduces surprises as you move from development out into the larger world.
-Mike -
Ant == Productivity![ Go to top ]
- Posted by: Lofi Dewanto
- Posted on: September 25 2003 09:57 EDT
- in response to Edward Vrajmasu
I tend to agree with Cameron.
If you have a big project with a lot of components (sub-systems), how can you handle the dependencies between each components? Will you always build your application with every single components from one "src"? I don't think so. If you want to make a test of your application everyday on 12:00 O'Clock, like:
-> Checkout from CVS
-> Clean
-> Build
-> Test,
you surely need something like Ant. What is if you have to work with a lot of people and everyone want to use their own IDE? Will you always have to import the project each time?
Thanks to many Java Open Source libraries and changing work from Win to Linux to whatever, I also use Ant to execute my applications, instead of building those script files (.bat or .sh). So, if you add a new library you just need to change one XML file instead of 2 files (bat and sh).
If you're using NetBeans, you will never need to make the bat and sh files. This is very easy:
- Mount your directory.
- Click your Ant script and push F6, that's it!
Check this whitepaper to see how this works:
http://sourceforge.net/project/showfiles.php?group_id=69075&release_id=177766
Lofi.
http://ejosa.sourceforge.net -
Ant == Productivity![ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 25 2003 10:00 EDT
- in response to Lofi Dewanto
Cameron, Mike, Lofi, I stand corrected. What you said makes sense. I was thinking developer-centric. -
Ant == Productivity![ Go to top ]
- Posted by: Razvan Caraghin
- Posted on: September 26 2003 04:55 EDT
- in response to Edward Vrajmasu
Cameron, Mike, Lofi, I stand corrected. What you said makes sense. I was thinking developer-centric.
good. one thing I learned the hard way: before you swear at a technology/tool/whatever, try to understand it first. this way, you won't make a fool of yourself. -
Productivity == Ant[ Go to top ]
- Posted by: Lofi Dewanto
- Posted on: September 25 2003 10:16 EDT
- in response to Edward Vrajmasu
If you need an Open Source example for how you can use Ant in a big project (with many components), you can check out the code from OpenUSS CVS:
http://sourceforge.net/projects/openuss.
Here you can see that each component runs a stand-alone component. You can develop, build, test, run, etc. each component (dev-xxx) totally seperated from the whole application (Remember the idea of component-based software development is to reuse, so be careful of dependencies). At the end you can build the whole application (dev-all), which consists all other components, and run it. Without Ant you can never do something like this easily.
Regards,
Lofi.
http://openuss.sourceforge.net -
Productivity[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 23 2003 13:50 EDT
- in response to Nathan Zumwalt
"I've had to support enough Perl programs to know that maintance on a script longer than 100 lines is horrific."
Maintenance on a good Perl program is no worse than any other language. I've had to maintain some horrible Java code, and it was no picnic. This is a programmer issue, not a language issue. -
Productivity[ Go to top ]
- Posted by: Patrick Nordqvist
- Posted on: September 24 2003 15:25 EDT
- in response to Perrin Harkins
We used to say (in the good old days):
Ada makes you write understandable/maintainable code (before Ada95)
C allows you to do it and
Fortran prevents you from doing it (old Fortran)
Perl (my opinion) would be largely like C here; it allows you to write maintenable code (but you can easily write "spagetti") while Java is somewhere between C and Ada (closer to Ada but stills allows for "spagetti"). -
Is the java-community freeing itself from its OO legacy?[ Go to top ]
- Posted by: Christian Hilmersen
- Posted on: September 24 2003 08:50 EDT
- in response to Nathan Zumwalt
...just a thought. Yes, Java is an OO-based language, but the community is trying to free itself from this legacy. Stateless EJBs are no more than a remote API, and Value Objects are just like the stucts/record of the old days... Maybe it is time for a simpler language that is good for shuffling data from back-end to the front end? The complexity of Java is not need in a typical enterprise application....or...? -
Harvard??[ Go to top ]
- Posted by: code freedom
- Posted on: September 23 2003 10:20 EDT
- in response to Dion Almaer
Is this the quality of students who go to Harvard?
My, my...both the professors and students suck. -
Groovy - Jazzing Up Plain Old Java[ Go to top ]
- Posted by: Gerald Bauer
- Posted on: September 23 2003 10:32 EDT
- in response to Dion Almaer
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?
Anyway, allow me to quote from the Java Republic story titled "Groovy - Jazzing Up Plain Old Java":
James Strachan (of Geronimo, Jelly, dom4j and more fame) and Bob McWhirter (of Jaxen, dom4j, codehaus and more fame) band together to build a new dynamic scripting language code-named Groovy for the Java runtime that lets you do more with less.
The Duo writes in the Groovy Wiki:
* 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.
* Python and Ruby are pretty cool. Though neither feel quite right as the dynamically typed high level language for Java developers to use with Java code. (Though Jython is close).
and so on and so forth -
Here's why he's wrong...[ Go to top ]
- Posted by: John Smith
- Posted on: September 23 2003 10:58 EDT
- in response to Dion Almaer
"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."
<BR><BR>
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.
<BR><BR>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[ Go to top ]
- Posted by: anon anon
- Posted on: September 23 2003 11:06 EDT
- in response to Dion Almaer
I suppose you can build a large ERP application in PHP/Perl five times faster than Java too.
This guy has a serious fascination with weakly typed languages, Maybe he should rewrite SAP using TCL.
This guy is just like any University Teacher who has never worked in the IT Trenches, he can only see IT's happy path and a very small angle of it.
I keep thinking about why Gosling wrote Java the way he did and why Anders Heljsberg didn't throw Java's design completely out the window. The answer is simple: they got burned in the real world, burned really hard.
I say: Let this guy call Java an SUV, let those students go into the real world, let them build distributed systems using distributed transactions using PHP, let them burn a bit and then show them the true power of Java. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: John Smith
- Posted on: September 23 2003 11:16 EDT
- in response to anon anon
Excellent points.
Yeah maybe PHP is better for some Mickey Mouse assignment, but for enterprise level stuff there's just no comparison.
I suppose I could make the argument that Java i18n would double the development time for a website...until you had to add 5 languages.
Or using JNDI to look up objects is too hard and adds to much to development time...until you have to cluster your servers, provide dynamic load balancing, failover protection, etc.
Or JDBC is the SUV of DB queries compared to executing straight SQL...until you change DB vendors or the schema.
...and on and on...
I think this prof is just afraid that technology has passed him by and he can't keep up. So now he tries to prove why you shouldn't use it. We should go back to pushing and pulling things back on the stack. -
Persistence[ Go to top ]
- Posted by: Brian Kapellusch
- Posted on: September 23 2003 11:23 EDT
- in response to John Smith
I especially enjoyed the part where he alluded to persistence layers as "hiding the SQL" from the developer, like it's a negative thing.
I rely heavily on Castor for all of my webapps, large and small, and it saves me bundles of time. I suppose if I had mission critical queries that needed to be REAL fast, I could write a Castor passthru or even use the apparent abomination, known as JDBC.
What about application level caching? Oh wait, what's an application in PHP anyway?.... -
application-level caching in PHP[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 23 2003 13:48 EDT
- in response to Brian Kapellusch
You mean high-performance clustered caching like memcached? There are undoubtedly many other solutions as well, like BerkeleyDB, shared memory, etc. Don't assume that PHP has no paralleles for features like this. Yahoo uses PHP, and they get a lot more hits than your website. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: chandrasekar ramaswamy
- Posted on: September 24 2003 02:07 EDT
- in response to John Smith
Yeah maybe PHP is better for some Mickey Mouse assignment, but for enterprise level stuff there's just no comparison.
Very very valid point.For an enterprise level stuff i dont know how php can be compared. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Carlos Vicente
- Posted on: September 23 2003 11:24 EDT
- in response to anon anon
Totally Agree. 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 integratde 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. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 23 2003 13:55 EDT
- in response to Carlos Vicente
"I Worked 3 years with Perl, and is perfect for make little tasks, read logs... But for complex systems is a nightmare."
I can only assume you weren't making much of an effort then. Perl has all the same tools and abstractions available that Java does: object-relational persistence tools, MVC web frameworks, configuration systems, templating systems, XML tools, testing suites, and a large repository of reusable components. A good Perl programmer knows about these things and uses them to write solid, maintainable code. -
Fallout from the Java == SUV posting - Perl power[ Go to top ]
- Posted by: Renat Zubairov
- Posted on: September 28 2003 07:39 EDT
- in response to Perrin Harkins
I can only assume you weren't making much of an effort then. Perl has all the same tools and abstractions available that Java does: object-relational persistence tools, MVC web frameworks, configuration systems, templating systems, XML tools, testing suites, and a large repository of reusable components. A good Perl programmer knows about these things and uses them to write solid, maintainable code.
<
Hm.. Perl is quite powerfull, but, IMHO OOP in perl is ridiculous, yes all framework can exists, but the disccussion about maintain costs, not about power of the language. -
Fallout from the Java == SUV posting - Perl power[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 28 2003 13:39 EDT
- in response to Renat Zubairov
"IMHO OOP in perl is ridiculous"
You're entitles to your opinion, but I know many people who use it with great success.
"yes all framework can exists, but the disccussion about maintain costs, not about power of the language"
The tools I mentioned are largely about lowering maintenance costs through separation of concerns, regression tests, etc. Well-written Perl is no harder to maintain than well-written Java. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Slava Imeshev
- Posted on: September 23 2003 15:51 EDT
- in response to anon anon
I say: Let this guy call Java an SUV, let those students go into the real world, let them build distributed systems using distributed transactions using PHP, let them burn a bit and then show them the true power of Java.
That is already happening. I personally know a couple of companies that went all-free-php-perl-god-knows-what, hit scalability and stability issues and ended up rewriting everything to J2EE (WebLogic).
Slava -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 23 2003 16:37 EDT
- in response to anon anon
"This guy is just like any University Teacher who has never worked in the IT Trenches"
Maybe you should find out something about him before you say things like that. He has far more experience as a working IT developer than as a teacher.
"let those students go into the real world, let them build distributed systems using distributed transactions using PHP, let them burn a bit and then show them the true power of Java"
Yeah, because no one could build a useful website without distributed transactions... Why do people always fall back on this as a justification for J2EE? Nearly all database-powered sites use the database to handle their transactions, not the application code. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: anon anon
- Posted on: September 25 2003 04:09 EDT
- in response to Perrin Harkins
Listen Dude, I know guys with 30 years plus experience who still that Cobol/ISAM files is better than Java/Com/SQL at making it easy to build Applications.
These same guys feel that FTP and flat files are the most reliable method for doind E-Commerce transactions -
JSPs too hard for MIT CS Seniors and Grad students?[ Go to top ]
- Posted by: Sheng Sheen
- Posted on: September 23 2003 12:00 EDT
- in response to Dion Almaer
I finally read Professor Greenspun's weblog. One of his statement claimed JSPs too hard for MIT CS Seniors and Grad students. I really hope this is not true. How complex can JSPs be? I would think as a CS student at MIT who has background in Java and hopefully HTML, JSPs would be a breeze. I can't believe they actually have a professor in existence at Harvard. I also can not believe all the people that are agreeing with him on slashdot. These people must not have worked on a "REAL" J2EE project before. I guess there just isn't enough J2EE developers out there. All these people favoring PHP, and Perl in place of Java. It's like comparing apples to oranges. I've worked with PHP and Perl before, but for an enterprise application it's much easier to use J2EE with all the things that's provided for you already. -
No news here...[ Go to top ]
- Posted by: joost de vries
- Posted on: September 23 2003 12:01 EDT
- in response to Dion Almaer
This is no news to me. A few years ago I read Philip's Philip and Alex's Guide to Web Publishing which features the immortal line Java is generally a bad language for server-side software development.
So we'll have to accept that TSS is an oxymoron.
When I found out that he considered Tcl superior to Java for server-side development I wrote him down as an old fart who had done things one way and could not accept that a new way came along.
I see nothing has changed...
Joost -
Java = stick-shift kit car[ Go to top ]
- Posted by: Ian Mitchell
- Posted on: September 23 2003 12:20 EDT
- in response to joost de vries
The issue is that Java has evolved into a system level language, and it is becoming increasingly complex to use at the application level. It's not so much the Geek Hummer as a stick-shift kit car...though it is possible to find some relief by installing a Jython transmission.
Personally I'd classify .NET as the de facto Suburban Assault Wagon of choice for the indolent and fat arsed. -
Java = stick-shift kit car[ Go to top ]
- Posted by: anon anon
- Posted on: September 25 2003 04:00 EDT
- in response to Ian Mitchell
Us Non-American types like stick shifts for several reasons...
- Sure it has a longer learning curve but the payoff is that driving is more fun.
- you don't kill your poor car with bad gear ratios
- You "understand" the car better and can do something with it besides driving to the store and back
- You can take a 1.6 VW Golf and drive circles around some poor sad soul stuck in an automatic V8.
- Stick shifts are less complicated, cheaper and far easier to maintain.
The Europeans and Japanese have understood this for a long time, and last time I looked they ruled that car roost.
So by calling it java a stick shift car you are giving it several complements. -
The emporer has no clothes[ Go to top ]
- Posted by: geoff hendrey
- Posted on: September 23 2003 12:09 EDT
- in response to Dion Almaer
I think many people who are using J2EE are having the epiphany that the emperor has no clothes. Frankly, JSP is a pain, and EJB is a solution to a problem that most of us don't need solved in our apps, namely distributed transactions.
That's not to say that M$ has something better.
Finally we are seeing some light at the end of the tunnel, and the promise of some java technologies to actually make database programming simple. But that light is not coming from J2EE! It just seems staggering that it has taken so long for technologies like JDO, Hibernate, Tapestry, and Echo to take root in the java community. Apple has had WebObjects, which grew out of Next, and was originally written in Objective C. WebObjects has been doing JDO-ish and Tapestry-ish things for YEARS.
Unless somebody calls the BS when he smells it, we'll just keep scratching along with our JSP's and hand coded SQL. I appreciate Greenspun's observations, even if he over generalized them.
-geoff -
The emporer has no clothes[ Go to top ]
- Posted by: Nebojsa Vasiljevic
- Posted on: September 23 2003 16:43 EDT
- in response to geoff hendrey
Philip Greenspun talks about problems wee all have. I dislike some conclusions but he points on REAL problems like that:
'Lots of professional Java programmers emailed to say "If only those students had used Libraries X and Y, they would have done okay." Sadly X and Y were never the same in any two emails so it is easy to understand how the students went wrong (i.e., it is not obvious how one is supposed to choose among the 100 different ways to get something done in the world of Java tools).'
I have done many project in Java for lat 3 years, but I steel haven't found final answer to simpe question: What is a good way to do a small Java database oriented project?
I have the answer, but this answer is diferent then the last month answer. I use hibernate for a new project, but I am disapointed with JSTL and Struts, looking for JSF, but I am not sure I will like it, Sun will force ResultSet with JSF in Rave, not OR mapper.
Nebojsa -
Innovation[ Go to top ]
- Posted by: Cornellious Mann
- Posted on: September 23 2003 17:06 EDT
- in response to Nebojsa Vasiljevic
I have the answer, but this answer is diferent then the last month answer.
This is called "innovation". Java has flourished, because THERE ARE 100 ways to do things. No two projects are the same. If all projects were similar, then we would all be using Visual Basic and running Windows. -
Innovation[ Go to top ]
- Posted by: Nebojsa Vasiljevic
- Posted on: September 24 2003 01:20 EDT
- in response to Cornellious Mann
I have the answer, but this answer is diferent then the last month answer.
>
> This is called "innovation". Java has flourished, because THERE ARE 100
> ways to do things. No two projects are the same. If all projects were
> similar, then we would all be using Visual Basic and running Windows.
THERE ARE Visual Basic friendly projects, but I don't like to introduse VB in my company and don't want to say: "Go to a Microsoft partner they will do this project better". Sun & others have to focus on some problems VB can handle better then Java. Those are neither so hard solutions nor solutions that will ruin other fine things in Java like innovation. I can't stand to program in a semantic hell language like PHP or VB, but I am paying too mach for this.
Nebojsa -
in/out parameter[ Go to top ]
- Posted by: xuxu666 xuxu
- Posted on: September 24 2003 01:30 EDT
- in response to Nebojsa Vasiljevic
String f(String a, String b)
> {
> a = capitalize(a);
> b = capitalize(b);
> return a+b;
> }
> Let's say I want this, and I want a and b to retain their new values.
I may be wrong but I think what the original author was trying to say is this:
void f(MyMutableClass a)
{
a.setMutapleProperty(x);
}
now the mutable object a will retain its new value.
To get the same behavior in C++ you need
void f(MyMutableClass& a)
{
a.setMutapleProperty(x);
} -
Java/J2EE for Teaching[ Go to top ]
- Posted by: Lofi Dewanto
- Posted on: September 23 2003 12:14 EDT
- in response to Dion Almaer
Indeed, this is quite interesting ;-)
At University of Muenster (Department of Business Informatics and Controlling, Germany) I teach and conduct graduate students for doing their software projects. Yes, they have to make a practical software development project to finish their study. Most of them have heard some lectures about Software Engineering and Java. Some of them are already working in companies as Java developers (plain Java, without J2EE). All the projects I conduct are about building real world J2EE applications and most of them don't have any experience with J2EE.
For this purpose I build the so called EJOSA Template (Enterprise Java Open Source Architecture), which offers a fully-fledged template based Open Source J2EE development environment with Ant. Important principles in EJOSA Template:
- KISS (Keep It Short and Simple). Install JDK, install NetBeans and unzip the ejosa.zip and you have everything you need with you.
- No wizards, understand the process. At the end we want to have capable students, which do not only understand wizards and drag&drop but really understand the underlying development process.
- Fast prototyping but the code must be maintainable and scalable. This is important because we want to reuse the code for our university's projects. Therefore we need to have a good structure.
I choose following Open Source products because of KISS principle:
- EJOSA Template is fully independent of IDE but I always tell them to use NetBeans. Mount your project directory and use F6 to run every ant scripts (build app and execute app).
- JOnAS for EJB container because of its very good documentation.
- Enhydra + XMLC, because easy to handle: Normal HTML files + id => Flow of the application.
EJOSA Template also integrates many other OS-Java libs (XDoclet, Velocity, etc.), but it's not a must to use every single libs.
So, with EJOSA Template + NetBeans I can offer them a ready to use Development Environment. Without this, you are lost in Java space! ;-) For more info about EJOSA Template (LGPL):
http://prdownloads.sourceforge.net/ejosa/ejosa1.3.5-doc.pdf?download
I tend to see 2 different groups of students:
1) Students with very minimal Java knowledge. With this type of students, it's very easy to handle the project. Introduction to UML, introduction to general J2EE, introduction to EJOSA Template (NetBeans, CVS, examples), that's it, the project can begin. We discuss many things just through the project mailinglist. This type of students tend to follow the process, concentrate on the application problem and can finish the project successfully on time.
2) Students with good until very good Java knowledge (with some J2EE knowhow). They tend to work in their own way. So, they try to make some improvements into EJOSA Template like:
- I want to use Eclipse instead of NetBeans...
- I want to use JBoss instead of JOnAS, etc...
So, they are sometimes stuck into the Java technology details and forget what the real problem is. Surely they also finish the project at the end, but they sometimes need more time. On the other side this is good for EJOSA Template, because it will be improved by them ;-)
IMO, the success of such a student project depends also on you as tutor. Just saying: allright, you should use J2EE and Hibernate to implement your J2EE application will not help them (yes, I've done this and had a bad experience with this).
Anyway, creativity and freedom are important but you should show them the way...
Lofi.
http://www.openuss.org -
The most fundamentally important thing to note...[ Go to top ]
- Posted by: John Dale
- Posted on: September 23 2003 12:22 EDT
- in response to Dion Almaer
Is that the students' productivity is proportional in many ways to the professor's ability to teach. -
Is this the quality of Harvard?![ Go to top ]
- Posted by: Wille Faler
- Posted on: September 23 2003 12:23 EDT
- in response to Dion Almaer
This professor must have spent his lifetime just giving CS assignments to students, he has no foot in the real world!
And for a professor, its quite unprofessional to make statements that sound more like opinions than facts, but say nothing to back them up:
"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."
Maybe if it is "Hello World!", but I wouldnt want to be there for the maintainance part, especially if its an application that needs to interface with other applications and systems(it happens in the real world, you know..).
The slight overhead of doing things in Java and doing things right pales in comparison to the overhead of maintaining, extending and further developing apps in say Perl, PHP or VB.. And, as the dear Prof should know: thats where the costs of a system are during its lifetime.
But, what can you expect from a person who has probably spent 30 years at a university, giving assignments and solving thought out problems given a clean buffer (wouldnt we all love to start from scratch all the time?)? I had professors like that during my university years, no clue about the real world..
As someone said: I would be more interesting in the comparison to C#, thats a relevant one. The scripting language comparison is just laughable, sure, they have their areas of use, but they are not the same as Java/J2EE.. -
More than an academic?[ Go to top ]
- Posted by: a san juan
- Posted on: September 23 2003 13:11 EDT
- in response to Wille Faler
The guy is actually more than just an academic it looks like...I pummeled him early on this but someone mentioned he had a history in open source.
http://www.freeroller.net/page/kalimantan/20030921#java_the_suv_of_programming
In the end though, he still has no idea what he's talking about. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 23 2003 13:43 EDT
- in response to Wille Faler
This "person who has probably spent 30 years at a university" actually built a start-up web development company from scratch into a large multi-million dollar business. He also published books and code about how he did it. You may not agree with him, but he certainly has more "real-world IT experience" than most of the people criticizing him. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: Wille Faler
- Posted on: September 23 2003 15:20 EDT
- in response to Perrin Harkins
"You may not agree with him, but he certainly has more "real-world IT experience" than most of the people criticizing him."
That may be true, but on the other hand, experience doesnt always count for much. I´ve seen my share of narrow-minded zealots with 20 odd years of experience, citing either open source or MS solutions as the salvation for the world (is either? I think not), not bothering to listen to counter-arguments..
I would suspect this goes down in the book as publicity seeking, a bit like hes HBS collegue who wrote the "IT doesnt matter" bit, but thats a different discussion altogether.. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: anon anon
- Posted on: September 25 2003 04:03 EDT
- in response to Perrin Harkins
Doing small web sites is not exactly Rocket Science, This is what PHP and Perl are best at doing. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 25 2003 10:06 EDT
- in response to anon anon
"Small websites"? Perl and PHP are used at Amazon, Yahoo, TicketMaster, etc. We're talking about the biggest sites on the web. The company that Greenspun founded built sites for The World Bank and Siemens, among others. So, again, he probably has more experience building large sites for serious companies than you do. If you want to disagree with him, you need to base your argument on something more solid than "this guy is just a professor with no real experience." -
rofl[ Go to top ]
- Posted by: Cameron Purdy
- Posted on: September 25 2003 11:36 EDT
- in response to Perrin Harkins
Perrin: The company that Greenspun founded built sites for The World Bank and Siemens, among others.
Maybe "The World Siemens Bank"?
(I really couldn't resist ;-)
Peace,
Cameron Purdy
Tangosol, Inc.
Coherence: Clustered JCache for Grid Computing! -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: anon anon
- Posted on: September 26 2003 02:48 EDT
- in response to Perrin Harkins
What do you define as a big web site, In fact I'm not even talking web sites, Most web sites (even for large companies) are little more than content sites, the more sophisticated ones will have a shopping basket and a payment portal, if you don't believe me go take a look,
What I'm talking about are IS (Information systems), that is HR Systems, Medical Systems, Payroll Systems, Ordering Systems etc. etc., these are your meat and potatoes systems that every company needs and generally have to do a little more than capture details and display data. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 26 2003 11:03 EDT
- in response to anon anon
"In fact I'm not even talking web sites"
I'm not sure why you're talking then. The article was about building web sites. That's what Greenspun teaches.
"Most web sites (even for large companies) are little more than content sites"
Right, so people should feel free to build them in whatever tools they find most efficient. That is more or less the point I think Greenspun was making.
There's really no need to defend Java from me. I use it and like it, along with various other tools. I just thought it was absurd to see people accusing someone with years of "in the trenches" experience of being a cloistered academic. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: anon anon
- Posted on: September 26 2003 12:37 EDT
- in response to Perrin Harkins
Great
if all he teaches are the building of web sites then why on earth does he have the audacity to equate Java to an SUV or does he think that web sites are be all and end all of all systems. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 26 2003 13:51 EDT
- in response to anon anon
"if all he teaches are the building of web sites then why on earth does he have the audacity to equate Java to an SUV or does he think that web sites are be all and end all of all systems"
Did you read the article? The analogy was that building most web sites with Java/J2EE is like driving an SUV to the corner store, i.e. it's overkill, and makes things harder than they would be with something simpler, but people feel good about knowing that they can go off-road if they want to. He doesn't hate Java either, by the way. I fear that many people have missed that point. -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: me havename
- Posted on: September 26 2003 15:52 EDT
- in response to Perrin Harkins
I think everybody understand what the professor is saying.
"Did you read the article? The analogy was that building most web sites with Java/J2EE is like driving an SUV to the corner store, i.e. it's overkill, and makes things harder than they would be with something simpler, but people feel good about knowing that they can go off-road if they want to."
Could not be more wrong. There are frameworks (like Struts) that make website development in Java a breeze. Is there anything easier than duming a war file into the webapps directory? and that too, without consideration for the platform? -
actually, he probably has more "real-world" experience than you[ Go to top ]
- Posted by: Perrin Harkins
- Posted on: September 28 2003 13:34 EDT
- in response to me havename
"There are frameworks (like Struts) that make website development in Java a breeze. Is there anything easier than duming a war file into the webapps directory?"
Yes. Simple things like PHP are much easier than that. Rather than learning about Struts, learning about war files, learning about what a webapps directory is, etc. a PHP coder can just stick some code in the middle of an HTML page and it runs. I'm not a fan of the in-line code development model (in JSP/ASP either) since I consider it messy, but it's obvious that beginners find it much easier to get started with. -
Is this the quality of Harvard?![ Go to top ]
- Posted by: Roberto Calero
- Posted on: September 29 2003 11:02 EDT
- in response to Wille Faler
if so, why do they wonder about IT jobs being moved off-shore??? Isn't it a thing to be ashamed of? -
Thanks for wasting my time.[ Go to top ]
- Posted by: Paul Hixson
- Posted on: September 23 2003 12:28 EDT
- in response to Dion Almaer
Can't believe the buzz around this. So a college teacher thinks Java's an SUV and LISP is just swell. Who gives a shit. How did this get slash-dotted (let alone posted on TSS) to begin with. -
Thanks for wasting my time.[ Go to top ]
- Posted by: DODO DODO
- Posted on: September 23 2003 13:26 EDT
- in response to Paul Hixson
Can't believe the buzz around this. So a college teacher thinks Java's an SUV and LISP is just swell. Who gives a shit. How did this get slash-dotted (let alone posted on TSS) to begin with.
Simple, because it's fun. And because lots of us had some ignorants like him as CS profs. Looking down at you, you insignificant student/bug. The guy is stupid enough to put a TARGET sign on his forehead/a..(pick one). -
Thanks for wasting my time.[ Go to top ]
- Posted by: Todd Murray
- Posted on: September 23 2003 13:38 EDT
- in response to DODO DODO
"And because lots of us had some ignorants like him as CS profs"
One of my CS professors told me (this was about 1992) to forget about PCs. They were toys and learning to develop for them would lead you nowhere.
Fortunately for me I didn't heed this piece of advice. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Vic Cekvenich
- Posted on: September 23 2003 13:13 EDT
- in response to Dion Almaer
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 profseor to teach his students to like/love low cost and high performance in any lang.
.V -
10,000 lines of code = stupid students != fault of java[ Go to top ]
- Posted by: sean decor
- Posted on: September 23 2003 14:08 EDT
- in response to Dion Almaer
1. I think this article is little partial - it doesnt talk abt scalability , security , etc - just talks abt simple fast ( stupid ?) development using procedural languages / procedural style languages. for a college project ( althoguh not MIT) i would also use any stupid asp, vb to get it done faster - who looks at efficieny of code in schools / coe review etc - Prof just wants to see the results .. so thats fine ..
2. The bigger issue is that people who learn java dont 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 coulndt finish "EJB" apps in time and monney - forget abt maintaining. I would think 10,0000 times before choosing EJB route.
Learning java is to do more with clear OO concepts - if thats clear u have best language on ur hand to do wonders -
EJBs and dot com bust[ Go to top ]
- Posted by: John Hess
- Posted on: September 23 2003 14:32 EDT
- in response to sean decor
3. EJBs to a great extent are a overkill - most of the dot coms went belly up because they just coulndt finish "EJB" apps in time and monney - forget abt maintaining. I would think 10,0000 times before choosing EJB route.
That is quite a statement. While there are certainly applications for which EJBs are overkill I don't see how they can be blamed for dot coms going belly up. Can you name one example? -
SUN should add supporting inheritance to EJB[ Go to top ]
- Posted by: Eric Chow
- Posted on: September 23 2003 22:07 EDT
- in response to John Hess
I think the most inconvenient in EJB programming is that EJB currently does not support inheritance. This make so many duplicate codes.
Sun should consider this. I think all the EJB developer also wish this. -
SUN should add supporting inheritance to EJB[ Go to top ]
- Posted by: Wille Faler
- Posted on: September 24 2003 11:52 EDT
- in response to Eric Chow
I think the most inconvenient in EJB programming is that EJB currently does not support inheritance. This make so many duplicate codes.
>
> Sun should consider this. I think all the EJB developer also wish this.
I understand the problem, but for the more simple cases of just duplicate code: why dont you let the bean implementation inherit from a base-class? There is nothing stopping you from doing this.. -
SUN should add supporting inheritance to EJB[ Go to top ]
- Posted by: Eric Chow
- Posted on: September 25 2003 03:41 EDT
- in response to Wille Faler
I tried it before.
But it is also difficult to implement inheritance EJB(CMP).
The Container can't control the Database table architecture for inherited EJB(Entity Bean, CMP).
And also, when we need to look up the Object Instance, we have to hard code some those beans' jndi name. -
10,000 lines of code = stupid students != fault of java[ Go to top ]
- Posted by: Wille Faler
- Posted on: September 23 2003 15:25 EDT
- in response to sean decor
"most of the dot coms went belly up because they just coulndt finish "EJB" apps in time and monney"
Stupid me, all this time, I thought it was down to lack of viable business models and no market whatsoever for mail-order used jogging shoes and the likes.. ;)
On second thought, the market for "used jogging shoes", just might be e-bay.. -
Frazil[ Go to top ]
- Posted by: ashokkumar sankaran
- Posted on: September 23 2003 15:48 EDT
- in response to Wille Faler
Don't blame java.People are using java for wrong purpose.Company where i am working is planning to convert Big Client Server APP to Java(Web APP) .You know the time estimation between Client server and webAPP is almost double and cost is also double, and still manager want to pursue this,bcos he want to show his managemet that he is doing java project.It 's really personal interset not in the inetreset in the product .Higher level manager who will go by market hype will nod his head for any project which utilizes latest tech even tough it's doesn't make sense. When other language can be used with lowcost and high productivity.Yes i like Java and i am using in place where it really make sense. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Race Condition
- Posted on: September 23 2003 14:09 EDT
- in response to Dion Almaer
I like cheese. -
cheese[ Go to top ]
- Posted by: Jeff Drost
- Posted on: September 23 2003 17:22 EDT
- in response to Race Condition
Yes, cheese is good. Some is good on a cracker. Some is good on a pizza. What cheese you use depends on what you want you are cooking. Does more need to be said about cheese? -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: hthjf fgfgfg
- Posted on: September 23 2003 15:39 EDT
- in response to Dion Almaer
His comments on prepared statements are true. But PHP database interface is not so good either -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Michael Dowling
- Posted on: September 23 2003 16:02 EDT
- in response to Dion Almaer
The whole entry is just another "this language is better than that language" argument without taking into consideration the need to analyze requirements and choose the right tool/language for the task at hand.
Am I jaded, or have I seen FAR too many of these kinds of childish posts?
*sigh*
-Michael, who codes in Java, C#, C, C++, and/or Perl depending on the problem at-hand. -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: Terry Hutchinson
- Posted on: September 23 2003 16:30 EDT
- in response to Dion Almaer
Sadly, he probably wasn't seeking publicity. It seems more likely that he accurately represents the complete lack of quality and relevance in the university system today. But without any outside oversight what else could one expect. It is a terrible shame that employers cede them exclusive control over entrance into this, as well as most all other, professions. It just proves the old adage: People get what they deserve not what they expect.
Of course, as everyone who's ever been paid to write software knows, there simply is no comparison between the "utilities" he sights and actual programming tools. This is for all the reasons stated.
One point mentioned above did hit my personal favorite hot spot: why doesn't Java provide a usable SELECT statement. Sun went so far to create a C++ like language that is actually usable for business programming. It is a terrible shame that they somehow forgot to write a SELECT specification. I assume this can be attributed to an unfortunate accident with a copy machine. Too bad they didn?t copy the COBOL manual instead of the C one :) -
JSP simpler then J2EE[ Go to top ]
- Posted by: Shahram Khorsand
- Posted on: September 23 2003 16:32 EDT
- in response to Dion Almaer
Just the phrase "JSP is simpler then J2EE" shows that the "professor" maybe should read a couple of books about the platform before writing something like that.
Maybe the good professor should get out of the university and do some real application development. This would help the students understand better! -
Use the rigth tool for the job![ Go to top ]
- Posted by: Niels Peter Strandberg
- Posted on: September 23 2003 17:43 EDT
- in response to Dion Almaer
This is quit basic knowledge! Use the right tool for the job!
Choose your tools according to your project. If you are planting a flower, dont use a bulldozer, use a spade! Right??? -
Those Who Can Do, Those Who Can't Teach[ Go to top ]
- Posted by: Daniel Haynes
- Posted on: September 23 2003 18:56 EDT
- in response to Niels Peter Strandberg
er... whats a SUV ?
While I agree EJBs were a complete waste of everyones time and money I don't think they can be held totally responsible for the dot com crash. However I do blame them for the war in Iraq. -
Those Who Can Do, Those Who Can't Teach[ Go to top ]
- Posted by: Wouter Zoons
- Posted on: September 25 2003 01:53 EDT
- in response to Daniel Haynes
er... whats a SUV ?
>
> While I agree EJBs were a complete waste of everyones time and money I don't think they can be held totally responsible for the dot com crash. However I do blame them for the war in Iraq.
you are free to blame them, but it's just too damn hot out there to hibernate ;-) -
Use the rigth tool for the job![ Go to top ]
- Posted by: Slava Imeshev
- Posted on: September 23 2003 23:24 EDT
- in response to Niels Peter Strandberg
This is quit basic knowledge! Use the right tool for the job!
> Choose your tools according to your project.
In order to choose right tools you have to exclude politics from making a decision. That leaves us companies consisting of two and less people.
Slava -
Smells like M$ paid FUD[ Go to top ]
- Posted by: Jamie Schiner
- Posted on: September 23 2003 20:52 EDT
- in response to Dion Almaer
I have a question.. is this college students or Junior High kids doing web page.
If the professor has no idea between the difference of asp scripting and OOP
then he should take gardening as his profession.
This is a shame on the CS professor where he is not fit to do some OOP coding.
I wonder if this a M$ paid fud -
There are more trees in the forest than you can see[ Go to top ]
- Posted by: Fred Ruopp
- Posted on: September 23 2003 20:59 EDT
- in response to Dion Almaer
Phil Greenspun is more than an old fart professor.
He is a humanitarian that cares enough about people to give up a considerable amount of his time and money to give free seminars; and, to help out charitable
organizations with their web projects.
As for real world experience, he was one of the founders of
ArsDigita which was sucessful enough to be sold to Red Hat. He open sourced
ArsDigita which became OpenACS which is based on AOLserver. AOLserver is what runs AOL; and, it's stable, multithreaded and based on TCL for development(it's acutually written in C).
TCL will not replace Java. SAP will not be re-written in TCL.
But, TCL is quick like a dune buggy for pure content jaunts in the web world.
Java is like a U.S. army Hummer; it costs alot in developer time; but, it does things you just can't do with a dune buggy (and the manual weighs 5 pounds). -
There are more trees in the forest than you can see[ Go to top ]
- Posted by: Bill Willis
- Posted on: September 23 2003 21:23 EDT
- in response to Fred Ruopp
Java is like a U.S. army Hummer; it costs alot in developer time; but, it does things you just can't do with a dune buggy (and the manual weighs 5 pounds).
That is ridiculous. Java is actually a simple language and very easy to use. It has never cost me a lot in developer time. In fact, it has cost me less and that is why I continue to use it for most projects. -
There are more trees in the forest than you can see[ Go to top ]
- Posted by: Mike Spille
- Posted on: September 23 2003 21:38 EDT
- in response to Bill Willis
\Bill Willis\
That is ridiculous. Java is actually a simple language and very easy to use. It has never cost me a lot in developer time. In fact, it has cost me less and that is why I continue to use it for most projects.
\Bill Willis\
I agree completely. I'll go further and say that Java has the best power-vs-simplicity tradeoff I've yet seen (with "power" a function of language complexity and expressiveness). This is what endears me to it - it's not something dumbed-down like VB, it's not the most hideously complex and dangerous language known to man (C++), it's feature set doesn't meander all over the globe like Perl, it's not a stripped down engine on wheels like C, it balances dynamic and static features admirably without succuming to the extremists of either camp (too many to name on both sides here).
Having worked with many languages over the years, Java by far strikes the best balance for me. My only fear is that too many overzealous JSRs may tip that balance some day soon.
-Mike -
Changes are important[ Go to top ]
- Posted by: obuchi machini
- Posted on: September 24 2003 03:26 EDT
- in response to Mike Spille
Althogh, Changes are important for any language. Some of the features suggested above will make learning java much tougher. Let us keep it simple, as java is now. It gives you the flexibility of building the things how you want still adheres to OOAD. Too much emphasis on improving might lead to again another version of C++ -
Simple can be powerfull[ Go to top ]
- Posted by: Diana Finis
- Posted on: September 23 2003 21:00 EDT
- in response to Dion Almaer
Everybody meantions power of Java in big scale apps. I completely agree. I also do agree and in the long run investment in development project using OO methodologies will pay off.
BUT, It doesn't mean that there shouldn't be layers on top of the core that limit the freedom for simplicity's sake. Look at .NOT. Powerfull C# is combined with STANDARDIZED ASP.NET that even 14 years old kids can use.
It is true that Java is comvoluted with multiple satellite libraries that people cannot decide between. -
Simple can be powerfull[ Go to top ]
- Posted by: Slava Imeshev
- Posted on: September 25 2003 18:19 EDT
- in response to Diana Finis
Look at .NOT. Powerfull C# is combined with STANDARDIZED ASP.NET that even 14 years old kids can use.
May be kids can use ASP.NET, but can they deliver production grade code, fix bugs and maintain existing code lines with APS.NET? -
Simple can be powerfull[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 26 2003 04:13 EDT
- in response to Slava Imeshev
Look at .NOT. Powerfull C# is combined with STANDARDIZED ASP.NET that even 14 years old kids can use.
>
> May be kids can use ASP.NET, but can they deliver production grade code, fix bugs and maintain existing code lines with APS.NET?
Yes they can, because ASP.NET code lines can be C# code lines or whatever language you choose. Also, ASP.NET is a true component framework. Java may have the upper hand on .NET in quite a few ares, but believe me, web development is not one of them. ASP.NET has nothing to do with the ugly php-like ASP. -
Simple can be powerfull[ Go to top ]
- Posted by: Edward Vrajmasu
- Posted on: September 26 2003 04:18 EDT
- in response to Edward Vrajmasu
I said something stupid :)
Kids can't, but developers can. -
java == physiology?[ Go to top ]
- Posted by: Rolf Tollerud
- Posted on: September 26 2003 04:38 EDT
- in response to Edward Vrajmasu
When the students of the physiology professor do not understand what he says, he is proud. When the students of the philosophy professor do not understand what he says, he is ashamed.
To those that think that Java is more advanced, complicated, or in any way that is less to learn I can assure you that there are significant more to learn in the .NET framework even if you concentrate on only one language.
.NET is done the right way. like chess. Easy to get started and learn the moves, but difficult to be a Grandmaster.
Regards
Rolf Tollerud -
java == physiology?[ Go to top ]
- Posted by: Razvan Caraghin
- Posted on: September 26 2003 05:08 EDT
- in response to Rolf Tollerud
When the students of the physiology professor do not understand what he says, he is proud. When the students of the philosophy professor do not understand what he says, he is ashamed.
>
> To those that think that Java is more advanced, complicated, or in any way that is less to learn I can assure you that there are significant more to learn in the .NET framework even if you concentrate on only one language.
>
> .NET is done the right way. like chess. Easy to get started and learn the moves, but difficult to be a Grandmaster.
>
> Regards
> Rolf Tollerud
if that's the case, I wonder why you keep coming onto these forums. is java some kind of "holy grail" to you ( and you won't admit it ;)? -
java == physiology?[ Go to top ]
- Posted by: hthjf fgfgfg
- Posted on: September 26 2003 09:08 EDT
- in response to Razvan Caraghin
May be Rolf is like a christian missionary spreading his religion -
Fallout from the Java == SUV posting[ Go to top ]
- Posted by: d c
- Posted on: September 23 2003 22:05 EDT
- in response to Dion Almaer
He is calling Java SUV, may be because it can run on any platform! -
unnecessary[ Go to top ]
- Posted by: pratap nayak
- Posted on: September 24 2003 02:09 EDT
- in response to Dion Almaer
I love articles in TSS for they are very informative and expands my horizon.I feel this particular psoting is unnecessary and full of child's play.We should not bother to read what a student (yet to come out of university's womb) think about all the software in the world. -
JSP's are too hard for Harvard grad students?[ Go to top ]
- Posted by: J Donald
- Posted on: September 24 2003 08:48 EDT
- in response to Dion Almaer
I hope that the Yale *undergrad* intern we had at my last job has read this. He'd get a kick out of it, seeing as he picked up JSP's in a couple of days, and within a week had begun developing his own tag library. Hmmm.... -
Phil is here again :-)[ Go to top ]
- Posted by: Karl Banke
- Posted on: September 24 2003 12:40 EDT
- in response to Dion Almaer
Nice to hear from Philip again. A gifted speaker and writer and of course author of the wonderful (and wonderfully illustrated) guide to web publishing. However I find it strange that he still sticks with the same views he had in 1999.
I mean, really, Tcl (and the AOL server) are nice but you are very limited, have to hand engineer a lot of stuff and ultimately are very limited in what you can do. I found that stuff much overhyped when I looked at the totally screwed "portal framework", my-o-my....
On the other hand, he has some points when claiming that good application design builds on good data modelling. Also, arguably, there are languages that have the same or greater potential compared to Java. Python might be a prime candidate. For me, one of the wonderful things about Java is that is actually gives some choice how to do things. Using plain SQL/DAO/Entity Beans/JDO for data access based on what fits developer abilities and application requirements best is absolutely wonderful.
Finally, let's get real: Compared to a decent object publishing environment,like WebObjects, Zope etc. using PHP, Java and even .NET (with its superior development environment) are quite poor tools for web publishing...
Other than that: I expect any decent programmer - especially from an "Ivy League" school to able to get productive with *any* programming language in a matter of hours. If not, than there is a problem - with the teacher :-) -
University Prof with no problems...[ Go to top ]
- Posted by: Russ P
- Posted on: September 24 2003 14:45 EDT
- in response to Dion Almaer
Interesting article. I actually teach a course called Introduction to Internet Technologies at a major private university in Texas. During this course, students are taught how to build HTML pages and introduced to dynamic page generation. For a final project, students are encouraged to use whatever technology makes sense for them from CGI, to PHP, to Flash, to ASP to JSP. Due to cost factors, most students end up using JSP (Tomcat) hitting an Access database using the JDBC-ODBC bridge -- fine for demoing and Access is an easy tool for many who don't have much database experience.
I have never had a group that encountered anywhere near the amount of problems that Philip Greenspun talks about. In fact, the biggest problems tend to do with statefull issues that are a real bear in scripting languages and frowned upon by the ASP.NET folks. (In fact, I see more problems with the ASP students working on environment issues getting everything installed just right.)
I think the most interesting thing about my experience is that this course is taught as an elective to full-time MBA students. Yup -- thats right -- no CS/MIS students here. These are business managers wanting to learn more about how web pages work.
Having recommended Philip's book to many of my students, I understand why his class may have had problems -- he is a database centric type of person. To him, state is maintained in the database. I'm sure he guided his students through this train of thought and scripting languages work just fine. But for larger, more complex problems, a non-object oriented approach is ill-suited. (As well as performance problems, etc.) Perhaps I did a better job with my students teaching them (I hope so!) or my students just tend to be brighter/smarter than your typical Harvard CS/MIS student (you wouldn't think likely -- would you?).
In any case, I have real-world proof from an educator's standpoint that Java is a fine teaching language as well as a suitable environment for "Mickey Mouse" projects.
Russ -
The author is confusing J2EE with Java[ Go to top ]
- Posted by: Matthew Humphrey
- Posted on: September 24 2003 15:54 EDT
- in response to Dion Almaer
This was said in the thread on Slashdot, but I think it deserves repeating: The Professor is confusing Java with J2EE.
Java is not a complex language, and while it is not perfect, it is very approachable for the new computer science student. One of the main goals of Java was to create a powerful OO language without all the complexity of C++. It is not until you add all the complexity that comes with J2EE that Java becomes difficult to program.
One problem with J2EE is that there are way too many artifacts and steps needed to create an application. Microsoft has done a good job of simplifying a lot of this (with attributes and other language features). Sun seems to think that the solution to this problem is by creating better tool support.
Hiding complexity with wizards and other helper applications is the mistake that Microsoft made for many years. Ultimately, the realized the error of their ways and created first COM+ and then .NET to simplify the underlying technology. -
Advice to Philip Greenspun look for a IT job[ Go to top ]
- Posted by: Jamie Schiner
- Posted on: September 25 2003 00:04 EDT
- in response to Dion Almaer
Please dont teach CS any more and look for a job in the IT world.
Build a web app that will take 24 request per second with Database
updates and inserts. Try to do it in PHP and ASP and see how easy it is and how many servers you need and amount of reboots you need.
I have written similar app in Java in J2EE . The whole runs on one app server with only 4 procs/4gig ram in Weblogic 8.1 in Linux AS (20% cpu usage). My webapp has never crashed has a solid uptime of 3 months. My back end comprises Stateless Session Bean and Oracle 9i store procs (20% cpu usage). My frontend are Servlets and JSP using struts.
By the way another group tried this same app in ASP in 13 IIs boxes(80% cpu usage) and 3 sql servers The app use to go down every day. -
Phil you suck as CS instructor[ Go to top ]
- Posted by: Java Guy
- Posted on: September 25 2003 00:38 EDT
- in response to Dion Almaer
I dont get it how a person like Phil gets a job in Harvard teaching CS.
I have taught college kids writing Java using TomCat they all suceeded in OOP class.
There is place for scripting and place for OOP if Phil doesnt understand this then he should learn to do some thing else . Old farts like him should just shuv dirt for living. -
Are you not leading thee kids up the garden path??[ Go to top ]
- Posted by: Nigel Barrett
- Posted on: September 25 2003 06:18 EDT
- in response to Dion Almaer
Not one to comment on things like this I find this thread a bit of a misnomer. We are talking about a bunch of kids doing a project to get a fair comparison (for themselves or the prof ??) of a number of different ways to develop a similar project.
I have to agree in principle that JAVA can be a bit unweildy to the un-initiated in that the sheer scale of the libraries available makes for a lot of work to stay up to date on what someone else has done for you already. For the average student this is not feasible, hence the idea of the prof with the helping cheat sheet. For the rest of us who once thought that tools.h++ was proof of god these are great times.
Having been someone who worked prior to the great wave of object orientation that washed over the world back in the day I canot sing the praises of an object oriented approach to solving real world problems enough and feel that this should have been the point the prof should have been making to these kids. He should have helped them get the concepts of component based development in their heads first, then tried to develop the project using the different methods and then asked them to do another project where there would have been obvious re-use and see who came first.
We all know that if you want a piece of code to be the be all and end all and the tightest little loop since high school you can write it in assembly and if you know your stuff there's not many optimising compilers for any language out there that will beat you. This does not, however, mean that this should be pushed as a better alternative on it's merits alone. The same goes for the time it takes to get the hello world web page up using a given technology.
I can understand what he was doing with the project but I can't help but feel that the bar has been lowered when we're teaching students that a Perl/CGI solution is better than a JSP/JSF soultion just because you can get the first page up there faster. That's how you get laid, not write code.
Until the next Timezone,
Nigel -
This 'professor' does bad publicity for his students[ Go to top ]
- Posted by: Yuri Sokolovski
- Posted on: September 25 2003 17:34 EDT
- in response to Dion Almaer
I don't understand what message he wanted to pass across:
That Java is complex for novice programmers? It's not a secret anyway.
That his students are not smart to figure things out?
That 'some-java-course' they did take before was a joke?
What's bad is that he's making that kind of conclusions about platform usability, productivity, maintainability just by judging of performance of his students.
He's also trying to compare the enterprise platform with the tools which is like comparing cows with apples.
Next time I see a fresh Harvard graduate claiming he is proficient in Java, I'll think twice. Thanks to this article.
-Yuri -
Average Programmer is More Skilled than MIT Grad Students[ Go to top ]
- Posted by: James Watson
- Posted on: September 26 2003 13:28 EDT
- in response to Dion Almaer
All I have to say about this is that it makes me feel great that I learned something realitively easily that MIT grad students could achieve. If it's too hard for MIT graduate students to accomplish something that people with bachelor degrees in English and Political Science from State College achieve easily, what does that say about MIT? Maybe it's just that most talented engineers go to work, not back to school. Or possibly it's that Daddy's money is no substitute for experience. -
error[ Go to top ]
- Posted by: James Watson
- Posted on: September 26 2003 13:30 EDT
- in response to James Watson
Should be:
All I have to say about this is that it makes me feel great that I learned something relatively easily that MIT grad students could 'not' achieve.