3 ms·
When I speak about computer programming as an art, I am thinking primarily of it as an art form, in an aesthetic sense. The chief goal of my work as educator an
by michaelwww 14y ago
When I speak about computer programming as an art, I am thinking primarily of it as an art form, in an aesthetic sense. The chief goal of my work as educator and author is to help people learn how to write beautiful programs.
When we apply our own prejudices to "reform" someone else's taste, we may be unconsciously denying him some entirely legitimate pleasure. That's why I don't condemn a lot of things programmers do, even though I would never enjoy doing them myself. The important thing is that they are creating something they feel is beautiful.
I want to address my closing remarks to the system programmers and the machine designers who produce the systems that the rest of us must work with. Please, give us tools that are a pleasure to use, especially for our routine assignments, instead of providing something we have to fight with. Please, give us tools that encourage us to write better programs, by enhancing our pleasure when we do so.
Since JavaScript vs. TypeScript vs. Dart are on my mind, I just want to mention that I have little complaint with JavaScript as a language, mostly with the tooling. My style is to shape and rework a program until I feel it is both correct and elegant, by my taste. Automatic error checking, refactoring and componentization are important to me. When those things are missing, I'm wasting time doing it manually and feel frustrated that I shouldn't have to do this, like building a house with a hammer and a hand saw when I could be using a nail gun and a power saw. I'm not in it for the joy of hammering and nailing, I'm in it to build a nice house.
Note to Dart developers: forget about the advanced language features. Those can wait to version 1.1. Just ship 1.0 as a more pleasurable way to write JavaScript. That's how I'm using it and I suspect this will be attractive to a lot of frustrated JavaScript developers. The evolution of C# took a decade. You don't need to do it all at once. I'm guessing the constant changes to the language are frustrating your tool developers.