IBM VisualAge for Java for Linux 109
Locutus writes "IBM is said to announce at JavaOne that they are working on VisualAge for Java on Linux and are looking at a 4th quarter release date. This is a really amaizing development IDE for Java (editor could use some work though). Now if BlackDown can just get the JIT crank'n faster we will be styling. Here is the news article:
VisualAge for Java on Linux "
Visual Age Blows (Score:1)
And lets not forget about memory. The IDE alone sucks up 60megs of RAM.
Ignore Visual Age and stick with Symantec or use a text editor.
PDG--"I don't like the Prozac, the Prozac likes me"
If its a full port, I can't wait... (Score:3)
The best part of the VAJava IDE is the High Performance Toolkit. This allows Java classes to be compiled into native code libraries that, like classes, are dynanmicly loaded. The performance is far beyond that of any JIT compilier and you don't have to lose the flexibility of java classes. There are some major complaints with the software (mostly lack of virtual machine control and release-to-release binary compatability) but its very promising. Personal experience places a JIT compiler at around 1/3 the speed of C in many applications (Networking, file seeking, data crunching, etc) The High Performance code runs around 1/2 the speed of C. This would be very helpful since I use Java on very CPU intensive personal projects. Hopefully they can work out the kinks if it is incorporated into VAJava for Linux
Re:Linux vs. NT Performance Comparisons? (Score:1)
for java/os speed you should check this out..
http://www.volano.com/report.html
Want Java apps? Check out... (Score:1)
Also check out the open source Java web ring [tripod.com] for, well, open source Java apps.
IDE's with built-in editors suck (Score:1)
And I agree that these things should really be written in Java. Do the C/C++ programmers writing these IDE's know what a Java developer wants in their environment. A lot of the needs are the same, but some are quite different. KLGroup's JProbe Memory debugger is an example of a tool that makes sens for Java, but not something like C or C++. (It lets you find out what objects aren't being collected because they've still got references. C/C++ memory leak tools are quite different.)
Re:Just Imagine the following scenario (Score:1)
Yeah, Smalltalk with a good IDE is pretty cool for some things. If someone happens to be debating between Smalltalk and Java, consider:
Still, I look forward to the day when CORBA lets us all use our favorite languages and tools for everything.
But they are! (Score:1)
Re:Why aren't these things written in java? (Score:1)
--
Great! (Score:1)
Now if Stardock would only port Entrepreneur to Linux, I could probably reformat my HPFS partition as ext2...
some applications for you... (Score:1)
1) Moneydance - personal finance program
Runs on Linux, FreeBSD, Solaris, Irix, AIX,
NT, win95/98, MacOS, HP-UX, OS/2, and others
http://seanreilly.com/java/moneydance/
2) JaWaveEdit - very nice audio program
http://www.bome.com/JaWavedit/
There are many others, you just gotta know where
to look. Sure, they may not be the fastest programs in the world (although in my experience they run just as fast as native apps on OS/2)
but since most user-level applications are sitting
waiting for input about 95% of the time, speed is
not much of an issue.
Re:Quick Story (Score:1)
You probably had WAY too little RAM. VAJ eats almost all the RAM it can get. It's big and bloated, but once you have enough RAM, the featureset is great
Re:Uhhhh (Score:1)
To address some of your points:
The repository was a pain. Every time another developer adds or changes a class or package, you have to update your workspace for every one of those classes. Also, the administrator is the only one that can permanently delete a class/package from the repository. Plus, if VAJava isn't shut down properly, the local repository has to be rebuilt upon restart.
If I'd had a choice, I would have refused to work with it. And for a period of time, I used vim and the command line for development and found it to be a much more pleasant experience. Then 2.0 arrived, about 6-7 months into the project, and we were forced to use it, primarily for the as/400 jdbc drivers and the repository/version control.
The help system is not builtin. It requires you fire up your browser, hogging more resources, besides the fact that it sets up it's on web server to use the help system. And it wasn't much help. It's not very intuitive, nor easy to find what you're looking for, if it's even there. On more than one occasion, I could not find the information I needed in the help files.
As for features and flexibility, that's a laugh. The only features worth mentioning are the gui design tool and the debugger. However, while the gui design tool isn't too bad, it produces horribly bloated code. And flexibile it is not. You're stuck with the editor, and can't customize it beyond the colors. Oooooh. And what about switching JDKs? Fat chance. AFAIK, there is NO 1.2 support, let alone 1.1.8, which came out later.
I can't speak about Symnatec, but I've heard fairly good reviews of it from others who have used it.
Thank You! (Score:1)
Re:Give me vi & JDK first: WAS -Re:sweet! (Score:1)
Bring on the IDEs (Score:1)
Am I right in thinking that Inprise/Borland are also porting JBuilder? It's basically the Delphi IDE but designed for Java instead.
I would love it if Inprise/Borland would write a VCL like library for Linux and then port Delphi.
Another question: is there an IDE or resource editor for the likes of GTK or similar. I use the MSC++ resource editor every day at work. I think it would make a great addition to the Linux world.
VisualAge is the best. Period. (Score:1)
I just hope they release PPC binaries. (sigh)
I like the Smalltalk IDE metaphor. It's too bad so few other IDE's have adopted it.
Re:Linux vs. NT Performance Comparisons? (Score:2)
What are you smoking?
zeus
boa
gn
wn
roxen
aolserver
to name a few, not to mention using squid in conjunction with apache, which is a big win for static content. not to mention they compared CGI with ISAPI, not, say, mod_perl or mod_jserv, etc.
Re:Windows JITs are the best (Score:1)
Windows JITs are the best
The truth of the matter is Java under OS/2 is the fastest of them all. Java under Linux works, but isnt much to write home about
Re:The GNU people HAVE a "Super IDE". (Score:1)
Re:Best language I've never used. (Score:1)
I use Java Servlets and JSP for all my server side development. My servlets run anywhere, connection to databases is easier with JDBC than it is with DBI in Perl. Java is faster than Perl on the server, especially whenit comes to threading.
While there may not be many useful Java applications, Java is really nice on the server.
Perl is very portable also, but Perl still doesn't port as easy as Java. There are always subtle differences (especially if you go between Unix and NT), but mainly having to deal with native perl extensions like DBI.
I mainly use perl now to prototype, or to generate batch files or munge Java code. Now ofcourse, statements like these might piss some perl programmers off (I believe I have a right to say them, given I've been a perl addict since 1992)
What I'm really tired of seeing is Slashdot users say on the onehand "GUIs suck, command lines rule", and then on the other hand, tying to bash Java for not having a word processor written in Java.
The tools are cool - its Java that needs work (Score:1)
I'm sorry folks, but I have to say that after building apps in Java since the v0.9xxx days, the dream is over. Java is a failure.
Let's start with the only reason Java was invented - to kill Microsoft. That didn't happen - Microsoft co-opted it and "extended" it. I use the quotes to indicate that they killed it. I have to hand it to Microsoft, they did an ace job butchering the platform...although it didn't take much work - Java demonstrates that VMs are still a dumb idea in 1999.
Let's talk about the companies involved:
Sun has dug its own grave by refusing to open Java up. Even veteren Sun-lovers decry the closed path Sun has pursued.
HP has fractured Java and decided to go its own way with Chai. Its only a matte of time before they are incompatble even at the most simple level.
IBM has played the hero, but they'll soon give it up when they realize they don't need Java to fight Microsoft anymore.
Red Hat, et al: Linux and open source software are the new silver bullets against Microsoft. Mindshare and good press follow it everywhere, which is more than you can say for Java.
O'Reilly and Associates: the only company to show a profit for products associated with Java, which is a testament to the hype machine Sun built.
As for the technology....
Slow. Buggy. Ugly. These are but some of the words experienced Java developers (me included) have to say about it. And forget about applets. They're a great way to kill a great web site.
As for the server side, for the love of pete, just use C or C++. At a stretch use perl. All of these languages are more mature and are better supported in my opnion. perl is easier to code, and C is faster and will be faster for the forseeable future.
But all of this is irrelevant now that NOISE (Netscape, Oracle, IBM, Sun, Everyone but Microsoft) have better ways to fight Microsoft, like linux or the Supreme Court.
Troll. (Score:2)
D106ene5 just went trolling.
No, Java was not invented "to kill Microsoft". Actually the original intent was as a language for embedded but downloadable apps, such as in set-top boxes, cell phones, etc. These can have all sorts of different processors, so portability is an issue. Yes, open source makes portable executables less of an issue in the desktop/server environment, but no settop box user is going to recompile the latest rev to the software that just downloaded from the cable or satellite link.
IBM doesn't use Java "to fight Microsoft". THey use it because they have a half dozen different architectures to support (PCs, RS/6000, AS/400, System/390, etc.) and because it's a damn good development language in its own right.
> "Building apps in Java since the v0.9xxx days".
Okay, so you can type "javac" or "make". That's a little different from actually designing and coding software.
Creating objects (Score:2)
How Sun got their heap allocator to be as fast as C++'s stack allocator is pretty simple, more or less. (read their white papers and data sheets for more). Basically, you have a big 'stack' just for objects, and when you get to the end, you go back to the start, and for all the old (dead) objects there (often most of them) you just clear them out, and if an object is still live then you move it to a different block, where objects are expected to last longer, and has a more complicated algorithm to keep things tidy. Of course, if you're allocating huge numbers of objects that last a long long time, then Sun's method will slow down... though any method would (but if you know you're going to do this, you could make the heap bigger)
PS Your code example is just dead code, so a C compiler would just drop that code. HotSpot will also do this optimisation.
Re:Best language I've never used. (Score:1)
Wow, I hope you broke it up into a lot of classes. Overly large classes are a bitch to mantain.
Give me vi & JDK first: WAS -Re:sweet! (Score:1)
on the plus side: VAJ has a kick ass debugger but I'd throw the rest of it out.
Re:The tools are cool - its Java that needs work (Score:1)
Slow. Buggy. Ugly. You must be playing devil's advocate, because you are the only person I have ever heard make such statements about Java
This is the first time you've heard someone critique Java's speed? You can't be serious.
IBM is only one of many players in the Java world. They rightly recognized that providing easy front-end access to their big iron was the best way to maintain and possibly grow the sales of mainframes and large AIX systems.
Don't you remember SNA? IBM has been down this road before - with predictable results.
Sun has not refused to open up Java.
I think some people at ISO would disagree with this statement.
is it really a dog? (Score:1)
VisualAge comes up with an hour-glass more than those tools, but not for more than a second or two, typically. An extra second or two isn't going to kill me since I work so much faster in VA (and Codewarrior for that matter).
Some URLs for the above (Score:3)
HotSpot Performance Engine:
http://java.sun.com/products/hotspot/
Developer Connection:
http://developer.java.sun.com/developer/index.h
(you'll have to sign up)
Re:IBM ... give up? not. (Score:1)
IBM is famous for "committing" to technologies and then dropping them the moment they no longer suit the IBM crusade.
Exameples?
OpenDOC
Taligent
Kalieda
Microchannel
OS/2
and many more lie in the IBM graveyard of "almost" technologies that were once trumpeted as the next big thing.
Re:Best language I've never used. (Score:1)
There is one Program writtn in java for for the win platform: www.netzero.com and it's buggy as hell. They say they are going to release the Mac version in 6 months. What kind of cross-platform is this? Someone has insightful info?
OS/2 Java VM still the best (Score:1)
The OS/2 Java VM is still the best. Not even
Hotspot is a match.
http://www.volano.com/report.html
Re:The tools are cool - its Java that needs work (Score:1)
I don't know that Microsoft really had to do very much to kill Java... it seems to me that one of Java's primary goals was to realise the "write once, run anywhere" dream. Since that never really worked the way it was supposed to, Java had/has a credibility problem.
It's a real shame - Java as a language has some way nice features. But until that primary goal of "write once, run anywhere" is realised, Java _on the client-side_ seems likely to remain limited mainly to applets...
Cheers
Alastair
Re:The tools are cool - its Java that needs work (Score:1)
some people at ECMA wouldn't
Re:Linux vs. NT Performance Comparisons? (Score:1)
As far as the performance comparisons, well, Linux is still young, and has lots of room to imporve, there is no point to go head to head to NT at this point...
Folks, time will come, and the world will know...
This is a good thing. (Score:4)
Despite some people's opinions, Java is far from dead. Now that the hype has died down, businesses are switching to it for use as a primary enterprise development language. Applets aren't really even that important. We are using it more for Servelets and full fledged applications.
Contrary to what some people also say, write once, run anywhere is not that difficult. I've written Java apps that run fine on Solaris, NT and Linux.
Also in my experience Java performance is not that bad, especially when you consider that most uses of it are for things that would have otherwise been done in either (ick) Visual Basic or PowerBuilder (both of which are as slow or slower than Java for most things and neither offers anywhere near the cross-platform capability of Java). Sure, its no competitor in speed to C or C++, but how hard is it to write a complex (something that is over 50,000 lines of code, uses multithreading, a GUI, etc) C or C++ program that is multiplatform? I know from experience it isn't easy, it can be done, but it isn't easy and it isn't usually pretty. Multiple *nix variants and Linux are no problem, but it is no fun to make something run on standard platforms and also on Windows due to poor standards adherence in most Windows C/C++ compilers. Porting stuff to the Mac isn't much better because while the basics of the compilers there seems reasonably robust, their standard library implementations seem quite weak and the Toolbox works quite differently from Win32 SDK or the POSIX API.
All that being said, I wouldn't advocate Java for everything. I like and use C, C++ and Perl for lots of things also, but people who want to poo-pooh Java just because it isn't the latest thing just seem to me like they are deluded. I've seem to many things dismissed for dead too quickly while they slowly build acceptance for me to believe it that easily.
Face off time. (Score:1)
Borland announced JBuilder 3 for Linux a while ago. Now IBM is in the game.
As far as I know, ALL of the RAD tools seem bloated and clunky. That's because they are all written in Java to some extent. In order for a bean to look correct at design time, the IDE would have to be actually running the bean's code.
Now if we could only get compilers to generate native machine code from Java, then we'd have a good step towards a good tool for X development. Doesn't something like this already exist? What platforms?
Linux vs. NT Performance Comparisons? (Score:2)
Re:OS/2 Java VM still the best (Score:1)
Visual Age? Aieee! No No No No!!! (Score:3)
If IBM's Visual Age for Java is anything at all like IBM's Visual Age for Smalltalk, you don't want it anywhere near your computer! VAST is far and away the worst commercial program I've ever had the profound displeasure not to be able to avoid installing; it is worse than Microsoft Windows.
Unless IBM can demonstrate to me that VAJava is going to be developed by a completely different group of people than the ones who inflicted VAST upon the world, I'm going to do everything in my power to stop this abomination from dirtying Linux's good name.
Re:Windows JITs are the best (Score:1)
IBM's JVM on OS/2 is _the_ fastest hands down, it even beats out Sun's HotSpot, which is impressive in its own right.
Seeing as IBM has already done its own JVM for Windows now, I wouldn't be surprised to see a Linux JVM from IBM sometime...
Re:The tools are cool - its Java that needs work (Score:1)
Why aren't these things written in java? (Score:2)
for java, in java.
There would be no reason whatsoever to have to
wait for Visual Age "for linux" or for there to
be JBuilder "for Win32".
What was that main thing that made java so great
again?
Quick Story (Score:2)
We were incredulous at the how slow the IDE was. We were running on P-II 333's, completely state of the art at the time, and it was taking significant time just to open some dialog boxes! I'm used to NT being slow on some things, but this was just ridiculous.
I don't know if this is still the case, but we eventually found out the IDE was written...not in C...not in C++...not even in Java...the thing was written in...wait for it...Smalltalk!
Object oriented is cool for some things, but it's certainly something that can be taken too far!
-Justin
BTW, I feel like I should mention that IBM was a really cool sponsor of the event. They certainly didn't skimp on anything!
Re:Linux vs. NT Performance Comparisons? (Score:3)
But I do know that it would be stupidity for the NT peole to claim a victory over Linux because they have a great JIT that has not (yet) been ported to Linux. It reminds me of the Mindcraft retardation: use the same damn web server on both Linux and NT if you want to compare the OS's. Otherwise your comparing webservers, not Linux and NT. Any idiot can tell you that IE4 will beat Apache. It seems many idiots, however, construe this as a success on the part of NT (the OS).
Don't fall into the same trap on this issue...
Re:The tools are cool - its Java that needs work (Score:1)
Re:Bring on the IDEs (Score:1)
If you like VCL, I'd suggest VDK [guest.net], a C++ wrapper around Gtk which is similar to VCL/OWL. It also has an IDE, VDKBuilder [guest.net], which is designed to feel like C++Builder from Borland. As for a good IDE/GUI builder for pure Gtk, I'd recommend a combo of gIDE and glade -- glade is really impressive, it supporsts multiple Gtk language bindings and can even generate XML widget layout files which can then be loaded dynamically, at runtime.
Re:Just Imagine the following scenario (Score:1)
The company, ObjectShare, is really supporting Linux. They have been going to the shows and their non-commercial IDE was shipped on the RedHat 6.0 application CD.
To get the product go to:
http://www.objectshare.com
VisualWorks is binary portable accross at least 11 different OS.
If you want to develop in objects, Smalltalk is 100% pure, EVERYTHING is a object and can be treated as such.
Sorry if this sounds like an ad, but VisualWorks for Linux is amazing.
Sun's High-performance JIT (Score:3)
As well, there's a release candidate for the rewritten java compiler which simply kicks butt. It's orders of magnitude faster.
Get HotSpot from java.sun.com (link is on the front page) and join the Developers section (free) to get javac-ea (Early-Access compiler). It's worth the downloads...
legacy code, existing user base (Score:2)
I tried JBuilder, VisualAge, Symantec Cafe, and Visual J++ and thought all of them were pretty awful, about as awful as the C++ and/or Smalltalk IDEs they were derived from. But, then, I'm sticking with the IDE I have been using for many years: Emacs, and it happens to be written in C and Lisp.
Pure Java IDEs are beginning to appear, however, and I think you are going to see more and more people moving in that direction over the next few years.
Re:Thank You! (Score:1)
So who's using them?
Re:If its a full port, I can't wait... (Score:1)
It sounds like you should be using Java on OS/2. According to the Volano [volano.com] benchmark, the OS/2 JVM was beaten only by the TowerJ compiler on Linux.
Re:Quick Story (Score:1)
Re:'open' HotSpot (Score:1)
some people reckon the object allocation (on the 'heap') is as fast as C++'s on the stack! (in C++, allocating to the stack is much faster than the heap)
Stack allocation in C++ is faster than you might imagine. Take the following code snippet:
main()
{
int a;
int b = 3;
a = b;
}
Allocating the variables a and b involves only changing the stack pointer. Probably something like this:
add sp, 8
That's ALL! Now if Hotspot can achieve, through sophisticated algorithms, speed that rivals such simple allocation, I think Sun deserves some CREDIT!!
Re:Why aren't these things written in java? (Score:1)
The answer is simple -- performance. While attempting to migrate from Windows to Linux I searched for a good cross-platform IDE. I must have tried at least ten Java IDE/text editors and none lived up to the performance and functionality of there native counter parts. Java is a fabulous language but it is not a silver bullet. Productivity can not be sacrificed for convenience.
IBM ... give up? not. (Score:2)
IBM has the most to benefit from Java. They need a new language to replace the "old" stalwart business language: COBOL. Smalltalk was destined to do this - it didn't quite work out that way. Java is a scaled down attempt at achieving the same thing: bringing modern programming practicies into the enterprise.
Have you taken a look at IBM's new VM for Win32? It runs faster than most Java native compilers do. And it's 85% cross platform - meaning you'll see this on Solaris, Linux, etc. some day.
Re:Sun's High-performance JIT (Score:1)
If you want really nice performance under most platforms, take a look at the HotSpot JIT compiler
Actually, HotSpot has only been released for Windows and there is a release candidate for Solaris SPARC. Though no one has seen the source it is supposedly quite portable. So, it remains to be seen if HotSpot will be available on "most platforms".
As for Linux, from what I've heard on the Blackdown mailing list Sun has yet to say anything about licensing the source to them so that there could be a port to Linux. And there is a very slime chance that Sun would do the port themselves.
Re:Visual Age? Aieee! No No No No!!! (Score:1)
VAJ 2.0 Entry Edition for Windows and OS/2 are free for the download. It is completely functional and good for developing smaller projects.
As to VA Smalltalk, I'll have to disagree. I got a CDROM from IBM and installed it clean and simple on my PC. Period. I rather liked it, so I'm not sure which version you had in your hands.
Uhhhh (Score:1)
What planet were you born on?
Most people I know that use VisualAge refuse to work with ANYTHING else unless deemed necessary by project requirements. [this includes myself - I need J++ to do some WFC GUI stuff, but VisualAge for the back end business objects]
I suggest you really look into what your problems with the tool are before slitting your through. The help does not suck (that I've found). The tool offers more features and flexibility than ANY other IDE I've encountered. And it has never crashed (it's not buggy). [I'm talking about VAJ 2.0 here - not 1.0]
Symantec is *not* a good ide.
Re:Linux vs. NT Performance Comparisons? (Score:2)
www.volano.com/report.html [volano.com]
learning curve (Score:2)
It's not usable by the average joe because this is not an average joe's IDE. It is an IDE by professionals FOR professionals.
This is not meant to sound as elitism. You don't have to be a rocket scientist to figure this IDE out - it really IS simple - simpler than Visual C++ or J++, in my experience.
It took me maybe 3-4 days to figure out pretty much everything about how VisualAge operated and WHY the traditional Smalltalk IDE metaphor of repository + incremental compile + packages/classes/methods layout *IS* so effective.
Re:The tools are cool - its Java that needs work (Score:4)
You comments are so wrong that I wonder if you really have been doing serious development. The only "slow" aspect of modern Java VMs is Swing/Java2D.
Are you even aware of how much Web development is done in Java or other VM based languages and NOT in C/C++?
Let's put it this way. My company has an server-side Java product that handles 10x the number of concurrent users than the nearest C++ competitor on the same hardware simply because of superior multithreaded design. Even the *JAVA WEB SERVER* can handle more concurrent connections than Apache, which poops out at around 120+ concurrent connections.
Second of all, Java is far from dead. Sheesh, almost all new development except in a few specialized areas is being done in Java.
Especially, most server-side code. Every new W3C standard is prototyped in Java first. John Carmack has written all his new Quake3 support tools in Java, etc. No one is going to seriously challenge traditional C/C++ office applications, because the market isn't worth it. Only in new areas of development do you see new languages being used.
Eiffel blows away C++ too, but no one has written a killer app in it. That doesn't mean there's someting wrong with it.
I don't know how many times I have to keep explaining this to the macho C morons, but scalability has *nothing* to do with raw CPU execution speed (which JITs handle quit well). Transforming polygons yes, rendering database results, no. Raw CPU is the lowest determiner of scalability. The CPU spends the vast majority of its time waiting on memory, bus, network and disk i/o.
If you want to be scalable, consume as little state and disk as possible.
C++ falls flat on its face for server-side programming. It takes 10x as long to do the same thing in Java/JSP, and you still end up having to track down null pointers and memory leaks. That's why eBay and Onsale have more downtime than scripting oriented sites, because scripting languages are VM based and handle automatic memory reclaimation and shield the programmer for GPFs. eBay died because of a C++ memory leak.
Perl is great for text processing (I've been programming perl for 5 years), but its lack of static type checking makes it poor for team based
projects. If you're the only coder, fine.
Perl is also slower than Java.
The fact of the matter is, for the forseeable future, server-side languages are going to be high level 4GLs and VM based languages, NOT C++.
C/C++ are a resource drain on any IT department. Why the fuck does an intranet app to process forms have to be coded in a bug-happy language like C++, when a VB, Tcl, Perl, Python, or Java programmer can do it quicker, with less resources.
C++ is an IT resource drain for most companies. Money down the hole on programmers who spend extra time on bug tracking bullshit.
Which is why 99.9% of all CGIs are written in ASP, Cold Fusion, Perl
You might claim VM's are a dumb idea, but the fact of the matter is, most of the code being written in the world is being written for VMs.
The number of lines of VB code alone would dwarf C++.
Did you ever think that maybe your application was slow because you don't know how to code in Java? jEdit is an emacs clone in Java that is lightning quick on my P166. However, there are plenty of similar Java editors that are dog slow.
Java doesn't automatically make an inefficient programmer more efficient.
Re:Best language I've never used. (Score:1)
I'd be curious to hear what shortcomings you find that prevents Java from being "Useful". I wouldn't be surprised to hear some, but I've been using Java for a couple years now, and other than the seemingly long time it takes for an API to go from specification to being on the average person's system, I have few real complaints.
JDBC, while not perfect, is certainly the easiest database programming I've done. Last week I helped somebody with a quick program to dump an Oracle database on Solaris out to an AS/400 database....not something I'd want to do using vendor-specific APIs.
Currently I'm in the middle of a rather large servlet (currently on the order of 10,000 LOC). While I'm sure it could have been done just as well in Perl, I don't think it would be nearly as maintainable or flexible....which is important since the requirements for the project often change a couple times per week.
I've also done a fair amount of GUI programming in Java. (The largest project has about 12,000 lines of GUI code, and 10,000 lines of DB and processing code to give the GUI something to display.) Swing certainly provides the easiest and most flexible GUI programming I've done. Unfortunately, it's still got a fair number of bugs and runs rather slowly, but that's been improving over the past few months, and should continue.
Having said all that, I should mention that I certainly don't believe that Java is the solution to all the world's problems. I still use Perl for a lot of utility programs. Since my job is Java, I don't do much with C/C++ these days, but they certainly have their place to. (Although perhaps I should start an effort to rewrite the Linux kernel in Java.) :)
On a more relevant note, Visual Age is pretty good IDE. I've been using it for development of that servlet. It would be nice if vi could be embedded as the editor, but nothing's perfect. My biggest complaint is that it requires so much RAM to run. But it is one of the few IDEs I've used that really seems to offer more than I already get with a text editor and command-line compiler.
'open' HotSpot (Score:2)
1) if you're going to use HotSpot, read all the docs. It's quite easy to write a simple 'benchmark' that goes really slow on HotSpot. (then change about 2-3 lines and it goes 20x faster)
2) Performance really does vary a lot. Best are predominantly Java server-apps - typical speed-up is 2-4 fold.
3) Client/graphics don't change up because most of the time running for them is in the binaries, not Java byte-code. According to Java's creator, the graphics guys are spending all their time making the code faster and leaner the moment...
4) JavaWorld HotSpot article [javaworld.com] - checkout the VolanoMark scalability on Solaris - WOAH! (half way down)
5) Apps with heavy object usage really do benifit. I've seen one example with a compiler with a C++ and Java version. The Java version with HotSpot was 50% faster than the C++!
6) Garbage collection and memory allocation is amazing - hardly notice garbage collection any more, and some people reckon the object allocation (on the 'heap') is as fast as C++'s on the stack! (in C++, allocating to the stack is much faster than the heap)
7) The HotSpot code was designed to be highly portable
8) HotSpot is free to use.
9) HotSpot will come out under Sun's "Community Source liscence" in about 6 months. (enough time to patent everything?)
Well actually, JBuilder was announced first (Score:1)
take a look at the api (Score:1)
Re:The tools are cool - its Java that needs work (Score:1)
I spent some time with Sun's 1.1.6 under NT and it did suck for performance. IBM VAJava 1.0 was even worse, though 1.1 fixed most of the problems. When I started using Borland's IDE, I found that the VM makes a huge difference in performance -- non-GUI code I'd been writing that took over 20 minutes to run under IBM and Sun ran in less than 3 minutes under Borland. We've also tested HotSpot, and found that it boosts performance even more.
The biggest problem under Linux is that compared to these tuned VM/JIT environments for *nix and NT, Blackstone's JDK absolutely sucks for performance. Given that slashdot is largely a Linux community, I'm not surprised people have serious performance issues, as most of their Java experience is likely to be with Blackstone.
I'm not knocking Blackstone, it's just hasn't been tuned as thoroughly and doesn't have a real JIT compiler.
Code style can make a huge difference with server-type code, particularly if you are getting a lot of implicit object construction with methods that create value wrappers rather than "caching" those wrappers with private members. It costs more memory, and occasionally increases code complexity (modifiers have to clear the "cache" member so that the accessor knows to recreate it with the new value). Some simple changes in your code along these lines can improve performance by an order of magnitude, though they are not obvious necessities.
My key point on performance is still that the cost reduction in development and maintenance more than covers the costs of extra hardware to deploy the software. This doesn't help the home computing and OSS developer's that aren't being paid for their work, but it's a huge factor in which language corporations use. I don't have actual statistics, but if you can save the cost of even one maintenance developer at $45K/year (or more) with Java, that buys some pretty serious hardware improvements. When you're talking apps that require a team of 50 for C/C++/??? and only 10-20 in Java, you are really talking about an awful lot of money that can be rolled into hardware. It may be cruel, but I think we're starting to see IS departments getting hit by the same cost improvements from computers that the support and operational staff did over the last 5-10 years.
The GNU people HAVE a "Super IDE". (Score:2)
I'm not convinced that it is entirely a good thing if Windows-style IDEs come to GNU or Linux. If Linux starts looking and behaving simply like a more robust version of Windows, where are all the UNIX people supposed to go?
Re:The tools are cool - its Java that needs work (Score:2)
Sun has not refused to open up Java. What they have done is recognized that the 5-10 year cycle for most standards body is too slow to be useful, and often results in standards that no one implements, like the full version of ANSI SQL. They also attempted to submit it as a standard, only to have the rules changed half way through the process. They have done a tremendous job of refereeing feedback from different application and tool developers, and integrating the most useful concepts in the development stream. Take a look at some of the submissions from the OMG for collections (which had a lot of SQL-specific baggage), then take a look at the JDK 1.2 implementation. Modulus' InterAgent technology submissions have had their impact on messaging, and I have no doubt that the clean breadth of JDBC was enhanced by suggestions from people who are fed up with the hassles of using tools like ODBC.
HP has not fractured Java -- yet. Personally I am far more concerned by the recent rulings in the American courts in Sun vs. Microsoft than I am about HP. As much as I like HP's hardware (and HP-UX), the only place I've ever seen software developed for their systems were for telecom companies and as data-capture managers on manufacturing floors.
IBM is only one of many players in the Java world. They rightly recognized that providing easy front-end access to their big iron was the best way to maintain and possibly grow the sales of mainframes and large AIX systems. If you think they just did it for publicity, you are sadly mistaken.
Red Hat, et al are only relevant if you think Java was created for the sole purpose of "killing" Microsoft. If that's all you see in Java, it's no wonder you think it's dead.
Slow. Buggy. Ugly. You must be playing devil's advocate, because you are the only person I have ever heard make such statements about Java. I work with broad-based teams with experience in C, C++, messaging systems, transaction processing, mainframes, yada, yada, yada -- every one of them was very quick to see the benefits of Java. The closest I've heard to your views were from a Smalltalk programmer who tells me that language has had Java's functionality for several years now.
As for the server side you can use C/C++ or whaterver else. But with C/C++ you need to rely on non-portable libraries to get threading support, and I can tell you from personal experience that there are some pretty serious compatibility issues with pthreads implementations from Sun, IBM, DEC/Compaq, HP, and Linux. Win32 is a completely different code branch. The development, testing, and maintenance costs of such software compared to the issues of "performance" with Java are more than adequate to cover the cost of massive 8- and 16-way SMP boxes which more than compensate for any performance differences.
The only issues I've encountered with write-once run-anywhere Java have been with the GUI, not with the code layers application servers get written in. The sole exception to that is JDBC which can be a dog if you don't have a backend database that will let you take advantage of durable SQL statements, or if you don't have a database/driver that supports multiple connection sessions from a single client process.
You are right about Java not being used to develop "applications" if you mean desktop automation tools (word processing, spreadsheets, etc.) But if you think those are the only "real" applications, I suggest you contact some people working with large systems such as those in the telecom, manufacturing, or other industries where a "small" application only deals with a couple hundred concurrent users. Desktop PCs and workstations are just the front end to that world, they don't define it.
Re:Just Imagine the following scenario (Score:1)
"UML?"
I have a colleague working on this. He's doing
a very fine job of it, considering he's never seen
Rose. It's being developed in Java, but he has
implemented quite a few graphic widgets (since he just wasn't happy with swing, etc.) and the whole
thing looked great the last time I saw it.
Unfortunately, he doesn't have any intention of
making it open source, nor does he really want
help. His perogative I suppose... Not everybody
is swayed by the Open Source argument, nor the
cooperative development concept, and I suppose it
is not our place do judge them.
Re:Why aren't these things written in java? (Score:1)
Re:Why aren't these things written in java? (Score:1)
Re:IBM VisualAge powerful but very slow (Score:1)
As for performance...I thought the performance was acceptable on my P200 with 96Megs. Not great, but definitely acceptable. Sometimes things took a bit longer than you'd think they'd need to, but when I actually wanted to run the application...no compile time! It just runs. And when I make a change in my code, it immediately affects the running applet, etc. No quitting, recompiling, rerunning.
I have been VERY impressed with VAJ. Both usability and performance could use some help, but these problems are largely outweighed by the speed with which I can prototype and finish development of applications.
Re:IBM ... give up? not. (Score:2)
Actually, IBM is infamous for never cutting off a technology with an installed base. Why do you think OS/2 is still on the market?
IBM also made PCs with optional Microchannel slots for years after PCI came out. 10 years of support for something as unpopular as MCA is hardly "dropping" it.
Bringing up Taligent and Kalieda is not fair, because they never made it to market after years of trying.
--
Re:Why aren't these things written in java? (Score:1)
Best language I've never used. (Score:3)
I've just never seen an application for it.
Dunno if Sun helped kill it, or if the hype outshined it's ability. But as a web application developer I've found zero use for Java.
PHP3, Perl and stock html are the only way to go.
I don't mean to bash Java the language, I just really would have liked to have seen it go from being Sun's Java to a Useful Java.
Anyway, if you're into Java and have never used Visual Age I'd _highly_ recommend it.
I've used just about all the Java IDE's and VAJ was the best when it came to glueing together applications visually.
You can wire buttons to text boxes that take input from function calls on other visual elements(like a select box), all without editing code.
Very nice. Get's you into the mindset of writing independant functions and just visual pulling them together.
Only down side was that IBM took their sweet time keeping up with the Java revs.
Re:Why aren't these things written in java? (Score:1)
cvs (Score:1)
I really like CVS, but I fail to see what's mickey mouse about VisualAge's version control.
Re:The tools are cool - its Java that needs work (Score:1)
As soon as they present terms to Sun, and Sun ditches on them, they'll be singing the same tune as ISO.
Re:Linux vs. NT Performance Comparisons? (Score:1)
fast too. Roxen's on Linux. I don't know
about Xitami. FreeBSD has a Xitami port.
It's supposed to be fast. I like apache just
fine.
Remember why we all use linux folks: because
it runs on our puny little PCs and gives us
the same reach as the big boys. NT is aimed at
the big boys. They can spend $5K on it if they want. I don't.