Today I LearnedRSS

August 2023

Lecture Friday: Procedural Programming: It's Back? It Never Went Away

Some history of programming languages. Mostly how ALGOL is the language your favourite language is based off of. Also how it's not C like many people think, because C was based off of B and B was based off of ALGOL.

I love the, "Go was invented in the 1970s." To that I say, yes! That's largely why I love it.

In all seriousness, one thing that continues to bug me is people essentially abusing return statements to get rid of else blocks. This advice has even seeped its way into many static analysis tools. It frustrates me constantly and I'm sure you'll also start being bugged by it once you understand how it subverts the program structure. It's like kerning, once you know about it you'll notice it everywhere.

Overall, a great talk to understand and truly appreciate what procedural programming is, not what some people claim it is. To understand how it fits in with other concepts and why it makes sense for a good number of problems as one of the right tools for a solution.

Lecture Friday: Practical Creativity

If you like this talk, go read How to Fly a Horse: The Secret History of Creation, Invention, and Discovery by Kevin Ashton. This is probably one of the best talks on how to be more creative, offering practical steps. It explains how you can create brand new things. Fantastic talk! It's true that it's focused on creating new games, but the tools and methods discussed aren't confined to that. That's just the case study. I highly recommend practicing these methods because very few people actually understand them. Instead, they spout words like "innovation" and "engagement" when they're panicked, hoping someone else understands how to be creative.

Lecture Friday: The Power of Abstraction

Some great papers picked out from the history of language design and abstraction. Probably some stuff you already know, but other stuff that's new, and all with a passing discussion of the details. Beyond that, a number of small details about our history in software development more from someone actually working on these things at the time instead of a third or fourth hand history. Finally, a look at some of Liskov's work and the things she was working on, including the famous Liskov Substitution principal, though she points out it was mostly an offhand remark she'd made more than something big she came up with.

Unfortunately we don't get her slides so the details that are being presented to the audience are often missing. You'll have to pay close attention to what she's saying when she's discussing concepts to try and really visualize what she's describing in these designs and notations. There's a couple really neat ideas she discusses that could potentially help language authors help developers express more clearly (and ideally error free) the solutions they're programming.

Lecture Friday: How to Open a Black Box

An excellent talk about the concept of understanding everything in computing, opening black boxes if you will. It's probably one of, if not the reason I'm even in this field. There's just so much you can learn. So much you can understand about everything we've built. Not only that, but the talk is also a great deep dive into some great graphics concepts. Although he says only some people should learn these things, I disagree. Why not learn how everything works? You could know everything if you put your mind to it. It just takes time and building up the right prerequisite understanding to stand on the shoulders of giants instead of standing on their toes. So spend the time. The journey of knowledge is incredible and the heights are unimaginable (the money's not bad either).