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 237968
To read all comments associated with this story, please click here.
Colour me unconvinced
by nevali on Mon 7th May 2007 16:01 UTC
nevali
Member since:
2006-10-12

I don't yet know the details of this, but there's a reason why every OS provides APIs in C: just about every language out there can call functions written in C. Unless you make use of a binary language-agnostic standard like COM, the same doesn't generally apply to C++, Objective C, or indeed any of the other object-oriented languages out there.

As a developer, only having a C++ API would make me quite cautious.

Reply Score: 5

RE: Colour me unconvinced
by Shannara on Mon 7th May 2007 16:36 in reply to "Colour me unconvinced"
Shannara Member since:
2005-07-06

I agree, Robert have just limited the development on SkyOS to just C++ type languages. Effectively removing a lot of the developer community ... Way to go ;) I was looking forward to developing on SkyOS, now Robert made that impossible.

Reply Parent Score: 5

RE[2]: Colour me unconvinced
by Almafeta on Mon 7th May 2007 16:50 in reply to "RE: Colour me unconvinced"
Almafeta Member since:
2007-02-22

Aren't most languages nowadays Cplusplus-like, anyways?

Reply Parent Score: 1

RE: Colour me unconvinced
by JonathanBThompson on Mon 7th May 2007 16:54 in reply to "Colour me unconvinced"
JonathanBThompson Member since:
2006-05-26

If you know C++ well enough and design correctly, it is actually entirely possible to create a C++ API that's compatible with every language that can call C linkage functions, and it won't look significantly different regardless of which language is used. However, most C++ people are too purist to have considered it, or think it's ugly, whatever...

I gave a presentation on the solution I proposed at WalterCon 2006 in reference to solving the Fragile Base Class problem, which is something that's likely to sooner or later become an issue with the SkyOS C++ API. It requires a major change in the API, of course, so there's no backwards compatibility with existing code.

Reply Parent Score: 5

RE[2]: Colour me unconvinced
by Vanders on Mon 7th May 2007 18:08 in reply to "RE: Colour me unconvinced"
Vanders Member since:
2005-07-06

Do you have a link to your presentation or the material you presented?

Reply Parent Score: 2

RE[2]: Colour me unconvinced
by Shannara on Mon 7th May 2007 18:40 in reply to "RE: Colour me unconvinced"
Shannara Member since:
2005-07-06

The point is, if Robert wiped out half the development community, or did what you suggested above. I have not found anything on the site yet, to convince me that he did as you have suggested.

Reply Parent Score: 1

RE: Colour me unconvinced
by vege on Mon 7th May 2007 19:52 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: Colour me unconvinced
by OSGuy on Mon 7th May 2007 20:34 in reply to "Colour me unconvinced"
OSGuy Member since:
2006-01-01

I am a C++ programmer my self and I would have to say that in my opinion C++ is a better way to go. Having class-based API or to be more precise, Object Oriented API is more powerful and flexible than pure C based APIs.

Edited 2007-05-07 20:36

Reply Parent Score: 1

RE[2]: Colour me unconvinced
by nevali on Mon 7th May 2007 21:32 in reply to "RE: Colour me unconvinced"
nevali Member since:
2006-10-12

I am a C++ programmer my self and I would have to say that in my opinion C++ is a better way to go. Having class-based API or to be more precise, Object Oriented API is more powerful and flexible than pure C based APIs.


Many C APIs are object-oriented, they just don't require an object-oriented programming language in order to be used.

The idea of needing an OOP language to write in an OOP fashion is a fallacy I thought had died out a decade or so ago.

Reply Parent Score: 3