« Adopt! | Main | Blair's new proposals and "tru[e] Islam" »

Friday, August 05, 2005

The future of computer programming

I don't know much about computer programming, so my assumptions may be all wrong.  Please correct me if they are.

Twenty years ago, people had to have a basic understanding of computer programming if they wanted to interact with computers.  Not an in-depth understanding, of course, but some intuition about how a computer accepts and follows orders; even some knowledge of programming languages.  People who used computers a lot and got them to do interesting things probably had to know more than dilettantes.  Such people were themselves, in effect, computer programmers.  Mere computer users--sophisticated ones, at least--had the basics necessary to become real programmers.

Today, however, my sense is that few of us who interact with computers understand how they work.  Kids growing up today don't have to learn anything about C-prompts or anything like that.  And we can do all kinds of interesting and important things with computers without knowing a darn thing about how they work.

Are these assumptions accurate?  If so, does it follow that the pool of potential programming innovators is likely to dwindle, since there are going to be fewer school-age kids who have a basic understanding?  (Of course, it may well be that innovation will just travel to different media.)

This is kind of like the argument my grandparents used to make when we used calculators in school: how will the kids learn principles of mathematics if they just have to push buttons on calculators?

Posted by Hillel Levin on August 5, 2005 at 03:38 PM in Odd World | Permalink

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8341c6a7953ef00d83458e3ce69e2

Listed below are links to weblogs that reference The future of computer programming:

» Automation and Innovation from Automating Invention
Hillel Levin at PrawfsBlog comments on the decreasing extent to which computer users need to understand how computers work. He asks whether "it follow[s] that the pool of potential programming innovators is likely to dwindle, since there are going to... [Read More]

Tracked on Aug 23, 2005 6:19:05 PM

Comments

Eeeeehhhh.... I don't think your assumptions are terribly accurate. First of all, the comparison's a little strange. 20 years ago, most people didn't use computers regularly, and certainly not like they do today. If we imagine that 10% (a number pulled totally out of my ass) of the population used computers back then, the remaining 90% were almost totally ignorant. Now, perhaps 90% are using computers -- but it's still the same 10% or similar number who actually know what they're doing. So the net knowledge has increased: it's gone from 10% know everything 90% know nothing to 10% know everything 80% know a little 10% know nothing.

Also, I'm no programmer either, but 20 years ago, the computer du jour was the apple IIIe for home etc. users as I recall -- machines like that. (Actually, that might be more like 16, 17 years ago -- I remember using those suckers back then.)

All you needed to know to operate one of those was "insert disk, press button." If you wanted to be really fancy, you could learn basic, which a level of complexity roughly comparable to the HTML that most everyone knows right now.

(Also, knowing about c-prompts is hardly equivalent to programming!!!!)

Posted by: Paul Gowder | Aug 5, 2005 4:16:38 PM

"Mere computer users--sophisticated ones, at least--had the basics necessary to become real programmers." The same is true today. Before it was BASIC or batch scripts. Nowadays it is Word macros or Excel spreadsheets. Spreadsheets blow away the user/programmer distinction that you have raised. Using a spreadsheet is programming. The same is true of authoring web pages. You start with once you start dabbling with JavaScript, you are no longer a "mere user". You have access to a full blown programming environment. The environments have changed, but users with the urge to tinker have plenty of opportunities to start programming. In other words, plus ca change ...

Posted by: ac | Aug 5, 2005 5:29:30 PM

Well, my pet peeve is the lack of techological competence of many State Court judges in Florida and California. Disabled people frequently have to become very up on technological advances because technology is more and more being used to accommodate their disabilities. For example, a disabled user of voice-recognition Speech-To-Text assistive software has to learn an additional layer of computer complexity compared even to the ordinary Joe-Geek. Having litigated extensively in the two States, I am at a loss for the judicial 1950s understanding of 2005 technology.

It is incredible how (1) a Florida State Court Judge could suspend a perfect unblemished driver's license over a long term driving record because, in his estimation of modern technology and primitive understanding of disabled people, a disabled user of voice-recognition software (who needs near perfect vision to see the text on the screen which is spoken to the computer through a microphone) means the person is 'blind' because voice-recognition 'strongly suggests' the person needs a blind man's screen reader (computer reads aloud to user who cannot see); (2) a California Chief Justice and Clerk would entertain such irrational fears of voice-recognition so as to ban Court access and bar admission to all quadraplegics, people without arms, and autistic/learning disabled who utilize such technology; (3)Florida's Attorney General would believe disabled people who use voice-recognition are a "spector" who should be denied driver's licenses. And the head of that office is running for Governor.

I do not find such an abysmal level of lack of technological competence in the Federal courts, which, thankfully, are beginning to accept such technological accommodations for the disabled. Perhaps the implementation of PACER has given rise to more technological savvy in the Federal courts, having to make use of the technology in the every day business of the courts. At least this is an educated guess for why things are the way they are.

Posted by: Mary Katherine Day-Petrano | Aug 5, 2005 5:46:23 PM

"Today, however, my sense is that few of us who interact with computers understand how they work."

The same could be said of cars. Years ago, most males could change their oil, replace brakes, etc. Today, almost no one does this for himself or herself. Instead, we take our cars into specialists.

