Comparing software development to automobile mass-production is like comparing automobile design to pressing CDs that contain software. They are at different ends of the process.
And if you think that automobile design is a solved problem, you haven't been paying attention to recalls.
Software design and development is a Hard Problem. Designing and developing anything well (including software) requires smart people to work very hard.
It's important to note that first, there are NOT that many companies refusing to do business with Wal-Mart. More precisely, there are not that many companies who deliberately choose lower volume with higher quality and margins when they actually have a choice.
Second, some of the ones that are doing business with Wal-Mart are quietly selling a second tier of quality, and diluting their own brand value. Snapper chose not to do this. In my opinion, that may be the most significant point of the Snapper story.
I'm not saying that Wal-Mart has no value to the American economy. But, I will say that the huge success of Wal-Mart's "screw quality" attitude says things about the bulk of Americans that make me uncomfortable.
First, any software that is complex enough to be useful is going to have bugs. Design bugs, functional bugs, security bugs, whatever. Anyone who says different (even Donald Knuth) is ignoring reality or selling snake oil.
Second, a program may be perfectly usable as released, and do everything that the developers could imagine. However, there are going to be some customers who want things that the developers could not imagine, precisely because they do not know their customers' businesses.
So, when company X releases a software package Y as open source, then sells service for it, they are saying, "We have made a good-faith effort to make this software clean and functional. Sure, you can fix any bugs you find, and add any features you want. But, if you would rather focus on your core business, pay us to focus on what is important to you and we will work hard to make you happy."
Any view that "properly written software doesn't require support" is naive.
PS: I don't think Dr. Knuth is selling snake oil. I love his work, but he does have a bit of an ivory-tower view of the world.
I worked a little with Kent when we were both at Sybase in Denver. I'm not claiming we were bosom buddies, but I think I know him well enough to say that he would not play that kind of game.
For the record, I also did a performance tuning gig on the Sybase database (on Windows NT) they were using about 10 years ago. I don't know if they are still using Sybase or not, but the IT manager at the time was very much afraid to move off of Windows for anything at all, in spite of my recommendation to move to bigger hardware. At the very least, Kent has opened up the possibility of running some of their department on non-Microsoft platforms. I expect he is doing it for sound business and technology reasons, not because he's a wild-eyed fanatic, and not because he is trying to pressure some deal out of Redmond.
The main problem I have run into with frameworks is that they make easy things easier and hard things harder.
What I mean is this: Choose any framework, and find an enthusiast. He will show you in ten minutes how to create a simple, single-form application accessing a single table in a database (or, the equivalent for whatever domain the framework addresses.) He will say, "See how easy it is to produce a working application with this whiz-bang modern marvel?
And, he is right, up to a point. If all you want to do is seventy-five duplicates of that trivial case, you can be done in a week. But, real-world applications quickly spider out into areas that your framework of choice doesn't handle.
These dark corners usually come in several flavors: the framework designer didn't anticipate them, the interface to external resources is limited, they don't match the framework's model, or they are genuinely hard problems.
At this point, you have to use the framework's hooks and escapes to finish the project, and that is where most of them break down and stop helping you. In fact, at that point, most of them become a royal pain in the buttocks.
So, to my thinking, the most important feature of a framework is how easily it lets me use a different paradigm to code things not covered by its internal architecture. That may include calling code written in other languages, accessing external resources, breaking a problem into parallel threads or processes, etc.
likelier and likelier nevertheless to flaunt them,
Wrong word. You mean likelier to flout them. And that is exactly the point. Flaunt has a different meaning than flout, but lazy thinking has produced a generation who doesn't appear to know that there are two words with similar sounds in that pronunciation neighborhood.
For the record, "flaunt" means to display proudly or ostentationsly. "Flout" means to show contempt for.
I suppose that the confusion owes most to phonetic causes, but also to a conceptual relation. If, for instance, you wanted to flout nudity taboos, you could flaunt your naked body (please don't; we don't want to see your hairy behind.) If you wanted to flout repressive Islamic mind-control, you could flaunt your Danish political cartoons.
The root of this kind of discussion is not a desire to control what you think or how you say it, but to be sure that you say really means what you think it does, and that other people hear what you think you are saying.
That is the stupidest comment I've seen in ages. Insightful? I don't think so.
MS doesn't want to release Windows source for a lot of reasons; some are good, some are bad.
Google doesn't want to release PageRank source because.... that would reveal all the details of how PageRank works. Then, all the SEO goons would get craftier at building pages specifically for getting to the top of the list, and destroy the usefulness of Google as a search engine.
A large part of what makes Google successful is that the SEO goons are only guessing at how the rankings work. You know what else? In a small way, that makes the whole Web better. If you can only guess at what makes Google tick, you just might focus more on content, on attracting people to visit your site with quality content, rather than on following an arbitrary set of rules designed to game the system.
If Google could trust everyone to Keep Off The Grass, it might make sense to release PageRank source. But not in the real world.
It's all very well to get on the standards purity high-horse, but in the entire history of ANSI and ISO language standards, how many translators (compilers, interpreters, or in-between) have been 100% compliant to a standard? That is, they implement every feature of the standard, with no extensions at all?
I don't have any statistics, but I can think of... well, none. Hm. Whaddya know?
Please don't interpret this as a defense of Microsoft in this instance. I think that something like "CLI extensions to C++" would be a better name, putting the environment (CLI) ahead of the language (C++), because that is obviously consistent with Microsoft's policy.
So, if a translator is not 100% compliant with standard Foo, is it not a Foo translator? At what percentage of compliance should it be called a "some proprietary Foo-like language" translator? And how do you measure that percentage?
What about inconsistencies, irregularities, and vagueness in the standard? What about behaviors that the standard leaves as explicitly implementation-dependent? How do you measure those?
Standards are generally good, but don't confuse them with Scripture. Their purpose is to make it easier to do good work, not to define the One True Way of Programming Holiness.
Oh, PS: I tried dating myself. I found that it is much more fulfilling to date another person.:-)
That's the 22 KHz flyback signal (which moves the electron beam from the end of one scan line to the beginning of the next). The signal goes through a transformer (flyback transformer) to step up the voltage, and the transformer vibrates from the electromagnetic effects. I could hear it distinctly until my early twenties, and a little less clearly now, a couple of decades later.
I don't believe that LCDs or plasma screens have this same whine; certainly they don't need the flyback signal in the same sense as a CRT does. Also, you get different frequencies from computer CRT monitors, because of the various settings available.
Does anyone else remember the TV Typewriter Cookbook?
... a genuine demand for functionality that it's impossible to expose without full Javascript support...
If only this were true...
The internal corporate sites I'm used have a pretty good chance of running only with I-stinking-E, using whatever demon-inspired lock-in technologies they are teaching to Microsoft "programmers" these days.
It really twists my guts in a knot. Then, I smile, and do what I have to to get the job done.
In the first third of the article, Brown very deliberately chooses his broadest brush to paint all open source software with his perceptions of the shortcomings of Open Office. As you yourself pointed out, nwbvt, most people don't end up reading the entire article. I did read the whole article, but I didn't let the reasonable tone of the end blind me to the demagoguery at the front.
Does it matter how many gigaton bomb equivalents it is? I don't think so.
It seems to me that you are trying to distract readers from the essential fact: So far, Kyoto may have lowered the global average temperature in 2050 by 1/800th of a Celsius degree.
If you would like to dispute the methodology or conclusions of the Junk Science site, feel free to do so. But converting an estimated (not measured!) temperature change into a scary unit (gigaton bomb equivalents) adds only heat to the discussion, and no light.
(Sorry about that, but the "heat with no light" cliche' is just too irresistable in this kind of discussion.)
Re:Check out Rob Pike's thoughts on code commentin
on
How to Write Comments
·
· Score: 1
In general, Pike's essay is too general to be specifically useful.
However, I believe this is the smartest thing he says in this essay:
I argue that clear use of function pointers is the heart of objectoriented programming. Given a set of operations you want to perform on data, and a set of data types you want to respond to those operations, the easiest way to put the program together is with a group of function pointers for each type. This, in a nutshell, defines class and method. The OO languages give you more of course - prettier syntax, derived types and so on - but conceptually they provide little extra.
Apparently, "slavemowgli" believes that you cannot use humorous or colorful language if you want to be taken seriously.
Calling attention to a common problem is hardly sensationalism. For it to be sensationalism, it would require exaggerations, and unsubstantiated claims. Something like, "Unencrypted databases make firewalls and other network protections completely irrelevant [overstatement], and will cost industry more in the next few years than all the phishing and spyware in the world [unsubstantiated]."
That would be cheap sensationalism, not just colorful writing.
Note: An assumption we are making for this scenario is that the business data is already in XML, even if the database might not have any XML capabilities.
Bogometer Pegged!
If they had made the opposite assumption (that the business data was not in XML format, a much more common scenario), then, the added complexity of translating the data to an XML format would have made the non-DB2 approach look cleaner and more reasonable.
The reasons I cut my Galaxies connection had nothing to do with the changes mentioned in the article.
The reason I dropped out was that the game was not structured to allow me to log in, play for one to three hours, and make a reasonable advance. Once you got past the low-level missions, accomplishing anything of significance required hanging out for two hours in a cantina, then jumping on a ship and fighting like crazy before all your buffs wore off. It's those hours in the cantina, gathering a group, then buffing, that drove me off.
Understand, I'm not discounting the social aspect of playing. What I'm saying is that the content forced the social interactions into a single mode: Go to cantina, find a group, buff for two hours and chat, then go play for a while. If I wanted to spend two hours chatting, I'd be on an IM client.
when you try to force your worldview on me or society as a whole, I will attack you with whatever tactics I have at my disposal.
And that is exactly the position that the people pushing Intelligent Design are in. They feel that a subset of society is forcing an ideology down the throats of their children, and they are fighting back with every trick they can think of.
It's kind of silly of you to get all self-righteous about it.
Personally, I think Intelligent Design is an attempt to dress up Creationism in a lab coat, and I find it a little silly.
Full disclosure: I am a fundamentalist Christian, and I believe in a literal interpretation of the Bible. My objection to your post has more to do, however, with your inconsistent position and failure to understand the people you are disagreeing with.
I really don't understand this mentality. For me, the fun of an MMO is the journey. Sure, it gets repetitive sometimes. But the game designers are still groping towards the right balance, and I am willing to cut them some slack.
I've often said that buying an MMO character (or goods) on eBay is like paying a stranger to make love to your wife. Automating the game play is like buying a robot to make love to your wife.
I spent $50 for a book a few weeks ago. Practical Common Lisp, by Peter Seibel. I had been looking for a good, basic Lisp book for a while, and I found the entire text available on-line at http://www.gigamonkeys.com/book/ . After reading about a chapter and a half, I decided that this was exactly what I was looking for, and I bought the dead-tree version.
It's not the first time, either, for me.
It works for fiction, too. If you're a science fiction reader, you probably noticed that Baen Books was doing some similar things, and I bought some of them that I might not have, otherwise.
Perhaps the copyright holders should notice that we are in the 21st Century, and things are changing, mostly for the better.
Here is my bias, up front: I am an evangelical Christian, and I believe in the literal truth of the Bible. My faith survived both high school biology classes and an engineering degree at a public university.
Here is what I think of Intelligent Design: It seems to be a result of some kind of "science envy", an attempt to present faith in a lab coat. It is not interesting to me.
What Mr. Glanz seems to be proposing is the other side of that coin: dressing up evolution in religious robes. I can only assume he is joking.
I think both are bad ideas, and they only contribute heat to the situation, with no light.
The key point in the conflict seems to me to be not so much disagreement about whether populations of organisms change in response to pressures (clearly, they do,) but the question of origins. How did it all get here in the first place? Unless someone gets a time machine of some sort running, we will all, always believe what we believe about origins without direct proof.
It is hard to take these comments seriously, considering how incoherent some of the writing is:
Something similar appears to have happened in Europe where national government endorsement of Linux as the anti-Bush candidate for their schools and lower level governments triggered a slowdown in acceptance among the more clear headed of the academics and researchers driving continental R&D - something that seems likely to cause the bottom to drop out of Linux acceptance there in a few years.
Someone find this goon's 7th-grade English teacher and take away her pension!
This may seem obvious, but I wouldn't play this kind of game with IE. Or from Windows at all, for that matter.
Wrong.
Comparing software development to automobile mass-production is like comparing automobile design to pressing CDs that contain software. They are at different ends of the process.
And if you think that automobile design is a solved problem, you haven't been paying attention to recalls.
Software design and development is a Hard Problem. Designing and developing anything well (including software) requires smart people to work very hard.
It's important to note that first, there are NOT that many companies refusing to do business with Wal-Mart. More precisely, there are not that many companies who deliberately choose lower volume with higher quality and margins when they actually have a choice.
Second, some of the ones that are doing business with Wal-Mart are quietly selling a second tier of quality, and diluting their own brand value. Snapper chose not to do this. In my opinion, that may be the most significant point of the Snapper story.
I'm not saying that Wal-Mart has no value to the American economy. But, I will say that the huge success of Wal-Mart's "screw quality" attitude says things about the bulk of Americans that make me uncomfortable.
You are missing a two factors here.
First, any software that is complex enough to be useful is going to have bugs. Design bugs, functional bugs, security bugs, whatever. Anyone who says different (even Donald Knuth) is ignoring reality or selling snake oil.
Second, a program may be perfectly usable as released, and do everything that the developers could imagine. However, there are going to be some customers who want things that the developers could not imagine, precisely because they do not know their customers' businesses.
So, when company X releases a software package Y as open source, then sells service for it, they are saying, "We have made a good-faith effort to make this software clean and functional. Sure, you can fix any bugs you find, and add any features you want. But, if you would rather focus on your core business, pay us to focus on what is important to you and we will work hard to make you happy."
Any view that "properly written software doesn't require support" is naive.
PS: I don't think Dr. Knuth is selling snake oil. I love his work, but he does have a bit of an ivory-tower view of the world.
Insightful? Doubt it.
I worked a little with Kent when we were both at Sybase in Denver. I'm not claiming we were bosom buddies, but I think I know him well enough to say that he would not play that kind of game.
For the record, I also did a performance tuning gig on the Sybase database (on Windows NT) they were using about 10 years ago. I don't know if they are still using Sybase or not, but the IT manager at the time was very much afraid to move off of Windows for anything at all, in spite of my recommendation to move to bigger hardware. At the very least, Kent has opened up the possibility of running some of their department on non-Microsoft platforms. I expect he is doing it for sound business and technology reasons, not because he's a wild-eyed fanatic, and not because he is trying to pressure some deal out of Redmond.
The main problem I have run into with frameworks is that they make easy things easier and hard things harder.
What I mean is this: Choose any framework, and find an enthusiast. He will show you in ten minutes how to create a simple, single-form application accessing a single table in a database (or, the equivalent for whatever domain the framework addresses.) He will say, "See how easy it is to produce a working application with this whiz-bang modern marvel?
And, he is right, up to a point. If all you want to do is seventy-five duplicates of that trivial case, you can be done in a week. But, real-world applications quickly spider out into areas that your framework of choice doesn't handle.
These dark corners usually come in several flavors: the framework designer didn't anticipate them, the interface to external resources is limited, they don't match the framework's model, or they are genuinely hard problems.
At this point, you have to use the framework's hooks and escapes to finish the project, and that is where most of them break down and stop helping you. In fact, at that point, most of them become a royal pain in the buttocks.
So, to my thinking, the most important feature of a framework is how easily it lets me use a different paradigm to code things not covered by its internal architecture. That may include calling code written in other languages, accessing external resources, breaking a problem into parallel threads or processes, etc.
Wrong word. You mean likelier to flout them. And that is exactly the point. Flaunt has a different meaning than flout, but lazy thinking has produced a generation who doesn't appear to know that there are two words with similar sounds in that pronunciation neighborhood.
For the record, "flaunt" means to display proudly or ostentationsly. "Flout" means to show contempt for.
I suppose that the confusion owes most to phonetic causes, but also to a conceptual relation. If, for instance, you wanted to flout nudity taboos, you could flaunt your naked body (please don't; we don't want to see your hairy behind.) If you wanted to flout repressive Islamic mind-control, you could flaunt your Danish political cartoons.
The root of this kind of discussion is not a desire to control what you think or how you say it, but to be sure that you say really means what you think it does, and that other people hear what you think you are saying.
Oh, for mod points!
That is the stupidest comment I've seen in ages. Insightful? I don't think so.
MS doesn't want to release Windows source for a lot of reasons; some are good, some are bad.
Google doesn't want to release PageRank source because .... that would reveal all the details of how PageRank works. Then, all the SEO goons would get craftier at building pages specifically for getting to the top of the list, and destroy the usefulness of Google as a search engine.
A large part of what makes Google successful is that the SEO goons are only guessing at how the rankings work. You know what else? In a small way, that makes the whole Web better. If you can only guess at what makes Google tick, you just might focus more on content, on attracting people to visit your site with quality content, rather than on following an arbitrary set of rules designed to game the system.
If Google could trust everyone to Keep Off The Grass, it might make sense to release PageRank source. But not in the real world.
It's all very well to get on the standards purity high-horse, but in the entire history of ANSI and ISO language standards, how many translators (compilers, interpreters, or in-between) have been 100% compliant to a standard? That is, they implement every feature of the standard, with no extensions at all?
I don't have any statistics, but I can think of ... well, none. Hm. Whaddya know?
Please don't interpret this as a defense of Microsoft in this instance. I think that something like "CLI extensions to C++" would be a better name, putting the environment (CLI) ahead of the language (C++), because that is obviously consistent with Microsoft's policy.
So, if a translator is not 100% compliant with standard Foo, is it not a Foo translator? At what percentage of compliance should it be called a "some proprietary Foo-like language" translator? And how do you measure that percentage?
What about inconsistencies, irregularities, and vagueness in the standard? What about behaviors that the standard leaves as explicitly implementation-dependent? How do you measure those?
Standards are generally good, but don't confuse them with Scripture. Their purpose is to make it easier to do good work, not to define the One True Way of Programming Holiness.
Oh, PS: I tried dating myself. I found that it is much more fulfilling to date another person. :-)
That's the 22 KHz flyback signal (which moves the electron beam from the end of one scan line to the beginning of the next). The signal goes through a transformer (flyback transformer) to step up the voltage, and the transformer vibrates from the electromagnetic effects. I could hear it distinctly until my early twenties, and a little less clearly now, a couple of decades later.
I don't believe that LCDs or plasma screens have this same whine; certainly they don't need the flyback signal in the same sense as a CRT does. Also, you get different frequencies from computer CRT monitors, because of the various settings available.
Does anyone else remember the TV Typewriter Cookbook?
Hobbyist.
If "hobbiest" were a word, it would mean something like "the most hobby". Or, maybe, "having the most hobbs."
Buying in-game items (or developed characters) with real cash is like paying someone else to make love to your wife.
If only this were true ...
The internal corporate sites I'm used have a pretty good chance of running only with I-stinking-E, using whatever demon-inspired lock-in technologies they are teaching to Microsoft "programmers" these days.
It really twists my guts in a knot. Then, I smile, and do what I have to to get the job done.
In the first third of the article, Brown very deliberately chooses his broadest brush to paint all open source software with his perceptions of the shortcomings of Open Office. As you yourself pointed out, nwbvt, most people don't end up reading the entire article. I did read the whole article, but I didn't let the reasonable tone of the end blind me to the demagoguery at the front.
Foul!
Does it matter how many gigaton bomb equivalents it is? I don't think so.
It seems to me that you are trying to distract readers from the essential fact: So far, Kyoto may have lowered the global average temperature in 2050 by 1/800th of a Celsius degree.
If you would like to dispute the methodology or conclusions of the Junk Science site, feel free to do so. But converting an estimated (not measured!) temperature change into a scary unit (gigaton bomb equivalents) adds only heat to the discussion, and no light.
(Sorry about that, but the "heat with no light" cliche' is just too irresistable in this kind of discussion.)
In general, Pike's essay is too general to be specifically useful.
However, I believe this is the smartest thing he says in this essay:
Of course, it has nothing to do with commentsApparently, "slavemowgli" believes that you cannot use humorous or colorful language if you want to be taken seriously.
Calling attention to a common problem is hardly sensationalism. For it to be sensationalism, it would require exaggerations, and unsubstantiated claims. Something like, "Unencrypted databases make firewalls and other network protections completely irrelevant [overstatement], and will cost industry more in the next few years than all the phishing and spyware in the world [unsubstantiated]."
That would be cheap sensationalism, not just colorful writing.
From the article:
Bogometer Pegged!
If they had made the opposite assumption (that the business data was not in XML format, a much more common scenario), then, the added complexity of translating the data to an XML format would have made the non-DB2 approach look cleaner and more reasonable.
The reasons I cut my Galaxies connection had nothing to do with the changes mentioned in the article.
The reason I dropped out was that the game was not structured to allow me to log in, play for one to three hours, and make a reasonable advance. Once you got past the low-level missions, accomplishing anything of significance required hanging out for two hours in a cantina, then jumping on a ship and fighting like crazy before all your buffs wore off. It's those hours in the cantina, gathering a group, then buffing, that drove me off.
Understand, I'm not discounting the social aspect of playing. What I'm saying is that the content forced the social interactions into a single mode: Go to cantina, find a group, buff for two hours and chat, then go play for a while. If I wanted to spend two hours chatting, I'd be on an IM client.
Will the changes fix that? I somehow doubt it.
1. The nonprofit organiztion that controls internet domains is based in the USA. I therefore infer that the US Government is in control.
And that is exactly the position that the people pushing Intelligent Design are in. They feel that a subset of society is forcing an ideology down the throats of their children, and they are fighting back with every trick they can think of.
It's kind of silly of you to get all self-righteous about it.
Personally, I think Intelligent Design is an attempt to dress up Creationism in a lab coat, and I find it a little silly.
Full disclosure: I am a fundamentalist Christian, and I believe in a literal interpretation of the Bible. My objection to your post has more to do, however, with your inconsistent position and failure to understand the people you are disagreeing with.
I really don't understand this mentality. For me, the fun of an MMO is the journey. Sure, it gets repetitive sometimes. But the game designers are still groping towards the right balance, and I am willing to cut them some slack.
I've often said that buying an MMO character (or goods) on eBay is like paying a stranger to make love to your wife. Automating the game play is like buying a robot to make love to your wife.
I spent $50 for a book a few weeks ago. Practical Common Lisp, by Peter Seibel. I had been looking for a good, basic Lisp book for a while, and I found the entire text available on-line at http://www.gigamonkeys.com/book/ . After reading about a chapter and a half, I decided that this was exactly what I was looking for, and I bought the dead-tree version.
It's not the first time, either, for me.
It works for fiction, too. If you're a science fiction reader, you probably noticed that Baen Books was doing some similar things, and I bought some of them that I might not have, otherwise.
Perhaps the copyright holders should notice that we are in the 21st Century, and things are changing, mostly for the better.
Here is my bias, up front: I am an evangelical Christian, and I believe in the literal truth of the Bible. My faith survived both high school biology classes and an engineering degree at a public university.
Here is what I think of Intelligent Design: It seems to be a result of some kind of "science envy", an attempt to present faith in a lab coat. It is not interesting to me.
What Mr. Glanz seems to be proposing is the other side of that coin: dressing up evolution in religious robes. I can only assume he is joking.
I think both are bad ideas, and they only contribute heat to the situation, with no light.
The key point in the conflict seems to me to be not so much disagreement about whether populations of organisms change in response to pressures (clearly, they do,) but the question of origins. How did it all get here in the first place? Unless someone gets a time machine of some sort running, we will all, always believe what we believe about origins without direct proof.
Maybe we shouldn't fight about it, eh?
Someone find this goon's 7th-grade English teacher and take away her pension!