millions of personal machines and users, mostly outside of direct institutional
control. Where would the applications and training come from? Why should we
expect an applications programmer to anticipate the specific needs of a
particular one of the millions of potential users? An extensional system
seemed to be called for in which the end-users would do most of the
tailoring (and even some of the direct constructions) of their tools.
There are millions of people using personal computers. But the fraction of them who do any programming is miniscule. The applications and training come from a small number of companies becoming very rich by doing the programming for those millions of computers.
And yet I continue to read of people suggesting that the tailoring problem can be solved by teaching users how to program. What has happened instead is application developers have learned that it is much easier to program the users to suit the needs of the computer than it is to program the computer to suit the needs of the user.
> What has happened instead is application developers have learned that it is much easier to program the users to suit the needs of the computer than it is to program the computer to suit the needs of the user.
Apologies for going off on a tangent, but I feel this 'fact' (which strikes me as plausible) is one of the reasons that interfaces such as Siri, Cortana and Google Now are not used to their full potential by many people. In fact, most people with smartphones that I know consider the voice interface just a toy; a party trick.
A few months ago I decided to try and use Siri more regularly. At first it was primarily setting timers for cooking or a pomodoro-ish approach to my day. Then I started creating reminders (which on my phone are automatically sent to my OmniFocus / GTD inbox). Then I started creating one-off reminders for specific times ("siri, remember to bring my drawing notebook at 9:45" for a meeting at 10:00). Then I started using the geolocation feature. On top of all that I use siri for the simple requests like searches, the current time, whether it's going to rain, etc.
Having done this for a while, it baffles me to watch people around me set their alarms manually, install special egg timer apps, create manual tasks all the time, and so on, where a simple siri command would suffice.
While I do understand that many people might feel self-conscious using voice-commands in public, nobody I know uses them in private either, where they're plenty useful.
The only explanation I can think of is that the user is not properly programmed to use Siri, and Siri is not 'complete' enough (yet) to be used without some basic instructions.
(in a broader sense I notice this with all computer functions as well. Many people I know have no clue of what simple things they can do to vastly speed up their computer use. And that's largely because nobody taught them, and they're just not the type of person that constantly tries to find the optimal workflow.)
New ideas go through stages of acceptance, both from
within and without. From within, the sequence moves from
“barely seeing” a pattern several times, then noting it but
not perceiving its “cosmic” significance, then using it
operationally in several areas, then comes a “grand
rotation” in which the pattern becomes the center of a
new way of thinking, and finally, it turns into the same
kind of inflexible religion that it originally broke away
from. From without, as Schopenhauer noted, the new idea
is first denounced as the work of the insane, in a few
years it is considered obvious and mundane, and finally
the original denouncers will claim to have invented it.
So true, sadly. I deeply regret that today, many people interviewing for programming jobs get grilled over their knowledge of this particular OO design pattern or that, while neither the interviewer nor the applicant may realize that some of these "patterns" are just dogmas invented to deal with particular language limitations of (older versions of) Java, and entirely different patterns (or even paradigms) are available if only one takes the time to look past the boundaries of one's preferred (or prescribed from above) programming language.
IMO, prospective programmers should be invited to show true creativity and insight, not to just queue up to create the (N+1)-th CORBA framework.
Structured programming, modules, OOP, FP, ever more elaborate type systems, whatever next new thing is going to be seen as the One True Way, I still believe that Socrates will have the last laugh (...or grin)...
And yet I continue to read of people suggesting that the tailoring problem can be solved by teaching users how to program. What has happened instead is application developers have learned that it is much easier to program the users to suit the needs of the computer than it is to program the computer to suit the needs of the user.