6 ms·
Computers are for humans
- moistgorilla 14y agoYour post doesn't make sense to me and I think it's because you misunderstand what programming actually is. Programming, at it's core, is just the act of giving the computer commands to execute in a certain way. There is no way to automate a process using a computer without using programming. So what you suggest, is only possible in two ways. Build an artificial intelligence that programs for us and decides what we want or somehow code a piece of software that can solve any problem and automate any task. Neither of which are currently possible or really desirable (imagine the bloat of the software). Everyone should learn to program, even at the highest level of abstraction (python, visual basic, SCRATCH), just so they understand what the tool (computer) they have in their hands is capable of. People go through their everyday lives not even considering automating certain tasks because they haven't been exposed to what programming can do. People go through their days not understanding when they are being ripped off or blatantly stolen from. They don't know what is secure and what isn't. Learning to program solves these problems. To quote Ben Franklin "Those who give up their liberty for more security neither deserve liberty nor security." Disclaimer: I am slightly biased. I don't agree with what Steve Jobs stood for. I don't believe people should become mindless content consuming drones nor do I believe in walled gardens. If I buy 3 acres of property I don't want to be locked in .5 acres because of a damn hedge.
- adeelk 14y ago> There is no way to automate a process using a computer without using programming. http://en.wikipedia.org/wiki/Automator_(software) http://en.wikipedia.org/wiki/Automator_(software)
- moistgorilla 14y agoThat is programming.
- georgieporgie 14y agoI think your definition of programming is tending toward being pointlessly broad.
- moistgorilla 14y agoMy definition of programming is just a definition that is capable of describing every programming language I've seen. If programming is not giving commands to a computer then what is it?
- georgieporgie 14y agoIs typing 'dir' or 'ls' at a command prompt programming? Am I programming if I double-click on a folder or enter a web page URL?
- drcube 14y agoI'd argue yes. Microsoft Word is a domain specific language for formatting documents. Just because you can't create an OS with it doesn't mean you aren't telling a computer what to do using gestures and keystrokes that you had to learn first. Every day user tasks are just very high level programming, with limited power compared to general purpose languages.
- ineedtosleep 14y agoAnd arguing semantics is just as pointless.
- crazy_eye 14y agoYour argument is simplistic and one-sided, unless your definition of 'everyone' is 'the HN community'.
- Dn_Ab 14y agoI agree with him when he says computers should be smarter, more intelligent. I am working on a project that explores this idea. You would probably put it as programming a computer by communicating with it. Balancing preemption with annoyance. On the other hand, I also still think everyone should learn to program as it is good for your brain, aids in learning/exploring extremely abstract mathematical concepts and is practical. Somewhere between the usefulness of basic math skills and either advanced grammar skills or elementary physics.
- crazydoggers 14y agoI agree that computers should have intuitive interfaces and should bend to people rather than the other way around. I also think that most computers should and will be more like iPads and iPhones, essentially smart appliances. However, just because we can see a future where computers bend to the whims of users, ignorance is not bliss. Computers are becoming an ever increasingly important part of most peoples lives. Saying that you shouldn't have a fundamental understanding of how they work only leaves you open to being hurt by those machines that you interact with every day. Take phishing scams, and drive by downloads. In large part these occur due to ignorance of the user on a fundamental level. Of course, computers need to be much smarter and prevent these types of attacks all-together. But in a world where some people understand computers on a fundamental level, and others do not, you'll always see those with knowledge taking advantage of those without. Ultimately people shouldn't learn to programming because it makes bending computers to their will easier (though it does). Instead people should learn basic programming to better understand that which they fundamentally rely on.
- olleicua 14y agoI completely agree and I think this is a much better attitude than the increasingly popular ideology of making the application just do the right thing INSTEAD of exposing options. Obviously the default should be to do the right thing but without options users feel like they are being controlled by machines which is simply not what we want. I know lots of luddites with this perspective and it ultimately stems from laziness on the part of programmers.
- Fice 14y agoIn the 80's Apple had HyperCard, a tool designed to make programming easy for novices. «... HyperCard is an echo of a different world. One where the distinction between the “use” and “programming” of a computer has been weakened and awaits near-total erasure. A world where the personal computer is a mind-amplifier, and not merely an expensive video telephone. A world in which Apple’s walled garden aesthetic has no place.» http://www.loper-os.org/?p=568 http://www.loper-os.org/?p=568
- Mz 14y agoThe last paragraph bugs me. It gives the lie to the assertion that computers need to be smarter. What he is really suggesting is two classes of people: The knowledge Haves and knowledge Have Nots. It is a reasonable and useful principle for a business to focus on being more user friendly. But it is a scary ideology to suggest that most people should not bother to act with agency or become more empowered to handle it themselves. The logical outcome of such an ideology is a world filled with sheep and run by the handful who have de facto power and who serve as both wolf in the fold and guardian sheepdog at the same time.
- redwood 14y agoGreat post. The HN community is totally biased because most folks here are very comfortable programming. What this biases is the ability for this community to imagine that it's a lot harder for a lot of other people to program than it is for them. If it weren't, you wouldn't be in such high demand at such terrific salaries. Programming is hard, especially for minds that are not well accustomed to breaking things into linear series of events. I have a visual mind, for example, but have a lot of trouble turning multi-dimensional concepts into linear programming treatment. Just as we would not suggest everyone would be capable of calculus, we can't expect everyone to program. Now we can expect everyone to have some exposure to calculus, and I think many folks just would like to see the masses have some exposure to programming. And that's great. But please do recognize that programming is not intuitive for everyone!
- Tichy 14y ago"Programming is hard, especially for minds that are not well accustomed to breaking things into linear series of events." Or maybe many people are just lazy? As for the linear events, can you cook? Can you give directions to the main station? I think most people serialize things all the time. Like, do you ever create a ToDo list for your day? I can't imagine that it takes months to learn how to load some images into Excel. Unless you have to learn how to read first. And Excel could be one of the hardest things to program... "But please do recognize that programming is not intuitive for everyone!" That's just the thing. Programming is hard even for programmers (hard not as in impossible, but hard as in "lifting 100 pounds of the ground" or whatever - it is work). But they are diligent enough to solve the problems. It really irks me when (for example) business types say they are not made for programming. In fact I don't really enjoy programming either. I enjoy making things, and programming is just the necessary evil I have to put up with. This logic of "xyz is not intuitive for me" is just an excuse to never even try to cope with maths or whatever.
- crazy_eye 14y agoThis sums it up. Similar assumptions about the human mind are what have led to the current poor state of the US education system. Teaching and learning are not one size fits all.
- 14y ago
- fjorder 14y ago"Apple understand that the responsibility lies with their software to adapt to humans, not with humans to learn the ins and outs of unintuitive software." This isn't how Apple does things. Apple computers do not adapt to users. They do things in the "Apple Way". Users must learn that way or suffer. The good thing about this complete refusal to adapt to users is that everyone has exactly the same Apple experience. You don't have to ask Apple users what shell or window manager they're using. This makes finding help easier and, in theory at least, should make it easier to eliminate bugs (Lion is actually very buggy). Arguably, small bugs and inconsistent behavior do more to confuse neophyte users than large interface flaws. Apple's motto, "think different", should really be, "think like us". Is that good for the computer illiterate? Perhaps. Still, I'm a bit amazed that some power users put up with the rigidity of OSX and apparently seem to like it. I've used it off and on a few times over the last decade (I most recently used Lion for about a year) and it's always a relief to go back to an OS that is designed to adapt.
- mehulkar 14y agoI like the thought behind this, but not sure it makes sense to me. How do you expect computers will get to be as smart as you want them to be if people don't learn to speak their language? Are you assuming that only the select group of people who are already programmers are capable of making computers smarter? I disagree with that. Even if the above were true, it would still take time to make computers "smarter". I don't think it's necessarily about technology, it's about changing the infrastructure and the paradigm. That takes time. What is the rest of the population to do in this latency? As a side, your post also suggests that there will come a time when computers will computer themselves and people will never have to do anything. That doesn't make sense logically.
- jstanley 14y ago"If the computer is a bicycle for the mind, what kind of bicycle requires you to speak Chinese to pedal faster?" I'm sorry? What sort of bicycle magically allows you to ride it without putting in any learning effort? You're forgetting that everybody has to learn to ride a bicycle and nobody is any good at it at first.
- adeelk 14y agoYou’re mixing up programming with computer literacy.
- jdbernard 14y agoNot really. Most people put forth a minimal effort into learning how to ride. Most people can ride a bike, but far fewer are able to regularly put five miles on a bike. That requires a much higher level of training and conditioning that most people are just not willing to undertake. Most people can use a computer. My 70 year old grandmother has no problem using her Mac to write documents, send email and browse the internet. Far fewer are willing to undertake the training and mental conditioning required to program. Fundamentally, programming is about problem modelling. While I agree that the interface to programming can be improved, I disagree that computers and the tools surrounding programming are the main reason people are not willing to invest the time to learn to program. At any level beyond the most trivial programming is hard.
- factorial 14y agoThe vast majority of people use computers merely as entertainment devices and thus have no reason to learn programming. Or how else do you explain the success of the iPad? It's been out for years, and whenever I see one I still think that it's a patently useless device (at least for me).
- crazy_eye 14y agoNicely put, but too utopian for right now. There is still a place for coding skills in many fields where it may have not mattered before, with the ubiquity of computers in workplaces of all types. That being said, I think the 'teach ALL the people how to code' theme lately is overkill.
- gliese1337 14y agoToo utopian in general, not just right now. The best argument in my opinion for "normal people" learning to program is not so that they can and will instruct their machines, but so that they know how it is done, whether they're the ones to do it or not. It's to instill understanding, so people will have reasonable expectations about their technology, be able to make intelligent decisions regarding it, and not relate to it as magic. Even if HCI becomes so good that anything can be automated just by asking for it with no human effort involved, it will still be a good idea for people to know why and how it works. And frankly, things will never get that good (people can't even communicate among themselves without misunderstanding, let alone with machines), which makes it important for people to understand what kinds of things their computers can realistically do for them, what they can't, and why that is.
- raintrees 14y agoMaybe the author is confusing computers with consumer devices... I subscribe to the notion that the iPad is a consumer device (i.e. family of the Walkman), not a computer.
- slowpoke 14y agoExactly my first thought when reading the first paragraph. I find it almost laughable to cite Apple as an example of "making a computer smarter". Apple has done the exact opposite: dumbing it down to fit the lowest common denominator, then putting it into shiny aluminum cases to sell to the unwashed masses. A smart computer is one that empowers the user, that teaches them, and expands their knowledge. Not lock them into a walled garden with some highly limited tools which give them the dangerous illusion of empowerment. This is fundamentally incompatible with how Apple makes their products. In the perfect world of Apple, users are idiots who unquestioningly buy the newest iWhatever, and never do anything remotely clever with their devices.
- shadesandcolour 14y agoDepends on how you define smarter. Apple has made the computer smarter because you no longer need to be smart to use one. By "dumbing down the computer" from our point of view, the computer itself is actually smarter. The operating system and the programs that apple has written don't necessarily anticipate the user, but they handle some things in the background so the user doesn't have to. Or at least that's the idea behind it anyways.
- deleted 14y ago[deleted]
- tcrow-2000 14y agoI don't think he's arguing that more people in other fields should not learn to program, rather that the primary goal of general computer use is to make easier/enhance the lives of its users. This goal is of course ultimately derived from the hard work of the programming community, of which should always be accepting of more participants. We just have to keep in mind that computers should always serve their primary goal, and those that choose to work with computers on a deeper level (programming) should always keep that goal in mind, you don't create a program for the general user that requires them to know programing in order to use it
- antihero 14y agoThis misses the point. The beauty of learning programming is that you stop depending on others to make something simple to use, and can instead do it for yourself.
- adeelk 14y agoThere are a lot of things we depend on others for. Do you call the plumber when your home plumbing leaks?
- Falling3 14y agoIt's funny you should ask that because it touches on an analogy posed by Jeff Atwood just the other day. And a lot of people rebelled against it. Do I call the plumber when I have a serious leak? Yes. But I don't call one when I the toilet is running or when I have a leaky faucet. No one is suggesting everyone needs to be able to write a full-fledged production program, but who can deny that having some knowledge of the inner workings of a system you depend on is not going to make you a better user?
- adeelk 14y agoI’m not saying there’s anything wrong with learning to program. Learning the basics of any skill can help you, but it’s up to an individual whether he wants to spend his time picking up plumbing, car repair, programming, etc., or just focus on moving further in whatever his own field is.
- Falling3 14y agoOf course. And that's why no one is saying people must learn to program - only that they should. And it makes sense if you spend ~8 hours a day using something that you have some idea of how it works.
- factorial 14y agoShould everybody who writes a couple of tweets spend some time studying linguistics to know about the tool (language) he's using?
- ryanklee 14y ago"When someone says 'I want a programming language in which I need only say what I wish done,' give him a lollipop." - Alan Perlis
- cognivore 14y ago"The reality is that the most basic automation is a task impossible for someone who hasn’t spent months learning to program. Automation is what computers were supposed to help humans with in the first place." When one wants to express a complex operation (say, automation) one almost resorts to language. Law, mathematics, chemistry, physics, they all use language to help them express complex ideas. How would you even express simple automation without a language. Macros? Sure, up to a point. Visual tools? Sure, up to a point. Both lead to diminishing returns for their ease use. The benefit of learning the domain language is you have fewer limitations. Computers are the future, and are the most important piece of technology that currently exists. You either learn how to use them, most effectively, or the future is not for you.
- diminish 14y agoAuthor confuses humans with other mammalians which lack abstract thought and language. ['current human', 'ape'].each do |new_subject| open('http://adeel.ru/notes/computers-are-for-humans.html').substitute('human',new_subject) end