Feeds

Reborn or stillborn: all new for Microsoft's languages?

More compliant

  • alert
  • submit to reddit

The Power of One Brief: Top reasons to choose HP BladeSystem

ComputerWire: IT Industry Intelligence

Is Microsoft Corp born again? That's the question, as the Redmond, Washington-based company renews work over standards compliance of programming languages for Windows

writes Gavin Clarke

.

Microsoft is revisiting the controversial subject of standards compliance in its implementation of C++, the language created by Bjarne Stroustrup at Bell Labs. Microsoft told ComputerWire last week it plans greater adherence to ISO/ANSI standards in the up-coming release of Visual Studio.NET, codenamed Everett and due in the first quarter of 2003.

The company said its goal is a version of Visual C++.NET in Everett that offers conformance with ISO/ANSI standards in the "high 90s" range - up from a relatively poor 60 compliance range under Visual C++ 6.0.

That's not all. Microsoft discussed its plans after news slipped that its newest language, C Sharp, and the Common Language Infrastructure (CLI) have moved to ISO (the International Standards Organization) having received the European Computer Manufacturers' Association (ECMA's) seal of approval.

Why the change? Microsoft has a colorful history of compliance with ISO/ANSI standards in languages to say the least. Visual C++ has long been considered one of the least compliant implementations to the ISO/ANSI C++ standards.

Visual C++ 6.0, the release prior to Visual C++.NET launched in February, deviated from official standards in 15 areas, accounting for that 60% score. Critics, meanwhile, charge that Visual Basic bears little resemblance to Basic.

Microsoft's problem with standards seems to be that it just can't stop itself from fiddling and tweaking to improve performance. Microsoft's fall-out with Santa Clara, California-based Sun Microsystems Inc, after all, centered over the company's implementation of Java which was optimized and speeded-up to suit Windows.

Microsoft's motives in moving C# and CLI to ISO coupled with driving greater compliance on Visual C++ appears to be three-fold. First, Microsoft wishes to be seen as a community player, no longer aloof in the far North West, working with customers via standards bodies.

Secondly, standards bodies ensure no radical shifts in strategy that cause problems for a food chain of tools, compiler and front-end vendors.

Finally, Visual C++.NET program manager Nick Hodapp said developers are becoming more sophisticated. This requires a closer conformity and support for advanced features contained in the official ISO/ANSI standard but currently lacking in Microsoft's implementation.

Microsoft attempted to close the gap in Visual Studio.NET, remedying six features defined by the standard but missing in Visual C++. The planned Everett release goes further with support for partial specialization of class templates and partial ordering of function templates. Visual C++ developers have been using a series of work-arounds to attain these features, but Microsoft believes the time is now right for adoption.

Some are skeptical of Microsoft's commitment, saying it's the same old company. One critic, who wished to remain anonymous, said Microsoft is using ISO as a "rubber stamp" approving changes it makes to languages that actually serve its own community.

"Chances are they will [again] do what they think is best for their developer community and standards will come second," he said.

Adding fuel to concern is a Forrester report, published at the launch of Visual Studio.NET, that says changes between pre- and post .NET versions of some Microsoft languages are big enough to justify a jump to something completely new - like Java. There is also concern Microsoft is simply taking non-compliant Visual C++ and ramming it into Visual C++ .NET.

Others are more optimistic. John Ray Thomas, product manager in Borland's Rapid Application Development (RAD) solutions business group, is enthusiastic about Microsoft's decision. He said standards ease application portability and allow developers to switch between different compilers and a growing array of increasingly mature front ends.

"There has always been concern from language developers when anybody lacks support for a standard. Microsoft has had a few glaring omissions." Past omissions - since fixed - include allowing an integer to operate outside of a loop, so a programmer familiar with the ISO/ANSI standard would unknowingly create bugs when using Visual C++ as they would have been familiar with an integer operating inside a loop - as defined by ISO/ANSI.

Simon Phipps, Sun chief technology evangelist, called the issue of standards for languages an academic exercise, as it depends who controlled the underlying platform. In the case of Windows, Microsoft retains control of the platform. Sun attempted to ratify Java in 1999 with ISO and ECMA, but said its focus was the platform.

Phipps added the real issue is compliance of libraries, since programmers really build in these. "What's relevant to the community is can I call Java classes from this compiler or can I call .NET Framework classes or can I call Borland's classes."

Old habits die hard, though, and Microsoft will not yield entirely to ISO. Microsoft will keep managed extensions away from ISO - at least, initially. Hodapp said managed extensions are "too young" and subject to too much change to justify submission to any standards group.

Hodapp added it wouldn't help Microsoft's cause, of greater community acceptance, by donating embryonic technology. "The reason why we want to play nice in the sand box [is to] get some respect from the community with a highly compliant version" of Visual C++, he said.

Will Microsoft reach 100% compliance? Sadly no, it seems. In languages, it seems "highly compliant" is about as good as anyone can hope for as official subjects are subject to constant change. And things could soon become more complicated. The American National Standards Institute (ANSI) meets this week in Santa Cruz, California, to discuss possible alterations to C++ the standard.

Scotts Valley, California Borland Software Corp will propose that property method and event extensions are included to ease use of component frameworks, and simplify development in C++. If Microsoft is born again, the goal seems to be in closing the gap rather than getting full compliance.

© ComputerWire

The Essential Guide to IT Transformation

More from The Register

next story
Secure microkernel that uses maths to be 'bug free' goes open source
Hacker-repelling, drone-protecting code will soon be yours to tweak as you see fit
NO MORE ALL CAPS and other pleasures of Visual Studio 14
Unpicking a packed preview that breaks down ASP.NET
KDE releases ice-cream coloured Plasma 5 just in time for summer
Melty but refreshing - popular rival to Mint's Cinnamon's still a work in progress
Leaked Windows Phone 8.1 Update specs tease details of Nokia's next mobes
New screen sizes, dual SIMs, voice over LTE, and more
Put down that Oracle database patch: It could cost $23,000 per CPU
On-by-default INMEMORY tech a boon for developers ... as long as they can afford it
Another day, another Firefox: Version 31 is upon us ALREADY
Web devs, Mozilla really wants you to like this one
Google shows off new Chrome OS look
Athena springs full-grown from Chromium project's head
prev story

Whitepapers

Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Consolidation: The Foundation for IT Business Transformation
In this whitepaper learn how effective consolidation of IT and business resources can enable multiple, meaningful business benefits.
Application security programs and practises
Follow a few strategies and your organization can gain the full benefits of open source and the cloud without compromising the security of your applications.
How modern custom applications can spur business growth
Learn how to create, deploy and manage custom applications without consuming or expanding the need for scarce, expensive IT resources.
Securing Web Applications Made Simple and Scalable
Learn how automated security testing can provide a simple and scalable way to protect your web applications.