Blog Archives

Remembering COM

In the late ’90s I thought COM (Microsoft’s Component Object Model) was the way of the future. The whole architecture starting with the IUnknown interface was very elegant. And to hear Don Box explain it, COM was almost inevitable. I

Tagged with: ,
Posted in Software development

Programming miscellany

Here are a few of my favorite programming-related links that I’ve run across lately. Functional Programming with Python NoSQL is dual to SQL Why you would want to program at fifty (or any other age) The Poetry of Function Naming

Tagged with:
Posted in Software development

Defensible software

It’s not enough for software to be correct. It has to be defensible. I’m not thinking of defending against malicious hackers. I’m thinking about defending against sincere critics. I can’t count how many times someone was absolutely convinced that software

Tagged with: ,
Posted in Software development

Big data cube

Erik Meijer’s paper Your Mouse is a Database has an interesting illustration of “The Big Data Cube” using three axes to classify databases. The volume axis is big vs. small, or perhaps better, open vs. closed. Relational databases can be

Tagged with:
Posted in Software development

How to be a functional hacker

From Erik Meijer: Functional Hacker := Think like a fundamentalist, code like a pragmatist. Related posts: 85% functional language purity You wanted a banana but you got a gorilla holding the banana

Tagged with:
Posted in Software development

Pipelines and whirlpools

Walter Bright made an interesting point in his talk at GOTO Aarhus this afternoon. He says that software developers like to think of their code as pipelines. Data comes in, goes through an assembly line-like series of processing steps, and

Tagged with:
Posted in Software development

Dialing back the cleverness

Last night I ran into Damian Conway at a speaker’s dinner for this week’s GOTO conference. He’s one of the people I had in mind when I said I enjoy hearing from the Perl community even though I don’t use

Tagged with:
Posted in Software development

Russian novel programming

One of the things that makes Russian novels hard to read, at least for Americans, is that characters have multiple names. For example, in The Brothers Karamazov, Alexei Fyodorovich Karamazov is also called Alyosha, Alyoshka, Alyoshenka, Alyoshechka, Alexeichik, Lyosha, and

Tagged with:
Posted in Software development

No technology can ever be too arcane

In this fake interview, Linux creator Linus Torvalds says Linux has gotten too easy to use and that’s why people use Git: Git has taken over where Linux left off separating the geeks into know-nothings and know-it-alls. I didn’t really

Tagged with:
Posted in Computing, Software development

What is an object?

What is an “object” in object-oriented programming? It’s a clump of name->value mappings, some functions that take such clumps as their first arguments, and a dispatch function that decides which function the programmer meant to call. This reality is usefully

Tagged with:
Posted in Software development

Software fences

David Curran pointed out the following parable from G. K. Chesterton in reply to something I’d said on Google+. Though Chesterton had other things in mind, Curran pointed out that the quote applies to software maintenance. In the matter of

Tagged with:
Posted in Software development

Understanding recursion II

People often joke that in order to understand recursion, you must first understand recursion. This is funny as far as it goes, but it illustrates a common misunderstanding. (I’m not saying the people who make the joke don’t understand what

Tagged with:
Posted in Software development

Late to the party

Learn You a Haskell for Great Good is a hard book to judge by its cover. It’s about the Haskell programming language, but what is it like? The title and the art work are playful, and that gives the impression

Tagged with: ,
Posted in Software development

Software idioms

From Alan Perlis: Since large programs grow from small ones, it is crucial that we develop an arsenal of standard program structures of whose correctness we have become sure — we call them idioms — and learn to combine them

Tagged with:
Posted in Software development

Keeping multiple programming languages straight

Someone sent me an email asking how I use multiple programming languages and how I keep them straight. I thought I’d write my answer here in case someone else had the same question. I’ve learned programming languages out of a

Tagged with:
Posted in Software development