Linked by Thom Holwerda on Mon 7th May 2007 15:39 UTC, submitted by Kelly Rush
SkyOS After months of work, there is now a new complete C++ API for SkyOS, which replaces the old C API. The C++ API consists of more than 150 classes, including support for thread and process information, full GUI support, and gesture support, to name a few. Additionally, news about the LiveCD and some of the technology behind it has been updated, including a few screenshots of the LiveCD in action.
Thread beginning with comment 238064
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Colour me unconvinced
by vege on Mon 7th May 2007 19:52 UTC in reply to "Colour me unconvinced"
vege
Member since:
2006-04-07

but there's a reason why every OS provides APIs in C


Not every. Just to mention the better known ones: MFC for Windows is C++, so is the whole BeOS (plus Haiku, Zeta) API.

Surely, there are darker and lighter sides of a decision like this. This one lets the coders do more powerful coding, while enshorting the list of compatible platforms. It may be worth.

Edited 2007-05-07 20:06

Reply Parent Score: 1

JonathanBThompson Member since:
2006-05-26

As both a BeOS developer and a Windows developer (amongst other things) let me clarify:

MFC is not an API, but rather a fairly thin C++ wrapper/frameworks around the C API of Windows.

Also, not the entire API of BeOS/Zeta/Haiku is pure C++: there are quite a few things in them that are straight C, even in the GUI API, but most definitely anything that talks to the kernel is straight C.

Reply Parent Score: 2

RE[2]: Colour me unconvinced
by galvanash on Mon 7th May 2007 20:24 in reply to "RE: Colour me unconvinced"
galvanash Member since:
2006-01-25

Not every. Just to mention the better known ones: MFC for Windows is C++, so is the whole BeOS (plus Haiku, Zeta) API.

Although you are right on BeOS, it is most definitely the exception, not the rule. And even then it is not a pure C++ API. Be's API is a C++ wrapper around a C based kernel. Technically, it could be considered a framework, but since it is the _primary_ programming interface for the OS calling it an API is entirely appropriate.

As for MFC, it is not an API at all. It's a framework and the 2 are not the same thing. Windows has a C API (Win32) just like Linux (and just about every other unix variant). MFC is conceptually equivalent to GTK++, it is a wrapper around a C API.

I personally think replacing a C based API with a C++ one is a bad decision, and I dont think that is really what we are talking about here. Although the article states this is a C++ API, Im pretty sure it is actually a wrapper around the existing C API.

I could be wrong but if I am I question the sanity of the development team as throwing away a working C API and replacing it with a C++ one is essentially starting over - EVERY piece of software written for this OS would be instantly rendered incompatible. Im pretty sure that is not the case here.

Reply Parent Score: 2

RE[3]: Colour me unconvinced
by vege on Mon 7th May 2007 21:21 in reply to "RE[2]: Colour me unconvinced"
vege Member since:
2006-04-07

(also @ JonathanBThompson)

Yes, there are exceptions for BeOS, although the main concept is having a C++ API for the OS which practically forces any not strictly low-level software to be developed in cpp.

Due to the meaning of the term we are talking about (Application Programming Interface), MFC is an API which - of course - does not cover the whole OS API (= is not the Windows API), but in some ways quite important part of that and also is an "official" push to go with C++. I admit, I was not properly clear while mentioning, sorry for that.

And yes, I would also be interested to know if the announcement is about a whole replacment or just a new layer - or somehow combined. I also think an all-radical decision could be very confusing for the whole development process.

Reply Parent Score: 1