The problem I see with most young programmers (and, surprisingly, even people out of graduate school) is that they really have no idea how a computer actually works. They can write programs, hack websites, made Quake mods, but at some level, the computer just becomes magic. Very few people now-a-days have any idea how to add numbers mechanically. Many of the CS grad students that come through my work couldn't make a half-adder out of NAND gates to save their life.
So - if I was going to teach a high-school class, I would have them make computers out of physical devices - gears, tinkertoys, or even paper. Get a simple CPU (or a simple CPU simulator) and teach machine code. Paper computers (where the person plays the role of the CPU, like the old "cardiac") were great for this. Even very young children can understand paper computers - I've taught my 6 year old daughter this way. And most smart kids (like those you would expect to find in an AP class) enjoy learning the "secrets" of how things really work.
Katz seems to have a common misimpression that many geeks have - that technical expertise somehow gives you power in society. This is just simply not true. As a technical person, you are as much a pawn to the system as the guy who takes out the garbage.
If you think of an ancient society, you have a ruling class, a worker class, and a priest class. The priest class provides technology and has a nice life compared to the peasants, but they live at the beck and call of ruling class. As long as they keep performing well, the rulers will throw them a bone - a nice temple, a big iron server, etc. But the rulers are careful not to let you get any real power - they never give you more than a fraction of what they have. (Think of your nice high-tech salary versus that of your non-tech CEO.)
This notion of self-importance among techies is a complete self-deception, and is the same flaw that plagues libertarian hero Ayn Rand throughout "Atlas Shrugged": the absurd notion that if all the geeks went away, anyone but the geeks would care. That is why high-tech workers don't go on strike - because no one but other geeks cares if their work gets done. You'd like to think that the internet is essential for life itself, but if the whole thing went away tomorrow, only people who read Wired & Slashdot would be devastated. The rest of the world would just go back to mailing letters and buying books from the local bookstore. Geeks exacerbate this by spending most of their time working on things that they want, and not giving a rat's ass about things that other people want. Open Source software is the ultimate example of this - written by geeks and for geeks, and proudly. That is great, but it also means that it if it gets inconvenient to the rulers, they can obliterate it and only geeks will care.
Because you have no real power, the ruling class has no fear of you. They are happy to take your H-Bombs and e-commerce solutions to further expand their own power bases, but if you make trouble, they will just crush you without a second thought and get some new priests.
No, the people in power only fear the workers, and that is a simple numbers game - the workers necessarily have to outnumber the rulers. Workers do what the rulers tell them, not what the workers feel like doing. This gives them the power to go on strike and have it be meaningful. When revolutions come, you need to invigorate the workers and get them on your side - their sheer numbers win out over the entrenched rulers. The priests are on the sidelines; once the new order is in place, they are incorporated or buried alive or whatever - no one (other than the priests) really cares which.
User interface research is alive and well! Check out the proceedings from some of the larger user interface conferences, such as UIST, CHI, or CSCW (www.acm.org/sigchi).
There are lots of market reasons why a non-WIMP mainstream user interface is unlikey to emerge. Essentially, the WIMP interface works well enough for doing productivity-style applications with a screen, mouse, and keyboard.
Future interfaces will come when they are needed to support future capabilities. Look for new input/output technologies and new form-factors to usher in radical changes - speech input/output, vision, etc., will reshape the user experience in the next decade. In addition, expect that future user interfaces will have an increased recognition of the social and emotional functions that our computing devices are being asked to serve. (and no, I am not talking about Bob...)
Anyone who gives a casual glance over at Freshmeat can see that most of the software is pretty serious stuff, that requires at least a BS in CS. I mean, come on, your typical teen warez monkey can't even spell HTML, much less write some useful tool for it.
It seems that there are three conditions needed to get Geeks to write stuff.
It has to be something geeks themselves need (or want).
It has to be something that is not already available to buy (or is too expensive, too limited, or unpurchasable for whatever reason.)
There has to be a particular passion in the geek for creating it.
Compare this to commercial software:
much commercial software is stuff the users need, not the geeks. Some of it is actually abhorrent to geeks.
Much of it is a newer version of stuff that is already available (i.e., the need is established).
given 1) and 2), there isn't always the passion factor. Therefore, people are paid to write it.
I don't think that makes commercial software evil - it is just based on very different conditions. Both can exist. It shouldn't surprise anyone that impassioned people can create a better product. But that said, I think people might be surprised at how much passion there IS in commercial software. Most developers I know care quite a bit about their projects. A good developer can work anywhere they want; they have chosen the jobs they have.
I have worked in a large number of high-tech companies. I have worked with people who do nothing but type - 12 to 18 hours a day for months at a time. They never take breaks, never stretch their hands, etc. Meanwhile, there are other people who only type for an hour or two a day, and yet are in wrist splints after a few months.
Obviously, typing is not the problem. Then I realized that the guys who were married or in long-term relationships seemed to be fine, while the single guys got the Repetitive Strain Injury (RSI). This lead me to form the hypothesis that perhaps some other repetitive wrist action was the cause!
Recently, a co-worker was telling me that a female artist working for her was complaining about getting some RSI from using her Wacon drawing tablet. I explained to her my theory on the true cause of RSI. She said "No, I think it is the Wacom stylus, because she only has it in this one finger."
This situation is not unlike open source in general. It not sufficient to complain about things; actions is required. Artists feel they need record companies to make a living, and consumers feel they need record companies to get good music. This is exactly like the software industry, where both programmers and consumers believe that a large company is required.
If you want to kill these bastard record companies, you have to convince the artists that the big companies are not needed. As long as an artist needs a major record label to get on the radio, to get their music into stores, to launch a profitable tour, to sell t-shirts, etc., then the major labels are not going anywhere.
With the internet, we have removed the technical limitations. Now it is time to remove the social ones:
Don't buy music from big companies
Don't listen to radio stations that play corporate-sponsored music
Don't go to huge stadium concerts
PAY, and send your money to the artist as directly as possible. Like, "hey, I just got a ripped copy your album off the internet. Loved it. Here's $10. Add me to your email list so I know when you are in town."
We no longer need EMI and Ticketmaster and Tower Records. They are brick walls between the musicians and the audience. But whining about them does nothing. Unless you are willing to stop giving them money, nothing will change. And if that means listening to less U2 and more Pineal Ventana, well, so be it.
If enough people care about any issue, some company could create a solution for them and make money doing so. That is the basis of the for-profit software economy. Expecting MS to do it all is like expecting the government to take care of all your needs. No thanks, I'd rather pay as I go.
Any time you have system dictated by a majority of people, there are bound to be groups whose particular concern is not being met, and personal opinion gets diluted as the population involved increases. The best you can do is to reward entities who are responsive to your concerns. This is equally true in politics, television programming, and operating systems. The result in all cases is a system that no one feels is perfect, but works OK in general.
My point is that even though it might take a majority of users to influence a giant like MS to move, there no number of mere users that can influence a free software effort like Linux. The users are always at the mercy of the generosity of the implementers. This may be great for the coders, but you shouldn't be surprised that the typical end user isn't too excited about it.
I saw the talk and thought it was pretty interesting, but several points were not fully addressed.
ESR made the point that developers working on open source care about making their product "better", and I don't think anyone was debating that point. In my mind, the central issue is "what do you mean by better".
The problem, of course, is that different people have different opinions of what makes something "better". If I am running a web server, I might care mostly about uptime and use Linux. But if I am a home gamer, all I care about is "are the latest games going to play on my machine?" In that case, I would use Windows. Thus, a blanket statement saying that "Linux is better than Windows" or vice-versa makes no sense.
The problem for many of us techies is that we often do not respect the opinions of the users. End-users often want things that are abhorrent to developers - a super-simple sugar-coated GUI, for example.
This gets us to what I think is the main concern for the general public about Linux: everyday users are not convinced that open-source-devs are going to work on the features that the users care about. So, the public could clamor the Linux community for a simple GUI, but if all the Linux people think that is stupid, it is never going to happen - or at best, it will not have the cream-of-the-crop putting hours towards it.
This is where the code-for-profit model works so well. People know that MS is motivated by the customer's idea of what is best - the profit-model works well for assuring this. Users can "vote" for new features and improvements with their dollars. If the typical end user cares more about desktop decorations than uptime, MS is not going to say "hey, you users are idiots - UPTIME is REALLY more important". Rather, MS is going to put their best people on desktop decorations, even if the best would rather work on something else. People understand the notion of paying (and being paid) to get stuff done, and as soon as money enters the scene, it is pretty hard to argue with the MS approach.
ESR's answer to this was basically to say that "well, you can make money off of open source software". But as the MS people know, you can make money off of closed-source as well. I mean, Linus will never have to look for work, but hey, neither will Bill Gates.
In my opinion, the most interesting part of the talk came at the end, when ESR conjectured that we are approaching the limits of being able to make money from software as a product, and that in the future, all software will be free (as in, will cost nothing), whether open (like Linux) or not (like IE5). He then gave a plausible argument that as long as the software is free, it is better to have it open-sourced.
All I can say is that it should be interesting to see what lies in the years ahead!
I'll end with two disclaimers: 1) I work for Microsoft, but my opinions are not necessarily those of my employer, and 2) I've had a linux system at home for 2 ½ years, so I am pretty familiar with it.
So - if I was going to teach a high-school class, I would have them make computers out of physical devices - gears, tinkertoys, or even paper. Get a simple CPU (or a simple CPU simulator) and teach machine code. Paper computers (where the person plays the role of the CPU, like the old "cardiac") were great for this. Even very young children can understand paper computers - I've taught my 6 year old daughter this way. And most smart kids (like those you would expect to find in an AP class) enjoy learning the "secrets" of how things really work.
Feel free to contact me if you want more details.
- davevr
If you think of an ancient society, you have a ruling class, a worker class, and a priest class. The priest class provides technology and has a nice life compared to the peasants, but they live at the beck and call of ruling class. As long as they keep performing well, the rulers will throw them a bone - a nice temple, a big iron server, etc. But the rulers are careful not to let you get any real power - they never give you more than a fraction of what they have. (Think of your nice high-tech salary versus that of your non-tech CEO.)
This notion of self-importance among techies is a complete self-deception, and is the same flaw that plagues libertarian hero Ayn Rand throughout "Atlas Shrugged": the absurd notion that if all the geeks went away, anyone but the geeks would care. That is why high-tech workers don't go on strike - because no one but other geeks cares if their work gets done. You'd like to think that the internet is essential for life itself, but if the whole thing went away tomorrow, only people who read Wired & Slashdot would be devastated. The rest of the world would just go back to mailing letters and buying books from the local bookstore. Geeks exacerbate this by spending most of their time working on things that they want, and not giving a rat's ass about things that other people want. Open Source software is the ultimate example of this - written by geeks and for geeks, and proudly. That is great, but it also means that it if it gets inconvenient to the rulers, they can obliterate it and only geeks will care.
Because you have no real power, the ruling class has no fear of you. They are happy to take your H-Bombs and e-commerce solutions to further expand their own power bases, but if you make trouble, they will just crush you without a second thought and get some new priests.
No, the people in power only fear the workers, and that is a simple numbers game - the workers necessarily have to outnumber the rulers. Workers do what the rulers tell them, not what the workers feel like doing. This gives them the power to go on strike and have it be meaningful. When revolutions come, you need to invigorate the workers and get them on your side - their sheer numbers win out over the entrenched rulers. The priests are on the sidelines; once the new order is in place, they are incorporated or buried alive or whatever - no one (other than the priests) really cares which.
There are lots of market reasons why a non-WIMP mainstream user interface is unlikey to emerge. Essentially, the WIMP interface works well enough for doing productivity-style applications with a screen, mouse, and keyboard.
Future interfaces will come when they are needed to support future capabilities. Look for new input/output technologies and new form-factors to usher in radical changes - speech input/output, vision, etc., will reshape the user experience in the next decade. In addition, expect that future user interfaces will have an increased recognition of the social and emotional functions that our computing devices are being asked to serve. (and no, I am not talking about Bob...)
- davevr
-====
Open Source Virtual World's Toolkit! ==> http://www.vworlds.org
You've always been able to order every part, in bulk, from Pitsco. They sell the Lego Dacta parts, Dacta being the "educational" wing of lego.
.com/catalog.cfm
http://www.pitsco-legodacta-store
- cheers
davevr
http://www.emeraldnet.net /~ravenous/NewtonQuake/index.htm
Plenty of tech info on the site. Be sure to read the FAQ.
- davevr
It seems that there are three conditions needed to get Geeks to write stuff.
Compare this to commercial software:
I don't think that makes commercial software evil - it is just based on very different conditions. Both can exist. It shouldn't surprise anyone that impassioned people can create a better product. But that said, I think people might be surprised at how much passion there IS in commercial software. Most developers I know care quite a bit about their projects. A good developer can work anywhere they want; they have chosen the jobs they have.
When I worked at Apple, our Cray was called "tma1" - you know, from 2001? Now THAT is a cool name!
They also gave everyone with an account a t-shirt that said "My other computer is a Cray." Apple always had good t-shirts.
- davevr
I have worked in a large number of high-tech companies. I have worked with people who do nothing but type - 12 to 18 hours a day for months at a time. They never take breaks, never stretch their hands, etc. Meanwhile, there are other people who only type for an hour or two a day, and yet are in wrist splints after a few months.
Obviously, typing is not the problem. Then I realized that the guys who were married or in long-term relationships seemed to be fine, while the single guys got the Repetitive Strain Injury (RSI). This lead me to form the hypothesis that perhaps some other repetitive wrist action was the cause!
Recently, a co-worker was telling me that a female artist working for her was complaining about getting some RSI from using her Wacon drawing tablet. I explained to her my theory on the true cause of RSI. She said "No, I think it is the Wacom stylus, because she only has it in this one finger."
Needless to say, we both then laughed for hours.
- davevr
If you want to kill these bastard record companies, you have to convince the artists that the big companies are not needed. As long as an artist needs a major record label to get on the radio, to get their music into stores, to launch a profitable tour, to sell t-shirts, etc., then the major labels are not going anywhere.
With the internet, we have removed the technical limitations. Now it is time to remove the social ones:
Don't buy music from big companies
Don't listen to radio stations that play corporate-sponsored music
Don't go to huge stadium concerts
PAY, and send your money to the artist as directly as possible. Like, "hey, I just got a ripped copy your album off the internet. Loved it. Here's $10. Add me to your email list so I know when you are in town."
We no longer need EMI and Ticketmaster and Tower Records. They are brick walls between the musicians and the audience. But whining about them does nothing. Unless you are willing to stop giving them money, nothing will change. And if that means listening to less U2 and more Pineal Ventana, well, so be it.
If enough people care about any issue, some company could create a solution for them and make money doing so. That is the basis of the for-profit software economy. Expecting MS to do it all is like expecting the government to take care of all your needs. No thanks, I'd rather pay as I go.
Any time you have system dictated by a majority of people, there are bound to be groups whose particular concern is not being met, and personal opinion gets diluted as the population involved increases. The best you can do is to reward entities who are responsive to your concerns. This is equally true in politics, television programming, and operating systems. The result in all cases is a system that no one feels is perfect, but works OK in general.
My point is that even though it might take a majority of users to influence a giant like MS to move, there no number of mere users that can influence a free software effort like Linux. The users are always at the mercy of the generosity of the implementers. This may be great for the coders, but you shouldn't be surprised that the typical end user isn't too excited about it.
I saw the talk and thought it was pretty interesting, but several points were not fully addressed.
ESR made the point that developers working on open source care about making their product "better", and I don't think anyone was debating that point. In my mind, the central issue is "what do you mean by better".
The problem, of course, is that different people have different opinions of what makes something "better". If I am running a web server, I might care mostly about uptime and use Linux. But if I am a home gamer, all I care about is "are the latest games going to play on my machine?" In that case, I would use Windows. Thus, a blanket statement saying that "Linux is better than Windows" or vice-versa makes no sense.
The problem for many of us techies is that we often do not respect the opinions of the users. End-users often want things that are abhorrent to developers - a super-simple sugar-coated GUI, for example.
This gets us to what I think is the main concern for the general public about Linux: everyday users are not convinced that open-source-devs are going to work on the features that the users care about. So, the public could clamor the Linux community for a simple GUI, but if all the Linux people think that is stupid, it is never going to happen - or at best, it will not have the cream-of-the-crop putting hours towards it.
This is where the code-for-profit model works so well. People know that MS is motivated by the customer's idea of what is best - the profit-model works well for assuring this. Users can "vote" for new features and improvements with their dollars. If the typical end user cares more about desktop decorations than uptime, MS is not going to say "hey, you users are idiots - UPTIME is REALLY more important". Rather, MS is going to put their best people on desktop decorations, even if the best would rather work on something else. People understand the notion of paying (and being paid) to get stuff done, and as soon as money enters the scene, it is pretty hard to argue with the MS approach.
ESR's answer to this was basically to say that "well, you can make money off of open source software". But as the MS people know, you can make money off of closed-source as well. I mean, Linus will never have to look for work, but hey, neither will Bill Gates.
In my opinion, the most interesting part of the talk came at the end, when ESR conjectured that we are approaching the limits of being able to make money from software as a product, and that in the future, all software will be free (as in, will cost nothing), whether open (like Linux) or not (like IE5). He then gave a plausible argument that as long as the software is free, it is better to have it open-sourced.
All I can say is that it should be interesting to see what lies in the years ahead!
I'll end with two disclaimers: 1) I work for Microsoft, but my opinions are not necessarily those of my employer, and 2) I've had a linux system at home for 2 ½ years, so I am pretty familiar with it.