TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The dumbing-down of programming (1998)

55 pointsby ioabout 16 years ago

13 comments

phugoidabout 16 years ago
She beautifully explained what draws people like myself to GNU/Linux. I have tried to convey some of these ideas to colleagues who are serious about Windows programming, to no avail.<p>It's not about Microsoft either. In my industry (flight simulation) there are some machines and systems where you can go deep and acquire design-level knowledge, and other systems where you're dealing with black boxes.<p>Some people prefer the latter; when things go wrong, you cycle the power switch and then contact the manufacturer if the problem still exists. I think some people take comfort in the notion that they are not ultimately responsible for whether the machines work or not. Sorry if that sounds terribly arrogant.
评论 #611377 未加载
评论 #611351 未加载
评论 #611350 未加载
stcredzeroabout 16 years ago
<i>We build our computers the way we build our cities -- over time, without a plan, on top of ruins.</i><p>Yes, but didn't Christopher Alexander, the Pattern Language guy, praise the way we sometimes build (unplanned) things like villages?
azanarabout 16 years ago
"But what if you're an experienced engineer? What if you've already learned the technology contained in the tool, and you're ready to stop worrying about it? Maybe letting the wizard do the work isn't a loss of knowledge but simply a form of storage: the tool as convenient information repository."<p>Right, and this is what a lot of code generation tools do. After understanding the problem, you write a tool which can write code to solve that problem in a more general sense.<p>Almost all the software we write can be thought of that way; they are information repositories for problems we already solved.<p>However, with a lot of things that require deep understanding, there are walls. These represent the places where a person can no longer fake understanding, and either have to stop immediately and develop some or give up. Before the days of wizards, users would encounter plenty of warning signs that their understanding was not enough well before hitting the wall. Example: your 100 line C program is segmentation faulting; time to better understand about pointers and memory allocation before you write a 20k line program depending on the same.<p>The problem is that wizards are very undiscriminating on who experiences the easing. The output is mostly the same for the experienced engineer as for the non-engineer. The brick wall for the non-engineer still remains, however warnings of danger ahead are hidden being a easy-to-use interface. There is no encouragement for them to go understand better before progressing, and instead they rush straight on into the wall. The still need all the understanding once they get there, but the encouragement to develop it comes later, and so the rate at which it needs to be learned comes faster.<p>The question this poses is really difficult: how do we abstract away the need to apply knowledge to the same problem repeatedly, yet avoid abstracting away the need to have that knowledge?<p>Otherwise, very worthwhile article. She captures the spirit of curiosity that drives the need for deep understanding in me, and probably most people here.
ioabout 16 years ago
Part 2 here: <a href="http://archive.salon.com/21st/feature/1998/05/13feature.html" rel="nofollow">http://archive.salon.com/21st/feature/1998/05/13feature.html</a>
schwankstaabout 16 years ago
Good article, but oh God, when she described the Visual C++ wizard I had these awful MFC flashbacks.<p>//TODO: Shower.
alanthonycabout 16 years ago
That was beautiful.<p>Her point about code being incrementally forgotten and IBM having "no on left who understands" was well taken. I think this is where and why open source comes into play. Most programmers understand this basic fact about code that non-programmers don't.<p>If IBM's air traffic control system had been open source, it likely would have never gotten to the point of obsolescence it reached.
Hexstreamabout 16 years ago
"Run as the root user from the root directory, type in rm -r f * , and, at the stroke of the ENTER key, gone are all the files and directories. Recursively, each directory deleting itself once its files have been deleted, right down to the very directory from which you entered the command: the snake swallowing its tail."<p>Actually that would be rm -rf * and it wouldn't delete /, the directory from which you entered the command, since with * you've selected all the directories in /, not itself. To do that you'd have to invoke rm -rf . or /, I believe. Though I'm not sure if after deleting all files the system will let you delete / itself? (moot point though)<p>Sorry if that was obvious to everyone...
评论 #611317 未加载
habsabout 16 years ago
At first it looked like link bait, but was well worth the read. Very articulate and for some reason I found it quite comforting.
评论 #610937 未加载
dfj225about 16 years ago
Wizards and GUIs (for the most part) only allow the user to perform operations that the developers have anticipated.<p>The beauty of interacting with the computer through the command line -- the shell or some other programmable interface -- is that you can do things that no one else has thought of before. You can write any program that is expressible in the language you use or string together the input and output of any program on your machine.<p>Buttons are nice, but sometimes you just need to be more expressive than that. When this mode of interaction is necessary, I find that the Unix way has a lot to offer.
softbuilderabout 16 years ago
I like the idea of hard drive as palimpsest.
Zakabout 16 years ago
Code generation is nearly always the Wrong Thing. Using the right abstractions is the Right Thing. The problem is it leads to a bunch of duplicated code... and they you have to change something.<p>The one exception might be scaffolding code, which isn't really intended to be kept.
评论 #612053 未加载
jasonkesterabout 16 years ago
Nice read.<p>I can't find any empathy with the author though. Her description of getting a cd-rom drive working in Linux embodies all the things I dislike about working with computers, and is the probably reason my dealing with Linux have been so painful.<p>I simply don't want another hobby. And even if I did, it wouldn't be "getting my computer to function at all." Linux seems to enforce this hobby on me, every step of the way. Granted it's a lot easier 10 year on from this article, but it's still just not fun for me.<p>I'd rather spend my time writing code.
TallGuyShortabout 16 years ago
This is so true - all too often the problems encountered in a project were caused because someone didn't really understand what was going on under the surface.
评论 #612115 未加载