A Marriage of Convenience
The preceding 8 blogs addressed some of the issues that the use of programming languages force us to overcome when developing computer programs. In general, we got married early to a methodology that seemed enough like us that it would be a fruitful union, and certainly, it has born us many offspring. Despite any complications, delays and differences, we have remained faithful ever since the beginning. But perhaps we have irreconcilable differences and it is time for new relationships (it’s not you – it’s me).
Some of the information presented has been more historical than analytical, but it seemed important that we consider how computer programming got started and how that beginning started us down the path of using human-like language to describe computer programs. This series has discussed:
- Beginnings of computers (Analytical Engine and Lady Lovelace)
- Use of programming languages was accidental (or incidental)
- Languages are evocative and imprecise
- Languages are non-visual (engineering drawings are precise)
- Programming languages are wordy
- Programming languages are redundant and ambiguous in their vocabulary
- Programming languages depend on punctuation
- Languages cannot support parallelism (not like split-screen TV)
In thinking about the next generation of program development methodologies, I’m reminded of that old joke about the Irish farmer who was asked for directions to Dublin. “If I were you,” the farmer replied, “I wouldn’t start from here. I’d go over to Kilkenny and I’d start from there.”
In other words, if we really want to make dramatic improvements in program development efficiency, we have to break with what was done in the past and pick a completely different starting point.
I’m also reminded of one of Dr. Phil’s famous lines, “If you keep doing what you’ve been doing, you’re going to keep getting what you’ve been getting.”
Programming languages that resemble human-language have taken us a long way, but we’re not seeing any significant improvements in the quality of programs that are delivered, nor are we seeing any significant reductions in development times. It is time for something new.