This is a coined phrase, which describes the way applications will be created by 2006. No longer will there be a need for specialized computer programmers, for applications will be created by FieldSpecialists?
such as Chemists, Engineers, Accountants, Lawyers, Managers, Secretaries, Bus Drivers, Police Men, Garbage Collectors, and Ditch Diggers. Some of the ApplicationDevelopment
will be done via voice and motion commands.
Scary Scenario? Doesn't need to be. Plan ahead. -- MarkRogers
Pictures have already been made of the scenario in a commercial on Tv which show an arrest and capture of a citizen in much the same manner. The poor soul is dragged and dropped into a paddy wagon without the officers having to touch him.
I think my planning ahead would amount to betting against anyone who believes this strongly enough to put cash at risk.
I'll take a piece of that bet. Anybody remember Matrix Software's Matrix Layout? -- MartySchrader, eagerly awaiting suckers
It's always easy to predict the future by predicting that things that have already happened will have happened by some time in the future. Computer programs are already created by field specialists such as all the categories above --- although more often by lawyers, managers, and secretaries than by bus drivers, policemen, garbage collectors, and ditchdiggers. The problem with the latter categories of folks isn't that they can't figure out how to work a spreadsheet --- it's a combination of two problems: user interfaces for programming environments mostly suck when you aren't sitting at a desk, and ditch-diggers' bosses would usually prefer that the ditchdiggers not have access to unlimited communication and data analysis capabilities.
The scope of programs writable by folks other than computer programming specialists has dramatically increased year by year. Now plenty of nonspecialists create spreadsheets, Web sites, word processor stylesheets, keyboard macros. The situation will continue to improve dramatically (unless SoftwarePatents
effectively end innovation), but some people will still spend more time programming than others, some people will still have more aptitude for programming than others, and as a result, some people will be more skilled than others; and some programming problems are inherently difficult enough that the skill difference will matter, but still useful enough to solve that it's worth paying specialized programmers to do them. Computer programming is a field of knowledge in its own right, and like most such fields, it takes someone well-versed in the field to push forward its boundaries into uncharted territory.
Most folks literate enough to know better than to capitalize words like "Chemists" and "Managers" also know that the reason computer programming is difficult isn't just because of silly things like language grammar, obscure acronyms, ugly hairy APIs, invisible state, bug-prone interfaces, slow and small computers, long compile times, unpredictable performance, and buggy platforms. All of these are problems we need to solve to make it easier for managers and ditch-diggers to write software, and they're just a matter of technical progress; but other things take time both to learn and do, too. Visual design for comprehensibility still takes thought, skill, and experimentation; methodically questioning your assumptions to find your mistakes when you write buggy code takes time to learn; breaking down a concept into manageable pieces along reasonable boundaries remains as difficult as in MrPlato
's time; making arguments for the correctness of an algorithm remains as difficult as informally proving a mathematical theorem, the way EuclidOfAlexandria
did; designing tests to reduce the incidence of bugs will remain a tricky art, much like the art of finding counterexamples to a physical theory or a mathematical conjecture. Writing comprehensible user manuals still requires knowing how to write. And figuring out what to build --- that fuzzy intersection of the easiest and the most useful --- means you have to know what is most useful, and when you get into highly abstract realms like development environments and platforms, that requires real insight tempered by experience.
And you can already program computers with voice recognition software. BenWing?
has done it for years. And anybody who's edited a program on a platform that supports drag-and-drop cut-and-paste has used motion commands.
TeachMeToSmoke. Professionals who can intelligently translate the requirements of users into instructions aimed at a machine will be in demand for quite some time to come, methinks.
Users who need to do something and are over 2 years of age, will easily learn how to do what they want with the computers and peripherals available to them.
Things like: talk to their friends, take and process photos and camcordings, collect, listen to and compose their own music, buy and sell stuff they want (but may not need), wash and dry their own laundry in machines designed to allow hundreds and thousands of variations, read the news and follow their favorite personalities (sports, film, tv, musicians or newsmanufacturers). Store stuff, send stuff, receive stuff, share stuff, compute stuff, and trashcan stuff. --- the list goes on and on. As pointed out above, most of these things are already possible and require no radically new software or hardware developments.
Now if you are talking about artificial entities, like companies, corporations, governments and universities, there is indeed much need for programmers who can create, provide, and maintain programs which employees of the entities (users of another type) will utilize to execute the entities schemes and manufacture and distribute its products.
The list given by Mark at the top is a mixture of users who use computers as individuals as well as an employee or professional.
Programming is in a sense the throwing of switches and the connecting of devices to appliances. This can sometimes be done by pointing, clicking, dragging and dropping, speaking and waving the arm. These can be and are done by common unskilled and semi-skilled people as well as by professionals and experts from where they are, be it at a desk, at home, driving a bus, collecting garbage, digging ditches, mowing lawns, trimming trees, building homes, playing golf, or patrolling a neighborhood.
It is becoming easier as the days go by to use the mouse, to point and click, drag and drop. Microsoft Office OneNote
is an example of a tool which users may use that paradigm to do all kinds of things a user might want to do, and not have to know a thing about how it is done. I classify programs like this as Computer User's Basic Toolsets. Another program or three is Scansoft's PaperPort
, and a fast Media Browser called XnView
. When used with a well equipped computer (having Microsoft Office, InternetExplorer
(with third party additions), WinZip?
, Microsoft XP. The programming uninitiated can do "powerful stuff") If in addition, one has a working knowledge of one or three languages, like VisualBasic
Csharp Perl Python Ruby (onrails), Fortran, Cobol, Pascal, Assembly, Forth, Scheme, and other such, together with a compiler or three like Microsoft Visual Studio, and other (free) compilers, one can do a lot more without ever having to worry about someone else doing the things one wants to do. One can then "just do it". If the computer is set up for dual booting, or one possesses a second computer with a Linux Opsys like "Ubuntu", which is both free and easy to use, other avenues and paradigms which are not so easy to use and depend heavily on remembering what to type at the CLI, even more things are possible.