God Emperor Doom Programming shitpost #1

Programming shitpost #1

(Originally posted on Minds.com)
Jun 9, 2021

I hear some people want to talk about programming here on Minds. I'll assume you're all hobbyists, gamedevs, and/or alt-tech visionary spergs. I've been all 3 at various times (and done some corporate work, but trust me, you don't want to hear about it.) This will be like my religion shitposting blog series; programming is like religion and this is my gospel. I'm not going to tell you what to believe, so long as you accept the primacy of the Holy C and reject Lisp and all homoiconic languages, for they are heresy!

#1 piece of advice: never get your hopes up. 30 years ago I was a kid with a few years hobby/game coding under my belt thinking computer tech is a mess now but the future is bright... faster computers, Linux, crash protection, multitasking, windows, web standards, AI, VR, open source supremacy... all that was on the horizon. Yeah, we got lame versions of all that but it took forever and ended up being controlled by Microsoft and Google, where all the visionaries got jobs. Every attempt to "do it right" was too radical to catch on, so we got stuck with shitty prototype tech. Cyberpunk was right.

"Cyberpunk 2020" (1995)

"Safe" cross-platform sandboxed apps were the holy grail of 1995. Java and Flash were the big contenders, but they basically got incorporated into web browsers. So we're stuck with this Frankenstein WWW that's so complicated only Google can manage to maintain a browser anymore, and they're locking it down for their NWO masters. Cross-platform is pretty pointless; everything converged onto Intel PCs and ARM phones. It's still not safe or secure. Brendan Eich actually made a solid attempt with ECMAScript 6; he redesigned Javascript to be a serious OO language more like Java or C++. The only thing that stopped him were a few dumb but popular web designers whined "it's too hard" and their twitter cult followers got it cancelled, then they canceled him for opposing gay marriage. Now that everyone uses things like Typescript, Angular, and React, it's too hard for the dumb designers, but thanks to them it's basically the same old 1995 prototype design underneath. Sad.

Rust may be a promising successor to C... but don't get your hopes up; this is a different beast. C is a bare-bones portable Assembler. Rust is a big corporate language that checks all the feature boxes, like Java but lower-level, more akin to ADA and PL/I, which I'm told were very nice languages, but they failed because they were all things to all people, especially government and corporate decision makers, with many safety/security features to support large unskilled dev teams working on mission-critical software. When the PC revolution started, devs didn't wait around for IBM to port their massive PL/I compiler to the IBM PC, nevermind the competitors - they used crude lightweight languages like C, Assembler, BASIC, and Pascal. Now we're in the midst of a new techno-cultural-political revolution where Rust represents the old guard - created by Mozilla (totally bankrolled by Google) and governed by a consortium of Mozilla, Google, Amazon, Microsoft, and Huawei. These companies will inevitably be destroyed from within by their divisive Diversity & Inclusion politics and/or from without as punishment for collaborating with tyrants. Rust and Go will fall into the dustbin of history. Mark my words.

There are a few other C-replacement contenders like Nim and Jai, and some new scripting languages like Godot's GDScript which is arguably a better Python - but that's a topic for another day.

Meanwhile C and C++ are still going strong and better than ever. Plain C doesn't really change but there are so many little libraries for it now, so it can do almost anything C++ can do, even cleaner and more efficiently. Blender is still pure C (with a lot of Python scripts) and look how fast it is. Amazing.

 

Le Lisp really is degenerate BTW. I've got some friends who are into that; what they code in their bedroom is their business, but it's a slippery slope and I'm glad it's almost forgotten. It's a cargo cult that worships a primitive 1950's language with noob design flaws ingrained into its very core, and their New Testament (Scheme) is just Algol with Lisp syntax, so it's basically C with better macros and worse syntax. "Homoiconic" means the source code matches the internal structure "because macros" but the source is suboptimal for coding and the structure is suboptimal for compiling. Who cares if they're the same? Like 90% of programming is parsing text and converting it to different data structures and manipulating them. You don't need homoiconicity or macros. I've written tons of code without any macros or metaprogramming. It's not even possible in languages like PHP and JS. I use C macros very sparingly. I may have used C++ templates in a few hobby projects but not in my game engine. I used a few template libs and I wish I hadn't because they send your compile times to the moon. Any time I write clever but incomprehensible code using "black magic" language features or too many layers of abstraction or metaprogramming, I know I'll be rethinking it later. Usually there's a way to write it more clearly, or a simpler solution, or maybe I'm making the problem more complex than it has to be. The last thing you need is a "wizard-level" language tempting/goading you to write amazing and terrible code.

 

I sincerely hope the future is more like the 80's - programming is a nerd hobby, you can employ it for game development or in industry, the average person can learn and understand it, but no one is obligated to deal with computer systems because the world isn't governed by mountains of corporate-communist code. I think the masses are finally giving up on the pipe dream of a life of leisure under benevolent technocracy. They're realizing that dependency is doom.

Security will always be wizard-level though, no matter how plainly you code. I think we've gotta minimize it and contain it. There's no such thing as a "safe" platform, architecture, language, or VM sandbox, so forget about that. We're gonna need physical separation. High-end PC's are fine for gaming, hobbies, artwork, etc, but hopelessly insecure. For secure comms/payments you need a low-end open hardware computer with software that only supports ASCII text, one encryption protocol, one voice/video/picture format, no hidden metadata, and no apps/plugins/scripts - like something from Fallout.