All good software engineers want to write good code. Unfortunately, many software engineers believe that good code must always be efficient, leading them to optimise unnecessarily or prematurely. Code is written primarily for people to read, so it should be as clear and simple as possible. One of the few constants in software engineering is change, and clear, simple code is easier to change without introducing bugs. However, what good software engineers really want to write is good software. This is even more important in the new world of AI, but this isn’t an article about AI. I am not suggesting that code never needs to be optimised, or that an engineer shouldn’t consider performance when writing it. For example, a value that is expensive to evaluate but remains constant should be initialised outside a loop rather than recalculated on every iteration. However, halving the execution time of a 2ms calculation in a request that also makes a 40ms database call makes very little differenc...
I've been writing and blogging for as long as I can remember, and I've never really understood the difference between articles, essays, papers and white papers. I've certainly never known when I should use each term. So I asked ChatGPT to explain the differences and when I should use each one. This is what it told me. It turns out there's quite a bit of overlap, but the main differences come down to purpose, audience, evidence and formality. Essays An essay is about exploring an idea, developing an argument or expressing a point of view. It's often personal, reflective and doesn't necessarily require extensive research or a formal structure. For example, I've been reading a lot about software optimisation recently, particularly the views of Donald Knuth, Michael Jackson, Brian Kernighan and P. J. Plauger. If I were to bring their ideas together, compare them with my own experience and reach a conclusion about premature optimisation, that would make a good es...