Hacker News new | past | comments | ask | show | jobs | submit | more sirwhinesalot's comments login

It had loads of good games! Ninja Gaiden, Otogi 1 & 2, Far Cry Instincts, Crimson Skies, Panzer Dragoon Orta, Metal Wolf Chaos, Project Gotham Racing, Jade Empire, Fable, Outrun 2006, Splinter Cell, Burnout, Chronicles of Riddick, Conker, Psychonauts, Unreal Championship 2, Oddworld, Forza, etc.


Ninja Gaiden was so fraking hard! At some point I used an invincibility hack and still gave up at some point! But it was pretty cool. Played Halo 1 & 2, PGR a lot, JSRF was just awesome even though I never finished that either. Fable just wasn't my thing, but had a lot of fun in DoA3 with friends.


I managed to beat Ninja Gaiden as a teen. I have no idea how I pulled it off (it wasn't in Ninja Dog mode either). Sadly I no longer have the necessary hand-eye coordination :(


For me, it was the timed exclusivity of MGS2 substance


I have no idea how developers for the apple ecosystem get anything done. If Xcode doesn't crash it's because it is too busy glitching out instead.


I'd classify Prolog and Datalog as L(ogic) languages.

Lisp not sure, maybe H for homoiconic.


There's a way to make autoconf infinitely faster: get rid of it. CMake is a lot better, but still terrible, get rid of it too while you're at it.


pkg-config seems like all you need these days


Elixir and Erlang not being E-languages completely ruins this post.


Go's error handling is very much not perfect. There's no reason for it not to have a bunch of syntax sugar for extremely common patterns.

See all the syntax sugar C# has for handling nullable types. That could easily be done for error handling as well. Or see Odin which has the exact same error handling mechanism as Go but with proper constructs to make it painless.


string_view (like span) is meant for spatial memory safety, C++ doesn't help much with temporal memory safety.

That said, span (unlike string_view) fails at its intended purpose, because C++ just loves to be a total clown show.



Jumping out of nested loops. Implementing higher level constructs like yield or defer. State machines. Compiler output that uses C as a "cross-platform" assembly language.

All of them are better served with more specialized language constructs but as a widely applicable hammer goto is pretty nice.

I don't expect C to have good error handling or generators any time soon but with goto I can deal with it.


I'm actually familiar with this, having used libprotothreads in production for about 4 years.

Something like libprotothreads can't actually be implemented in a language that doesn't have gotos, so yeah, I see the need for it.


Compiling HLL constructs in some of those scenarios ultimately produces a jump statement. So, it makes sense that a higher-level version of a jump would be helpful in the same situations.


strcpy and friends don't really have any benefits beyond just being there. The "safer" versions are still unsafe in many cases, while being less performant and more annoying to use.

Writing a strbuffer type and associated functions isn't particularly hard and the resulting interface is nicer to use, safer, and more efficient.


I argue strview (non-owning) is almost always what is needed. Most of string operations are searching and slicing.


You also need a strview. Not really relevant for avoiding strcpy and strcat though.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: