5 ms·
Ask HN: What would you tweak in C to make it a nicer language?
If you could tweak C without adding huge new features (like OO or changing paradigm), what would your changes be?
examples:
Zero initialized memory.
Improved function pointer syntax.
Remove '->' and replace with '.'.
Array bounds checking.
Standard inline assembly syntax.
etc. etc.
(There are probably a lot I haven't thought about)
- adamnemecek 12y agoProbably a legit macro system.
- andrewchambers 12y agoAny ideas on how it should look? Perhaps there are good examples in non lisp languages which have good systems, though i haven't tried them to know which is good.
- adamnemecek 12y agoI don't have much experience with it but Rust's seems to be pretty good.
- J_Darnley 12y agoMy personal suggestion would be to borrow the nasm/yasm pre-processor. x264 has certainly used it to great effect.
- mc_hammer 12y agoi would make it coffeescript like syntax and add in underscorejs functionality -_-
- sunny1304 12y agoI want generic programming like Rust.
- angersock 12y agoSome handy little things: 1. Standard library support for safe arithmetic (easily capturing overflows, underflows, and so forth). 2. Standard library support for threading and synchronization primitives. 3. Mandated tail-call optimization through pragmas or perhaps just requiring it in the spec. 4. Create explicit and differentiated arithmetic and logical shift left and shift right. 5. Add a standard way of specifying arbitrarily-sized integers (with optimization for the common word sizes). 6. Add destructuring operations. 7. Add anonymous unions. 8. Add switching on strings in switch statements. 9. Add proper UTF8 support. 10. Add a slab allocator to the standard library. 11. Add regexes to the standard library (possible as a language feature). ~ Several of these (7, for example) are being addressed in C11 (if that ever comes out).
- andrewchambers 12y agoThese are all great.
- sharth 12y agoI'm confused by "if that ever comes out". C11 was released 3 years ago.
- MalcolmDiggs 12y agoMost of my pain-points with C were solved with syntactic-sugar libraries like Cello (http://libcello.org/ http://libcello.org/).
- J_Darnley 12y agoMake everyone use C99 standard integers for various data types so that people can stop trying to "detect" what type to use in a horrible autotools script.
- darsenault 12y agoWhat are some other libraries, like libCello, that help with c in syntactic-sugary ways?