HN user

wolfspaw

215 karma
Posts7
Comments29
View on HN

great comment! And you're right, one of the biggest Strengths of Rust is Move done right. With const, borrow, move, ref rules... the default way usually does not make unnecessary copies.

And when you want to make a copy, to escape lifetime annoyances for example, you do a .clone() that very explicit marks a point of a Copy.

" I was gaining a lot of money with Ruby on Rails

Then, I decided to move to Common Lisp and start gaining less and less money

Then, I decided to move to C and got Nerd Snipped "

Well, atleast he seems more happy xD

C is cool though

Odin is the best (followed by Zig)

Odin has the best approach for "standard library" by blessing/vendoring immensely useful libraries

Odin also has the best approach for Vector Math with native Vector and Matrix types

Your stylized fbterm screen is awesome, always good to have a cute anime girl lol.

Really good colors and organization of the terminals, it would be great for serious work too in my view =p

Really liked the trick of defining the struct in the return part of the function.

Array pointers: Array to pointer decay is extremely annoying, if it was implemented as Array to "slice" decay it would be great.

Static array indices in function parameter declarations: awesome, a shame that C++ (and Tiny C) do not support it >/

flexible array member: extremely useful, and now there are good compiler flags for ensuring correct flexible array member usage

X-Macro: nice, no-overhead enum to string name. Didn't know the trick

Combining default, named and positional arguments: Named-arguments/default-arg, C version xD. It would be cool if it was added to C language as a native feature, instead of having to do the struct hiding macro.

Comma operator: really useful, specially in macros

Digraphs, trigraphs and alternative tokens: di/tri/graphs rarely useful, alternatives synonims of iso646.h are awesome, love using and/or instead of &&/||

Designated initializer: super awesome, could not use if you wanted C++ portability. Now C++ supports some part of it.

Compound literals: fantastic, but in C++ it will explode due to stack deallocation in the same line. C++ should fix this and allow the C idiom >/

Bit fields: nice for more control of structs layout

constant string concat: "MultiLine" String, C version xD

Ad hoc struct declaration in the return type of a function: didn't know this trick, "multi value" return, C version xD

Cosmopolitan-libc: incredible project. Already knew of it, its awesome to offer a binary that runs in all S.Os at the same time.

Evaluate sizeof at compile time by causing duplicate case error: ha, nice trick for debugging the size of anything.

C evolves, even if slowly.

I think some devs are fed up of Complexity and excessive abstractions.

C has very few language features, it's a very simple language -- while all modern languages have new (complex and taxing) features.

It's kinda like a Minimalist movement, can we do the same Modern Mumbo Jumbo but in a simple, minimalistic C way?

GC and RAII? Nah, just use Arenas/Pools. Or don't use heap at all.

C is an unsafe language but modern tools get better and better every year, with GCC doing really cool static analysis and finding buffer overflows at compile time.

Also, C runs anywhere and everywhere.

Go has turned into an Awesome language.

I'm one of those that cannot use a PL that has no generics... It kills the DX of Algorithms and Data Structures.

Now it has Generics, soft RT GC, and it might even get official Arena Allocation.

I /LOVED/ the Matklad comment of |error handling converging|, indeed -- it seems that PL community evolved to "any-error" + annotation-at-call-site.

Great post/points. Really enjoyed your rebuttal.

Your version of the dispatcher really shows a simple and intuitive way to code without any explicit lifetimes or zero-alloc-shenanigans.