The Poetry of Programming

“Writing software should be treated as a creative activity. Just think about it — the software that’s interesting to make is software that hasn’t been made before. Most other engineering disciplines are about building things that have been built before. People say, ‘Well, how come we can’t build software the way we build bridges?’ The answer is that we’ve been building bridges for thousands of years, and while we can make incremental improvements to bridges, the fact is that every bridge is like some other bridge that’s been built.” From an interview with Richard Gabriel

[Another quote from the interview: ” So, the idea behind the MFA in software is that if we want to get good at writing software, we have to practice it, we have to have a critical literature, and we have to have a critical context. It looks like we may be able to start a program like that in the next year or so at a major university that I’m not free to name. It’s probably going to be called a Master of Software Arts.” From the other side of the coin, as a literature Ph.D. who programs on the side, I sometimes face great difficulty talking about my programming activities with non-coding colleagues (which is, in my case, everybody else in my department). Of course, books like The Soul of a New Machine and Hackers already provide a useful vocabulary for examining the values and practices that are — pardon the pun — “encoded” in cybercommunities. I find that many of the CS majors I teach are eager to contribute to classroom discussions on such topics as values and ethics, but that in their CS courses they are so busy learning code that they have little time for such discussions. Maybe that’s not typical? Our CS department has no graduate program, so the vast majority of students are focused like a laser beam on graduating and getting a job.–DGJ] —The Poetry of ProgrammingSun)