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 ]