Java Success Stories 235
gark writes "The Java Lobby has a
weblog on Java success stories. Many of the successful applications are servlet based, and several use Apache JServ. Perhaps WORA [write once, run anywhere] really has been achieved, at least for server apps."
Reminds me of the Gary Larson cartoon (Score:2)
"Blah blah Java blah blah blah Java".
I've had great luck with WORA with servlets (Score:2)
Now if only we had a spare IBM mainframe sitting around to try it under that environment...
Starting Java... (Score:1)
I guess not everybody has given up on client-side Java.
RP
Our JServ success story at Webstakes.com (Score:4)
Open source application servers are the best - I can tell you from personal experience over the past couple of years...they really blow away commercial application servers. My friend has mod_perl on Elance.com and I'm curious as to how that's working out...I know PERL is a very web-friendly language, maybe even a little more than Java.
Java Success Stories (Score:5)
technology to the MIS-managers is producing a
panoply of success stories in the "trade press".
If you read back issues of "Information Week"
"Datamation" etc. you will find endless gushing
stories of successful implementations of
(pick the fad of the last 10 years).
What is *never* covered are the projects that
got abandoned, canceled, or crashed and burned
in some other way... these are politely buried
and not talked about... the programmers fired,
and the memory traces remain only in the minds
of the survivors - again never talked about, and
never included in survey tabulations...
The only way to find about project failures is to
talk to seasoned survivors over a beer, or
to read anti-patterns books or occasionally
the halloween issue of Datamation - and even
then they never give names and places...
Yep, Java is great for server-side (Score:3)
Which is precisely why Sun is pulling stupid stunts like pulling Java out of ECMA stadardization [slashdot.org] and trying to charge royalties [slashdot.org] for the use of the J2EE logo. Sun realizes that Java is A Big Thing now, so they want to get their cut, one way or another.
It's the same old bait-n-switch we've grown to know and loathe from Microsoft, only with a different brand underneath.
These little shenanigans, along with the way Sun is milking the Open Source cow with their so-called SCSL and their treatment of the Blackdown fiasco has got them on my sh*t list but good. They had better realize pretty quickly that the industry isn't going to stand anymore for the same old tricks that Microsoft's been pulling all these years and that Sun isn't anywhere near as powerful and influential as Microsoft to be able to pull them off.
It's enough to want to make me give up Java and learn Perl... Well, ok, maybe Python...
Who woulda thunk it a couple of years ago that a die-hard Linux fan who does a lot of Java and database work would today be saying, "At least there's IBM to look to for real support of Java on Linux without trying to screw us over."
-=-=-=-=-
Java == Server Side Revolution (Score:3)
However, a large number of server-side applications use Java servlets or the related JSP technology. Bought a computer on line? If it was from Compaq, HP, or a host of others (such as those listed at http://corporate.pcorder.com/customers/), then you benefited from the speed and robustness of the Java platform. Even the Ford e-commerce site, which Bill Gates so lovingly demonstrated in his Comdex keynote, is based on Java (and runs on NT).
And don't count corporate software, either. Lotus Notes web mail runs through a Java applet, and companies like Oracle are increasing their use of Java everyday.
The fact is, whenever you need fast development, good networking capabilites, and (I hate to say it) 'enterprise' support, Java is a good candidate. WORA is just a small part of it.
One last thing. With the advent of GCJ, it is possible that more native software will be written in Java. This will be a huge boon because it will allow GUI apps to run natively on a large numeber of platforms without changing a line of code. Java, I think, is a good argument for having a large, all-encompassing library (GUI, networking, database, ORB, etc). If only it was so easy with everything else...
~~~~~~~~~
auntfloyd
Re:Java's dead. Get over it. (Score:1)
A matter of speed(naive question)? (Score:2)
Java is supposedly slow. Is this a matter of the speed of the computer? Will Java's ponderous pace become irrelevant as processors become faster? Is it something more inherent in the language???
Java is usable in the servlet arena, but... (Score:2)
The first problem with it is its lack of speed. On a server answering a ton of transactions, the JVM needs to have some sort of native machine code cache where Java bytecodes are stored as native code for sake of speed. What would make this a nonissue for servers would be a PCI card (preferably two models -- one 32-bit, one 64-bit wide, both able to select 33/66 Mhz depending on the main bus speed) with a good Java bytecode processor. If these were made inexpensive enough, and put on the motherboards on new SPARC boxes as coprocessers, this would solve the slowness problem.
The second problem is the bad perception of Java. Two big whammies -- Blackdown, and the pulling out of the standards committee hit Java quite close together.
Not to say that Java is a lost cause. When Java was the hot thing amongst computer groups, every vendor with something that runs a CPU got some sort of JVM out for it. So, the write-once, run anywhere thing does still apply. Java 1.0 was, for the most part, a toy, but with the latest iteration, it really has matured into something usable.
Personally, I really don't know as much as I should about Java, but I have seen some very cool things done with it (www.jars.com has a good amount of examples of this, and the main application that drives www.hushmail.com is another good example.) to write it off as a toy language.
As for Sun, its a mixed bag. They come up with some good things, and then trip on themselves. I don't want to write them off just yet.
there weren't _that_ many items at that link (Score:2)
Searching FRESHMEAT for JAVA [freshmeat.net] returns 378 links, and they're almost all GPL. That's more impressive to me
anyway... I think the most impressive java app I've used is NetBeans (now owned by Sun). That was the first java app that made me really believe that significant java apps were on the way.
Here's a list of related topics I'd like more slashdot stories on:
ZOPE success stories
comparison of slashdot-alike web-based discussion apps like squishdot, etc.
compare and contrast of OPENSOURCE application servers
Java Servlets are great! (Score:3)
Dear fellow Java-basher Slashdotters: I know most of you have very little free time on your hands, but please set aside a couple of days to take a look at this exciting server side technology, Java servlets. It is truly write-once, run anywhere; it's a widely accepted industry standard, almost all popular databases and application servers support it, and Java is a very good OO language after all. Take a look at some nice servlet tutorials or better, O'Reilly's servlets book [amazon.com], download the awesome Tomcat [apache.org] or Apache JServ [apache.org] to run with your Apache Web server, get the latest JDK from Blackdown [blackdown.org] or even better, IBM's JDK [ibm.com], add Jikes [ibm.com] for good measure, and explore the beautiful world of Java servlets. Sun's site completely relies on Java servlets, Yahoo uses servlets for some portions of the site, a host of smaller Web sites and e-commerce companies completely rely on servlets and/or JSP (which is based on servlet technology), (epinions.com, mercata.com come to my mind; there are lots of others)
Whatever server-side programming technology you're using, you will like servlets. Most likely you will want to forget about CGI.pm, sell your books about Netscape's proprietary server-side JavaScript on Ebay, erase memories of hours of fiddling with ISAPI/NSAPI extensions, shred your printouts of ASP error message explanations from the Microsoft knowledge base, and lament about the time you spent posting aimlessly on every bulletin board about those pesky, undocumented Oracle functions of PHP. You will easily have time for all these when you start to use servlets.
--
BluetoothCentral.com [bluetoothcentral.com]
A site for everything Bluetooth. Coming in January 2000.
Re:A matter of speed(naive question)? (Score:1)
There are some advances around this, that people have done. Caching native code is one way, where if a function is executed repeatedly, the first one is slow, then the next run-through will be much faster. Another way is to do something perl-esque, and translate the whole application to native code before running, but this takes some time to do.
The last way to speed it up would be a hardware coprocesser that spoke Java bytecodes natively.
Re:Java's dead. Get over it. (Score:1)
>Standard edition in January.
Actually they will do no such thing. Sun has been quite clear in their opposition to the GPL. It is possible, however, that they will release it under their Sun Community Source License.
You know this license, don't you? (Ask any Blackdown team member.) "You do all the work, we take all the credit."
Dave
WebMacro, Java servlets, and other comments (Score:4)
I use Java for about half my web projects. The other half of the time I use perl. In my opinion, here are the strengths of Java for server side development:
1-- It allows clean and clear design. Since you can declare compiler-enforced interfaces, you can easily separate out functionality in well defined chunks. This allows you to plan for the long term, hand different parts of the project to different people, and so on. This tends to be what makes me choose Java over Perl: If I want to enforce a long term design (such as re-usable constraints on busisness logic), or break the project up into several different segments, then I choose Java over Perl.
2-- It's fast and scalable. Java is often criticized as being slow, but on the server, it's not. It's fairly fast compared to things like perl (which are usually fast enough to begin with), and add to that the threaded nature of servlets, plus the built in scalability, and you have a big performance gain over other scripted solutions. In particular the ability to automatically distribute a single servlet across multiple webservers, without modifying the servlet itself at all, is a big win. You can be sure that whatever you do will scale.
3-- You do need to make an effort to keep your HTML and your SQL and your Java program code separate form one another. The whole reason for using Java was to get clean, well designed code, and you don't have that when you have HTML obscuring your servlet. This is what prompted me to write WebMacro [webmacro.org], which is an HTML template system, but you could also do this with FreeMarker, or XSLT, or if you are very careful, with JSP.
4-- Write once, run anywhere is fairly real on the servlet. I routinely develop under FreeBSD, deploy on FreeBSD, Solaris, and Linux, and I have about half the users of WebMacro running it under NT, even though I myself hardly ever use NT. And it all works.
5-- On the downside, the free Java solutions don't appear to work very well for servlets. I have had lots of trouble with kaffe, and the free JVM's are not as fast as the non-open ones. This is too bad, and it's something I expect will change over the next while. I always try kaffe every time it comes out, but it hasn't yet been stable enough for me.
6-- You do need an experienced designer around if you are going to use Java. Unlike perl, where your goal is to hack out something working ASAP, in Java the point of the language is to allow you to do clean design. Well you won't get clean design without an experienced designer. Without a good designer you are probably better off with "write-once" perl-code that you throw out and rewrite whenever you need to fix it. While Java allows you to do really good design, I have seen some really nasty Java code. If you aren't going to use it right.. don't use it.
Server side Java works; client side just slow (Score:2)
I also got to do some server side Java. It is fast and works great. Using JSP's is much better than ASP's because of the language -- Java is a full language while the ASP stuff is for scripting. VB is just full of inconsistant syntax. Furthermore, the Java Servlet API is very well done. There are a few things that ASPs make difficult to code and JSPs make almost trivial, like a file upload over HTTP (I don't why they were insistant about not using FTP).
Java has other nice & cool things, too, like the communications API. It works with serial and parallel ports. Like most Java API's it is very well written an easy to use.
For a poorly done Java API, look at the InfoBus. It sucks! I made a better one, but its more basic in function (part of the reason I think its better). Its on my web page [ro.com], if you're interested. I call it the dataBus. All free with LGPL, of course.
Re:Starting Java... (Score:1)
It crashes Netscape/X though, for Linux, I suggest IBM's JIT or Blackdown/Sun's latest RC: "appletviewer http://kijiki.resnet.gatech.edu/breakout/play.htm
Enjoy!
Re:WebMacro, Java servlets, and other comments (Score:2)
In the back end you work with ordinary Java objets, anything vaguely bean-like. You just drop these into a hashtable and WebMacro's introspector figures out how to fit what you've supplied in the hashtable together with what you've asked for in the template.
The goal, of course, is to keep your Java servlet code clean and clear, with no HTML--and similarly to keep your HTML clean and clear, with no program code messing it up.
There are other template solutions for Java servlets besides WebMacro. FreeMarker is one. Another way to go is to use XML with XSLT. I would advise against using JSP. JSP is great if you are familiar with ASP and you're looking for something familiar in the Java world--but I don't think it's a good use of the Java langauge. On the other hand, attracting all these ASP peope to Java is good *for* the Java langauge
Re:I've had great luck with WORA with servlets (Score:1)
That's interesting, and untrue. Porting straightforward C/C++ code among those OS's is no bigh trick at all.
But hell, by THAT standard PERL is WORA, so is Python. We sure don;t need all of Sun's Java overhead for that.
Of course, no matter what SUN would liek you to believe, java was SUPPOSED to be WORA on the >CLIENT side as well... it just couldn't cut it - reinventing itselve as a server side tool is cute, but hardly important.
Ken
Re:there weren't _that_ many items at that link (Score:1)
Not in your wildest dreams... Andover.net has no intention of pointing users away fromt heir closed-source cash-cow (Slashdot).
BTW - source that is 10's of releases behind is no longer useful to call yourself "open source".
&sign($AC[0]);
Does write-once makes sens on the server side? (Score:1)
Apart from that, what is the advantage of Java over more traditionnal languages like Perl or PHP? What is that craziness all about?
Enhydra? (Score:2)
Re:Java == Server Side Revolution (Score:1)
For a client side revolution, Write Once Run Anywhere simply doesn't work. A different approach should be taken.
It would be wonderful if a completely and totally os-independant, standardized API was developed. The bottom would drop out of porting time, and porting cost.
With a reduced porting cost, revenue from non-mainstream operating systems would be higher, and perhaps profitable. That means, of course more Linux apps, more Mac apps, more BeOS apps.............
Re:Java is usable in the servlet arena, but... (Score:2)
I can't believe you propose to use Python on the server, and in the next sentence you are complaining that Java is slow.
There are lots of great things about Python, it's an amazing lanaguage, and a substantial improvement over Perl. However, speed is not one of it's attributes. Python is dog slow, and Java runs circles around it.
Putting a bytecode interpreter on a PCI card is a bad idea as well. The problem is that you wouldn't have a processor on the card nearly as fast as the one in your PC.
Java is only slow on the server if you compare it with C. Versus any scripting language, it's lighting fast.
With WebMacro [webmacro.org] servlets I find that I get performance equivalent to what I get out of PERL running as an Apache module.. and WM is doing a lot of work for me.
how about this? (Score:5)
The company I work for recently programmed an SMS (cellular phone text-messages) server complete with a fancy web based user interface and a vCal integration that allows you to synchronize your cellular phone calendar with your desktop calendar automatically with SMS's as the carrier protocol. One team had worked on this for months and months using C/C++ and Perl. The deadline came closer and the app was still packed with bugs. So a hail-Mary manouver was performed only days before the deployment date and the whole thing was re-engineered in Java with parts of the vCal integration being Visual Basic. On the deployment date, we had a ready package which was actually FAR better than the C/C++ & Perl version. It had more features, was more easily integratable with other systems, featured a pluggable SMSC (short message system center) driver architecture, had a fancy self-repairing system which did self-monitoring of the whole thing. We had a home-brew RMI based distributed debugging service that allowed us to receive stack-traces and exceptions that occured at run time, from several servers at once and view them on the web. We had about a million other equally cool things, all put together in less than one week by a handful of programmers.
A few weeks later, there are still no major bugs reported and everything seems to be running perfectly smoothly.
What does this prove? Absolute nothing. However, it does raise some questions about how it's idiotic to just do everything with C/C++ because it's traditionally "the right thing to do". By using "traditional" programming languages, you will often be forced to spend so much time thinking about language issues, memory allocation & leaks, complex threading issues etc. that the application logic will suffer and become a secondary priority.
Pick the right tool for the right job. If you develop a web browser, you would probably be insane if you did it in Java (I would love to be proved wrong) because it would be so much slower. If you develop a complex server side application in C/C++ or Perl, you're nuts because there's NO WAY you will achieve the same quality in the amount of time you can achieve it in Java.
If you diss Java because of some stupid web applets programmed by some 13 year olds who know nothing about programming, it's just very sad because Java can do so much more. Unfortunately we see lots of "write once debug everywhere" statements by people who have little or no first hand experience with Java. The experience I have with Java tells me that while the Win32 platform still has the best virtual machines, Linux is gaining FAST, mostly thanks to IBM. Linux users: don't just use Kaffe because you've heard it's the right thing. Try running Java on a Win32 platform so you see what it CAN be like. I'm quite sure you will be amazed of the speed.
There are not many platform inconsistencies left, and if you know what you're doing, you can easily move a Java app from one platform to another without having to change any code or recompile anything. I've done this several times, even for very large and complex applications.
If you read the Java 2 Enterprise Edition Application Programming Model specification which now has an even more complex name which escapes me at the moment, you will see how SUN has worked hard in the EJB specification to define a great component architecture that is scalable, clusterable and avoids many common causes for platform specific bugs. Please read it!
A client side Java application (Score:4)
Without the Java's write once run anywhere capability, the decoder would have been impossible to deliver succesfully (without resorting to platform specific browser plugins, which would have put off a lot of users). Writing the encoder portion of the software let us deliver the software simultaneously to any Java supporting platform - without Java, we would probably have limited our software to Windows (at least initially).
Client side Java is not worthless, and I'd say that write once run anywhere is an extremely worthwhile goal - I'd very much like to see Sun deliver on this. As it stands, only Solaris and Windows have working Java 2 implementations, which is extremely disappointing.
Re:Does write-once makes sens on the server side? (Score:1)
Re:A matter of speed(naive question)? (Score:1)
Re:Java == Server Side Revolution (Score:1)
then you benefited from the speed and robustness of the Java platform.
ROFLMAO. Hello Mr McNealy, how's Sun stock doing these days?
If you want to see examples of 'unscalability' etc visit Sun's java bug site.
There are major limitations to java's network support (thread per socket connection for example) that makes it so much less scalable than traditional C/C++ or COM applications.
It'll be interesting to see how java scales when sun get JTS going (ripoff of MTS ofcourse)...unfortunately JTS isn't free.
What I love about java is the language, the platfrom frankly just sucks.
What would be better (now that java is realistic only on the server side) is a cross compiler, many java apps are written one enviroment (say NT) and deployed on another (say Solaris), having a cross compiler would save all those valuable CPU cycles servers need....and it would still be easy for literally _anyone_ to write java apps cause of the simplistic language.
Java + webmacro speed issues. (Score:1)
Interesting, but irrelevant fact: On profiling the servlets I found that the major time overhead for the complete process was in the jdbc driver (mmmysql) when it was converting byte[] --> String. Memory allocation. Booo. Anyone done any work on getting a mysql/jdbc/webmacro integration that: caches used data buffers and reuses them if possible in the jdbc driver and/or permits direct use of data[] blocks into webmacro without the String overhead?
The slow parts are: (techical) (Score:2)
The parts of Java that are slowest, from my experiance, are:
It still needs work, and I'm not sure that JFC will improve it much. Java software that doesn't use a GUI usually isn't very slow.
Making a new object takes time. A bit much time. Minimize usage of the new operatator to maximize performance.
Admit it -- this is the cause of most problems for almost anything.
Why no private individuals use JAVA/Corba (Score:2)
Re:Java's dead. Get over it. (Score:2)
Re:Our JServ success story at Webstakes.com (Score:1)
Apache is very easy to install - configure, make, make install. But it's still very flexible and ready for heavy duty usage as Netcraft attests to. The application server is what has to be integrated with the database, be it Oracle, SQL server or what not...when I'm digging around for Oracle drivers for my Operating System, it's always been for the application server, not the web server
Re:Java Servlets are great! (Score:2)
I myself have posted repeatedly on Java issues. My companies have lost months due to Sun and its dicking around with Java. Fortunately we had the insight to get off the Java wagon a few months ago before things got really stupid. For those who can get Java to work for them: great. For those trying to make Java work for them: good luck. For those considering Java: spend your time more wisely and find an alternative -- if you don't have reason to be sorry now I can guarantee you Sun will give you reason within the next few months.
Re:I've had great luck with WORA with servlets (Score:2)
Re:Reminds me of the Gary Larson cartoon (Score:1)
Though, I'm sure it would very quickly say (Score:1 Flamebait) not long after... and I'm pretty sure that's also an accurate moderation.
Re:I've had great luck with WORA with servlets (Score:1)
Yeah, and with your ansi C your networking code, database code, threading code, and basically everything else worth mentioning will be left far far behind. I suppose if you were just using your computer as a big calculator that ansi c code might be ok.
Re:Our JServ success story at Webstakes.com (Score:2)
Re:A matter of speed(naive question)? (Score:1)
of course, some JVMs are faster than others but sooner than later, java speed won't be that much of an issue.
i remember when people weren't happy with perl cgi performance. C coders often complain that it's just not as fast as C, but if you don't notice the speed difference, then it doesn't matter.
Re:Java's dead. Get over it. (Score:1)
Javva is far from dead, though I don't really care about it..
Re:Yep, Java is great for server-side (Score:2)
If you actually believe that IBM cares one lick about anything but profits and keeping shareholders happy; if you actually think they wouldn't sell you, me and every other linux nut out for an extra dollar's profit at day's end; if you actually think IBM wouldn't put a hit on Bill Gates if they thought they could get back what Microsoft stole from them; if you do believe any of that, then you are believing exactly what their PR/Marketing dept wants you to believe.
Re:Java == Server Side Revolution (Score:1)
--
Wait for version 3.1. (Score:1)
What can you do with server side Java which Python , Perl, PHP can't?
How easy is it to split a string in Java? e.g. array=split ,
As far as I know, Java still lags behind. Don't see much point in enduring the pain dealing with a adolescent solution yet.
Plus, another thing - when a colleague was looking at Java for database and web stuff, what put him off was every other step was "pay pay pay". e.g. database connectivity, which you can get free for Perl, Python, PHP etc. He's now doing his stuff on Perl.
I prefer spending time actually doing stuff, rather than looking for tools, or filling out forms to buy tools. And I prefer not to have to make my own nuts and bolts, or look all over the place for decent ones.
Cheerio,
Link.
Re:Why no private individuals use JAVA/Corba (Score:2)
(1) What's this BS about corporations using Java and private individuals using C? Do you have any evidence of it? It seems like a wildly ridiculous claim at face value. My best guess is you are saying all Linux programs are written in C, whereas the websites corporations build are backed up by Java. That's confused and silly, since those are two different kinds of programs.
(2) What happened to perl? Almost everything done on Freshmeat is NOT python. It's mostly perl and C. I think your biases are showing, as is your lack of factual data.
(3) I am a private individual, self-employed in fact, and I use Java and Perl about equally. I even wrote and contributed a template engine for Java servlets, which you can find on freshmeat, called webmacro [webmacro.org]. It's free under the GPL, go try it out.
Also I don't have any clue why you mentioned CORBA. CORBA certainly has had problems gaining widespread acceptance--but I don't know why you think there is any connection to Java. CORBA is just as well connected to python and C; the Java bindings came fairly late in the process (after python, for example). So while your criticism of CORBA may have a point, it isn't relevant to a discussion on Java.
Re:Java is usable in the servlet arena, but... (Score:1)
Re:Wait for version 3.1. (Score:1)
Anything that has to do with Java database connectivity comes free with the JDK, except the JDBC drivers, which are to be provided by the RDBMS vendor. My company has paid zilch for Java connectivity to our Oracle servers. Your friend was probably using MS SQL Server, but then, he deserves everything bad.
--
BluetoothCentral.com [bluetoothcentral.com]
A site for everything Bluetooth. Coming in January 2000.
Re:there weren't _that_ many items at that link (Score:1)
Re:WebMacro, Java servlets, and other comments (Score:1)
These benchmarks disagree... I disagre... (Score:2)
Don't take my word for it, though. In Kernigan and Pike's classic, The Practice of Programming (C 1999), there's a pretty decent comparison. In the design and implimentation chapter they implement a Markov Chain algorithm as a decent test of perfomance/speed of development comparison between several languages. Here are the results:
PentiumII400MHz ----- Lines of source code
C ----- 0.30sec --------------- 150
Java --- 9.2 ------------------ 105
C++ --- 1.5 ------------------- 70
Awk ---2.1 ------------------- 20
Perl --- 1.0 ------------------- 18
Looking at the results above, Java doesn't look like much of a winner at anything. It comes in dead last in execution speed, and edges out only C (the performance winner) in development speed (based upon lines of code). Perl on the other hand, is a contender. As I see it, Java's only true strength is its propaganda machine.
Re:Java is usable in the servlet arena, but... (Score:3)
JSP is not a good use of the Java langauge. It's non-standard, and requires extra junk in your webserver (whereas WM works in any pure Java environment, without requiring add ons). On top of that, it doesn't take advantage of Java's features. It looks and smells like ASP, and as a result, obscures your ability to write good clean Java code.
If that's the kind of programming you want to do, you should look into EMBPERL. It does a much better job of mixing script codes into HTML.
My view is that you should NEVER mix program logic and HTML together. WebMacro implements a template langauge, the idea being that all your rendering logic and HTML goes in the template--leaving your servlet as pure and simple Java code.
JSP's model is the opposite, though they claim you can do MVC programming with it. (A claim they started pushing *after* WM was announced, by the way
With JSP you can do MVC programming, keeping your busines logic separate from your display logic, but you have to enforce it yourself. Every time you do anything everywhere you have to follow self-imposed rules. Late some tired night you'll get fed up and sick some Java into your HTML--like a cancer it'll grow, until the point in separating them is lost.
WebMacro, or any other template system, supports the model/view/controller way of thinking architecturally. It's analogous to doing OO programming in an OO language, as opposed to in C. Separating display from logic in JSP is like doing OO programming in C--it's possible, but the language doesn't really support it.
It is worth repeating that I created WebMacro in response to JSP. I had come from a perl/C++ background, and had made extensive use of good template systems in both langauges. Coming to Java, I naturally expected to have a good template system, so I looked at JSP. When JSP turned out not to be a template oriented system, I naturally wrote one and GPL'd it
Of course I'm biased. However, I will say that the bias caused me to write WM, and not the other way around
Java != WORA (Score:1)
As for those of you that say making Java a GPL product would fork it to death, then why has this not happened for example with the Linux kernel? Think about it. If Java was GPL it might have been using CORBA from the start instead of RMI and it might bind to OpenGL instead of it's own Java3D. In fact you might have Open OS's intigrating Java into themselves in such a way that the VM becomes part of the kernel.
A GPL Java with Sun acting as it's Linus would probably be more in goal with the actual language design criteria than it's closed source form is now. There are many platforms which would be excellent for servlets, which could have become the glue for exchanging data from platform to platform but unfortunatly this is not the case right now as the limited JVM ports impeed this.
I have used PHP/Perl/ColdFusion.. Java Rocks!!! (Score:1)
I don't think that I will ever go back to anything else. I -love- JSP/Servletes. I have been able to increase my development time significantly and the performance is not (in my perception) lower than Perl or PHP.
Oracle has made a HUGE commitment to the java world with its Oracle8i server and Java Stored Procedure integration. (Hell of a lot better than PL/SQL!!).
With big players like IBM/Oracle pushing the backend, I would hardly say that Java is DEAD. Even if sun doesn't release the API to a standards commitie, someone will standardize it. I don't *fully* understand the problem with sun being a steward over the API _for now_?
I agree that what they did to Blackdown was a bit lame, but welcome to the corporate world.
In the end, I can use Tomcat or Jrun (at no cost) and it allows me to do my job quickly and very low cost. I am working on a large and complex side project, and right now the development machine is sitting on a Compaq Pentium 90 with 96 megs of ram. After the JSP Pages are compiled and sitting in Ram, the thing goes surprisingly zippy.
If performance is an upper end issue, you can load balance the application server in a cluster.
You can start development on a compaq pentium 90 running linux, and move it to a 64 cpu SGI machine if that tickles your fancy!
I believe that Java offers the most flexible solution for my needs, but I do have a choice. I don't understand the Java bashing on Slashdot, I really enjoy the stability and managability that it gives me.
Java on the server solves a Unixflaw (Score:1)
Re:WebMacro, Java servlets, and other comments (Score:2)
Basically because in order to use JSP you have to give up most of the advantages that the Java language offers you. If you're going to do that, you would be better off using EMBPERL intead.
If you're going to abandon the design capabilities of the Java langauge, and just use it as an embedded script language, you should consider using a different language, such as perl or python, which are really much better scripting languages than Java is.
Java is a powerful *design* language. It's got all kinds of strengths in that area. If you're not going to benefit from those features, why use Java?
WebMacro takes a different approach. WM assumes that you do want to do most of your programming in Java. It steps completely out of your way and allows you to implement all your program logic in standard Java. Java is an excellent, extremely powerful langauge.
What WM does instead is provide you with a set of classes which can be used to load and execute HTML templates. These templates don't contain any program logic, though they might contain some display logic.
What JSP is good at is attracting non-Java programmers to the Java platform. It's modelled after ASP, and ASP programmers are going to find it more familiar than if they'd made a cold leap into the Java language as a whole.
This is good for Java. But it is not necessarily good Java. The ASP programming model isn't well suited to the Java language.
yaY for java (Score:1)
i'm getting a bit sick of all this deer-in-the-headlights hype over java. first java was the great applet language. once that failed, people took the write-once run-anywhere philosophy and decided that java was going to take over the client. now that java has been proved fairly useless on the client (how many applications that we use are written in java?), people start the java-on-the-server (?!) bandwagon. *please*, if we are running it on a *server* we know the architecture, we can use something called a "compiler" (btw, C code compiles on a hell of a lot more platforms than java ever will). if we are writing a server app, we better know when the memory gets allocated and freed, and we better have good design and methodology. java will never replace good engineering and sound design. give me my faster C / C++ / Perl / Python "servlets" anyday over Sun's proprietary hyped java garbage.
3% branding fee anyone?
Re:how about this? (Score:1)
On the contrary. It proves you've got a damn good developer, who knows how to pick the right tool to do a succesful Hail Mary, and who has the know-how to pull it off. Good job.
-John
Have you used mod_perl? (Score:2)
--
native code compilers? (Score:1)
Where java has not yet begun to shine. (Score:1)
Let's look at any discussion of frames, graphics, the Opera Browser, or other aspect of web design. People code for their perceived top 95% (Netscape & IE 5.0+ running on Windows). We're used to everyone who uses Opera, Linus, Mac, or NoFrames just getting the shaft. We don't like and and we protest, but we are no longer surprised.
Java is only accepted as a serious application choice when there is a need to run on more (not all) machine types. (Let's be real, if you claim Java is viewed by everyone you've just screwed over those Lynx users on dumb terminals. They're still out there.)
With the new processors coming out (Alpha vs Intel) it will be interesting to see if the compiler market supports both processors equally. If they do not it will either mean a death for one of the processors or an increased demand for Java.
Currently, in my opinion, the forgotten market of choice would be education. Since schools and universities tend to have a wide spectrum of machine types available and since speed is not normally a factor in educational software, then Java fit's the bill perfectly.
Currently I'm working on two alife (artificial life) applets. Java is fast enough for alife (where speed is desireable) on Windows and portable enough that I can be sure other people will be able to use and study these applets. If I was to do this work in C, it would make a decent thesis, but it would be limited to people who A: like to download unknown .exe files, and b: like to read college papers. (Wait. that would be nobody...)
Re:Corel Java WP (Score:1)
Re:yaY for java (Score:1)
It's not that Java is slow... (Score:1)
"Write once, run anywhere" _achieved_ by _Java_??? (Score:1)
Re:These benchmarks disagree... I disagre... (Score:1)
What is causing it to be so slow?
It be very suspicious about using lines of code as a measurement of development speed. You can write those 18 lines of perl quickly but it's really hard to understand and maintain even when it's well written. It's a nice language for quick 'hacks' but I wouldn't want to maintain a large system in it. Java is probably the easiest language from this point of view followed by c++ then C. Awk and perl are good at what they do but they are not for writting anything more complext than this.
Good news! More support than you thought! (Score:1)
-enjoy!
Why Java is worth considering (Score:3)
I've worked extensively in C, C++, and Java. Given my choice I will take Java virtually every time.
The reason why comes down to pure productivity. On average (we're talking about over the course of years) I'm 300% more productive in Java than C++. In some cases (particularly networking code) that number is more like 1500%.
Just think of what things you can do if you can write your application three or more times as fast as the other guy. You have time to write it, rewrite it, and optimize it before he's even done the first time.
And that, my friends, translates into huge market advantage.
Now, lots of people say that the reason Java is more productive is because you don't spend your time tracking down memory issues. That's not the case for me, at least not in large part; it's really not that hard to write a clean program in C++, and memory leak issues still exist in Java (which sells a lot of Optimize-It licenses, lemme tell you). Rather, Java is a lot more stringent in enforcing interfaces than is C++, to say nothing of C.
Consider, for instance, that Java enforces handling or passing of exceptions. In C++ you can silently ignore them, usually resulting in bugs or reliability problems that don't show up until late in the development cycle (or, worse, in the field). In Java you have to explicitly deal with exceptions; you are forced to make a conscious decision as to what to do every time you use an interface that throws an exception. What that means In The Real World is much more robust code on the first effort -- if it fails, it usually fails gracefully.
There are actually some problems related to this. In beta test programs, for instance, it is a lot harder to get people to report problems because they usually manifest themselves as a feature that doesn't always seem to work rather than a complete application crash. On the other hand the application can notice the problem and report it nicely rather than just disappearing or dumping core. These kinds of problems I can live with.
There are other development advantages. Java is dynamically linked at runtime. This makes it slower to start up than a C or C++ application but it means that there is no link phase to deal with at each compile/edit/debug cycle. On a large C++ project I used to wait as much as fifteen minutes per link; with Java that time is always zero. That translates into many more cycles in the same timeframe, and that translates into product going out the door faster. (I must note that I used to work on a C/C++ debugger with an incremental linker and it had many of these same advantages. It was, however, rather expensive.)
So: we have a case here were random heap crashes can't happen, where interface enforcement is stringent enough that you get more reliable stuff together on the first try, and where you can run through a compile/edit/debug cycle a lot faster. There is a hell of a lot to like there.
There are some downsides though.
The compilers still suck -- at least all of the common ones. Oh, projects like Jikes are yielding compilers that build code fast, but none of them build good code. They don't even do simple peephole optimizations, to say nothing of what you get in your typical C++ compiler. It's like going back and looking at code produced by 70s C compilers. Apparently the idea is that the JIT system takes care of that -- but JIT systems are severely limited in how much time they can spend compiling the code, plus they don't have anywhere near as much semantic information. The end result is worse code. This was true of C++ for quite some time too, of course, and is expected to get better, but for the moment you get to optimize a lot of things by hand.
JVM stability has been something of an issue. Big programs that push the environment hard (like, say, a web application that's handling tens of millions of hits per day, which is what I do with Java) tend to find the dirty corners that don't show up in your typical "hello world" applet. Things like limitations on the number of classes and methods you can have in your application (low tens of thousands prior to JDK 1.2), heap lock contention overhead as the thread count scales beyond a hundred or so, and other things have pushed us towards designs that are less convenient to build (although arguably much more scalable and fault tolerant).
Some people speak of JDBC being really nice. It's a good idea, but practically speaking very few of the JDBC drivers are particularly reliable, cross-compatibility leaves a lot to be desired, and performance is often not so hot. You have to spend more time on optimization. Luckily you have more time to spend on optimization.
So Java has its problems, but in my experience everything has its problems. Java's problems can be worked around with architecture and optimization and productivity improvements are so good that you have the time to do it. The end result is often a better product out the door faster.
Now, for all you guys who say that Java just isn't fast enough, several of the largest sites on the web run Java-based applications (you almost certainly have used some of them without even knowing it). And they do it on a lot less hardware, and less expensive hardware, than any of the competition manages with C/C++. This is in direct contract to the popular opinion that Java is slow.
There's nothing stopping someone from writing the same kind of thing in C/C++ other than time. We've had the time to write, optimize, rewrite, and optimize again several times over in the time span it has taken most of the competition to just make their product stable. Unsurprisingly this results in a faster and more stable product even when we've had to work around problems that the other guy wouldn't have had to deal with.
Java isn't for everything. You'd be insane to write drivers or operating systems in it, and runtime environments are really way too big for most embedded applications today. But when it works it's great, and it is working on a whole lot of servers out there on the 'net. You don't hear about them because nobody talks about the stuff that works, only the stuff that doesn't (like, say, eBay).
jim frost
jimf@frostbytes.com [mailto]
Re:Why no private individuals use JAVA/Corba (Score:1)
I've also noticed there is far more take up of c++ amongst commercial projects whereas many open source project seem to be using ordinary c.
Re:Does write-once makes sens on the server side? (Score:1)
--
Re:Java Servlets are great! (Score:1)
Java bashing?
I think the reason Java gets such a bad press in slashdot is that it has such a good press everI personaly think it is a cute little language BUT -- an alien just arrived on the planet and reading newspapers magazines etc would conclude that the web runs on Java (on NT servers, with oracle databases). I think a high percentage of slashdotters actually work out there in the trenches and if you work in the real world of the internet/web three things become very obvious very quickly.
--> The most important code is written in C. Not C++, not ADA, and certainly not Java.
--> 90% of the rest is written in PERL.
--> It runs on BSD.
None of this is ever mentioned in most articles about the web, and, it gets annoying! The urge to put the record straight gets unbearable after a while. So once again:--
90% of the web runs apache on BSD, which is 100% pure C code, the dynamic content, admin and management is done in PERL.
Re:Java's dead. Get over it. (Score:2)
Support for Java is still growing. While it may be entertaining to spout crap like this, it's really not useful or constructive.
Once again,
Re:Java is usable in the servlet arena, but... (Score:1)
cache where Java bytecodes are stored as native code for sake of speed.
Check out BEA Systems WebLogic server... it's a J2EE implementation with EJB, Servlets, JSP, etc... BEA are THE transaction people, and their servers are VERY scalable. After all, it's not really the speed / processor that counts (although Java performance is now approaching that of natively compiled C++) but the SCALABILITY of the system that matters, and Java makes it much easier to build scalable systems.
It is strange! Here's my best guess. (Score:1)
Here are my guesses as to what makes Java so much slower:
First off, there's quite a bit more overhead- we all knew that.
Second, the compilers have a bit tougher task, and they aren't as mature.
Third, Java is interpreted. You compile it, but just as with say... Perl, you need an interpreter.
Now the fourth reason I've thought of took a bit more digging. I've found that the performance of Java gets much closer to that of a lower level language when its apps are run on a system with a huge cache. Why? I'd bet that with everything done in OO, the inheritance is thrashing the ever living hell out of the cache. For every "generation" of inheritance, that's one more jump to an arbitrarily far spot in memory. That's actually the same problem that has kept game developers from using C++ for playstation games. C++ doesn't have nearly the problem that Java has with this, but the PSX only has a 4k cache! Perhaps as our computers become an order of magnitude more capable, this problem will abate somewhat.
As for lines of code being a poor measure of development speed, I agree. However, in my own personal experience (working on a BIG web based system for an ISP's billing software) most things can be developed more quickly with Perl. It seemed pretty cryptic for a while, but I don't think that it's that much less readable once you're familiar with the common idioms for whatever task is being done (it seems they're always similar). I guess the main difficulty with Perl might be that you can choose to make unmaintainable code, ie don't #use strict, etc... Right now Apache/Mod Perl/CGI/Oracle seems to be working pretty well, but who knows? Java servlets are certainly much more appealing than Perl would be were it not for Mod Perl. But I think it'll be a long time before C/C++ is no longer rules the realms of gaming, and operating systems.
Re:I've had great luck with WORA with servlets (Score:2)
Sun has only just released the plugin for Solaris, they originally developed it for and *on* NT. Blackdown had stated that they would release a plugin for Linux once they had a full release of 1.2.2, but that's now in a state of flux due to Sun's poor handling of the situation.
Re:Uh, like no or something (Score:2)
Eh? While I would agree that Java makes threads really simple, I wouldn't say that threads are necessarily that hard to deal with in C, at least not POSIX threads. Now if you are talking Win32, then you are right, those are a bear. The real hassle with C is that you have to code threaded code totally differently on *nix and Win32, while in Java you can just move byte code for a threaded app between those two without even recompiling and it will work (at least I have been able to do that).
and tedious for networking.
If you write directly to the Berkeley Sockets interface, that may be true, however just about everyone I know quickly develops (or buys/borrows) their own set of libraries and/or C++ wrapper classes which greatly simplify network programming. Again, the hassle is usually if you want to write a portable networking app, Win32 has unfortunately greatly diverged from the standard sockets interface, so you are back to lots of ugly ifdefs or some other way to handle the differences while with Java you can usually just move the byte code across and it will work.
Re:These benchmarks disagree... I disagre... (Score:1)
Re:WebMacro, Java servlets, and other comments (Score:1)
String author = programProperties.get("author");
StringBuffer output = new StringBuffer();
output.append("<HTML>");
output.append("<HEAD><TITLE>"+author+"'s Web Page</TITLE>");
.....
Ideally, I'd love to be able to do the output with Perl, and Java for all the backend database and business logic, but how would you communicate effectively between the Perl and Java? I don't want to use only primitive data types with Java....
Maybe you know a way to do this, and I'd love for you to tell me.....
Re:A matter of speed(naive question)? (Score:2)
Personally, I prefer something that's easy to develop and stable over trying to squeeze out every last clock cycle. Again, it depends on your application. I can crank out powerful, stable Java applets on the server side in a short amount of time (including testing), but I'd certainly avoid using Java for a GUI.
--
Re:It is strange! Here's my best guess. (Score:1)
The caching problem you describe is a fair point. However a virtual function call generally replaces an ordinary conditional jump and so a smart enough compiler could arrange for the code to be arranged properly to help with the cache problem. It just a quality of implementation issue. I guess compilers don't do this because it's too hard so it's a real valid point.
I suspect that the java virtual machine takes enough of the cache memory up itself to make any measurements on the java code meaningless.
I agree with your opinion about games and operating systems. Games will always be looking for top speed and java isn't sufficiently "better" than c or c++ to make it worth the slowdown in run time performance. I'm guessing that some games, I'm thinking of things like civilization where speed is important but not critical could be written in java without the performance being too much of an issue. I can't see any particular reason why you'd want to do so though.
I'm finding that I use java quite a lot for quick test programs now. It's quicker to write and build java code than c++ code but it's sufficiently similar to c++ that the ideas can be reused when it's time to write 'real' code.
Re:A matter of speed(naive question)? (Score:1)
--
Swing widgets (Score:1)
Further, I resent the rest of the Java language. Slow like Basic and as complex as C++, it combines every reason not to use it.
Nonetheless, there should be a way to save the Swing set out of the Java cesspool. Does anybody know of a way to use the Swing widgets with python?
Re:DOES it bother anyone that JAVA doesn't work? (Score:1)
Re:Java is a tool. Use as such. (Score:1)
Um, all you need is something that listens on a port, parses arguments and invokes the right method in the right class.
For instance, if you have JBuilder Pro or Enterprise and use the "New Servlet" wizard, it will generate a mini-server for you, called ServletRunner or somesuch.
Yeah, yeah, making money is evil... (Score:2)
Yes, Andover acquired Slashdot, but where have you seen them barring links exiting the site? THAT'S WHAT THE WHOLE FREAKING SITE **IS**. Have the story links gone away? Have the Slashboxes gone away?
Besides, what does Andover care whether you use the Slash system or not? As for Slash being closed-source, I think that's a it unfair. CmdrTaco is lazy:
Someday I'll post a new version, but honestly its a lower priority to me than it ought to be.
I'm to busy ironing out kinks and adding features to take a couple days and create a distributable tar ball. It'll happen, but
not tomorrow. I'm already working pretty much every waking second of the day.
But SlashDot is neither completely closed source nor open source. ANd I think that's because it's tough running a site like this and running a collaborative open source project all at once.
I'm just sick and tired of people slamming companies who make money.
Hot Java Browser (Score:2)
Well, there is HotJava, a web browser developed by Sun completely in Java (1.1). Get it here [sun.com].
However, I never got it to run as non-admin under NT (but I don't really care
Re:Swing widgets (Score:2)
Yeah, use JPython
If you want to use them with scheme, use Kawa (www.gnu.org/software/kawa)
If you want yo use them with tcl, use Jacl (I dont remember the url).
:b
I'm still waiting for JPerl, or sumthing like that
Hot Java Browser -- On Solaris (Score:2)
Always worked pretty well for me under Solaris. I especially liked the little colored "threads" that showed the multiple connections: if a data connection was still open, I would wait, but once enough of the page was loaded that all the remaining connections were the "image" color, then I could safely click "Stop". No bigass images sucking down my bandwidth, and I know that all the HTML/Java/Javascript/etc has arrived.
I gave it up because it can't do forms and pop-up boxes worth CRAP -- even when communicating with Sun's own site to download security reports! As a Sun sysadmin, I
Java B&D vs. Python (Score:1)
My gripe about Java is that the language is *awkward*. It has all the B&D of C++. For a *really* large project this might be of use, but for my money I'll take consensus over language limitations every time.
Python strikes me as the current best of breed for general purpose programming languages. It has the necessary features for writing both large and small apps in a *very* unobtrusive package. The language just plain gets the hell out of your way and lets you get on with solving the problem.
It also seems to be near the top for WORA. I've written apps that run unchanged on Linux, Win95/98/NT, Solaris and AIX.
The only issue is WORA GUI, and I don't think that problem has been solved for *any* language yet. Tk comes close, though, and Python's interface to Tk rocks.
If Java would just get the hell out of my way it wouldn't be so bad.
--
If your map and the terrain differ,
trust the terrain.
Funny, I would have said the opposite. (Score:2)
Pick the right tool for the right job.
I agree completely! I beat my co-developers over the head with this saying all the time. But...
If you develop a web browser, you would probably be insane if you did it in Java (I would love to be proved wrong) because it would be so much slower. If you develop a complex server side application in C/C++ or Perl, you're nuts because there's NO WAY you will achieve the same quality in the amount of time you can achieve it in Java.
This is kind of funny...
My approach is to use, say, C++ as the server-side language, because of the richer feature space and the quality of code. I use Java as the client-side GUI because it's trivial to build GUIs in Java, and because the code speed is not as important -- most of the time the human is still the slowest thing in the loop.
I should add, however, that I don't use Java to write web applets (it's not that I use other languages for that, it's that I don't write web applets at all). I use Java to generate a complete GUI application, and then use an ahead-of-time compiler to create optimized binaries for the platforms that I know are going to use it. (See, for example, Per Bothner's paper on treating Java as just another language.)
This just goes to show how programmers can have exactly opposing views, and both be right. :-)
Java Horror Story (Score:1)
Ironically, I found this article [sfgate.com] today that discusses Java from a, uhm, different perspective ;)
Re:These benchmarks disagree... I disagre... (Score:1)
I'd also like to point out that in the Real World, people don't write programs that implement Markov chaining. They write programs that suck data out of databases, display data on-screen, and communicate over networks. If Java is a poor performer on this one test, it doesn't make it a poor performer on real-world applications. ByteMarks, anyone?
-jon
Re:Java == Server Side Revolution (Score:1)
~~~~~~~~~
auntfloyd
Re:WebMacro, Java servlets, and other comments (Score:1)
However I notice that the last release was May 3rd, 1999, and that it's still beta. Also, going more than 6 months between releases - particularly for such early stage software - doesn't indicate a thriving project. What's the status of current development?
Can any WebMacro users out there comment on stability/robustness/completeness etc?
Java misconceptions (Score:1)
Re:JAVA, CORBA, XML (Score:1)
btw: we tried a java client and it failed due to being too early too soon. AWT just didn't cut it and the kicker was that we were win based for the whole project. I think swing might be better but the client load times are still too long.
Re:Does write-once makes sens on the server side? (Score:2)
What it also lets you do is switch out servers with Linux servers later on if you want to - Java could be great aid to migrating more servers to Linux (or BSD).
Re:Yep, Java is great for server-side (Score:2)
Perhaps you can explain something to me then. Exactly what is it about Java that makes it more useful on the server side than, say, Perl would be? I like the Java language well enough, but I'm a bit mystified as to why it should suddenly be so hot on the server end, since its main claim to fame is object code portability.
I can see why you would prefer Java to Python (speed), and Tcl (better language).
Java Servlets increase your development time? (Score:2)
So Java Servlets are responsible for the increase in your development time?
Re:Java Servlets are great! (Score:2)
I'll (once again) relay one of the major problems with Sun's recent (i.e., since late 1998) Java path: client-side portability.
When Sun announces in a press barrage in 1998 how they are dedicated to bringing Java WORA to all the major platforms, with an emphasis on Linux, repeating this emphasis every 4-6 months, but keeping platforms incompatible and releases out of sync it introduces measurable delays in design, development, testing, and deployment of Java-based client-side products.
Abandonment of Java as a platform, even for very competent developers, designers, QA, and administrators (don't forget that part of the cost of developing large projects is the cost of setting up development/QA platforms), is non-trivial and results in lost time.
Server-side Java's time may be here, but realistically, there have been and continue to be better server-side solutions. Once you remove the client interface it becomes simple to find useful implementation languages -- the majority of which are faster wrt to both runtime and development time than Java.
I KNEW IT! (Score:2)
Now, two days later, I'm looking for something entirely different and my search leads me to a glossary page. That wasn't what I was looking for so I hit back, but for an instant just before the page was erased, I scrolled down and saw it in the corner of my eye:
WDDX [wddx.org]
--