RE: [PHP] PHP vs. JSP

From: Date: Sun, 30 Jul 2000 16:56:54 +0000
Subject: RE: [PHP] PHP vs. JSP
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-9063@lists.php.net to get a copy of this message
Alright, I was afraid someone would ask <g> By the way, what's the best way to reply and send a message to the list? Another mailing list I'm on just lets me reply to a message and it goes to the list. What's the right way to do it for this list? "Reply to all"? Alright, with that out of the way, here is my list of "Bad Thing"s about JSP. 1. First, I'll reiterate Zeev's point. "Simply put, Java isn't, and was never meant to be a rapid development language. It's not a scripting language. That is, in my opinion, JSP's biggest flaw." Variables don't autovivify, you don't have good string handling (yes, Sun has a regular expressions library *somewhere* that you can use, although I don't think it's even included with the product I was using for JSP. In other words, it's likely to not be available, and it's certainly not built in), and you don't have dollar sign variables to include in strings. Oh yeah, and forget an easy e-mail function. You'd be amazed at what you need to do to get the same functionality as PHP's mail() function in JSP. 2. Development is just a pain in the butt for many reasons. The number one pain in the butt is null pointers. In JSP, if you get a null pointer, that's it. There's no help whatsoever. It gives you a stack trace, and you have no clue where you got the null pointer, how much of the HTML it got through before you ran into the error, or anything useful. It's a huge pain. By contrast, PHP will output everything up to where you got the error, give you a useful error message, and keep going. In JSP, when you get a null pointer, a lot of times you just have no clue where to start looking. This brings me to the next problem... 3. JSP is compiled. The thing is that the JSP itself isn't compiled into Java bytecode. It's precompiled into a servlet first, and then that servlet is compiled. This has a bunch of ramifications. One, when you get an error like the one I described above, if you're lucky enough to get any hint at a line number where the problem might be, it's not the line number in the JSP file, it's the line number in the servlet source!! Then you have to go to the directory where the intermediate servlet of the JSP is stored, and find the line number the error was on. 4. Also, the precompilation is one more error prone step for the whole process to go through. Sometimes it just doesn't compile the JSP into the servlet right. I've had at least one time when I've been sure that the precompiler was breaking my code. 4a. I almost forgot this, and went back and added this at the end. Whenever you do an include in JSP, it sucks the include into the servlet source and then compiles the whole thing. The thing is that if you change your include, the base file's modification date doesn't change, so the server doesn't know to recompile your JSP the next time it runs. If you change an include, you wind up having to reupload every single file that uses the include so that the file modification date changes and it gets recompiled to use the new include. Needless to say this is really annoying. 5. Implicit objects, or "You can't write functions!": JSP gives you a bunch of "implicit objects", such as "out" which lets you print to the browser, and "request" which lets you get get and post parameters. The thing is that no function (method) you create has access to these. This makes it a pain in the butt to write functions, in practice, and you wind up with huge monolithic code. I can explain the stupid technical reasons why this happens, and it involves, again, the precompilation into a servlet, but it's not worth going into detail. 6. The documentation is fairly poor. Also, with PHP you pretty much just learn PHP. With JSP you have to know Java first, then you can learn JSP. 7. Just some practical, ease of use considerations. When you want to do an "if", the majority of the time you can just say if($variable == "string you want"){...}. It doesn't matter whether the variable was ever set before. In Java (I'm thankful you can even do this at all, thanks to Java having short circuiting logical operators), you have to do things like if(variable != null && variable.equalTo("blah")){...} ALL the time. Also, with string parsing, I wound up using the StringTokenizer for most things, rather than just doing an explode(), for instance. I'm not sure I did the best job of explaining the points, and it feels like there were more bad things involving JSP that I can't remember now. In any case, be happy you use PHP. Unfortunately, it seems like JSP is growing in usage, when it doesn't deserve to given the obvious 1.x quality that it has. To close, the one good thing JSP has going for it is JDBC, although even that is arguably beaten by all of PHP's native db functions. Have a good day, all. Keith > -----Original Message----- > From: Ben Heuer [mailto:ben_heuer@artlover.com] > Sent: Saturday, July 29, 2000 8:46 PM > To: Keith Devens > Subject: RE: [PHP] PHP vs. JSP > > > HI Keith, > > Shoot...I share fully your dislike for JSP and Java for web development at > the moment. But I'd really like to share your thoughts on WHY NOT JSP as I > need to show it to the management types..? > > Thanks in advance! > Ben > > > -----Original Message----- > From: Keith Devens [mailto:php@keithdevens.com] > Sent: Sunday, July 30, 2000 12:17 AM > To: php-general@lists.php.net > Subject: RE: [PHP] PHP vs. JSP > > > I sent this message yesterday. I'm new to the list and didn't realize that > the list address isn't the REPLY-To address, so I would up sending it just > to one person :) > ----------------------------------------------------- > > JSP, in my opinion, is just NOT a viable language at this point. I've done > kind of a lot of work with it, unfortunately, and it's really not > ready for > prime time. Also, Java just isn't a good HTML embedded scripting language. > Who wants to worry about null pointers (sorry, references) in > their HTML? In > any case, I can't say enough bad things about JSP. I won't go into it now, > but if anyone really wants to know, feel free and I can give a > whole list of > reasons why JSP is a "Bad Thing". > > Keith

« previous php.general (#9063) next »