
Ask HN: What would you tweak in C to make it a nicer language? - andrewchambers
If you could tweak C without adding huge new features (like OO or changing paradigm), what would your changes be?<p>examples:
Zero initialized memory.
Improved function pointer syntax.
Remove &#x27;-&gt;&#x27; and replace with &#x27;.&#x27;.
Array bounds checking.
Standard inline assembly syntax.
etc. etc.
(There are probably a lot I haven&#x27;t thought about)
======
angersock
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).

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

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

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

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

------
sunny1304
I want generic programming like Rust.

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

------
adamnemecek
Probably a legit macro system.

~~~
andrewchambers
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.

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

