4 ms·
(Note that this response isn't an attack on you specifically, it's just my feelings towards this argument in general) Where is the magical divide between "art"
by jgg 16y ago
(Note that this response isn't an attack on you specifically, it's just my feelings towards this argument in general)
Where is the magical divide between "art" and "science" in the field? Do the adherents of either side even know what they're defending?
If I know what a finite state machine is and how to apply it, does that make me "scientific"?
If I hack together a web application in Scheme, instead of some Mathemagical, Dijkstra-approved language, does that make me an "artist"?
Why can't people just accept that you need some of both to be a good programmer?
- jacquesm 16y agoTo me the art part in programming is that part which has not yet been 'beaten to death' and formalized. As soon as something is idiomatic I think it ceases to be art, but that does not diminish the artistry of the person or people that first came up with that.
- RodgerTheGreat 16y agoTo quote Theo Jansen, "The walls between art and engineering exist only in our minds." http://en.wikipedia.org/wiki/Theo_Jansen http://en.wikipedia.org/wiki/Theo_Jansen
- modokode 16y agoAnd to counter with a Donald Knuth quote, "We should continually be striving to transform every art into a science: in the process, we advance the art."
- mceachen 16y agoHere here! After witnessing N software fads with the pendulum of complexity and convention and configuration swinging to and fro, I firmly believe software crafting is much more similar to writing a book than constructing a bridge. Preferably a book without any surprising twists. Or homicides. But extra chunky bacon.
- silentbicycle 16y ago> If I hack together a web application in Scheme, instead of some Mathemagical, Dijkstra-approved language, does that make me an "artist"? Dijkstra would not have liked this.
- jgg 16y ago:) Was it Dijkstra that advocated writing everything in assembly, or am I thinking of someone else? I know he was big on formally verifying the correctness of programs, but I thought I remember him saying that for implementation purposes, he advocated assembly. Or was that more of a "if you can't write it in assembly, you don't understand all the parts" deal? It seems he hated FORTRAN, APL, BASIC, and PL/1, and only later did he like LISP. I wonder what he would have thought of Haskell. Standardization started in the 80's, so he would have been alive when it was being ironed out. A search in the EWD archives didn't reveal anything though. EDIT: http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/EWD1213.html http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD12x... It appears that he liked functional languages... >The clarity and economy of expression that the language of functional programming permits is often very impressive, and, but for human inertia, functional programming can be expected to have a brilliant future, the more so because today's computers admit quite efficient implementations of functional programming languages. but... >In particular, evaluating a functional program with pen and paper is a pain in the neck! So he spends the rest of the paper talking about the predicate calculus and relation calculus.
- msbarnett 16y agoDijkstra is largely emblematic of the wing of Computing Science that seems to regard programming as déclassé
- jgg 16y agoFrom his writing, I never got the feeling that Dijkstra himself hated programming, just that he hated most of the languages and ideas people used. Can you point to a particular essay that echoes this attitude, or is that just based on the (correct) observation that he was more a theorist, and they tend to scoff at the lowly programmer?
- m0nty 16y ago> Where is the magical divide between "art" and "science" in the field? We need to revive the word "artisan" which has connotations both of technical ability and artistic sensibility. Look at it like that, and programmers are no different from thousands of generations of craftsmen from here to the pyramids. It's just that the tools of our trade are usually far more complex than theirs. (Although I still have no idea how to build a pyramid.) I think this is why some people like to compare programming to painting or writing or whatever their other life's endeavour is. I don't think there is a direct correlation between programming and those other things, but you start using the same parts of the brain for parts of both activities, so it feels as though it's roughly the same. So here's my comparison between programming and writing: every word must be relevant, there is no redundancy, no unnecessary repetition. Good code and good writing must be tight, clean and comprehensible. I mentioned this to a co-worker once and he said "I'd never thought about it like that. I think it's more to do with mathematics." Which it also is.