Bah. Today's programmers aren't better or worse than they were ten years ago - they're just distributed differently. Programming video games on a console is an exercise in (frustration) poor tools, worse documentation, highly constrained memory / CPU / IO / bus, multiple threads utilitizing multiple specialized processors, microcode, assembly, etc. Ditto for cell phones. Not so for business applications.
So yes, if you mean "developers of business applications aren't generally hardcore down to the metal programmers," then I'd agree with you. John Carmack and Michael Abrash would be bored out of their skulls working on UI issues for Quicken 2008. And, given their aesthetic sensibilities, they wouldn't necessarily be the best choices (just *try* to balance your checkbook).
But if you mean that great programmers are no longer among us, then I'd say that you should change jobs, because it's more likely that they're simply not around *you*.
By "thinking rigorously", I do not mean that programmers are more intelligent than the average person. As it happens, good programmers are MUCH smarter than the average person in a particular set of disciplines (in the same way that children with Aspergers are much smarter in their disciplines), but that's an entirely different issue. What I meant is rather that programmers are trained to think in a very specific, structured way about control and data. Different programmers may attack problems in different ways, but they generally have the same tools when it comes to data structures, control structures, algorithms, etc. They will think about complexity, and edge cases, and modularization, and patterns. They will have a deep understanding of the logical rules inherent in programming, and how and why to break them. If you are a programmer, then this should sound very familiar. If it doesn't, then I would recommend that you pick up a copy of Design Patterns and Code Complete.
This is a fantastic way to achieve negative productivity. I know, let's put a thousand monkeys in a room with a thousand IDEs - that ought to get us some code! Most non-programmers are simply not trained to think in a rigorous way. Hell, most programmers aren't trained to think rigorously. That's why it's so hard to find good ones.
IBM was facing a pretty big loss of business, and would have let Apple know before the official announcement. Apple knew, and decided to switch anyway.
Visual Basic is great for creating prototypes and simple apps. Game developers generally use C++ with assembly and microcode. Web apps are written in PHP, Ruby, Java, Python, JavaScript, Flash, etc. The point is choice - if you have a big tool chest, and if you've been willing to stretch your mind and learn how to use each of the tools, then you'll know what is most appropriate for the situation. Single language zealots (like single-platform zealots) generally haven't taken the time to learn more than one tool.
Having said that, since most of us haven't read the email thread, we have no way of knowing what SJ was really saying.
I think the other important point is that the company OWNED a copy of the software, and the programmer was trying to apply restrictions to what they could do with the code that they owned. EULA's stipulate that you're LICENSING the software.
Nah, it's not fear - it's for the same reason people have dirty dishes in the sink and let the dirty laundry pile up. It's not critical this second (or at least it doesn't seem that way). It's only when you start to run out of underwear that you start thinking about making a change in the system (for diehard/.ers, think of Jolt Cola instead of underwear and you get the picture;).
In the end, I think the point is rather simple, and what any engineer who lives in the real world comes to realize. Business types can get their proposals listened to because they have money. Engineers have to create prototypes. So, to Ted: create a prototype already, and quit moaning about how you've been maligned (a fact most wouldn't have known or cared about if you hadn't mentioned it in a somewhat scary diatribe that makes one wish not to be in the same room with you). It will get you respect, whether or not it brings you converts.
actually, i see the reverse - although initially, HW prices might go up through a lack of supply, as vendors ramp up to meet the (corporate) demand for new hardware, economies of scale will kick in and these so-called "beefy" requirements will come down in price. ditto for lower-end stuff. which means that people who DON'T use MS products are going to get a great deal on some pretty high-end stuff. which means that non-MS stuff is going to run dramatically faster, since vista will need it just to run in the first place.
Many of these would have been interesting things for LL to have discussed. He didn't. He just said that "grave things are afoot" and that "the public domain will disappear." In your talmudic reading of his article, you are projecting your own ideas of what you *think* he meant, not what he actually said - which is close to nothing.
You're also ignoring the fact that he didn't actually say what should be done about it. Why was this in a policy journal?
Even in the most brutally biased and moronic of op-ed pieces, they usually try to tie their argument to some concrete fact, and give the reader something to do about it. LL did neither.
The article, although containing the flavor of important ideas, actually boils down to a meaningless "THE END IS NIGH" sign. His core argument, if you can call it that, seems to be:
These legal measures will soon be supplemented by extraordinary technologies that will secure to the owners of culture almost perfect control over how "their property" is used. Any balance between public and private will thus be lost.
Huh? Copyright holders being able to enforce their copyrights destroys the balance between public and private? I call bullshit. Oh, and he follows this with:
The private domain will swallow the public domain. And the cultivation of culture and creativity will then be dictated by those who claim to own it.
How does this follow? Sony Corp publishes a CD of Britney Spears that's impossible to be copied, and the public domain is swallowed?
There are lots of valid points he might be trying to make (and which he has made in the past), but he doesn't make them here. It's a foreign policy site, but he doesn't offer policy suggestions. In the end this is a sad, poorly written article that basically boils down to portentous warnings of doom about a nebulous threat with no particular advice. We should expect better from Lessig, and he should be embarrassed.
the thing about the web is that you really have no idea how things are happening under the hood. i find it pretty unlikely that google is simply letting their search technology rot on the vine, instead of continuing to improve it. or perhaps you'd prefer more press releases? ("Google search v10.3.5.2.1.1.9a released!")
Once the genie's out of the bottle, there's not a particularly good way to get it back in. As I recall, Skype is encrypted. So block everything but port 80, and watch customers complain. OK, even so, it doesn't take that much creativity to change your server so that port 80 is https, and then you can have whatever you want - html chat, encrypted instructions, etc. All right, put it through a proxy that won't allow https, and watch people chat in plaintext in an obscure dialect - no need for obfuscation, since you won't be able to get a translator in the time necessary, even assuming that you realize something's wrong. The bottom line is, do we want people on planes to be able to easily communicate with people on the ground (or on other planes). If yes, then live with the consequences. If no (and I think that there are a lot of good reasons for no), then completely shut off the pipe.
as an ex-game programmer, i can tell you that developing AI is hard mostly because you don't want the game to be too hard. developing AI which will always win is easy. in this case it's a somewhat specialized "core wars"-style genre, but in most games (in which AI interacts with players) overly potent AI is more of an issue.
and then there's the fun factor. i seem to remember an article about one of the Id games in which they developed all sorts of interesting behaviors for the AIs, played with in for a while, and eventually came to the conclusion that "turn and move toward player" gave much better gameplay.
on a separate note, i remember a game from the late 80's in which you had to program logic circuits to get a robot to perform tasks of increasing difficulty... not a game with a lot of commercial appeal, i'm sure, but i spent many hours trying to solve problems using those little graphical circuit boards...
Just check out the "Superpowers" episode (#178) at This American Life, and you'll see that it actually IS within your reach. This is one of their best episodes of all time.
now is a GREAT time to take a chance - you're (probably) young, don't have a lot of money (i.e., you don't have to worry about screwing up your finances too badly - you don't have any), no commitments... go to hyderabad and get experience on that side of outsourcing. or join/start an internet startup in your parents' basement. or go work for nintendo - in japan. one day you're going to look back on this time and think, "man, i really played it safe," or "i can't believe i actually did that."
what type of person do you want to be? what type of person do you think will have better job prospects in the future? what do you think will make you a more interesting candidate in a future job hunt? these are serious questions, and i obviously have my own opinions, but you've got to figure out what your personal tolerance for risk is, and how far outside the box you're willing to think.
I've never watched the TV show (although I've read a synopsis of the backstory), and the first thought I had when hearing that the rebels were called "browncoats" was that it was curious that they'd chosen a term with such loaded historical connotations (the "brownshirts" were the Sturmabteilung, i.e., the Storm troops, i.e., the private army of the Nazi party). My goal here isn't to be PC, but rather to ask those more steeped in the lore of the show whether there's been a discussion on why the show's creators chose this term.
-daniel
Heinlein "invented" waldos and waterbeds, and put them into his short stories. Once he did (and after a year had passed, which is the limit for claiming patent rights in the U.S. - in foreign countries you have to claim them immediately), they were in the public domain. I think a good case could be made on the same grounds.
I think that most "real" programmers will have approximately the same reaction to this, which will be somewhere between a shrug and a snicker. To be an effective programmer you need to be able to accept certain formalisms, and for people who "get it" (i.e., are vulnerable to the snow crash virus) high level programming languages are quite readable. (have you ever tried explaining to a neophyte why you would use do-while vs. while{} vs. for(;;)? or variables?)
In working with designers (especially inexperienced ones) on video game projects, one of the things I noticed is that they have no conception of what is possible and what isn't. They will agonize for a week on how to simplify something that isn't actually difficult, and then assume that you can easily throw in something that's impossible. Part of becoming an experienced designer is learning the difference between the two.
Junior programmers have a different problem - they don't know how to structure their programs. Building experience is primarily learning patterns you can use to solve problems (a good, experienced programmer will look at "Design Patterns" and be able to tick off a large percentage that s/he uses, but never formalized, and maybe disagree with one or two). Switching to natural language for code specification isn't going to help.
The one area in which this might be useful is in scripting languages - using the video game example: when you want your designers to be able to put together behaviors for agents without having to learn some arbitrary language that you've thrown together. You're still probably going to have to have a programmer give the scripts the once over to make sure that they're not doing something silly, but it might be a more approachable interface for the designers.
It would actually be much more useful to have an IDE which allowed you to add graphics or voice as comments (how many times have I wanted to add a small sketch as a comment to some graphics code?).
The standard response to constructive criticism - attack the messenger. The effective response - realize that indifference, obsolescence, and hubris are your enemies, not the people who are trying to improve your service.
Closed source works on the first principle ("nope, no bugs or security holes here..."), OS works on the second ("you found a bug? great! why haven't you fixed it yet?").
Imagine two zombie computers which are also using this "service" - they basically start sending the spam back and forth ad infinitum. Or imagine that you're a black hat trying to shut down a company - spoof their IP address in the email headers. And remember who ends up paying the bandwidth costs.
Fighting fire with fire just isn't going to work against spam.
Pimsleur tapes are great for what they are, but if you need more than the basics then they're not going to help you that much. I'm a very visual person, and one of the frustrating things about the tapes is that even if you want to know, you can't find out the spelling of the phrases that you're learning. I know that this is by design, but it assumes only one method of learning.
Bah. Today's programmers aren't better or worse than they were ten years ago - they're just distributed differently. Programming video games on a console is an exercise in (frustration) poor tools, worse documentation, highly constrained memory / CPU / IO / bus, multiple threads utilitizing multiple specialized processors, microcode, assembly, etc. Ditto for cell phones. Not so for business applications.
So yes, if you mean "developers of business applications aren't generally hardcore down to the metal programmers," then I'd agree with you. John Carmack and Michael Abrash would be bored out of their skulls working on UI issues for Quicken 2008. And, given their aesthetic sensibilities, they wouldn't necessarily be the best choices (just *try* to balance your checkbook).
But if you mean that great programmers are no longer among us, then I'd say that you should change jobs, because it's more likely that they're simply not around *you*.
By "thinking rigorously", I do not mean that programmers are more intelligent than the average person. As it happens, good programmers are MUCH smarter than the average person in a particular set of disciplines (in the same way that children with Aspergers are much smarter in their disciplines), but that's an entirely different issue. What I meant is rather that programmers are trained to think in a very specific, structured way about control and data. Different programmers may attack problems in different ways, but they generally have the same tools when it comes to data structures, control structures, algorithms, etc. They will think about complexity, and edge cases, and modularization, and patterns. They will have a deep understanding of the logical rules inherent in programming, and how and why to break them. If you are a programmer, then this should sound very familiar. If it doesn't, then I would recommend that you pick up a copy of Design Patterns and Code Complete.
This is a fantastic way to achieve negative productivity. I know, let's put a thousand monkeys in a room with a thousand IDEs - that ought to get us some code! Most non-programmers are simply not trained to think in a rigorous way. Hell, most programmers aren't trained to think rigorously. That's why it's so hard to find good ones.
IBM was facing a pretty big loss of business, and would have let Apple know before the official announcement. Apple knew, and decided to switch anyway.
Having said that, since most of us haven't read the email thread, we have no way of knowing what SJ was really saying.
well see, that's what happens when someone who actually knows something posts on slashdot. please moderate down for factual.
I think the other important point is that the company OWNED a copy of the software, and the programmer was trying to apply restrictions to what they could do with the code that they owned. EULA's stipulate that you're LICENSING the software.
In the end, I think the point is rather simple, and what any engineer who lives in the real world comes to realize. Business types can get their proposals listened to because they have money. Engineers have to create prototypes. So, to Ted: create a prototype already, and quit moaning about how you've been maligned (a fact most wouldn't have known or cared about if you hadn't mentioned it in a somewhat scary diatribe that makes one wish not to be in the same room with you). It will get you respect, whether or not it brings you converts.
Pax,
Daniel
actually, i see the reverse - although initially, HW prices might go up through a lack of supply, as vendors ramp up to meet the (corporate) demand for new hardware, economies of scale will kick in and these so-called "beefy" requirements will come down in price. ditto for lower-end stuff. which means that people who DON'T use MS products are going to get a great deal on some pretty high-end stuff. which means that non-MS stuff is going to run dramatically faster, since vista will need it just to run in the first place.
You're also ignoring the fact that he didn't actually say what should be done about it. Why was this in a policy journal?
Even in the most brutally biased and moronic of op-ed pieces, they usually try to tie their argument to some concrete fact, and give the reader something to do about it. LL did neither.
daniel
There are lots of valid points he might be trying to make (and which he has made in the past), but he doesn't make them here. It's a foreign policy site, but he doesn't offer policy suggestions. In the end this is a sad, poorly written article that basically boils down to portentous warnings of doom about a nebulous threat with no particular advice. We should expect better from Lessig, and he should be embarrassed.
daniel
the thing about the web is that you really have no idea how things are happening under the hood. i find it pretty unlikely that google is simply letting their search technology rot on the vine, instead of continuing to improve it. or perhaps you'd prefer more press releases? ("Google search v10.3.5.2.1.1.9a released!")
daniel
A much better reason to close the patent office - there's nothing new out there to invent.
and then there's the fun factor. i seem to remember an article about one of the Id games in which they developed all sorts of interesting behaviors for the AIs, played with in for a while, and eventually came to the conclusion that "turn and move toward player" gave much better gameplay.
on a separate note, i remember a game from the late 80's in which you had to program logic circuits to get a robot to perform tasks of increasing difficulty... not a game with a lot of commercial appeal, i'm sure, but i spent many hours trying to solve problems using those little graphical circuit boards...
daniel
daniel
what type of person do you want to be? what type of person do you think will have better job prospects in the future? what do you think will make you a more interesting candidate in a future job hunt? these are serious questions, and i obviously have my own opinions, but you've got to figure out what your personal tolerance for risk is, and how far outside the box you're willing to think.
daniel
I've never watched the TV show (although I've read a synopsis of the backstory), and the first thought I had when hearing that the rebels were called "browncoats" was that it was curious that they'd chosen a term with such loaded historical connotations (the "brownshirts" were the Sturmabteilung, i.e., the Storm troops, i.e., the private army of the Nazi party). My goal here isn't to be PC, but rather to ask those more steeped in the lore of the show whether there's been a discussion on why the show's creators chose this term.
-daniel
Heinlein "invented" waldos and waterbeds, and put them into his short stories. Once he did (and after a year had passed, which is the limit for claiming patent rights in the U.S. - in foreign countries you have to claim them immediately), they were in the public domain. I think a good case could be made on the same grounds.
Read "Mindkiller" by Spider Robinson. Not such a great world.
In working with designers (especially inexperienced ones) on video game projects, one of the things I noticed is that they have no conception of what is possible and what isn't. They will agonize for a week on how to simplify something that isn't actually difficult, and then assume that you can easily throw in something that's impossible. Part of becoming an experienced designer is learning the difference between the two.
Junior programmers have a different problem - they don't know how to structure their programs. Building experience is primarily learning patterns you can use to solve problems (a good, experienced programmer will look at "Design Patterns" and be able to tick off a large percentage that s/he uses, but never formalized, and maybe disagree with one or two). Switching to natural language for code specification isn't going to help.
The one area in which this might be useful is in scripting languages - using the video game example: when you want your designers to be able to put together behaviors for agents without having to learn some arbitrary language that you've thrown together. You're still probably going to have to have a programmer give the scripts the once over to make sure that they're not doing something silly, but it might be a more approachable interface for the designers.
It would actually be much more useful to have an IDE which allowed you to add graphics or voice as comments (how many times have I wanted to add a small sketch as a comment to some graphics code?).
daniel
What you'd want to do is put magnifying lenses in the same locations, and turn it around. Ouch.
Closed source works on the first principle ("nope, no bugs or security holes here..."), OS works on the second ("you found a bug? great! why haven't you fixed it yet?").
Fighting fire with fire just isn't going to work against spam.
-daniel
http://www.wordchamp.com