Recently, I found myself in the unlikely postion of defending my conversion to .NET from the Java world. Many people view the switchover as heresy. Some people would have me burned at the stake for converting the “dark side” of the IT force.
Java Jedi Chronicles
I spent the better part of 5 years in the Java realm, seeing the platform go from client-side tool to server-side messiah. Actually, it was the other way around: the server side saved Java. Since Sun botched all of their VM implementations (especially on the Mac), many non-MS people felt betrayed and left out of the Java loop.
It is not without irony that Microsoft developed better Java VMs than Sun did, especially on the Mac. I carefully avoided any web page that used Java when I was surfing the web on my Mac, unless I was running Internet Explorer. See the irony?
Client side developers stuck with VB and C++, leaving Java to twist in the wind. After all, why learn a new language that requires a runtime installed and manages to turn shiny new Pentium 2 PC’s [this was 1996] into the thrift store special? Furthermore, if all the client desktops were Wintel machines [and they were], why even bother?
After Java flopped as a client side tool, it was reborn as a server side environment for developing web applications; picking up where Perl/CGI left off. It did offer significant advantages over what else was available at the time. This is when Java took off as an enterprise development tool.
Java: One Language, Many Dialects
Application servers grew out of the “raw” Java servlet environments, creating a plethora of standards-based enterprise tools. Websphere, Broadvision, and ATG come to mind. However, as time progressed, each of these application server frameworks started to diverge. ATG programmers and Websphere programmers could not easily understand eachothers’ work or interchange their modules or code. More importantly, ATG programmers found it next to impossible to find work in the now Websphere-dominated world. Ask me how I found this out.
.NET: Many Languages, One Dialect
So in the past year, I’ve spent a great deal of time working on .NET and I find it a compelling, perhaps even, superior alternative to the Java Servlet/JSP world.
The best part is that you can choose your favorite language. They even have Java ported over, but it’s called J# (pronounced J-Sharp). Overall, though I prefer C#, as it has a familiar Java syntax without a lot of the strange and clumsy namespaces and class libraries.
I’ll talk (rant?) about the tangled rats’ nest of wires and kludges that the Java namespaces have become on another day. But, think about it, Java has gone from set-top box in the early 90’s to client application environment in the mid 90’s to serverside development object model in the late 90’s. There has been no reorganization of the namespaces/packages since then. Growing pains are inevitable. Ignoring them is not inevitable. Are you listening SUN?
Web Controls remind me of ATG Dynamo Droplets, as they provide more or less the same functionality.
Eventually, all of Frank’s World will be ported over .NET.