The same will be true of computers. There will always be technies just like there will always be gear heads.

Posted by: Mike | Aug 5, 2005 5:52:05 PM

"Today, however, my sense is that few of us who interact with computers understand how they work."

The same could be said of cars. Years ago, most males could change their oil, replace brakes, etc. Today, almost no one does this for himself or herself. Instead, we take our cars into specialists.

The same will be true of computers. There will always be technies just like there will always be gear heads.

Posted by: Mike | Aug 5, 2005 5:53:09 PM

Mike:

Excellent point; in fact, cars immediately came to mind after I posted the question. Query: does this state of things make car care (and by analogy, computer care and programming) more expensive? Suggested answer: yes. BUT it also means that people in general (non specialists) won't spend time on car care, and thus are more efficient in other areas.

Posted by: Hillel Levin | Aug 5, 2005 6:04:07 PM

Hillel: your implication (more efficiency in other areas) only goes so far. I sumbit that there's a more problematic reason afoot in the car situation (and possibly in the computer situation): deliberate complexification. Car engines are a LOT more complex now than they were 20, 30 years ago, as I understand it. (I'm no mechanic, but for comparison purposes: the last time I had to have my BATTERY changed on my 2000 model car, it cost $200 because the mechanic basically had to take apart half the engine to get at it, compare to old cars where anyone could remove the battery themselves and replace it.) They require more special equipment and training to learn it.

So it's not necessarily that people are turning aside from car repair to focus on more profitable endeavors, so much as the car manufacturers and the car mechanics are making it more difficult, possibly deliberately to soak the public. (Cf. for example frivolous "inspection" requirements in many states that were clearly created by the auto mechanic lobby in order to force people to spend piles of money fixing utter nonsense like chipped taillight covers that have no safety implications whatsoever.)

Could the same happen in computers? Maybe...

Posted by: Paul Gowder | Aug 5, 2005 6:09:07 PM

Paul, you could very well be right. And I don't think there's any "maybe" about it when it comes to technology. (I don't know whether it is deliberate complexification or necessary complexification; but I do think there is serious complexification, and computers are increasingly becoming the province of specialists.) If I'm right, this challenges your first comment to my post.

Posted by: Hillel Levin | Aug 5, 2005 6:22:27 PM

I don't think this should be a real concern. People who will really innovate in the area of programming are likely to to be motivated anyway.

Most good programmers that I know got into programming because they were intensely motivated to create software, to make the computer do exactly what they wanted it to do. I don't think exposure to command-line interfaces made any difference.

My background is a CS undergrad degree, plus a few years in industry as a software developer, and now a CS professor.

Posted by: Kenneth Chiu | Aug 5, 2005 6:37:44 PM

Hillel: I think the situation is a bit more complicated with respect to complexification of computers. Just thinking about operating systems for example, dos/windows has certainly gotten more complicated. Back in 1994 or so, I could easily go under the hood in dos and win 3.1 and fix any problem/obnoxious software etc. Config.sys, autoexec.bat and win.ini were all one needed.

Nowadays, fixing misbehaving software in windows is nearly impossible for anyone except a professional because of "registry entries" and that lot.

I don't think that really challenges my first comment however, because the top 10% I was talking about before, the non-"lusers," use linux, BSD, BEos, etc., none of which have gotten significantly more difficult in the same amount of time to my knowledge. The people who are windows users right now are, for the most part, the same people who were non-users 20 years ago, or only very casual users of the "insert floppy, play carmen sandiego" type.

Posted by: Paul Gowder | Aug 5, 2005 6:40:58 PM

Hillel,

What do you mean by "computers are increasingly becoming the province of specialists"? Do you mean software development, or do you mean just using computers?

For software development, there is some truth, but it really depends. That is, there certainly is an explosion in all the different languages, technologies, standards, etc. But on the other hand, this can also help allow non-experts to use computers.

For example, from one standpoint, the development of PHP introduces yet another language. It encourages the development of "web developer" as yet another specialty. On the other hand, it probably also allows people to become web site developers who might not have the skills/time/temperament to learn more general-purpose computer languages, such as C, Java, or C++.

In other words, the splintering of computer programming into many subspecialties probably actually increases the accessibility of programming to the masses, rather than decreasing it. There are some distinctions between computer programming and car repair that might be meaningful and that I might describe in a later comment.

Posted by: Kenneth Chiu | Aug 5, 2005 6:52:52 PM

I would probably agree that it is more difficult to fix or tinker with Windows XP than with MS-DOS, or maybe even early Windows. In this sense, car repair is the same as computer repair. But I'm not sure that just because computers as a whole are getting more complicated, this will lead to less programming innovation.

Posted by: Kenneth Chiu | Aug 5, 2005 7:02:58 PM

What we lose in specialization required to deal with computers we gain in ubiquity. So maybe only 1% of the people in the future will really get into the guts of the computer, as compared with 100% that had to in the past. It's easily made up for by the fact that nearly 100% of the population will have computers, as compared to 0.0001% in the past.

Posted by: Heidi | Aug 6, 2005 3:02:21 AM

Post a comment