What is a programmer? My definition is someone who is in full control of the computer. With that definition, do programmers still exist?
My son, who graduated recently in computer engineering, says many people enter the program for the potential rewards. When the IT market collapsed, many students dropped out while others stayed because they enjoyed the program and were ready for the rebirth of the IT market.
But is there still a worthwhile career in programming? The industry still needs programmers who can work with mainframes, although the market is limited. There is, however, an interesting and growing career prospect as a programmer with microcontrollers, provided one stops relying on Windows and breaks away from the usual way of doing things.
In a report, Robin Bloor, president of Bloor Research, a U.K. think tank, said, “The sad legacy of the von Neumann approach is fragmentation, and we have lived with this legacy for decades.”
The legacy of the von Neumann approach is not the greatest: operating systems with huge amounts of waste, spreadsheet packages by the dozen, and security problems galore. In the early days programmers were kingpins but Windows and similar operating systems have killed programmers’ initiative and downgraded them to clerks.
Anyone who uses Windows or a similar operating system is not, by my definition, a programmer, whether or not they use Java, C or another programming language. In doing so, users are forced to utilize interfaces, graphics, video and the like developed by others — and therefore they are not in full control. People who use database or spreadsheet packages mainly follow rules and fill in the blanks. They are form-fillers.
I consider myself to be both a systems analyst and a programmer, and I do not use Windows, nor do I intend to. Windows is just a traffic policeman giving out ‘frustration’ tickets if you do not follow the rules. Why should I load up my computer with a huge amount of stuff I can’t control and never need to use?
Regardless, microcontroller chips, used for smart cards and embedded systems, have a desperate need for innovative programmers because many of the managers of microcontroller applications are still, in many cases, following the outdated von Neumann legacy, building useless operating systems and bloated language structures like Java instead of taking control of the computer with an assembler language.
The smallest full (rather than the usual subset) Java-run system on the market for microcontrollers is 50 kilobytes, more than 10 times what it needs to be. My own microcontroller work shows one can build a Java-run system in about 5 kilobytes, but it is ridiculous to use any standard language on microcontrollers.
Let me illustrate with a recent RFP sent out for the development of a national identity smart card to include biometrics, licenses and other applications, along with a country-wide encryption system using personal keys.
When I read the RFP I knew there was not a company in the world that could answer the RFP with honesty. The most frequently used technology is cluttered with languages and operating systems. Eighteen companies bid, with quotes ranging from $5 million to $18 million — which only showed that bidders were groping in the dark.
National identity cards are a growing market and that is just one of the many promising areas for programmers, provided they are innovative and are not bound by traditional approaches.
Quick Link: 056451
Hodson is an Ottawa-based IT consultant. He can be reached at bernard@genetix.ca.