Category Archives: General

A win for design

Programming is not just engineering — it is design. All my hopes and beliefs about programming boil down to that one assertion, which has become my main cause. The misunderstanding of programming as engineering has many pernicious effects, infecting our tools, technologies, and practices. Computer Science embodies this fallacy in its very name. Therefore I […]

Posted in General | Comments closed

It’s a good day to code

We have ignition: an actual implementation of an actual language. Toy-like in the extreme, but it can run the sorts of simple examples I have been discussing the last few years. I think I can take it all the way to a prototype application framework. This is huge progress.

Posted in General | Comments closed

Delusions of Programming

It’s great to be coding again, after spending so long lost in thought and theory. This has been my longest break from programming since I started at 13. I now have a working virtual machine that supports the essential semantics of the language. The next step is a compiler. The good thing about having a […]

Posted in General | Comments closed

Switching to Plan J

My experiment with Scala is not working out. It’s just not ready for prime time, and is overkill for my needs. Reluctantly, I am falling back to Java.

Posted in General | Comments closed

For the good of software, software must die!

Programming is deeply disappointing. We continually fail to live up to our own expectations, more so than any other form of engineering or craft. And it’s not getting much better. The lack of any substantial progress is the most disappointing thing of all. Worst of all: it is our own fault.

Posted in General | Comments closed

What is Ruby&Rails’ secret of success?

The history of programming languages is depressing. Generally worse is better. Socio-economic factors dominate. But there seems to be one giant exception: Ruby & Rails. I haven’t studied them deeply, but they look like really good work that has succeeded on its merits. Ruby is a tastefully designed language with a coherent philosophy of making […]

Posted in General | Comments closed

Hello Twitterverse

As an experiment, I am announcing new blog posts on my twitter feed @jonathoda. I am also going to try tweeting pearls of programming wisdom that I find. Feedback welcome.

Posted in General | Comments closed

Why we shouldn’t number

The discussion on my previous post (Why numbering should start at one) suggests a new approach. Maybe these blogging tubes are good for something after all.

Posted in General | Comments closed

Why numbering should start at one

Should collection/sequence/array indices start with zero or one? Most current languages choose zero. For flux, I am choosing one. This choice is orthogonal, meaning that I can easily change it if it turns out to be wrong. The reason to discuss such a trivial issue is that it is an example of how choices that made […]

Posted in General | Comments closed

Still Alive

Hey, long time. Having a snow day here, which is a good day to catch up. My son got sick this summer, which knocked me out of commission for a while, but I am back to work now. As promised last June, I have defined the formal semantics of a core language that captures the […]

Posted in General | Comments closed

Pay no attention to that strange old man on Channel 9

Here. I actually haven’t watched it yet because it is just too freaky to see myself on video. I’ll wait till Edward Norton plays me in the movie version.

Posted in General | Comments closed

Emerging Languages Camp Wrapup

I meant to write this earlier, but I have been occupied with a family medical emergency. The EL camp was a great experience, and I hope they do it again. I met more interesting people, and heard more interesting ideas, than at any other conference I have attended. Naturally there were ups and downs. There […]

Posted in General | Comments closed

Emerging Languages Camp

Slides are at [PPT][PDF]. I will probably only have time to present a subset of these slides.

Posted in General | Comments closed

Vulcans vs. Apes

The biggest problem with programming is that we don’t agree on what the problem is. The comments on the previous posts reveal fundamentally incompatible views. I am equally shocked by the opinions held by some distinguished academics and leading practitioners. Our views of programming are so at odds that it’s almost as if we were […]

Posted in General | Comments closed

Mea Culpa

Reflecting upon my previous post, I am wondering why LISP triumphalists like Paul Graham annoy me so much? Perhaps it is because I used to be one myself, in spirit if not in syntax. And also because I now see them as a major symptom of what ails programming.

Posted in General | Comments closed

The Myth of the Super Programming Language

I just read yet another recycling of the old myth of how some esoteric programming language (often Lisp or Haskell) is the secret weapon that allowed a team to outperform expectations by an order of magnitude. Paul Graham has strongly encouraged this myth (see Beating the Averages), but it has been circulating for ages. It […]

Also posted in AgitProp | Comments closed

The Greater Apple Co-Prosperity Sphere

Much has been written lately about Apple restricting iPhone and iPad apps to only use Apple programming languages and libraries. This is indeed an alarming development for the future of programming. Opinion is split as to whether this decision shows Steve Jobs to be a visionary hero seeking only to improve the quality of the […]

Posted in General | Comments closed

Coherent Binding

Abstract for my talk at Emerging Languages Camp: We cannot evolve beyond imperative programming until we solve the problem of coordinating changes to state. Functional programming and transactions segregate the problem, but don’t solve it. I am exploring a new kind of language, inspired by modern “Model-View-Binding” application frameworks. The language uses bidirectional data binding […]

Posted in General | Comments closed

Haskell damage

Per Vognsen suggests a Haskell version of the damage function from my Schematic Tables talk: data Attack = Magic | Melee hit surprise defense attack = damage where effectiveness = power * (if surprise then 3 else 2) (power, damage) = case attack of Magic -> (5, max 0 (effectiveness – defense)) Melee -> (4, […]

Posted in General | Comments closed

Emerging Languages Camp

I have been invited to the Emerging Languages Camp. Sounds like fun. Let’s meet up.

Posted in General | Comments closed
  • Subscribe to Blog via Email

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.