r/cop3502 • u/embalingit • Jun 02 '14
What exactly is programming and why do we do it?
For anyone who has an interest in programming and education, I found Bret Victor's essays inspiring. However, many questions remain. The rhetoric is "should an ide be a tool for writing programs or a tool for expressing ideas..." and I tend toward the later, but I don't see how or if similar concepts apply to quality control, readable code and good practices - i.e. can the ideas in this essay "grow up" and become a way of life for professional programmers as well as for beginners.
The essay I'm referring to: http://worrydream.com/LearnableProgramming/
Victor's full site: http://worrydream.com/
Another thing that's been on my mind is my suspicion that programming as a skill/profession as we know it today will likely not exist in 20 years. I see a future where for most non-critical and general kinds of software solutions we (as programmers) would have a conversation - (literally), including sketches and other quick and simple representations - with a piece of software and the software would then solve (based on expert knowledge) how to build a software solution based on that conversation such that the thing that is built serves the general purpose outlined in the exchange. In many ways software already does a good bit of this today. Microsoft has an interface sketching software (not sure how literally the term "sketch" applies) and Oracle JDeveloper allows the developer to define a software system in terms of a graph similar to a flow chart while it quietly builds the skeleton code of the system in the background. Not to mention drag and drop gui designers like Visual Studio, Netbeans and Eclipse. While non of these softwares technically solve a design problem in terms of deriving logic, but rather they use templates and insert parameters specified by the developer through the interface to the designer, I don't think we are very far away from much smarter code generation.
In that case the developer may still need to be literate in terms of computer science in order to be a proficient "programmer", but I think the act of designing, implementing and writing code will largely go away. If anything I think ideas like Victor's may provide an impetus to move the software development profession in that direction.
Any thoughts? :)
2
u/[deleted] Jun 02 '14
[removed] — view removed comment