Feeds

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

More compliant

  • alert
  • submit to reddit

Internet Security Threat Report 2014

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

Top 5 reasons to deploy VMware with Tegile

More from The Register

next story
Netscape Navigator - the browser that started it all - turns 20
It was 20 years ago today, Marc Andreeesen taught the band to play
Sway: Microsoft's new Office app doesn't have an Undo function
Content aggregation, meet the workplace ... oh
Sign off my IT project or I’ll PHONE your MUM
Honestly, it’s a piece of piss
Return of the Jedi – Apache reclaims web server crown
.london, .hamburg and .公司 - that's .com in Chinese - storm the web server charts
NetWare sales revive in China thanks to that man Snowden
If it ain't Microsoft, it's in fashion behind the Great Firewall
Chrome 38's new HTML tag support makes fatties FIT and SKINNIER
First browser to protect networks' bandwith using official spec
prev story

Whitepapers

Forging a new future with identity relationship management
Learn about ForgeRock's next generation IRM platform and how it is designed to empower CEOS's and enterprises to engage with consumers.
Why cloud backup?
Combining the latest advancements in disk-based backup with secure, integrated, cloud technologies offer organizations fast and assured recovery of their critical enterprise data.
Win a year’s supply of chocolate
There is no techie angle to this competition so we're not going to pretend there is, but everyone loves chocolate so who cares.
High Performance for All
While HPC is not new, it has traditionally been seen as a specialist area – is it now geared up to meet more mainstream requirements?
Intelligent flash storage arrays
Tegile Intelligent Storage Arrays with IntelliFlash helps IT boost storage utilization and effciency while delivering unmatched storage savings and performance.