Odds and Ends

A few days back I asked what if, genetics, etc., notwithstanding, if the littlest chickenhawk Ben “Benji” Shapiro was right, and ideology was what mattered, and we took that seriously (thought police issues notwithstanding) – would our immigration policy look significantly different in demographics from those the more white identitarian wings of the right promote.

The thing is, genetics do matter. As I alluded – while Lamarck may still be wrong, epigenetics and other factors are showing that his far more deterministic opponents don’t have the answers either, and we know genetics are a factor in personality, and the choices we make and to some degree our environment matter in the genes we pass on . Even just anecdotally, stories of personality and behavioral quirks passed on to grandchildren who’d never seen the behavior acted out, or the number of twins studies where separated twins ended up in the same professions, with the same color preferences and taste in clothes.

Why in God’s name would we believe that some form of personality trait would not statistically cluster in certain geographic ethnic population groups?

On a different topic, Eric Raymond discusses why it looks like C, finally, after decades, may be dying out as a system/hardware level language for low-latency “machine time” applications.

I was thinking a couple of days ago about the new wave of systems languages now challenging C for its place at the top of the systems-programming heap – Go and Rust, in particular. I reached a startling realization – I have 35 years of experience in C. I write C code pretty much every week, but I can no longer remember when I last started a new project in C!

and

More generally: Only now are the first languages that directly challenge C for its traditional turf looking viable. My filter for that is pretty simple – a C challenger is only “viable” if you could propose to a old C hand like me that C programming is No Longer Allowed, here’s an automated translator that lifts C to the new language, now get all your usual work done – and the old hand would smile happily.

Python and its kin aren’t good enough for that. Trying to implement (for example) NTPsec on Python would be a disaster, undone by high runtime overhead and latency variations due to GC. Python is good enough for code that only has to respond to a single user at human speed, but not usually for code that has to respond at machine speed – especially under heavy multiuser loads. It’s not just my judgment saying this – Go only exists because Google, then Python’s major backer, hit the same wall.

So Go is designed for the C-like jobs Python can’t handle. It’s too bad we don’t actually have an automatic code lifter, but the thought of doing all my systems stuff in Go doesn’t scare me. In fact I’m quite happy with the idea. My C chops are still largely applicable and I get garbage collection and really sweet concurrency primitive too too, what’s not to like?

(There’s more about my first Go experience here.)

I’d like to include Rust under “reasons C is growing obsolete”, but having studied and tried to code in the language I find it’s just not ready yet.. Maybe in five years.

As 2017 is drawing to a close, we have one relatively mature language that looks like a plausible C successor over most of C’s application range (I’ll be more precise about that in a bit) and an awkward youngster that might complete successfully in a few years.

I know that, not doing a lot of low-level programming myself, even out of what programming I have done (not much) I’d long jumped ship to Python – heck, didn’t “get” Object Oriented programming until Python – really appreciated Objective-C as well, put up with PHP, and found Perl useful for some stuff. Never got into Ruby and have a love – (mostly) hate relationship with Java.

Yeah, I could allocate and release memory well enough – that was rarely a bug issue for me at the scale I was working in. It’s just, even without factoring in libraries and the tools they give you, the time not spent worrying about issues like memory deallocation that don’t matter at “human speed” made it easier to toy with projects and get things done faster.

Some worthwhile comments there, too.

Last, but not least, over at Steve Jackson Games they cover some of the thought and decisions that went into the computer release of OGRE.

We could have massively streamlined some of the rules, or even cut them out completely, so an audience less familiar with the game wouldn’t get bogged down by the details. When you’re making a video game with a six-figure budget, a game that’s going to take over a year of development and absorb a huge chunk of your total development team, it’s not unreasonable to simplify that game to appeal to the widest demographic. After all, while Ogre certainly has a decent-sized audience of loyal fans, it isn’t even as popular as some other strategic boardgames, let alone in the dizzying heights of popularity that many top-tier AAA strategy video games achieve.

But that phrase – “loyal fans” – was something we kept coming back to when thinking about what Ogre should be. We collectively decided to make it as faithful to the source material as we could, to ensure that those fans – the people who had kept the game’s spirit alive for so many years – would get a game that really felt like Ogre, rather than a game that simply looked like Ogre.

Have fun. Always willing to go a round of OGRE  – maybe now on Steam as well as, of course, VASSAL.