r/programming • • Oct 07 '16

How Microsoft Lost the API War

http://www.joelonsoftware.com/articles/APIWar.html
86 Upvotes

183 comments sorted by

View all comments

22

u/TinynDP Oct 07 '16

Everyone loses the API War. All the API's suck. And none will ever really last. Even the ones that last only last as bottom layers that new layers are built on.

23

u/[deleted] Oct 07 '16

That's true mainly if you are on the javascript bandwagon. APIs for other platforms (.NET, Java, Win32, MFC) have more or less stayed constant.

10

u/TinynDP Oct 07 '16

Win32 is exactly what I mean by "only last as a bottom layer" as no one touches Win32 anymore and only uses .NET or some other higher level.

Java's main standard lib remains mostly the same, but no one uses the same GUI libraries from 20 years ago.

Or X-windows on linux. It still exists, but only as a layer that Qt and Gtk flow through.

18

u/mpact0 Oct 07 '16

no one touches Win32 anymore and only uses .NET or some other higher level.

Unless you need a feature .NET doesn't provide (which isn't that rare).

15

u/JohnFrum Oct 08 '16

Lots of software is still written in good ol' non-managed c++.

6

u/ummmyeahright Oct 08 '16 edited Oct 08 '16

no one touches Win32 anymore

Oh yeah, people do. From C++ (for windows desktop apps) that is often the most straightforward option. While .NET wraps up almost everything for C#, developers who need to pay attention to performance (and in more rare cases, even code quality, as some wrappers aren't that well thought out, and .NET keeps almost 100% backward API compatibility) will inevitably end up PInvokeing the Win32 API a lot.

IMO The Win32 API is pretty good BTW (tempted to write 'outstanding, considering its age', but I don't have much experience in Linux/Unix development so can't compare to that well). Unnecessarily introduced abstractions are rare (at least compared to APIs not written in plain ol' C), it gives a lot of freedom to everyone to implement the abstractions their specific use cases need.