Sunday April 03, 2005
End of an era
The day that many Visual Basic developers have dreaded has now occurred. As of March 31st, Microsoft has stopped its free support for Visual Basic 6, a move that is obviously not sitting well with the large number of Visual Basic developers who still code (or need to code / support) the pre-.Net versions of the popular language. According to Evans Data Corp, the majority of VB developers in North America still use version 6 or earlier rather than make the switch to the .Net variety.
Unfortunately for those developers, the two languages (and supporting runtimes) are so fundamentally different that migration is difficult if not downright impossible. As a result the applications have to be completely re-written for the newer .Net variant of the language. The obvious question is whether this is the right time to contemplate moving to a platform that provides unparalleled security, portability and power: the Java platform. Something else to consider as a considerable value is whether you, the developer, want to (just perhaps) not put yourself in the same situation again, where a vendor who owns a given platform and language can decide to change the foundation your house is built on ...
Windows has gone through any number of changes over the years, a number of them incompatible enough that rewriting is fairly common (look at COM, COM+, ActiveX, etc.) ... the "Visual *" languages aren't much different in that regard. Java has changed as well, but rather than in a revolutionary fashion, it has done so in an evolutionary one, a managed change and moreover one that's been under the control of a standards body.
(To borrow a heavily overused phrase, Java has to answer to a higher authority ... namely the community at large under the guidance and authority of the JCP.)
The question developers should be asking themselves right now is whether this is the time to move to a platform which provides stability, maturity, advanced technology and is available on the platform that matters the most ... namely whatever one you need it to be on. Unlike Java and the Java platform, applications written in Visual Basic only run on Windows, which is the only platform Microsoft wants you to be on. Posted by brewin Apr 03 2005, 08:52:58 PM PDT Permalink Comments [6]
Posted by Ralph Gerwing on April 03, 2005 at 11:35 PM PDT #
Posted by S. Herb on April 05, 2005 at 04:35 AM PDT #
> contemplate moving to a platform that provides unparalleled
> security, portability and power: the Java platform.
That is an interesting claim. Completely unfounded, but interesting.
* Unparalleled security
When we talk to Visual Basic developers, one common complaint we hear about .NET bytecode is that is can be un-compiled back to source code. So a confidential algorithm can be easily exposed with one of many readily available .NET decompilers. Java has the same exact security weakness! This is not a problem for Java apps running on a (presumably secure) server, but VB is mostly used for desktop applications and Java applications on the desktop are not at all secure.
Java security is not unparalled... it is equally as bad as .NET.
* Portability
Java code is portable in the sense that it works on many platforms, but when it comes to building a desktop GUI, what you get a is a non-native, unacceptable GUI on many platforms. And because different vendors offer their own Java virtual machines, you are never guaranteed that your application will work consistently on all the platforms you care about. In other words, with Java "portability" come at a very high price.
* Power
If Java is so powerful and such a great language for creating desktop applications (which is what Visual Basic developers care about) then where are all the desktop applications written in Java?
Where, for example, is the Java version of Open Office that Sun was talking about THREE YEARS ago:
"I think you can see Open Office running solid on OS X by the end of this calendar year," said Tony Siress, Sun's senior director of desktop marketing solutions. ... The current release of Open Office for Mac OS X requires x11," Siress said. "I've got my Hamburg (Germany) team working on eliminating that requirement right now and using Java." (<A HREF = "http://news.com.com/2100-1001-946714.html">CNET July 26, 2002)
It sounds to me like Sun tried --and failed-- to use Java to make a Mac OS X native version of Open Office. If Sun's best resources couldn't make this happen after more than two years of effort, why would any other developer think they could use Java to make a native Mac OS X application?
Where are the "pure Java" desktop publishing applications, accounting packages, photo editors and games?
Here's some gems of Java history:
* Netscape pledged to completely rewrite their browser in Java. Failed.
* Corel announced plans to rewrite their entire Corel Office suite in Java. Failed.
* IBM announced a "<A HREF ="http://www.internetnews.com/dev-news/article.php/54601">desktop JavaOS". Failed.
* Lotus announced the Kona desktop, which was going to include spreadsheet, a word processor, a calendar, an E-mail client, a project scheduler and a graphics applet. Failed.
And... my all-time favorite example of Java's failure on the desktop... Sun launched and later killed Hot Java, their Java based web browser. How powerful is Java? You can answer this question for yourself by <A HREF ="java.sun.com/products/hotjava/">downloading a copy, firing up a Java VM on the platform of your choice (since Java is portable) and then see for yourself how "powerful" Java really is (or isn't) on the desktop.
Saying that Java is powerful doesn't make it powerful.
You can only prove the power of Java on the desktop by pointing to powerful desktop applications written in Java. I don't see any. What I see instead are a whole lot of Java failures on the desktop undertaken by very large software companies that have access to nearly unlimited development resources.
Not a very encouraging state of affairs for a Visual Basic developer.
But there is hope. Here's a testimonial from a software company that stopped using Java on the desktop and saw a massive benefit:
<A HREF="http://www.4sightfax.com/latestnews.html
">Soft Solutions unveils 4-Sight FAX version 6<A/>
--
Matt Quagliana
REAL Software, Inc.
Posted by Matt Quagliana on April 06, 2005 at 04:20 PM PDT #
In response to Matt Quagliana's post:
a confidential algorithm can be easily exposed with one of many readily available .NET decompilers. Java has the same exact security weakness!
If that is a security weakness, the algorithm is not good enough to begin with. I think the "unparalelled security" Robert Brewin is talking about is the security model in the core API of Java, which is most certainly unparalelled.
If Java is so powerful and such a great language for creating desktop applications ... then where are all the desktop applications written in Java?
There do exist a few...
http://www.neooffice.org/ http://eclipse.org/ http://jedit.org/ http://www.limewire.com/
...just off the top of my head. Find hundreds more on Freshmeat and SourceForge. But it is certainly true that Java is much MUCH more prominent on the server side than on the client.
You can only prove the power of Java on the desktop by pointing to powerful desktop applications written in Java.
Well... maybe this is not true not when put SO squarely. Personally I would say that the power of a language is more about how you express yourself in it than how fancy programs people choose to build.
Just sounds to me like Matt likes VB better than Java, which is a fair opinion. Just seems odd making Farbotted statements about it on public sites without any real understanding of the topic at hand.
Posted by Simon Conrad-Armes on April 08, 2005 at 05:04 AM PDT #
> I think the "unparalleled security" Robert Brewin is talking
> about is the security model in the core API of Java
I suspect you are right, this is what Robert Brewin was talking about when he says "unparalleled security." But it is not what Visual Basic developers care about. I know this because my company is very actively trying to convert Visual Basic developers and the phone rings all day long with questions and comments from VB developers. Yesterday one of them was (quite literally) cursing both Java and .NET.
Visual Basic developers tell me that one of their big problems with .NET is that their code can be reverse compiled. One can argue the value of this concern (although I think they have a legitimate gripe) but my point was that Java and .NET share this same problem in the eyes of Visual Basic developers. When VB developers look at Java they do not see "unparalleled security."
> But it is certainly true that Java is much MUCH more
> prominent on the server side than on the client.
Agreed. Java has been very successful for server-side application development. But Robert's post proposed that Visual Basic developers should switch to Java. Visual Basic is primarily used for desktop application development, so the focus of this discussion should be on how appropriate Java is as a replacement for Visual Basic in developing desktop applications.
My feeling is that Java does not have the right mix of technical features and historical track record to appeal to Visual Basic developers.
> Just sounds to me like Matt likes VB better than Java, which is a fair opinion.
> Just seems odd making Farbotted statements about it on public sites
> without any real understanding of the topic at hand.
I actually prefer REALbasic over Visual Basic or Java and I am reasonably fluent in all three languages.
For the record, I learned Java 1997 and spent the next several years building and attempting to deploy Java applications to the desktops at Sun, AT&T, Bell Canada, Excite, GlaxoSmithKline, National Semiconductor and MediaOne. I am all too familiar with the pain of trying to deploy a complex Java application to hundreds or thousands of corporate desktops. I have suffered through incompatible virtual machines, poor performance, slow VM launch times, non-native GUI widgets and a host of other Java problems no developer should ever be faced with. To put it differently, I understand enough about Java desktop application development to stay far away from it.
Three years ago I went looking for a desktop application development tool for Mac OS X. I discovered REALbasic and I ended up going to work for REAL Software. The REALbasic language shares some common elements with Java (fully OOP, dot syntax, interfaces, streams, exceptions, etc.) and also shares some common elements with Visual Basic (drag-and-drop GUI builder, native controls, similar APIs, etc.). Unlike either Java or Visual Basic, REALbasic compiles native, stand-alone, machine code executables for Windows, Linux and Mac from a single code base. It's write-once, compile three times and run anywhere. And it really works.
Matt Quagliana
REAL Software, Inc.
Posted by Matt Quagliana on April 08, 2005 at 09:16 AM PDT #
Comments are closed for this entry.