←back to thread

611 points LorenDB | 1 comments | | HN request time: 0.208s | source
Show context
markus_zhang ◴[] No.43908006[source]
What if we have a C that removes the quirks without adding too much brain drain?

So no implicit type conversions, safer strings, etc.

replies(10): >>43908024 #>>43908037 #>>43908071 #>>43908130 #>>43908141 #>>43908193 #>>43908341 #>>43908840 #>>43909556 #>>43913099 #
wffurr ◴[] No.43908024[source]
This seems like such an obvious thing to have - where is it? Zig, Odin, etc. all seem much more ambitious.
replies(3): >>43908123 #>>43908201 #>>43908346 #
zyedidia ◴[] No.43908201[source]
I think the only "C replacement" that is comparable in complexity to C is [Hare](https://harelang.org/), but several shortcomings make it unsuitable as an actual C replacement in many cases (little/no multithreading, no support for macOS/Windows, no LLVM or GCC support, etc.).
replies(1): >>43909591 #
1. Zambyte ◴[] No.43909591[source]
And why do you think Zig (and Odin, but I'm not really familiar with that one) is not comparable in complexity to C? If you start with C, replace the preprocessor language with the host language, replace undefined behavior with illegal behavior (panics in debug builds), add different pointer types for different types of pointers (single object pointers, many object pointers, fat many object pointers (slices), nullable pointers), and make a few syntactic changes (types go after the names of values in declarations, pointer dereference is a postfix operator, add defer to move expressions like deallocation to the end of the scope) and write a new standard library, you pretty much have Zig.