5 ms·
What makes you think that a safer C variant would win the hearts of UNIX kernels and embedded devs any more than C++ (which started as just a C variant).
by kerkeslager 9y ago
What makes you think that a safer C variant would win the hearts of UNIX kernels and embedded devs any more than C++ (which started as just a C variant).
- BoorishBears 9y agoSimplicity, no STL or templating, no OOP connotations I don’t necessarily think it would, but if it did, those would all be reasons
- BruceIV 9y ago[actually on the Cforall team] This is basically our pitch -- the last 30 years of language design features applied to a language that is not only source-compatible with C (like C++), but actually maintains the procedural paradigm of C (unlike C++) -- idiomatic C code should require minimal to no change to make it idiomatic Cforall code, and skilled C programmers should be able to learn the extension features orthogonally, rather than needing to figure out complex interactions between, say, templates and class inheritance. We are working in the same space as C++, and do draw inspiration from C++ where useful, but with the benefit of decades of watching C++ try things to see where the important features are. There's also some really neat language-level concurrency support; work is ongoing on new features and a shorter summary, but you can see one of our Master's student theses for details: https://uwspace.uwaterloo.ca/handle/10012/12888 https://uwspace.uwaterloo.ca/handle/10012/12888
- aidenn0 9y agothe existence of exceptions seems to bely the idea of minimal changes to make idiomatic C code idiomatic Cforall code. While C does have longjmp and friends, usage of them is hardly idiomatic, so most C code assumes no non-local tranfer of control happens when calling functions. Coding with non-local transfer of control and without require very different idioms.
- wolfgke 9y agoIt would probably be much smaller than the gigantic C++ standard.
- kerkeslager 9y agoOkay, so the creators of this safer C promising that it isn't going to grow to the same size as C++? I guess if they're promising that, that makes sense. C++ was a C variant once.
- emilfihlman 9y agoBecause it's not C++, it's C. It doesn't require them/us to change much, just add these flags and the compiler will warn you about things that are unsafe. I've always found it quite sad that no one is interested in bettering C enough to push relevant changes through.
- pjmlp 9y agoBecause there is this myth that any good programmer is able to write safe C. Only newbies make memory corruption errors. Yet even Dennis acknowledged correct code mattered, and Johnson created lint in 1979! Largely ignored until clang and its analyzers came into the scene.
- pjmlp 9y agoBecause most UNIX kernel devs are religiously against the idea of ever touching C++, even if their beloved C compilers are implemented in C++.
- pcwalton 9y agoI highly suspect it's not that Unix C diehards are against the idea of touching C++—it's that they're against the idea of using anything but C. I don't think anything can win over those kernel developers.
- pjmlp 9y agoYep you are quite right. Other OSes not tied to UNIX culture were always more open to reach out for C++, even if constrained to a certain subset.
- nwmcsween 9y agoIts the complexity of the language vs the benefits it provides. C has many pitfalls (UB) but its simple. IMO a language that could migrate C programmers would have dependent types and an effect system with a nice syntax.
- noam87 9y agoIdris? It can compile small enough to run on an Arduino: https://github.com/stepcut/idris-blink https://github.com/stepcut/idris-blink
- int0x80 9y agoUsing a compiler partially written in c++ is very different from writting and mantaining a kernel (or whatever) in c++.
- pjmlp 9y agoOther OSes, not impregnated with UNIX culture, have a different view on C++'s use on kernel space. OS X and its descendents is the only exception. Which goes back to NeXTSTEP using Objective-C and offering UNIX compatibility only as a path to bring software into the system, battling against SGI and Sun market space.