Sun To MS: You Don't Get It
Chuck Humble, who works at Waggener-Edstrom, one of Microsoft's earliest PR agencies, has sent an e-mail to reporters, questioning Sun's technologies and "crowing" about Microsoft's .NET. Sun has decided to answer Chuck and Microsoft with this Open Response to Microsoft. Definitely worth reading, and pretty funny answers.
I'm looking forward to this new standard method of internet information design. Thats really what this is all about right? How we ( developers ) design the next evolution of information services. I remember very well how MS software ties together on a internet system. I also remember how Sun has handled Linux over the last 3-4 years. It might not have been as nice as the Linux community wanted but Sun was honest about what it thought and that was worth something. ( though i have no idea what ).
.dot come site I pushed Linux because I had fath in the blackdown's efforts and knew that soon Sun was going to have to support Java on Linux.
.NOT (sorry bill, could not help it) I mean .NET
I believe it too be true that if you use microsoft software in your middle tiers you will start to tie your self to both microsoft client capablities and to microsoft backend software. If you take a look at any company that is using Exchange server you will find that allmost ALL the clients are Outlook. That's pretty impressive you must admit. I can remember upper management Giving the okay to Internet Explorer functions because they were neat. I allways thought that DCOM added it's own weridness. I was totaly amazed. Microsoft put a GUI on RPC (Remote Procedure Call) calls on the server. Now that took balls.. not to mention the fact that I have yet to run into a Unix programmer that has been thinking. "I'd like to have a GUI that forced the way I installed RPC code. And then made it so that I had to create a Client.exe inorder for the the client to use the RPC. (Give me a break, I think this is crappy version of RPC) calls on the server." Wow that was not too clear. Let me explain that again. You write your DCOM functions. ( mostly in VB ) Then you use the GUI to register them. Then you make a Client.exe that will install the RPC information into the Clients Registry. Now programs can call the servers functions like it was in a DLL sitting on the Client. Sounds easy to setup and use right? Well I suggest you try it. It was probly the 3rd to last straw that made me swear off MS software. The idea is that on many levels Microsoft has built in sugar to attract other Microsoft Software or Tier solutions. This was back when GNOME was a set of Spec's. Hmm... Now that I think about it do i really have to say anything more about MS?
It was about 4 years ago that the blackdown project came out with ver 1.0 of the JDK. Unless I'm mistaken I don't think apple or OS/2 had a working JDK. Concidering that during this time every IS dept was gearing up to switch from what ever language to Visual Basic on the client side. Java was not concidered a contender in my mind 4 years ago. But the one thing I saw was real promise. Java was a great toy for me to play with at the time. I loved playing with applets. This was around the time when people started looking at network and internet services. The ideas of XML seem to be the anwser for data packaging. Ever try to figure out a "packet" of information that was in a undocumented structure with out source code that did not have null terminated vars? XML looks pretty good after problems like that.
Back to Sun and Java and Blackdown. Alot of people seem to think that Sun did alot of C*ck Blocking with the Blackdown project. I don't know if that is all that fair. In the end Sun had to admit that Linux was becoming a perfered Java platform. I know that when I heard about a
Sun has a way of doing things and then telling us about it. It's true that a Sun server is all Sun hardware. But if you ever get a chance to look inside one of these boxes you will understand why the price for a Sun box compared to a Intel server is the same as paying the extra for the BMW 850 over the Camero SS. Personally you can do more tinkering for speed to the Camero then the BMW if you know what i mean. The thing about Sun hardware is that you can Hook it up to any network. Run all kinds of open services off it. And it has a good reputation for staying up. For a company that has been working like China befour Nixon the attudes towards Opensource is pretty damn impressive. In a age when Oracle and IBM seems to be pushing linux. Suns been pretty well behaved in my mind. Let's face it. CEO's and VP's will allways put their feet where the pizza goes. It's allways been a heated battle for the hearts and minds of IS departments.
In a nutshell. I think I have a better chance using the Sun instead of the Microsoft . The reason? Because I'll write it on Linux and in the future my users will be able to move it to Sun or any other system that supports java. I should also be able to count on the fact that if I write good code then the system will have a long and upgradable life span. This is whats import to me and this is why I'm interested in finding out what Sun has in mind. Sure they are mean to Tux but they are also worried about their servers being replaced by Linux boxes. But you will never see IIS on Linux. Sun's released StarOffice for linux ( correct me but sun did not have to do this after they bought it did they? ). Forte for linux and of coarse they are not supporting the JDK on linux.
You may not like Sun but the people they have working their really do know what they are doing. I also think that Linux and Java Knowlege will be very important to stoping
Last one in jail is a fascist.
Java might not be an open standard, but:
I can (and do) write Java software that runs
- on Windows 95
- on Windows NT
- on HP-UX
- on Linux
using VMs from Sun, IBM, HP, etc.
I don't change a single piece of source code. I don't even have to recompile. It runs. I have a choice of VMs. I have a choice of platforms.
Now, it might not be a standard, it might not be as open as, say perl - but if I took perl and extended it, and wrote something that used those extensions, it wouldn't work on everyone elses system. So how is it any better than Java? And it's a damn sight better than VB where I have to use MS technologies, running on MS OSs, paying MS money.
~Cederic
Not true. The .NET runtime can be installed on any platform it is implemented for, just like a JVM. Right now, there's only one runtime, and that one for Win32 and it's only in beta yet. For Java, the situation is, of course, much different. The common language runtime WILL however be ported to various other platforms. Hell, the standardization of .NET that Microsoft is doing through ECMA *requires* two reference implementations, and Microsoft has stated that one of them will be "an open source OS" - my guess is BSD.
JVM spec is published, thus you see JVM implementations from different makers, all executing the same Java classes. In contrast, .NET runtime is not an open spec
This is very relevant. While Microsoft *IS* standardizing C# (which doesn't really matter that much in .NET since you can use any language) and the common language runtime, they haven't decided if they will standardize the spec for the framework API. It will be open in the sense that all public methods and classes will be documented, of course, but it will not be standardized and frozen and the source will not be available for them. On the Java side, in theory, the API is frozen, but it's not standardized. The source IS available for both the JVM and for the core API.
While the common language runtime will most likely be quite quickly ported to at least Win32, Win64, Mac OS X, BSD and *possibly* Linux, it will take considerably longer for the framework to appear - in particular in a stable and identical form. Hell, just look at Java.. .NET will have to go through basically the exact same process that Java has.. Only Microsoft is not so interested in other platforms as Sun is.
For GUI apps, it's my understanding that .NET doesn't even support them directly through the framework API. Instead, something called the Windows Forms API is used. AFAIK, this is NOT part of .NET. So if you want to develop cross platform apps with a GUI, you can't even use .NET for it, regardless if there is a ported framework and common language runtime for it or not. With Java, you can.
Is it just me, or are both of these companies throwing around utter bull shit business speak like "smart, intelligent, collaborative, next-generation" when in fact besides better interoperable programming methodology, it is completely vapid and almost utterly disconnected from implementing an innovative web service?
.NET architecture will free users from the limitations imposed by the data silos that populate the Web today"
Off the MS web page for example:
".NET is important to end users because it makes computers easier to use and far more functional."
Wow, where do i sign up!
"By allowing multiple secure data feeds to be merged into a single user interface--or even a programmable decision engine--the
SOAP and XML don't magically make applications speak to each other, like MS would like us all to believe.
What MS has is market dominance which allows them to leverage their reputation in creating new "standards" -- no matter how vapid and stupid their talk about their next generation of programming tools is.
Now don't take me for a Microsoft fan or anything. But until Sun releases the Java specification to a vendor-neutral international standards body I have no use for this large corporation trying to manipulate the market by winning developer mindshare. Remember your choice of development platform is a vote you make, either in favor of one company or another, but hopefully a choice you make with clear thought behind it.
What Sun basically said is that XML is platform independent, and Java is platform independent, so it makes a lot of sense to use XML with Java.
Now, I'm not arguing that there is lots of great XML software available for Java. But in my feeling (and Bjarne Stroustrup's opinion too) Java is not platform-independent, but a proprietary platform unto itself.
And in fact most of my actual working experience with XML has been in C++ using the platform-independent Xerces-C validating parser for DOM and SAX from the good folks at the Apache XML Project. (You can also use Xerces-C from Perl or Win32 COM with provided wrappers).
I used Xerces-C on MacOS and Win32 for the config files and user documents of a consumer GUI application after integrating it with the similarly cross-platform ZooLib cross-platform application framework - something that would have been really inappropriate to do in Java, as this was meant to be a free downloadable app for which tech support costs had to be near zero, and we could not expect our users to install a Java runtime.
According to its web page, the C++ version of Xerces works on:
- Win32
- Linux
- Solaris
- AIX
- HP-UX
- OS/390
- AS/400
- SGI IRIX
- Macintosh
- OS/2
- PTX
- "and more!"
Further, it's open source under the Apache license and doesn't come with any burdensome requirements or political repercussions from dealing with Sun. You also don't have to wait until a needed version of some targeted runtime is available on any platform to be able to run your application with cross-platform C++ libraries like Xerces - because there are no runtimes.If more powerful players than you want to trip each other up with competing initiatives - well, just let them, and go on about your business by using open source like Xerces-C.
BTW - the Win32 port listed on the web page says it builds with Visual C++, I think others have built it with Borland C++ and I was building it with Metrowerks Codewarror for both my Mac and Windows versions, and could cross-compile on each platform for the other.
Michael D. Crawford
GoingWare Inc
-- Could you use my software consulting serv
I'd like you to understand why cross-platform code is incredibly important (note that this page quotes Judge Jackson of the MS vs. DOJ case as to why Microsoft felt it was so important to put a stop to cross-platform code as to break the law.)
But I think what we have lost sight of is maintaining both the usefulness of our code and our independence as programmers by not remembering how to write cross-platform code.
What Sun got wrong was not making Java cross-platform, but trying to bind us all into proprietary platform of Java while sweetly singing into our ears that it was platform independent. Sun did this and continues with it to serve its own marketing and political purposes, purposes which may not serve the interests of either the public or the independent developer.
You too can write cross-platform code, in almost any compiled language. Check out the ZooLib cross-platform application framework for C++, as well as the Boost C++ Libraries.
Jon Watte of Be, Inc. told me "Portable, to some people, means it builds on at least two linux distributions with several flavors of GCC".
Here's a list of a bunch of application frameworks, many of which are cross-platform, and many of which are open source - so there's more than just ZooLib to pick from.
Get off your duff and ship your executables for all platforms in common use - and not just ones with POSIX system call APIs!
And here's a hint for making your code buildable cross-platform - ever try to run "./configure" on a computer that doesn't have a command shell? Pretty hard. Makes folks like me struggle to write all the makefile's and config.h's by hand. But look at how many platforms the Independent JPEG Group's JPEG codec library builds on - DOS, MacOS, Cray, you name it, and it builds with both ANSI-C and old K&R c compilers (using macros for the function interfaces).
Kids these days... damn it makes me mad.
Michael D. Crawford
GoingWare Inc
-- Could you use my software consulting serv
that /. is a little anti-microsoft