Posts
Recently, I’ve been working on a package intended to add zero overhead monadic error handling into
Fortran. I mostly just wanted to see if it could be done, and apparently I enjoy doing silly
things in niche (at least nowadays) programming languages. Like most people who write code for
scientific number crunching I have a bit of a love/hate relationship with this language; it has so
many weird quirks, but it is also just so easy to write high performance code in. Even if you
don’t like it, you definitely have to respect the fact that the first high level language worked
so well that it’s still the goto language for supercomputing. Speaking of goto: writing this
package got me thinking about some of the weird, interesting features Fortran has had throughout
its life that you don’t really see in most other languages. Wome of these features are really
interesting, and can really get you thinking about just how different programming can be from the
heavily C influenced style most modern languages have adopted.
I have an embarrassing admission to make that will probably raise many eyebrows but please, hear me out:
I love Prolog
And before anyone says it: yes, I know I shouldn’t. I know it’s an obsolete, slow, unoptimisable borderline undebuggable language. I know it is based on a programming paradigm that is long since dead and that most programmers (if they’re even aware of it) spit on the grave of and bid an enraged “good riddance” to. Some people might describe it as a kind of Stockholm syndrome I experience as somebody who spends a lot of time working on symbolic AI concepts but I promise you: you just don’t know Prolog like I do! Prolog really does love me, I swear! It’s just that we’re going through a rough patch right now, that’s all…
If you’ve stumbled across this, you’re probably asking yourself: “What the hell is this?”. Or you might have any one of a number of questions about it. I highly doubt anyone but me will ever read any of this blog but, in case they do, I feel it should probably begin with an overview of what the hell this is so it doesn’t get mistaken for the ramblings of a madman in the vein of eccentric classics like the “timecube” guy (anyone else remember that craziness?). Here, I will attempt to anticipate and answer questions that might be in any reader’s heads.