3 ms·
There's been a lot of "programming is a creative pursuit" analogies (I'm guilty of blogging about it as well: http://carcaddar.blogspot.com/2011/04/programming-
by sedachv 15y ago
There's been a lot of "programming is a creative pursuit" analogies (I'm guilty of blogging about it as well: http://carcaddar.blogspot.com/2011/04/programming-is-creative-pursuit.html http://carcaddar.blogspot.com/2011/04/programming-is-creativ...).
The motivational factors and work styles are similar, but I think the arguments for it being like painting or like writing are unconvincing. I've come to the conclusion that what programming is really most like is analytic philosophy.
The key insight that lead to this is thinking about ontologies - basically, naming things, but it also goes deeper to deciding how to map the problem onto data structures/design the class hierarchy. This is the same basic idea Evans had for Domain-Driven Design, although I don't know if he made the connection to the philosophy concept of ontology back then (I don't know if he is interested in philosophy, but I do know someone that worked with him who knew about this stuff).
In short, if you can't think or name what it is you're trying to write about, your writing will not come out clear.
- yolesaber 15y ago"Whereof one cannot speak, thereof one must be silent." ~ Ludwig Wittgenstein It has been a while since I read it, but I had always imagined the "Tractatus Logico-Philosophicus" as a large function in which you input syntactically-correct sentences and it returns the truth-value, which can then be used to determine the clarity of the "picture" (http://en.wikipedia.org/wiki/Tractatus_Logico-Philosophicus#The_Picture_Theory http://en.wikipedia.org/wiki/Tractatus_Logico-Philosophicus#...). Truly fascinating. I should re-read it sometime. I feel like it has some parallels with the work I am doing in my "Design of Programming Languages" course. If you have a background in analytic philosophy, you may find this of interest: http://www.hxa.name/notes/note-hxa7241-20110219T1113Z.html http://www.hxa.name/notes/note-hxa7241-20110219T1113Z.html [Wittgenstein for Programmers] edit: well I'll be, hxa7241 himself just posted the link. Great minds think alike perhaps? ;)
- hxa7241 15y agoAs for philosophy, the pedigree is certainly there. Philosophy gave rise to, and helped develop, logic, and logic, in the early 20th century did rather give rise to programming. You could easily make an unbroken line of thought. So there certainly is something significant in common. But software is essentially about practical application. Programmers seem to have difficulty in simply saying that programming is most like engineering design. It is probably because most people are unfamiliar with what engineering design is -- they perhaps think it only about material, or about absolute control. Engineering is at root logical and creative -- in a particular kind of combination, and for practical purpose. That is just like software.