LWN.net Logo

Paoli: Microsoft will engage with the open source and standards communities

Paoli: Microsoft will engage with the open source and standards communities

Posted Apr 16, 2012 8:57 UTC (Mon) by khim (subscriber, #9252)
In reply to: Paoli: Microsoft will engage with the open source and standards communities by dpquigl
Parent article: Paoli: Microsoft will engage with the open source and standards communities

Microsoft didn't support inttypes and stdint because those are C99 features.

Nope. They are listed in addenum D in the list of 25 headers provided by C++11 for compatibility with C. And Microsoft talks big about his dedication to C++11.

Once you start patch working in only part of the standard things get murky.

Indeed. Does not mean you should drag your feet and include only features which don't help portability. Note that stdint.h is finally in Visual Studio 2010 as I've pointed out above. Now you can declare 8bit or 64bit int in portable way but you can not print it with printf. Greeat achievement. Not.


(Log in to post comments)

Paoli: Microsoft will engage with the open source and standards communities

Posted Apr 16, 2012 9:47 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

I don't really understand the matter of 'inttypes.h'. Most libraries had some kind of compat typedefs behind #ifdefs for _ages_.

Having a standard header would just mean a bit fewer compat typedefs, that's all.

It's so minor that I haven't even realized it's a problem for anybody.

Paoli: Microsoft will engage with the open source and standards communities

Posted Apr 16, 2012 10:23 UTC (Mon) by khim (subscriber, #9252) [Link]

I don't really understand the matter of 'inttypes.h'.

No? Rilly?

Most libraries had some kind of compat typedefs behind #ifdefs for _ages_.

And these definition are sometimes incorrect and sometimes conflict (if you want to use two such libraries), they must be included in all the new projects, too.

IOW: it PITA. Small one, but still a PITA. The same as the lack of support for “z”, “t”, “ll” (along with long long type itself) specifiers in printf. Sure enough, Microsoft does not claim that implements POSIX, and so what? Does it mean it should make life for cross-platform projects harder? Apparently so.

Having a standard header would just mean a bit fewer compat typedefs, that's all.

Well, that's the whole purpose of standards, right? You can support anything without them by using bunch of ifdefs (runtime checks in case of dynamic languages like JavaScript). Just like you can deal with VML/SVG split by using something like Raphaël.

It's so minor that I haven't even realized it's a problem for anybody.

Well, it's minor, I'll grant you that. Still cumulative time spent because of it is measured in years: each particular project spent day or so fighting it, but most projects are affected.

In a sense it's symbol: Microsoft could easily add these headers (few days of work of a single person), yet it stalls for years. If it feels that it's beneigh its dignity to implement such a simple, much requested things (take a look here, for example) then what hope is there for something more complex?

Microsoft participates in standards activity in the hope that everyone else will implement these standards. But as Microsoft is concerned standards most definitely don't apply to Microsoft in any shape or form… sure, if some standard is implemented exactly as Microsoft is envisioned it then it'll be standards compliant, if it's changed (like happened with SVG or OOXML) then, oh well, it's not Microsoft's problem.

Other companies and people understand that standards are not the goal in itself, they are means to the other goal: to make interoperability possible. Microsoft understands that, too, and explicitly refuses to cooperate. For Microsoft standards are all about PR: some people at the bottom may foolishly work with standards as any other company but if they become too successful then guys from the top interfere and stop such activity.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds