Programmer's Don't Need Permission to Write Code
After hours and on their own clock software developers aren't in need of someone to assign them tasks to complete, or problems to solve. To write fantastic code, they just need enthusiasm and time. This is the perfect time for them to focus on pursuing their passion. Writing software, while still challenging to many, is going to become more natural over time and appeal to a wider audience (or at least I think so). There are economic forces driving it in this direction (programs still cost too much time), hence my supposition.
Even trivial reassignments of existing algorithms to new data types can take a competent programmer hours of interface alteration and debugging (if you think that was boring to read, imagine the coder doing it). The time required to go from high level designs to full scale optimized implementations (debugged to satisfaction) is still too long to allow very casual development. As software programs take on more specialized roles over time, they require more specific knowledge of the area of interest, and not every specialist has a programmer on call full time. It is my belief that these forces will drive simpler and more powerful programming languages to respond to natural speech (and other straightforward or exotic interfaces).
This change will lead to a larger number of software developers in the near future. Specialists of all types will be able to coax a program into doing a specific task, in a precise way. I perceive the need for a logical assistant of some type (tricky software, simple AI?) but I'll save that for another post.
People Will Need Development Tools
A very popular domain of software will be developmental support tools, remote collaboration, and communication programs. I can envision developers collaborating from around the world on a growing number of specialized software tools. They're going to need a variety of programs to make their (and our) task easier.
The high demand programs (in no particular order) are:
- interface tools
- natural language processing programs
- advanced interface devices and programs (brain wave reader linked earlier, imagine coding by simply thinking)
- social communication applications
- web applications on other APIs (twitter apps, facebook apps, etc)
- social asynchronous management, project manager packages