My previous posting on Let Actions Speak for Microsoft which commented on Microsofts Interoperability Month website and 20 webinars has produced an interesting and thorough response from Kent Tegels. Rather than leaving this commentary buried in the comments page – I have brought it out front and center. My remarks are in italics, Kents are in normal face. Comments will be kept open as long as we can keep the comment spammers at bay. Alternatively you can send a comment directly to me at firstname.lastname@example.org.
Kent, in the interest of lucidity my comments will be interspersed directly with your generally excellent thoughts and ideas.
Like you, I am a bit suspicious of where Microsoft is really going to do with all of this, but at the same time, this kind of prattle doesnt help the situation much. Its little wonder to me why folks from either side have a hard time being willing to work together when somebody paints such a bleak picture.
prattle, noun, pratl, Idle or foolish and irrelevant talk – nothing like a good slap to the face to catch my attention and start a serious discussion. But it is an important subject so we shall soldier on.
Anybody thats tried to do any sort of meaningful binary-level Interop can tell you why Web Services makes sense and why doing at a binary level doesnt. Microsoft isnt alone in promoting the use of Web Services to make Interop work, so are the open sources biggest backers: Sun, Oracle and IBM. Any well designed system is going to present abstract interfaces to its internals. If you wonder why concepts like CORBA and DCE only went so far, just think about how much of the internals of the system they had to expose to make things happen. I shouldnt have to know how you do things to ask you to something for me. That just make sense, but its taken us how long to actually achieve that?
Far too long in my book.
However, Java and JCP, despite being very much a bit-based standard, has done remarkably well regardless of the skepticism from the Cathedral about purity and the yin- yangking pull among some very bullish and blue members. In spite of these strong tides, Java has delivered the closest thing to a cross platform programming language and despite Microsofts long and continuing machinations against Java (see below).
Again, I agree with you, there is a need for a robust set of open, cross platform top-level RPC command and control mechanisms. Clearly Web Services establishes a largely declarative framework with up until recently broad industry support and consensus. However, there are other RPC and distributed processing standards available, such as CORBA, OSF DCE, XML-RPC, GridRPC, and EDI frameworks. Many of these other standards have the virtue of already being implemented, tried and tested with good to outstanding results unlike the wave of new and largely untested WS-x standards.
But my overarching concern on the Web Services declarative standards is that they give away a lot in performance, security, and simplicity that could be achieved with Occam Razor like elegance with some of the more bit-based standards which we have just mentioned above. It is my contention that the complexity plus the inherent performance and other trade-offs of n-tier distributed processing demand that these other more bit-based standards will have to play vital roles in various segments of the whole distributed processing space. However, Microsoft, speaking from its position of dominance on the desktop is arguing to the IT community that they should adopt only the one Web Services standard. I am very leery of this.
In fact, Microsoft appears to be using Web Services standards for their own ends. Microsoft seems to be saying to the IT community – “we will support many data interoperability standards as long as they dont encumber us and our Windows /X86/Strong ARM bit platforms; but as for programming interoperability(and therefore highly bit oriented standards); we will only allow for Web Services declarative languages and even then we reserve the right to take a pass on anything there”. For example, it looks like Redmond is going to pass up on XPATH 2 and XSLT 2. My colleagues describe Redmonds standards policy as pure opportunism; unfortunately I dont see any counter indicators to that judgement (see IE comments below).
I also think the implication that IEs behavior is any way indicative of how Microsoft is likely to treat SOAP based interop is at best naive and is, at worst, based on some bias. Its also a pretty bad a pretty bad exemplar: most of the interop problems folks suffer from with IE is based on the fact that other folks decided to the original work that way, not because IE forced them too.
As seen in the case of IE DHTML standards or a broadening set of XML recommendations, Microsoft can and does fall short of stanadrds and sometimes for long periods of time. As well Redmond deliberately leaves MS-only runaheads in place like proprietary mines set to go off when the user tries to switch out of an IE , COM or VC++ app. As for the stick to standards switch/toggle , again Redmond just does not deliver it in any of its development tools. Such a switch, when turned on, would not allow any of the Microsoft proprietary extensions to be used (the commands and icons are greyed out) . Also the “stick-to-standards routines” must supply function that does a review of the current code/application to flag any non-standards compliant code imported or inserted inadvertently by the user. This standards toggle makes it easy for end-users to decide whether they want to use proprietary extensions or stick to standards.
Now some Microsoft people will argue that this type of toggle just does not exist in the industry in general. Wrong! As noted Adobe, CA, Macromedia among others have such switches in their tools. For example, Adobe GoLive and Macromedia Dreamweaver have exactly that kind of toggle that allows users to scan for breeches in browser code against a browser orW3C standards level. Macromedias new Cold Fusion allows users to switch between PDF or Flash based operations. Ditto for a number of reportwriting vendors that allow for a simple switch to direct output to PDF, Flash, Excel, Java, and other standards. Take a look at what Microsoft Reporting Services allows versus the competition.
And the proof of the latter statement is my third objection to Microsofts support of standards. Redmond reserves the right, despite all its previous promises, to change its mind on standards support. Again IE and the arbitrary discontinuance of meeting its ECMA and W3C commitments is the key example; but I have friends in the networking and media communities that would easily pass on an earful on Missed Microsoft commitments and reversals of form. Standards adherence is not about probabilistic commitment – “well we might continue to support them, and then again we might not”.
Lets also not make the assumption that just because somebody “not Microsoft” proposes something and some other “not Microsoft” folks decide to use doesnt make it an “industry standard.” Standards have much more involved in them than that. Sure, it would be nice if MS could implement everything. Theyre would also be a lot of unemployed programmers and busted partners if they did. That hurts everybody equally.
Kent, I and a lot of readers would take offense based on this comment. Back in the late 80s and early 90s Microsoft spokepersons would say this about defacto and dejure standards – ” we constantly monitor the computing scene – and as soon as numbers warrant, we implement new standards/functionality and /or provides interfaces to them”. Now they dont even bother with such sentiments. Now standards adoptions and support are clearly adopted only as a part of Microsofts overall strategy and advantage. And again nothing wrong with that with the one proviso that Microsofts advantage should not be at the expense of end-users. So if Microsoft bypasses a standard it should have a substitute that offers equivalent functionality without imposing a large start-up and/or operating cost penalty on end users.
Lets look at this for a moment. In Office and Reporting Services I would like to use PDF and SWF files as easily as I use output to Excel or HTML. Currently, some third parties provide these services; but they are at the mercy of Redmond. If Microsoft deems it strategic to change the rules (see what Microsoft has done in the Windows utilities market place countless times or Joel Spolskys team collaboration extensions for Visual Studio or … ) or cut off the interfaces (see the infamous Bristol case) – then Tough Luck to 3rd parties. And in other cases Redmond just say tough luck to all Windows users. Such is the case for support for PNG and JPEG2000. Microsoft does not have a substitute for these image processing capabilities and no or few 3rd parties have dared to enter and offer these as extensions in IE, Exchange, Picture-IT, Visio and/or Visual Studio.
And dont be fooled, this is non-standards tithing is not restricted to just IE and DHTML. Just ask the C/C++ coders interfacing apps and devices into VC++, dBase coders interoperating with FoxPro, or even VB6, VBA and VB.NET coders trying to arrange internal compatibility. Oh, for sure, dont talk at all to the Security and Admin people about Microsoft, support and standards.
Of course, time will tell. I for one think that the rise of Open Source really has been a strong boon for everybody: competitive pressure is the best force a market can apply when there are effective few vendors serving that market. Microsoft cant just live in its own world (I think they finally gotten that idea) and I see this push on Inter-op as away for them to talk their communities about how to get better. Thats where they need to start. Its folks like me who can effectively change our products to work together better. We need to do that. Folks in the “not Microsoft” camp are welcome to pay attention so they can see how were being asked to it since it likely has strong influence on how we can work together going forward.
Amen. Microsoft is no longer the lowest cost producer in so many of the markets that it captured by being exactly that . And with Open Source that gap is made ever wider despite Microsofts lame Lower TCO arguments. The fundamental problem is this – Microsoft has yet to deliver a sustaining substitute for the fact that it is no longer the lowest cost and therefore not the best price-performance supplier in so many of its markets. Admittedly they are working on it – they just have not delivered . And a key piece, Longhorn, looks like its most likely 2 years or more away.
As to your questions:
1.) They dont. Microsoft stopped distributing their version of the JVM and products based on it (http://www.microsoft.com/mscorp/java/faq.asp). In fact, Microsoft now list the Sun JVM as the one to go with (http://www.microsoft.com/mscorp/java/).
Riddle me this then! – Why in Gods Good Earth not deliver the latest Sun JVM with every new copy of Windows?? Especially after their kiss and make up with Sun. This is another example of the workaround tithing end-users have to pay – and pay mightily for sticking with Windows.
What Microsoft did on SCO is shameful. What Microsoft is doing in the case of Java is well nigh unforgiveable. It has added countless man-years to development. And the IT community and vendors are nearly as guilty for letting Microsoft get away with it. Where were BEA, Borland, Compuware, HP, IBM, Oracle, Sybase and many other software and hardware vendors (many of whom have profited mightily with their Java wares) when Microsoft said it was going to only support a non-compliamt version of the JVM on IE ? Where were the Fortune 500 organizations who clearly could use data integration and cross platform capabilities that they are now literally begging for? These stakeholders should have made it abundantly clear to Microsoft that if Redmond only used a non-compliant JVM in IE, then they would switch their browsers to one that supported full Java compliancy.
Having not done so has turned out to be an enormous loss to distributed processing. Having a latest version of the Java client on Windows solves a huge set of problems that stillborn efforts such as IBM weblets and Borlands dynamic applets only hint at. So now we have kludgy server-based solutions such as ASP, ASPX, JSP, JSF, PHP, etc etc that are non-starters for the latest 5As required distributed architectures -> Any Authorized user Anytime, Anywhere on Any device offline or online. And Smart Clients are not going to cut the mustard. So now when I hear some executive or pundit complaining about cost, complexity, and/or failure rates of distributed projects – my tendency is to ask “where were you when Java on Windows was under attack ?”
2.) Lets roll the clock back to the introduction of J++. Why did Microsoft invent that? Two reasons: First, their technology stack at the time wasnt ready to deliver the kind of developer experience folks were used to in the Microsoft world, so they basically had to invent a different wheel to deliver that. Second, as Im sure you recall, back in 1995, you had to pay a license fee to Sun to distribute the Java Source (http://sunsite.nus.edu.sg/hotjava/licensing.html) MS did that then. Lets also not confuse business with technology. Fact: Microsoft owns a license for Unix. Fact: Microsoft acknowledges by paying SCO for that license that they (SCO) have an intellectual property right to Unix. Has SCO turned around and used that Money to turn around and make their Unix assets any better? Doesnt appear so: they decided to use that money fight to protect their assets. http://news.com.com/Fact+and+fiction+in+the+Microsoft-SCO+relationship/2100-7344_3-5450515.html?tag=st.prev Fact: Sun has numerous IP rights for Java. Fact: Microsoft has paid them for the right to use them in their (MSs) products.
I beg to differ here . I think that Microsofts support for SCO including the payments and support for secondary financing has been shameful. It also has been highly counter-productive for Microsoft itself. Yet some of the key executives around the campaign have been promoted. Those promotions send a clear message to the rest of the IT community – no matter what Open Source face saving gestures we make, really we liked swinging the bat and scaring the bejesus out of the IT and Open Source community. It acts as an ongoing threat to the IT community – “we can be a defiantly nasty, scheming, pitbullish, and meanspirited player if we so chose – so be forewarned.”
Oh by the way where is the promised (http://www.zdnet.com.au/news/software/0,2000061733,39149502,00.htm) deliver of Java to the Open Source community at? Oh, thats right… it wouldnt solve any problems (http://www.pcpro.co.uk/news/news_story.php?id=58628)
See my comments on this at my Java Opens page. Also dont get in the comparison business on who has done more for Open Source between Sun and Microsoft – Redmond comes out an absolute loser.
3.) Humm. Your attention must have been distract to elsewhere when in September 2002 Microsoft introduced IE 6.0SP1. Seriously wrong again – this Service pack had largely security fixes and no sgnficant movement on meeting standards. Just exactly what parts of HTML 4.01 does IE support? Im sure you know about the DOCTYPE quirky vs. standard mode switching (http://gutfeldt.ch/matthias/articles/doctypeswitch.html). And lets not forget that Not-IE also has some non-standard elements: Layer and ILayer come to mind . Since dropped in the sense of no further work is being done by Mozilla, Netscape, Opera and most other players (http://www.mozilla.org/docs/web-developer/upgrade_2.html#Upgrading_Layer). One thing I completely agree with you about the lack of full support for CSS2.
The “Billions of Man per Year” is laughable though: Lets assume for a minute that there are roughly ten-million Web Developers in the world. Kent, you are off by a factor of 5 to 10 in your estimate. And then your arguments proceed to prove my point. Thanks. To reach a billion man-hours, each of them would have to spend 100-man hours a year on just that issue. Hum, I must be slacking because to accomplish what my business want to achieve in terms of interoperability, Ive had to spend maybe 20 or 30 hours at most trying to write pages that rendered as desired as on both IE and not-IE. Ive also found that the biggest problem isnt HTML or CSS, its with plugs-ins.
If the standards community was really interested in fixing the cross-platform problem, thats the problem they should solve. The object tag just doesnt go far enough.
4.) What youre talking about in #4 isnt clear at all. If you mean that “why dont FrontPage and Visual Studio.NET” use a non-quirk mode by default, I agree, I dont like that as “not the default.” Pretty easy to change if youre worried about though. Not everybody is. Its interesting to note that MS has gotten their act together on this for Visual Studio 2005 where default DOCTYPE appears to be a non-quirk mode.
No you and Microsoft still dont have it right. Adobe and Macromedia do in GoLive and Dreamweaver respectively. There is a toggle switch in both that allows the developer to set the standards that all their development work on a project will stick to. Call one of the standards switch levels (there are multiple standards adherence options available in both products.)” Stick Strictly to W3C.” Then when you use either program and go to use a Layers or Ilayers (Netscape non-standards) menu item – it is greyed out. You just cant use wrong non-standard code from the menus and dialogs(unfortunately you can from the source code editors). Later you can ask the programs to scan your web pages for non-standard code – and both provide a list of flagged statements in all the associated files for a web page or web app that dont meet standards. This is very valuable when importing others code that uses Microsoft-oriented DHTML which may employ runahead proprietary coding that only works in IE.
5.) Lets see, 2004 Microsoft targeted going from 2,000 to 3,000 filings per year (http://promotetheprogress.com/archives/2004/07/microsoft_to_in.html) while IBM filed for more than 3,200 (http://www.infoworld.com/article/05/01/11/HNibmtopspatents_1.html). Even HP generated more patent applications than Microsoft. It looks like even Sun has a Patent fetish: http://news.com.com/Suns+Schwartz+guns+for+patent+glories/2100-1014_3-5390714.html. Interesting enough, even Redhat doesnt like Suns behavior: http://news.com.com/Red+Hat+exec+takes+Sun+to+task+on+open+source/2100-7344_3-5378197.html?tag=nl. Answer that and you answer your own question: They are all companies in business to make money for their shareholders. Supporting Open Source helps some companies do that. Pure and simple.
I have commented elsewhere in this forum on what a mess patents are in software. I have been tough on everybody – and deservedly so.
6.) One at a time:
Just how programmable is CORBA without Java? And just how transportable is it? And why does virtually every implementation have its own “extensions.” I can tell you why I ditched CORBA ages ago, but Don Box makes it much easier to understand Microsofts thinking here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxml/html/xmlmanifesto.asp. Of course, it helps if you actually write your broker correctly: http://support.microsoft.com/default.aspx?scid=kb;en-us;299411
This is exactly what I was talking about in terms of having a rich set of distibuted processing standards – some of which are more tightly coupled but substantially more performant, reliable and secure. Let users decide. And judging by the very rosy financials coming from CORBA suppliers, users disagree with Don Box and are using and not just kicking the CORBA tires with increaqsing frequency. Ditto for XML-RPC and some EDI methods. The good SOA and ESB architects are accomodating just such flexibility in their designs.
DCE: Is supported: http://msdn.microsoft.com/library/en-us/rpc/rpc/using_asynchronous_rpc_with_dce_pipes.asp
J2EE: Supporting that is pretty easy… use Web Services: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/jdni_ch01.asp
For both DCE and J2EE
JPEG2000: For now, they are letting the marketplace decide what value JPEG2000 really has. If you “need, want and got to have it,” theres tons of a SDKs for on the market.
Thanks, Microsoft, I will have to wait for JPEG2000 support in IE at least until Longhorn coming out probably about this time two years hence. And then there is still no guarantee that JPEG2000 will be in (much less PNG ). In fact, isnt it curious that Microsoft will talk about everything in Longhorn except for what and how IE will work there. I think users are in for a few big surprises … and not all welcome.
OpenDoc: Well, weve seen how Apple and IBM treated that. At least Microsoft tried to offer alternatives: http://www.windowsitpro.com/Article/ArticleID/16900/16900.html
OpenGL: Have you ever looked at the platform SDK? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/openglstart_9uw5.asp
I have some buddies who work in the animation and 3D fields (Alias WaveFront, ToonBoom, Houdini, SoftImage, MindAvenue, Matrox are either Montreal or Toronto based). They tell me that if I think I have compatibility problems with DHTML – then OpenGL to/from DirectX is a minefield.
PDF: Reporting Services offers PDF rendering capabilities with one mouse click. You want XSL-FO, go with Antenna House. You want to do it programmatically? Tons of SDKs on the market. Take your pick. Oh, you want a free, open source library for generating PDFs with Perl on Windows: http://search.cpan.org/src/AREIBENS/PDF-API2-0.2.3.8/. Ive used it. It just works.
SVG: Not so hard: http://www.15seconds.com/issue/030630.htm
SMIL: Is a requirement for Windows Media Player starting with version 9. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmsrvsdk/htm/programmingplaylists.asp
SWF: Remains the IP of Macromedia and they provide a free player for it. The problem here is exactly what?
7.) Well, as if there wasnt already a mountain of information contracting this in the previous parts of this comment, I really have to wonder what your point here is?
I dont think anybody really cares that they cant use VisualBasic on Linux. If youre using Linux, youre going to be able to program in some other language anyway. Ive had very few problems porting Perl code from Unix to Windows and back again provided Im careful about the modules I use. I suspect and am discovering that I can use Eclipse and the Sun JDE just fine on Windows as well.
Now Kent you are just being deliberately obtuse or inappropriately facetious here .
PHP is quite strong on Windows: take a look at Sokkit (http://www.phpgeek.com/pragmacms/index.php?layout=main&cslot_1=12)
This list of partial implementations by Microsoft or more often 3rd party solutions is a critical concern. This is a variation of the “Tip the Standards to Us ” game. Sure we support PDF or SVG or whatever. Just not all the features. Or use a 3rd party. Oh want a complete set ? Look to 3rd parties. And then the 3rd parties say we are not up to snuff or Redmond has a software conflict so we cant do that. And looming in the background is the real fear that as in the case of Bristol on Unix compatibility, Software Ag on cross platform COM/DCOM, and Sendo on Smartphones ( and there are plenty of other examples) – Microsoft reserves the right to say “we have changed our mind on that and will no longer support interoperability”.
Now to give you a feel for how real this concern is, the following are nearly identical responses from project managers when I separately and at different times proposed using PHP and then Flash in some projects: “We dont use any technology that is not available and directly supported by Microsoft in Visual Studio.” The PHP rejection got this added remark – “we like PHP and the technology, but we got burned by using open standards . You know that only Microsoft can guarantee a technology will work best in Windows.”
And therein lies the question of what level of Trust can be accorded the company to deliver on its promises of Integration and Interoperability. And I would suggest that the evidence supplied would place that level of trust at mid at best, low being a realistic level. But that judgement is made before considering Microsoft executives treatment of its ISV partners large and small in the past – think IBM and OS/2, HP and New Wave, Adobe and font technology, Sybase and SQL Server, Sendo and Smartphones, and currently its BI partners who Redmond is making stomach ever broader Microsoft offers of free client and server side giveaways which at the least reduce their BI partners profit margins and more sinister and threatening – endanger the partners market position and very viability in key BI market segments.
Simply put Microsoft executives have treaded an ever more errant line in their treatment of their stakeholders. Nothing less than mistreatment of trust has been visited upon employees, partners and software users to varying degrees. Given that erratic treatment of stakeholders trust – does that inspire confidence in Microsofts data integration and programming interoperability promises? But even more fundamental – is that anyway to run a $40B company ?