Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Ask HN: What would you tweak in C to make it a nicer language? (b'') similar stories update story
6.0 points by andrewchambers | karma 2271 | avg karma 2.28 2014-08-29 04:36:39+00:00 | hide | past | favorite | 13 comments

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)



view as:

Probably a legit macro system.

Any 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.

I don't have much experience with it but Rust's seems to be pretty good.

My personal suggestion would be to borrow the nasm/yasm pre-processor. x264 has certainly used it to great effect.

i would make it coffeescript like syntax and add in underscorejs functionality -_-

I want generic programming like Rust.

Some 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).


These are all great.

I'm confused by "if that ever comes out". C11 was released 3 years ago.

Most of my pain-points with C were solved with syntactic-sugar libraries like Cello (http://libcello.org/).

Make 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.

What are some other libraries, like libCello, that help with c in syntactic-sugary ways?

Legal | privacy