
TECHNOBOG
466 posts

TECHNOBOG
@techno_bog
Alien object. Wishlist or discord: https://t.co/ubVin1VSxM




Not learning Rust is a mistake. Name another language where I can use a library written by someone else, without any worries that it will break my own code? The headache of learning Rust is significantly less than the mental trauma caused by having to fix bugs in production.



So I have a confession to make... about the kinds of C code the dude who codes for the Sega Dreamcast writes for his own personal libs (outside of SH4ZAM). I am the opposite of the C89 minimalist Grug-brained hipsters who you see getting big on social media for insisting that C is pure, simple, and lacks potential for evil such as abstraction, generalized containers, and object-oriented programming. Well, I'm sorry to say, but me and my homies? We get off on doing evil shit with C. On pushing it to its limits. On transcending its ridiculously limited set of built-in language features. On bringing nice, high-level things from more modern languages into our low-level embedded world... Here's a screenshot from my libGimbal framework, which provides an extended standard library in the same manner as QtCore and GTk's GLib in plain C17, bringing with it such evil as full OOP, dynamic typing, macro meta programming black magic, all of C++'s STL containers, and more crimes that C89 dinosaur programmers hate us for. This library is building with GCC, Clang, MSVC, and MinGW, and runs over 1000 unit test cases all passing for Sega Dreamcast, Nintendo Gamecube, Sony PSP, Sony PSVita, Windows, MacOS, Linux, iOS, and Android. On the left you'll see the type declaration for GblBox, using my macro-driven, domain-specific language for declaring OOP classes. GblBox is a base class, implicitly deriving from the empty root instance class, GblInstance, which adds the bare minimum requirements for an arbitrary object to store extra userdata and get arbitrary language bindings at runtime. It gets its own vtable with virtual functions, its own runtime-type identification, its own dynamic_cast<> equivalent, reference-counted semantics for interoping with garbage-collected scripting languages, has private members, can emit Qt/GTk-style signals (into any language), can implement C# and Java-style interfaces, etc. Then check out GBL_BIT_FIELDS(), which allows me to declare a group of bitfields in an endian-independent manner, as seen within the structs in the left top and in the bottom. The implementation is on the right... using part of libGimbal's built-in primitives for macro meta programming fuckery... So... if you're still reading this, and you have yet to rage quit, haven't puked, didn't swap to Rust, or aren't going back to C++, and you are the kind of sicko who likes to push the C language to its outer limits for sport... who simultaneously as an eye for performance on embedded systems and a lust for wanting nice programming features... The dark side of C programming awaits, my friend: github.com/gyrovorbis/lib…

















Microsoft doesn't want you to know this


@cmuratori The obvious end game is that the internet and computers are mostly dead in terms of real content. Why put any effort into anything and post it online to get hoovered up by AI companies? AI has made be so much less interested in computers to be honest. The future is offline.






This is not the first time the "old guard" in tech feels the "new guard" is reckless / doesn't care about the craft / doesn't respect software like they do, and yet get similar or better results on first glance Part of the challenge, part of what makes this so unique + special



DRAGON AGE: THE VEILGUARD was released 1 year ago today.










