Security Retentive had an interesting perspective on proper engineering in software as it pertains to the Engineer's Code of Ethics. Which reminded me of a post I've wanted to make for a long, long time.
I've probably written about a dozen lines of Forth in my life, so I don't know for sure that the issues don't exist. But with regards to writing code with excellence - academically "correct" code, what if people who wrote the following pieces of software did so with the same haste that many web applications are written with:
- Device drivers
- Flight Control Systems
- Power systems
- water/sewage systems
- Defense systems
- Voting Machines
Am I being naive to think that input validation, output filtering, and flow control are the real building blocks for really important systems? I mean, can you imagine if a nuclear power plant had the firmware equivalent of a cross-site scripting vulnerability?
I really wish even web developers would begin to see their job as a craft - a highly skilled position that needs care and thought, just like people who engineer drawbridges.