Still not dead

Nov 2, 2019 | | Say something

I’ve once again fired this thing up. I started with the goal of getting the code to a point where I could post it on github, but found a bug and fixed it. Now I’m going to go through and see just how usable this system really is – something that I’ve actually never done before.

I’ve been a professional developer for about 6 years now (less time than I’ve been working on this project). I always figured that as I got more experience I’d be less impressed with this idea.

But actually, quite the opposite – the professional software world is often about doing a lot of a simple thing. Risk is bad, and projects like this one that *hope* to accomplish a goal and have no target audience simply don’t happen.

So maybe it shouldn’t be surprising that as I look through the cgi scripts I’ve created, in which I naively coded an expert system-like debate system in Perl, I can’t help but be a little proud of myself. Somewhere in the process of fixing bugs and improving the system, I invented something that I really think is quite novel. Something that if it were built by a company would probably be peppered with marketing terms like “AI” and “Machine Learning”, which was never my actual goal or how I ever thought of this.

In the guts of the system it’s very mechanical. Perl code calls sql statements, which search a system of tables. That’s where the magic really is – the design of the table structure. Except it’s not really that magical at a detailed level. Or as the saying goes, any sufficiently undocumented system is indistinguishable from magic.

So that’s one thing bringing me back – the opportunity to work on something that’s not just a real, long-term challenge, but also is directed by me as I see fit. So much of the software development world is planned so that developers have a very clear goal. Which makes sense, if you want to be efficient and avoid wasted effort. But it does suck some of the joy out of programming. And perhaps it even stifles innovation a little – one would be surprised how much of the basis of modern computing was created by students messing around in their free time at MIT in the 50s and 60s.

But there’s another thing, which is the thing that got me into programming in the first place. I left law for the world of software in large part because I found that logic didn’t matter in law. Outside of STEM fields, logic is easily ignored when convenient, and an over-reliance on logic is certainly a handicap. But when writing software, logic is the primary factor. A judge may ignore your arguments, but the CPU never ignores anything. In law you may not understand how your simple black-letter law motion was rejected, but in computing if your program doesn’t compile there’s always a very good reason.

The only thing is, leaving law didn’t solve all of the problem. So much of life is just another version of the unassailable motion being rejected without explanation. Nowhere is this more true than in modern politics, where it sometimes is difficult to know if you’ve gone crazy or if the world’s gone crazy. That’s when a system like the one I’ve created begins to seem really refreshing – a place where there is an undeniable objective truth, at least insofaras one belief must be consistent with another.

It’s that ability of software – to be relentlessly consistent and logical – that draws me to it. In a world that feels increasingly arbitrary and illusory, the logic in software is something undeniably real and unavoidable. So I look forward to jumping back into this project, wherever it’ll lead. If nothing else, it’ll be a welcome refuge from the unreal world.


Posted in: Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *