3 ms·
Operating systems today are mainly C based (majority of kernel mode code) - WinNT/ReactOS, Unix/Linux/*BSD/OSX/Android. Also in the user mode side, C is heavily
by frik 12y ago
Operating systems today are mainly C based (majority of kernel mode code) - WinNT/ReactOS, Unix/Linux/*BSD/OSX/Android. Also in the user mode side, C is heavily used in all above mentioned OS (WinAPI, DirectX, etc. are all in C). C++ is also heavily used (e.g. for GUI applications like Office and newer OS development). Most third party applications are written in C++ inclusive almost video games of the last 15 years. Apple bought Steve Jobs' NeXT Software and with it NeXTSTEP (now MacOSX) and Object-C.
I read somewhere that Microsoft is working on a Rust competitor and Swift with it's great syntax is refreshing. But with these closed languages, I hope that Rust has success.
Ada is great and heavily used in specific domains - only its syntax is not that great. Also VHDL is based on Ada and its syntax. I had a Professor who had worked on Modula&Oberon with Niklaus Wirth, though he later moved on to Sun Java.
- pjmlp 12y ago> Operating systems today are mainly C based Only if you are speaking about UNIX clones. Genode, BeOS, Symbian and OS/400 are a few examples of OSes developed in C++. > C is heavily used in all above mentioned OS (WinAPI, DirectX, etc. are all in C) DirectX is COM and most new WinAPI since Vista are also COM. No one in his right mind uses COM from C instead of C++. Windows is moving into straight C++ as of Windows 8, with the adoption of kernel support for C++ based drivers and the move into WinRT, a COM superset coupled with .NET metadata. The upcoming Windows 10, embraces WinRT for its Universal API model and C style is considered legacy. Hence why Microsoft is not caring to update their C support beyond what is required by the ANSI C++ standard. Good luck coding COM and WinRT applications with pure C. Mac OS X drivers are written in a C++ subset, Embedded C++. Now imagine, if it has taken this long for C++ to start replacing C in core OS development, how long it will take for Rust to fill in? Rust is nice, but I am too long in this industry and have seen too many languages come and go in systems programming. The only ones that stayed around have had OS vendors support in their respective SDKs.
- frik 12y ago> Only if you are speaking about UNIX clones. I wrote "operating systems today are mainly C based" and that's true. Also WinNT/ReactOS was inspired mainly by VMS and OS/2. I am well aware that many other OS exist. > DirectX is COM and most new WinAPI since Vista are also COM Fundamentally DirectX and the (post Win95a) shell is COM-based API, and while COM may look on the surface as if it is C++ based, it's actually not - a COM interface isn't a class, it's a struct, and full C compatibility exists (COM as-designed is intended to be language-neutral). And major parts were coded in C. I suggest checking out the Wikipedia article on COM for further info. Coding against COM from C may not be as simple as from C++, but that doesn't matter. dotNet and their new WinRunTime are also COM-based. Sure, it's clear that MS is using C++ nowadays and nothing is wrong with that. The real question is what the future of C#? Will it be 'replaced' by a new language similar to Swift and Rust? Or maybe it will get a static compilation option similar to Go-lang that contains the GS and parts of the framework in the executable. Microsoft has little C# based software on the client side - due to the massive setback and fail of the original "Longhorn" where the new C# based Explorer and WinFS beta1 were way too slow. Nowadays C# based server side product development is mainly done by MS India (e.g. SharePoint). So as it seems they are back to native WinRT (COM based) and HTML5. > Rust is nice, but [...] The only ones that stayed around have had OS vendors support Dogfooding is important and Rust is already used in the Mozilla Servo project, a new web engine. One can imagine that a future FirefoxOS will be based on it as well (replacing the C++ based Gecko engine), as it already uses no legacy XUL GUI code. And there are Rust based experimental operating systems like from "Julia Evans": http://jvns.ca/blog/2014/03/12/the-rust-os-story/ http://jvns.ca/blog/2014/03/12/the-rust-os-story/
- pjmlp 12y ago> I suggest checking out the Wikipedia article on COM for further info. I know COM since it was called OLE and promoted as an DDE evolution. Developing software since 1986. > Or maybe it will get a static compilation option similar to Go-lang that contains the GS and parts of the framework in the executable. It already has that since Singularity, via Bartok, which was adopted into Windows Phone 8 via MDIL, which produces native binaries with dynamic linking. http://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and-Peter-Sollich-Inside-Compiler-in-the-Cloud-and-MDIL http://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and... Static linking Go style is coming with .NET Native. https://msdn.microsoft.com/en-us/vstudio/dotnetnative.aspx https://msdn.microsoft.com/en-us/vstudio/dotnetnative.aspx
- e12e 12y agoWait, you prefer c++ syntax to Ada? What's wrong with Ada's syntax (or makes it not great)?