3 ms·
I didn't know what to expect which is why I asked the question. Microsoft is much more friendly towards the open source community than in times past and the hea
by ChrisSD 7y ago
I didn't know what to expect which is why I asked the question. Microsoft is much more friendly towards the open source community than in times past and the header files only define the API not the implementation of it. So it wouldn't have been so shocking to learn they allowed, for example, windows.h (and some related headers) to be included in a github project.
- chrisseaton 7y agoIn practice header files include some things like inline functions, macros and data structures, so they're treated just like source code (which is really all they are - there's no technical difference between a header file and a source code file.)
- ChrisSD 7y agoSure but surely the point of the windows headers is to define the public interface. This has been made more explicit with Microsoft's ApiSet Contracts, which defines a more minimal set of function definitions grouped into sets like "api-ms-win-core-console-l3".
- olliej 7y agoI’m not sure what you’re trying to say here? The headers are code that belongs to MS. The fact that they’re for a “public API” isn’t relevant. If you want “specification of the API” have a look at the language spec for the CLR or JavaScript. Note that they generally don’t have code.
- ChrisSD 7y agoI'm trying to say it isn't beyond the bounds of possibility for Microsoft to allow a more permissive license for at least a subset of their headers. Even while maintaing Windows' proprietary nature. This particular sub thread started with apparent incredulity that I could think the headers would have anything but a very restrictive license.
- olliej 7y agoFair enough, I think that there is no reason they could - but also no reason/value for them to change the licensing. It’s in their interest to encourage developers to write software for windows, but it’s not in their interest to help developers write software that replaces windows.
- asveikau 7y agoCorrect. Which makes me think of various c++ template libraries MS has shipped alongside SDKs (ATL, WRL). Actually the same reasoning could be said to apply to STL. Or, relatedly, somehow it's possible to link statically to CRT. It's interesting with these cases, because something can seem perfectly reasonable behavior in the mind of a developer (an app using platform headers or standard library) but you can wind up with a different answer trying to figure out for what if anything enables that behavior in a legal context.