JAVA vs. The World 14
willhelm asks:
"I have a friend--and his boss, in a stroke
of wisdom, has asked for any kind of "hard
numbers" comparing Java to VB. Java being
an interpreted language, is probably much
slower than VB. However, theory and
high-faluttin' rhertoric mean nothing to
him. So I looked around and didn't find much,
probably because there aren't a whole lot of
applications that were written in Java and
some other language. Are there any studies
on performance of Java applications vs.
other common application programming languages
like C, C++, Delphi, VB and others like
them?" Let's try and answer this one
without rabid advocacy, please!
Try Eiffel: its better than Java (Score:1)
Tell your boss to look at Eiffel instead. Its fully compiled, and can do lots of optimisations that Java cannot. In particular it has proper generics, which mean that you can put things in a list without having to conditionally cast them back from Object.
It also has design by contracting built in, so you can get all the advantages without having to use some crummy preprocessor hack, and all the libraries have it as well.
All the library classes are fully regular. There is no wierd stuff with String having operators that you can't define in standard Java.
See (for example) Eiffel Liberty Journal [elj.com]. This has links to pretty much everything else Eiffel-related on the planet.
Paul Johnson.
Java Real World Usage and Visual Basic (Score:1)
Well, for one person, nearly everything I use at work
that has been release under UNIX and WindowsNT
has (or will have in a month) Java front-ends for it.
What I mean by Java front-ends...
o HP OpenView (network management software)
This tool is available under X as well as Win32.
There was a vendor who released a package
which will add on-to the UNIX HP OpenView
Server to allow users to monitor thousands of
nodes using a web browser and Java.
The implementation from the third party was
SO CLEAN that the Java version ran just as
fast as the C++ version from HP, exept you
could run the Java version over a dial up
connection (while the C++ version requires
an ethernet to connect remote maps... or
at least a T1 line for reasonable use...)
o Remedy Action Request System
Remedy is releasing a Java client for their
Action Request tool, the world-wide
preferred help desk management framework.
This means, if you have a help desk in your
company, they use Remedy. If they use
Remedy, expect their clients to be running
in Java shortly...
When? Not sure, it is projected to go production
in 1st or 2nd quarter of this year - I am waiting
to use it in my help desk facility.
o Tax programs
I did my tax programs in Java last year...
it was an off the shelf application (bought
it at OfficeMax - I did not realize it was
a java app until I noticed the trademark...)
o Most RDBMS's are including Java as
another language to produce code which
can be resident within in the RDBMS
(Oracle is an example...)
Soooo, if you need to code rules in an
RDBMS so when a row of data is
deleted that it will delete a similar row from
another table to keep the stuff consistent,
you have the option of coding in Java
instead of learning a proprietary language.
o Oracle Developer's Kit allows you to
drag and drop build Java applications
instead of drag and drop build X and
Win32 applications...
Well, those are the things that I am involved in
at my office. We use a variety of platforms
(Sun Solaris, NCR UNIX, Linux, and NT
Servers, Sun Solaris, Linux, and NT Desktops,
NCR UNIX and Linux Web Servers, and a
Linux Firewall...) and if we could code in Java,
it is a big help.
The other two languages we use to code
apps in is Shell, Awk, and Perl... we have
a VB app (that was a PIG) that we are
porting to Perl right now, possibly Java
later on. We also have one app written in
C... which may get ported to Java...
Visual Basic is not all that fast... I would
say it is not much different than Java,
depending on WHAT you are doing in it...
Visual Basic with ODBC, for example,
is really a PIG. Don't even think about
placing MS Access or MS SQL Server
under it unless you do not care about the
speed or memory requirements of your
machine. If you have money to burn and
you do not care about upgrading your
apps and your hardware in order to
keep up your OS, I guess it really does
not matter.
Most of the web server apps
I have built have been in "awk" and they
were as fast in "ksh" and "awk" on a 486
with Oracle as they were running on a
Pentium with MS Access and VB.
I have upgraded my OS 3 times and
then moved my application to a
completely different OS/computing
platform (Intel based NCR UNIX to
SPARC Sun Solaris) and never had
to change my application AT ALL
(over a 4 year period of time.) This
is what we are expecting to get
out of the Java platform and it looks
very promising.
I hope this helps...
David J. Halko
NCR Integration Specialist
P.S. - get app info on Java from
www.jars.com
www.developer.com
www.gamelan.com
Perhaps technically better (Score:1)
And I would suspect that the products, documentation and support channels for Java are MUCH better.
Javaworld (Score:1)
Java Real World Usage and Visual Basic (Score:1)
Also, because there are so few features builtin to those languages (compared to say perl), you will probably find that the script is significantly slower in it's runtime.
Java vs. VB, Delphi, Powerbuilder (Score:1)
Both are good RAD languages, but Java is OO (Score:1)
Java, however, is object oriented. In general, I would say this gives Java a *huge* leg up. However, if your developers are not familiar with OO technologies, I would suspect this would be a disadvantage rather than an advantage. OO technologies make large-scale app design *much* easier, if and only if the OO design is done well. Java makes OO design much easier than it is in C++, but OO design still requires skill.
That said, I have found that interpreted Java (which you should never have to use) runs about 1/100th the speed of compiled native code. JIT (Just-In-Time) compilers run about 1/20th to 1/10th the speed of compiled native code. HotSpot, the dynamic optimizing JIT that Sun will soon release, is hailed as the Holy Grail for Java, in that it is *supposed* to provide something like 1/2 to 1.1 times (yes, faster) the speed of native code. In my experience with pre-release versions, it quite simply doesn't cut the mustard.
Based on my experience with Java (my company sells an SDK for doing high-level 2D & 3D graphics), the main slowdown in JIT'ed Java code is that array boundaries are still checked for every array access. I have seen tests where they turn off array bounds checking in the JVM, and the machine runs about 10x faster. However, the type of code I write & maintain do tend to have tons of array accesses in them, so your mileage may vary.
All told, I think Java is an absolutely superb language. However, the speed sucks. Furthermore, the compilers available for Java still don't support Swing and/or AWT, the GUI interfaces for Java. As such, they are really only useful for server code, not client code.
VB allows quicker development (Score:1)
VB has compilers, so does Java (Score:1)
--
Both are good RAD languages, but Java is OO (Score:1)
fixing the question (Score:1)
So I wasn't really looking for a this languag vs. that language kind of thing. I was looking to see if there were "studies" on performance between Java and other languages.
I'm looking for "studies" because Java _is_ in flux and changes pretty rapidly. I just want to know about performance.
--willhelm
VB allows quicker development (Score:1)
programs faster with Visual
Basic
fixing the question (Score:1)
I think the javalobby had the link to the speed tests, but it was not in comparison with VB or any other language.
It misght not be too bad an idea to pose this question to them.
Perhaps technically better - Quite (Score:1)
I am an Eiffel developer and we are not rare.
It is Eiffel jobs that are lacking. And while
Java programmers might be a dime a dozen, beware
dime-a-dozen quality. Eiffle is not the buzzword
dejour. To my estimation, that recommends it.
And Eiffel attracts a rather quality driven
user/developer base. The commercial products
are mature and well supported.
Some links:
Visual Eiffel:
{Tight Win32 native code, some RAD tools}
http://www.object-tools.com/
ISE:
{Large corporate projects, platform
independence, various libraries}
http://www.eiffel.com/
SmallEiffle (GNU):
{GPL release, helpful community,
fast--very fast}
http://smalleiffel.loria.fr
ELJ:
{Eiffel Libery Journal, online magazine,
all the other links you might want}
http://www.elj.com/
-- Jeffrey Straszheim