What’s wrong with OO?

Some thinking over at Quora : What’s wrong with OO? Continuing some thoughts that have been haunting me since I originally phrased them in the answer about designing the perfect programming language : Phil Jones’s answer to How would you design the perfect programming language?. And in response to Alan Mellor‘s comment on Phil Jones’s […]

A Tower of Simple Systems

I posted this on Future Programming at Quora : A Tower of Simple Systems Re-reading the answer I reposted here a couple of days ago about the “Holy Grail” of programming language design : modification. https://www.quora.com/q/qqylyzqgpwisoecc/What-is-the-Holy-Grail-of-programming-language-design So here’s a question. A dumb solution … But what if we created a system as a tower of […]

On Architecture and Modules

Another long Quora Answer Why is it important to agree on software architecture principles? In a sense, some of this is an update on my thinking on “modularity” (eg. ThoughtStorms:DecompositionByLanguageIsProbablyAModularityMistake Well, possibly it’s only important in an “organizational” sense. In that people in your team or project need to be aligned in their conception of […]

Future Programming on Quora

Quora has introduced the idea of “spaces”. A kind of “blog” or curated collection of existing answers from different people, to help organize answers around particular themes. I just created a Future Programming Space to gather my answers about various ideas in the future of programming languages. I still intend to move my answers to […]

Which language is better for creating DSLs, Clojure or Haskell?

Another Quora answer. Part of my increasing admiration for the virtues of EDN in Clojure. Which language is better for creating DSLs, Clojure or Haskell? Clojure has a slightly different philosophy than most Lisps, I think. In Clojure you’d be more likely to make your “DSL” in EDN (“Extensible Data Notation”, which is a bit […]


Further to the previous post. The talk on Hazel is fascinating. I’ve been thinking for a while about the importance of being able to program “in your own order” ie. fill the blanks of your decision making about your program as and when you have that information available to you / or as you feel […]