File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JSP and the fly likes Java community took Java too far? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Java » JSP
Bookmark "Java community took Java too far?" Watch "Java community took Java too far?" New topic
Author

Java community took Java too far?

Ivan Jouikov
Ranch Hand

Joined: Jul 22, 2003
Posts: 269
You know, when first Java came out, I thought it was a great thing to have such a dynamic and flexible language, not even a language, but a "system".

But now I see the downside of it. This flexibility spawned a whole bunch of BS which should've never happened:

using XML as programming language (ANT). What is wrong with you people? Why make another programming language, can't you simply replace ANT tasks with JAVA FUNCTIONS, and have them do the EXACT same task, without having to learn a new language?

JSTL: ok, the idea was "Let's create something that both designers and programmers could use with ease". What came out of it - a whole new programming language that NEITHER designers NOR programmers can use (efficiently). I think it's easier to have <% %> Java code that scares the hell out of your designers, so they stay away from it and don't touch anything (Like they're supposed to).

Enterprise Java Beans: Great idea: let's create a "framework" or "naming convention" that would allow people to create reusable objectsk, and help them separate Business logic from GUI, from dealing with input. Sounds great, but what do you end up with? Create a component for input, another for GUI, another business logic, another for DB transactions. All reusable and nice. Now what? Now you write 100,000,000 terabytes of code to tie all that crap together. And you end up with "nicely separated objects", that if you separate become useless. Still, everybody is following this BS because "It's standard, and I want other cool programmers to respect me because I use EJB!"

Now, they came out with JSFaces... So basically, the idea is: "we aren't sure if beans are doing the job of separating all the components, so let's write another programming language and integrate it into java, include the beans, and add some extra external files to help the developer "customize" performance of their application, and have the developer write a few extra megs of code to connect together JSP, Beans, and JFaces."

Now the new specs of JSP 2.0 have the "Expression Language". The only advantage of that that I see is parsing some formulas that the client enters. I'd be perfectly happy if that was the only function of it. But noooo! We have to look big. Why don't we write up a huge manual explaining how you can tie together EL, Java Beans, JSP, JSFaces, and the external configuration files. So what, it's only a few extra thousands lines of code full of mistakes and bottlenecks, but it's the size, not the functionality right?

Now, you can already see the outcomes of all this crap. Just join some mailing lists. Whole bunch of newbs are running around trying to figure out how the hell to connect all of this together; half of it isn't working because to "implement it correctly" you have to edit tons of "easily customizable XML files", and as a result of that "ease", you end up trying to figure out, WHICH app (ANT, Java, Tomcat, JFaces, Log4j) is having problems, where is it logging its problems to, and why is it there if you never installed it?


The only GOOD outcome of all this that I can see is that Java programmers are gonna get good-paid jobs, and they're gonna keep them for a LONG LONG time, because it takes forever to write something utilizing all these "new and exciting technologies", and then the company would have to keep that programmer because those "technologies" will constantly crash, and when you update them all the "backward capability" suddenly disappears, and you have to pay the programmer overtime.

If it were for me, all I need is JSP and good old JAVA code. No EJB, EL, JSTL, none of that crap. What do I get out of this? My code is simple and portable.

The only other 2 things that I use are Taglibs (completely custom made, only to keep all your HTML in one place), and ANT (for building the application, I wish it was JAVA code though, not ANT).

I don't know, maybe I am having an emotional breakdown or something, but I am simply overwhelmed with all Java stuff that's out there, that give Java a bad name. PLEASE give me some reasons to change my opinion, because right now I don't see any (after reading tons of docs).
[ June 21, 2004: Message edited by: Bear Bibeault ]
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61103
    
  66

Message edited for language. Ivan, you'll make your point better if you keep your language and tone a bit more on the professional side. Using acronyms for curse words doesn't make them any more professional.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61103
    
  66

Personally, I love Ant. Are you actually suggesting that it's better to write 'build scripts' in Java? No thanks.

And I have also embraced the JSTL and EL as very good things. They have allowed me to greatly simplify JSP pages and to do so in a standardized manner. Certainly you can agree that having tags like <c:if> around is better than everyone inventing their own using proprietary custom tags?

With regards to EJBs, I have yet to see a need for them. I have worked on four large-scale, enterprise web applications where EJBs were considered, and discarded as not worth the ROI. Point is, if you don't think a technology is applicable, you don't have to use it.

I can understand your frustration though. There is a lot of technology to understand to write good, standards-compliant, "best practice" web applications. But I don't agree that any of it "makes Java look bad". You can choose to use EJBs or not. You can use the JSTL and EL or not. It's all part of what's called "engineering".
[ June 21, 2004: Message edited by: Bear Bibeault ]
Ivan Jouikov
Ranch Hand

Joined: Jul 22, 2003
Posts: 269
Sorry for language.

"Personally, I love Ant. Are you actually suggesting that it's better to write 'build scripts' in Java? No thanks."

What's wrong with writing build scripts in java? For instance, I would be very happy with:




Because its GOOD OLD JAVA CODE, no need to learn extra XMl stuff...

"Certainly you can agree that having tags like <c:if> around is better than everyone inventing their own using proprietary custom tags?"

Certainly I DISAGREE. Did you know that you could use <%if(){%>, which is the STANDARD, existed forever, and everyone KNOWS HOW IT WORKS, compared to <c:if value="" condition="" whatever="">, which is the EXACT SAME THING, but just extra syntax to memorize...
Chris Dempsey
Greenhorn

Joined: Feb 24, 2004
Posts: 9
Enterprise Java Beans: Great idea: let's create a "framework" or "naming convention" that would allow people to create reusable objectsk, and help them separate Business logic from GUI, from dealing with input.

Wrong. EJB is basically a framework for distributed objects. Not any of that other rubbish you said. It's a good idea to at least know what you're talking about before ranting on it. Enterprise JavaBeans Technology should help out. Be sure to read the first paragraph.

What's wrong with writing build scripts in java?

Nothing. Ant is using Java classes to do the build. What you're complaining about is why have an external data file to tell Ant what to build. Personally, I think having runtime data seperate from the Java classes using that data is a Good Thing(tm). I'd hate to see the inter-dependency between data and object model on a project you work on.

Also, most people can understand a Ant buildfile by just looking at it. You're ranting about Java being more simple yet want to throw another API developers have to learn into the mix. Make up your mind and go with it, won't ya'?

Certainly I DISAGREE. Did you know that you could use <%if(){%>, which is the STANDARD, existed forever, and everyone KNOWS HOW IT WORKS, compared to <c:if value="" condition="" whatever="">, which is the EXACT SAME THING, but just extra syntax to memorize...

Good luck getting a webdev guru to use scriptlets. Did you know that people other than Java developers work on HTML pages? Trust me, they do. I work at a place where one gent couldn't write a block of code if his life depended on it but he can throw around the JSTL like there is no tomorrow. And he'll design a better looking/loading/working page than you ever will. Turns out he understands tags just fine.

Also, your example <%if(){%> is simplistic. Make a serious if or for scriptlet that switches in and out of HTML code and we'll see which is easier to understand and why there is a need to pull away from scriptlet "coding" (I use the term loosely). Scriptlet programming is teh suc k.

Now, you can already see the outcomes of all this crap. Just join some mailing lists. Whole bunch of newbs are running around trying to figure out how the hell to connect all of this together; half of it isn't working because to "implement it correctly" you have to edit tons of "easily customizable XML files", and as a result of that "ease", you end up trying to figure out, WHICH app (ANT, Java, Tomcat, JFaces, Log4j) is having problems, where is it logging its problems to, and why is it there if you never installed it?

What I see is the willingness of some people to learn & keep up and some that aren't just able or willing to. Those that can't shouldn't be professional developers anyway. Maybe programming would be a good hobby for those people. Who knows? Seriously, if you can't even tell where you're having problems during developement you should do something else.

Designing and coding enterprise level distributed systems aren't for "newbs". Simple as that. Sorry that's a tough reality but there you are. Those "newbs" need to be junior people on another team where someone with knowledge, the will to keep learning, and have the ability to teach & mentor them until they've learned enough to go it on their own.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61103
    
  66

What's wrong with writing build scripts in java?


If nothing else, in doing so you are taking something inherently declarational and forcing it onto a procedural paradigm. A build hierarchy and its dependencies are best expressed declarationally in something like XML. Otherwise, why not just resort to shell scripts? Did you have the same aversion to tools like make?

In any case, the Ant discussion doesn't have much to do with JSP and I'd suggest you post any further discussion in the Ant forum where the rest of the Ant community can participate if they desire.

Did you know that you could use <%if(){%>,


Certainly. But I choose not to do so any longer. So do many others. I've loved JSP as a technology ever since using it in the 0.92 revision days. But I've always disliked the fact that it was notationally messy. Very messy. To me, the simplicity of using pure markup in JSP pages serves a number of purposes. Firstly, it makes the pages easier to visually parse, code and maintain. Secondly, and perhaps even more importantly, eliminating scriptlets and scriptlet expressions from the JSPs also herds you away from the path of trying to use JSPs for anything other than view representation.

Note that I did not mention "Let's create something that both designers and programmers could use with ease" as what I see as a primary advantage. While there are places that operate that way (see Chris' post), many do not. I've never worked in an organization where the JSP developers were not also the Java coders. And to a one (at least in my current organization) all agree that the advent of JSP 2.0 and the JSTL are excellent progressions of the JSP technology.

They all are prefectly capable of incorporating Java code in the pages (in fact since our current app precedes JSP 2.0 and the JSTL, there is Java on the pages -- all in support of display processing I might add) that everyone is looking forward to excising in our next iteration.

You either see the advantages of such simplification or you do not.

Again, I can understand being overwhelmed with the sheer volume of things to learn, but advanced tools give you the ability to accomplish more advanced tasks. It's up to you to decide which tools you want in your toolbox; a choice which vastly affects the type of product you can create with them.
[ June 21, 2004: Message edited by: Bear Bibeault ]
Ivan Jouikov
Ranch Hand

Joined: Jul 22, 2003
Posts: 269
Thanks guys.

I guess Chris does make a good point of separating your build stuff from your code. I mean I've been using ANt since it came out, it's just that I misspelled a pattern and I was hating it that day

And Bear (ur name is bear?), thx for your insigts on <tags>. You make it sound so good, I guess I'll give it a shot.

Thanks for the support, it's just that I have an exceptionally bad day when I posted it, nothing seemed to work, and I hate Java and all its guts. What really happened is I wrote 300 lines of code without any testing or embedded debugging, and I hoped it would just work (it did in the past). Well it didnt. So I snapped. SOrry again, and thanks!
Alex Williams
Greenhorn

Joined: May 27, 2004
Posts: 9
Ivan, I felt that way when I first started learning COM, VB and the Win32 API years ago -- which is much simpler in scope. Now moving into Java, I feel the same way but I just bear and grin it during the learning process.

Heck, sometimes I wish I could download books/algorithms (or network wirelessly to other people via a cerebral interface to my cerebrum and use their memory and/or spare cerebral processing cycles) and be ready to work on any project in any language...but alas...

Anyways, thanks for speaking out loud for what I'm sure allot of others feel from time to time in any profession. I think most of us understand that this is not a personal attack on anyone - just a moment of unbearable fustration.


Save lives, forests, animals, children and breasts with a simple click...visit <a href="http://www.thehungersite.com" target="_blank" rel="nofollow">www.thehungersite.com</a>
Ivan Jouikov
Ranch Hand

Joined: Jul 22, 2003
Posts: 269
Yeah you coudln't put it better.
Jeroen Wenting
Ranch Hand

Joined: Oct 12, 2000
Posts: 5093
As for JSP custom tags and JSTL, it took a while for me to to see their use.
That is, it took until I needed something that caused the JSP to become completely unreadable from all the miriad nested loops and conditionals.

I put the code into a small set of custom tags which I could use in concert and now the JSP became so readable that it's currently being maintained by someone whose programming knowledge is limited to "HTML for dummies".

Other JSPs that were hundreds of lines of scriptlet code (most of it conditional and loop logic) I've since scaled down to a few dozen lines of JSTL tags.
Far easier to read and maintain, and for new pages far faster to create once you know the syntax.

See JSTL as taking all the lessons learned from primitive JSP and learning from it.

I fully agree with Bear that EJB are overly complex and much overused. I've never had a use for them myself and ever more people agree (Gartner published a study in 2002 or late 2001 that stated that according to their research in 2001 over 2 billion dollar had been wasted in the USA alone in using EJB on projects that would have been better off without them. These projects either failed or went way over budget because of the use of EJB where inappropriate).

That's not to say that EJB don't have their place, it's just that that place is far more restricted than what server and database vendors (and EJB book authors) would want you to believe.

What's wrong with ANT? I agree that using XML as a programming language isn't the most beautiful thing they could have done. They would maybe have been better off using Python for example. But then people'd have complained of having to learn that (and the specific use ANT would make of it).
ANT is a lot better than the alternative, which is good old make...

JSF too I've yet to see a use for. But when it gets a bit more mature I WILL take a look at it and see if it might fit into our architecture.
Like everything else I'm not going to use it because it's there...

JSP EL makes coding JSPs a lot nicer than using scriptlets for the same.
More concise code that is easier to comprehend for non-Java people.

Your complaint that EL is being designed to be identical between JSP and JSF is b.t.w. counter to your entire rant about API bloat.
Instead of ranting about multiple APIs you're now suddenly ranting about Sun striving to combine several of them into one???


42
Chris Dempsey
Greenhorn

Joined: Feb 24, 2004
Posts: 9
Originally posted by Jeroen Wenting:
What's wrong with ANT? I agree that using XML as a programming language isn't the most beautiful thing they could have done.

Jeroen, I agree with a lot of what you said. But this line about using XML as a "programming language" is a bit off. Ant is using the XML-based build file as a database, nothing more. When you create an Ant buildfile you're giving the Ant engine the data it needs to successfully build the targets you create. It happens to be a data-driven workflow (which I happen to think is the right way to go) that might appear to be programming some actions but its not.
rick zorich
Greenhorn

Joined: Aug 31, 2003
Posts: 16
What do you think of "tag files" ? I just started learning how use them. I think that they may be the coolest new feature of JSP 2.0. rick
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61103
    
  66

I really like tag files too. In concert with the new simpler tag support classes, it's easier than ever to write custom actions.

With the combination of the JSTL, custom actions created via tag files and the new tag framework, and the right mindset to make sure that all processing happens in the controller so that the JSPs are pure view renderers, I've been writing JSP pages with no (as in none, zero, nada) Java on them. And loving every minute of it. Especially when it comes time to go back to them for a refactor or additional/changed functionality. Turns out, less is more!
 
 
subject: Java community took Java too far?