How do you resolve the apparent inequality that results in a BSD section as compared with other Open Source Operating Systems (ie Linux, eCos)?
Sometimes, I feel we are overly concerned with "fairness" (in this case stated as "apparent inequality") at the expense of other things that we should value highly.
In this case, the *BSD community seemed to feel, rightly or wrongly, that they were being slighted by the Slashdot editors. In an effort of welcome community building, the Slashdot editors have seen fit to take positive action to remove any appearance of bias, and to actively support discussion and education about an important player in the Open Source Operating System world.
I don't see that these actions cost anyone anything. There's nothing that makes Slashdot hostile toward Linux, BeOS, etc. by Slashdot providing a space for *BSD. If you don't like the slashbox, turn it off. Otherwise, you won't see any difference, with the possible exception of increased *BSD coverage on the main pages and if you don't like that, you can also turn off presentation of that. See your configuration pages for details.
An interesting article. A bit all over the place, but I like that. I particularly liked the link from Linux Journal.
One thing that I can't agree with at all is:
Believe me, somewhere in a secret cavern beneath the Wharton School of Business (which is to finance as Stanford is to Computer Science) or someplace similar, teams of fiery-eyed MBA candidates are plotting to take down today's computer professionals as hard as OPEC, engineers, and Louis XVI all got slammed in their respective days.
This is just paranoia. Maybe it's just meant to be funny, after all there's not really a secret cavern beneath the Wharton School. I don't believe that anybody "took down" OPEC and engineers in the '70s. I especially bristle at the comparison of MBA candidates to the downtrodden French peasants.
It's popular to believe that cabals worked behind the scenes to destory OPEC, but really, they did it to themselves. The poor countries in OPEC have never been able to resist the desire to profit at the expense of the rich. In addition, there have been important holdouts (like the North Sea) that has made the OPEC cartel less than dominant.
Engineers in the 70's were brought down by a bad economy and a marked decrease in defense/aerospace spending. They were not targetted by a cabal of management types who were jealous of their market successes. Heck, these same forces cost a lot of middle management their jobs in the 70's and 80's.
You can bet that the first to get hit by a downturn in the IT economy today would be the MBA type middle-management. Upper management would first get rid of as much management as possible before cutting into the "productive" IT workforce.
Having said all that, I do agree that any number of things can happen to cause IT workers to suffer similar fates to the Engineer's of the '70s. People shouldn't be smug and should be prepared. It may not be a conspiracy to "bring you down", but it feels the same when there's no work.
Being prepared for a downturn is not showing your loyalty and commitment by working 80 hour weeks. Quite the opposite. Don't believe that management will appreciate it when you end up burned out and overly specialized. The real things you can do to improve your marketability are to sharpen your skills in a wide array of technologies and learn to communicate better. Although I've not tried it, it might be that participating in Open Source projects in your "spare time" might be a good way to sharpen your skills and practice written communication. (Note to those who want to improve their Karma, always work in positive comments about Open Source and Linux is a good way, no matter how far afield from the subject at hand.)
Intuitively, we believe that Linux is a superior solution. So prove it: fire up excel and do a little NPV analysis. Show them with numbers that your alternative is viable and fits with the goals of the business. In your model's assumptions, explain the merits of the technology as best you can.
It's not rocket science, and it would go a long way to helping foster acceptance of OSS by people who were previously clueless. Not to mention the fact that communicating effectively with management makes you that much more valuable to those you work for.
While I'm all in favor of everybody learning to communicate better, I think you have to recognize what it means to be a geek. A geek is typically a specialist in some technological field. Communication may not be their strong suit.
A manager, particularly one who is described as a "Master of Business Administration", should have significant skills in the area of communication. If a manager's primary job is not to communicate with employees, both expectations and to learn about the business from them, then what is it?
That being said, I think that the typical geek is far more able to communicate with the typical MBA than the typical MBA is to perform the geek's job.
It's frustrating to me when managers claim that they can't communicate with their people. That's like geeks saying that they don't understand the technology their using. It's an admission of incompetence.
Look, I recognize that some geeks are EXTREMELY difficult to communicate with. In these cases, management needs to select or develop some geek interpreters among the technical staff. It's not acceptable to just give up and say that there are some geeks with whom you cannot communicated. If this were the case, how do you expect to set your expectations to these geeks?
Sorry for the rant, but I too am tired of seeing superior solutions passed over because those in the know could not or would not make a proper business case to management.
And I'm tired of management who expect me to do their job and "fire up excel" to prove to them that what I'm saying is correct. When technical people are excited about a given technology, it's management's job to get down with the techies and pull out the business case from the technical detail for utilizing this technology. Developing business cases is one of those communication skills that MBAs have gone to school for, after all.
What Rob actually said wasn't that there was going to be a huge increase in the supply of programmers but that there was almost certain to be a structural shock to the industry... he specifically said that he could not predict the source of this shock.
How can one argue that the boom market will continue indefinitely for IT workers? It won't.
The number one thing we have to fear is simple economic downturn. Your list of concerns however, makes no sense, and in fact you contradict yourself. You seem to be agreeing with Rob that there will not be an increase in the IT workforce to compete against, but then proceed to tell us about various ways that the IT workforce will be increased (new "lower quality" programmers, programmers from the 2nd and 3rd worlds, new graduates like yourself).
I apologize for the long post, but here's my criticism, point by point:
This could be that:
a) More problems are solved by pre-packed solutions - hence less need for custom solutions or from a sys-admin point of view maybe vast leaps forward are going to be made in reliability.
I've never really noticed that pre-packed solutions have lead to a decrease in IT workers. You can buy pre-packaged solutions for just about any business problem you can name today, and in fact, the development of pre-packaged solutions is the biggest growth market in existence, yet we are still (supposedly) suffering more and more acute shortages of IT workers.
I can think of a number of reasons for this, but let me leave you with a few.
First, the design and implementation of pre-packaged solutions tends towards huge DISeconomies of scale. Ever notice that one guy can knock out and support an application where a team cannot? Any time you try to build a standard application that fits a whole huge market segment, you are attempting to tackle a big "programming in the large" problem that leads to huge development times, ever-growing requirements, unbelievable lead times and often utter catastrophy.
Second, even if you have a system that seems to fit your businesses needs, you typically have the need for many IT workers to install, configure, consult, train and support the use of this system. I don't have figures, but I would be surprised if SAP installations have had the net effect of less IT workers addressing the same need as before. Some businesses may claim that they've been able to get rid of some number of in-house developers due to a SAP installation, but that doesn't take into account the consultants and help desk people they've had to add to support the behemoth.
b) A new language comes out which lower quality programmers can use to achive equivalent results.
Ah, the Silver Bullet finally arives, eh? Well, I suppose anything is possible, but it's been a long time promised.
This is essentially a twist on how Microsoft Marketing sells Windows to Corporate America. It's closely related to the possibility that pre-packed applications will lead to an IT worker glut.
What you are saying is that with the correct technology X we'll be able to "deskill" the workforce, allowing just anyone to replace all those highly skilled workers we have now.
While I've never seen a technology that empowers programmers of "lower quality" to produce equivalent results, I have seen technologies that empower programmers of "lower quality" to produce better results than they would otherwise.
Know what? These technologies always allow the "higher quality" programmers to perform even better than they did before, completely out competing these "lower quality" programmers. The "lower quality" programmers are passed over for hot projects (and what project is not hot?) and the "higher quality" people gain more and more advantage of experience over the "lower quality" programmers. Ultimately, these "lower quality" programmers move on to another field that's less frustrating, or they find a niche where they can perform at their customary fraction of productivity of the highly skilled workforce. But, there's no total decrease in the number of IT workers here. The highly skilled you did have are still working. You've just added some "lower quality" people.
It's not typically technologies that really puts people out of work, not in the big picture. Sure, some workers are displaced by a given technology, but others are employed. The people who typically are displaced by new technologies are the lower skilled workers. If new technogies are introduced, they typically benefit the highly skilled IT workers, not endanger them.
c) Large amounts of new labour become available - look at all the companies which have experimented with outsourcing their projects to 3rd world techies... these guys are just as bright, work just as hard (or harder) and cost fractions of a western worker.
Check the literature. These projects have often experienced less than stellar results. It seems that close communication is really necessary for projects to succeed, for the most part, and this is something that suffers by putting your development off-shore. Even when you have good collaborative tools, there are the difficult problems of cultural differences, timezone differences and just the headaches of long range management (managing a project completely by paper) that make these outsourced projects so problematic.
Even so, there has been a HUGE growth in outsourcing projects to India, etc. in the last 10 years (this is not a new idea, and it's hard to imagine that it will become even more popular than it already is) and yet the proclaimed IT shortage grows ever more acute. Even when these off-shore projects are a big success, it's been observed that you still need a lot of analysts (to communicate technical requirements), help desk, trainers, consultants, etc. etc. to support these new wares from abroad. In the end, it's not much of a net negative to IT workers in the US and Europe, at best.
From what I've said above, it seems that there's just an ever increasing demand for more and more and more IT out there. In fact, that seems to be the case. Every new technology increases geometrically the number of skilled people to support it. A new language comes out (and succeeds) and instantly there's a huge boom in interfacing this new language to all the legacy systems. You still have to have people to support all the legacy interfaces to the legacy systems as well. I saw a chart recently that showed that COBOL programmers (even past Y2K) will still be in demand at a slowly linearly decreasing rate. So, adding C/C++, Java and all the rest has mostly just added new IT workers, not displaced those who program in COBOL, RPG, etc.
The software "crisis" is really just a crisis in the minds of hucksters and hypesters. If there were truly full employment of IT workers, you'd see such wage inflation that it would make your head spin. But, there's not really. There's been some increase, but it's really similar to increases we see for MBAs or high-tech Marketing people over the same time frame. Nobody is complaining about a Management or Marketing "crisis".
What I think is really being said when they say that we are in a software crisis is that we could be more productive if we could execute all of the projects that we can imagine. Middle management is in the business of justifying new projects, it's often their entire reason for being. If their grand schemes can't be carried out because it's not as simple to deploy the technology required as they would like, for whatever reason, including inability to staff them, then perhaps their scheme isn't so grand after all.
Business is in a feeding frenzy for more and better information. The more they get, the more they want and the more they want, the more information there seems to be. At some point, there will be an economic downturn which will pull the breaks on this spiral. Once things start to slow and they can find their way to actually lay off some middle management, this will be less managers asking for data. This will lead to the ability to lay off IT workers and then, less IT workers will need less management, who will need less information who will... This is the way recessions work. Less begets less.
I am concerned about a real economic downturn and what it would mean to the IT world and (gulp!) my job.
My advice (as if anybody cares)? Don't become overspecialized in cutting edge technologies that require big infrastructures. In a recession, there will be a paring down of technologies supported. Management will want things to be reliable, stable, supportable and not requiring consultants from 3000 miles away (sound like OSS/Linux?).
Here's the simple, supportable skills that would be paramount in this environment; C/C++, SQL, Perl, shell scripting, possibly VB. You should be able to setup systems (Unix and/or Windows) with Web Servers (including setting up CGI scripts, all you would really need for UI development on-the-cheap would be CGI and UI development in a recession would definitely be on-the-cheap) and File Servers. Know something about computer network security. Know something about Cisco router configuration. Know something about system administration.
In general, someone with a large set of diverse skills in relatively simple areas could replace a lot of specialists in a bind. Some DBAs will be needed in a recession, but new applications or ones where table and storage requirements change a lot will be at a minimum, thus requiring little DBA activity. If you already know how to do standard backup and other DB maintenance on Oracle or some RDBMS, that will be in demand with those other skills listed above, but I wouldn't expect that a lot of arcane DB tuning and in depth administration/setup knowledge would be in high demand. People would more likely suffer with poorly performing applications in a recession. New DB instances would be cloned from existing applications in so far as possible, requiring little DB Administration activity.
Finally, a few stray comments on some things you've said:
The likelyhood remains that if this industry (IT et al) where to remain structurally the same then salaries for techies will level off and then fall in the medium term due to increased supplies of new graduates (of which I am one).
I've been reading that there are currently fewer people today getting CS and IT degrees. Your model seems to suggest that demand is static, people don't move out of the IT field due to promotion, burn-out and retirement and that there supply of new graduates is increasing.
We are still an infantile industry - demand is high prices are volotile but can it really last indefinatly.
The computer industry is almost 50 years old. Older than cell phones, microwave ovens, color TV, VCRs, CDs, DVDs and mini-discs. A lot of these industries seem to have fairly stable price structures. It seems to me that the industry was far more stable 40 years ago when you could really argue that it was in its infancy.
1792 Denmark was the first European country to ban the slave trade.
Which is exactly what I had said, that the slave trade was still permitted by all European countries, that ever participated in it, in 1791. While European countries may have abolished the practice of slavery earlier than the US, they were still profiting from the slave trade for some time. Seems like Europe doesn't have much to be proud of in this regard.
This book may have been well written, but the experience is tarnished by the hero worship tone when, in fact, the project being chronicled was a huge technical and commercial failure.
For those who aren't familiar with The Soul of a New Machine by Tracy Kidder, it's about the development of the Data General MV10000 series machines. This is the machine that Data General had hoped would be the VAX killer. It was marginally better than the 780, the first VAX, when it came out and DEC had rapid-fire new implementations, notably the 8000 series and the MicroVax lines that utterly destroyed the MV10000.
If the author had waited a couple of years and did some serious post-mortems on what they did wrong and why it happened, maybe it would have been a better book. As it was, it was just a breathlessly romantic description of a bunch of people doing the wrong things in the wrong way. I feel about this book the way I would feel about the (unwritten) romantic account of Neville Chamberlain and how his great statesmanship saved Europe from war.
It's not so much a matter of "quality" as it is a matter of time. In a/. article a week or so ago, there was a big story about "Why Software Sucks" that basically said, "programmers don't have enough time to write everything well." When you can code an inefficient, memory-hogging algorithm in 2 hours while a streamlined crashproof sucker takes 2 days, guess which wins out.
Guess which version would have been more maintainable? Guess which version is more robust? Guess which version wouldn't have to be rewritten next year because some software that depends on this algorithm has changed and now the performance is finally unacceptable?
The problem that programmers don't have enough time is because they are spending so much of their time on rework and bug fixing caused by their rushing through solutions. The problem is short sighted management who encourages programmers to get to the finish line at whatever cost.
Well, I wouldn't have argued that the US system popped out of nowhere, with no historical background.
But, tell me, what country in 1791 supported anything similar to the rights laid down in the US Constitution and it's First 10 Amendments, the Bill of Rights? Admitedly, there was the considerable hypocrisy of slavery, but that's been corrected. In 1791, there was no European country that had banned the practice of the slave trade, I believe.
The Magna Carta was an important step, of course, but that only constrained the sovereign to live under the rule of law. This established stability such that the regional rulers could consolidate their own holdings without fear of royal capriciousness. The US Constitution first established that the people were sovereign. An important historical event, I think.
Enlightenment thinkers like Voltaire may have came up with the philosophical backdrop for Individual Liberty, but the Europeans at the time had a hard time implementing them. France in particular had a difficult time of things after first declaring themselves a republic for about 100 years of brutal repression and serial Governments.
Sure, it had precedent all the way back to the Laws of Hamurrabi, but what was started in the US was an important step forward that only now is being widely codified into law as basic human rights in Europe.
A lot of what I posted was just my trying to get a rise out of my debating opponent who said he had said the last word. From more than 12 years of Netnews debating, I've learned that when someone says "and this is the last I'm saying on the subject", then you get a free shot at saying pretty outrageous things to try to goad them back into the discussion. If you can get them back in, you've made them look bad in a way.
It's childish and stupid and I would recommend that any moderator who is reading this, please feel free to ding my previous post as a troll if you feel that this will teach me a lesson.
There's some truth in what I've said. I am upset at Europeans for being so wishy-washy with respect to Kosovo and Yugoslavia in general and expecting the US to bear the largest part of the cost, both monetarily, in human life and exposure to terrorism.
And Europe wasn't carrying their weight in NATO after their economies had recovered from WWII also. That's pretty frustrating to Americans. Paying for the defense of Europe the way that we did.
I agree that the US has supported a lot of horrible regimes. There's some excuse in the fact that we were fighting a long cold war. We have historically selected a lot of our "good" vs. "bad" countries on how they supported our cold war policies. I think the US record when compared to the records of the regimes supported by the other side in the cold war is rather good, but that doesn't excuse anything.
Things aren't always just so straight forward as it seems on the surface, either. The US maintains it's policy toward Cuba for good reasons, I think. Before Castro, Cuba was the richest country in the Caribean. There were some abuses, sure, but really people had similar freedoms to what they have under Castro. There may be more "economic" equality now, but people suffer from no freedom of speach, religion, assembly, etc. Gays are brutally repressed under Castro, for example. You might claim that Castro is very popular with the Cuban people, but this is partly due to the fact that they have no free Press and partly due to the exodus of people who might be antithetical to him. Not to mention Castro's record of imprisoning any opposition. Castro was an opportunist who saw he could prosper personally by positioning himself against us in the cold war. He's no hero.
From the US perspective, our stand against Cuba is really by a concern over property rights. We cannot support a Dictator in this hemisphere who comes to power and abolishes private property the way that Castro did. Americans owned a lot of that property and we consider it theft. Sorry, that's just how our system works. Americans have a very open economic system where foreigners can have HUGE holdings in the US (BP, Shell Oil, Siemens, Sony, etc. etc. etc.) and we insist upon stability of our holdings elsewhere. Without these guarantees, world trade and economic cooperation could collapse. We are Capitalists and make no apologies for it. It's not an accident that support Capitalism to a greater or lesser extent generally have a better standard of living when compared to those that do not.
If it's any consolation, I think we're getting better. Our biggest problem right now is that the Clinton Administration is insistent upon normalizing relations with China (PRC) while the Chinese continue to brutalize their own people, sell arms irresponsibly, and are increasingly threatening their neighbors.
It only took Europe 200 years to learn from the example of the United States that individual liberty is a good thing.
I wonder if these laws will actually be enforced to protect unpopular opinions, like Pro-Nazi views. I'll bet that Pro-Nazi views fall under the "public safety" exception. Somehow, people don't understand that Freedom of Expression is in place to protect unpopular views. Popular views don't need to be protected.
As far as the rest of your arguements go, they all seem to revolve around the idea that, because a socialist government provides so many services, there is an increased risk that a tryranical government will withhold those services based on some arbitrary "bias-du-jour".
Scarcity is the rule in the history and pre-history of man. Services will be rationed, it's just a fact. As I said, I prefer to not grant this power to governments as then the decision as to who gets and who gets denied services will be based on politic considerations. It may be no "fairer" to allow these things to be worked out by marketplace forces, but at least it doesn't lead to political tyranny.
I may also fear the tyranny of scarcity, that there are "haves" and "have nots". This is what motivates me to be productive. I believe that I have control over this and that ultimately, it is the way of nature. Look around, those who produce and take care succeed and those who don't lose out. (Now I'll get called a "Social Darwinist" or some such crap). The tyranny of an evil, even democratic government, is much more difficult to fight.
With a well framed government with appropriate and working restrictions and checks and balances, your concerns should be minimized.
You yourself pointed out that Europeans "saw no need" for Constitutional guarantees for basic freedoms.
An all-inclusive government system is not evil in and of itself, but if it gets in the wrong hands, which democracy alone has NO mechanism to prevent, it is extremely evil. I don't advocate anarchy. I advocate limited government. I believe government has some important functions, like defense of it's own values against Hitlers and Stalins, adjudicating disputes and enforcing rights, property rights among them. These are about the limits of government power I trust. If a government tries to grab the power it needs to be totalitarian, it will have to set up the mechanisms first. If those mechanisms are already in place through ever more expansive cradle-to-grave government provided services, it's a lot easier. Only in an environment where we insist on limited government power will the people consistently oppose an evil government trying to grab the power to enforce tyranny.
As I said, there's a reason why the US form of government has outlived all the others. It doesn't need to be radically reformed or overthrown because it is inherently stable. The government can't get too much power and the people prosper.
I'm not at all offended at your slights about how this is a uniquely "American" view. There's a lot to be proud of in an American view. American's have defended the world against horrible tyrants for the last 100 years (you know, those Hitlers and Stalins that you find so distasteful). American's have, over time, had the most productive institutions, be it Education, people flock to American schools of higher learning like nowhere else, technology - Linus came to California, for example, people come to America to be productive more than they go to Europe, I wonder why if Europe is such a paradise on earth? - or business (the center of the business world is New York, I'm told).
I tire of Europeans lecturing Americans on our "backward" system while we fight their wars for them (Iraq, Kosovo, WWII, WWI), help to rebuild Europe after it was decimated by WWII (Marshall plan) and generally have the institutions that everyone ELSE tries to emulate.
People give lip service to respecting differences, except when that difference is capitalism vs. socialism. To these same people, who respect all sorts of social conventions, capitalism is just a horror that must be brought down at all costs.
Now you're just talking about. There's nothing inherent in socialism that says that the goverment services must be of poor quality.
As far as health care goes, look no further than the US. Health insurance is for whoever can afford it. Furthermore, costs are spiraling.
Yes, and Mussalini made the trains run on time.
The issue is not one of efficiency, but control. When the government, even a "true Democracy", controls health care there is always the possibility of rationing that would have the current tyranny disposing of people that are unpopular.
Sure, there's rationing that occurs because of scarcity that also determines who lives or dies, but I prefer this kind of 'natural' rationing (natural because we observe it in nature) over allowing some tyrant this power.
This is the central flaw with socialism. People are willing to trade freedom for comfort. It makes people comfortable to know that people will be covered by a Universal Health Care system, they just have to give up some freedom. A little here and little there...
This isn't because the government is a socialist one...it's just because, well, they see no need.
And this is how tyrannies are allowed to form. Nobody sees a problem with denying freedoms, until they themselves need the freedom. People in Hitler's Germany didn't see Hitler as a threat to them, so why not let him take over?
The mindset of socialism goes part and parcel with this belief that an enlightened government should be given all power. Enlightened takes on different meanings at different times.
Does anyone else see the irony in the fact that an Anarcho Libertarian sees the Open Source Movement as a free-wheeling Bazaar and an academician likens it to academic collaboration?
The "Industry", capitalists all, see Open Source as free razors (software) to sell more of their razor-blades (hardware).
Hackers with no political or economic axes to grind see Open Source as individuals freed to produce great things.
The computer industry press see it as a hype machine that brings out endlessly fascinating stories.
It's like the Elephant and the Blind Men. Each one "sees" the Elephant as something from their "point of view" based on their background and experiences.
RMS has it right. It's not really about anything but freedom. Freedom to exchange ideas, whether they are embodied in speech or programs. Freedom is difficult to define and comprehend, but everyone pretty much sees it in a positive light. Everyone relates it to their own utopia.
You can bet that the US would get even worse if that pesky constitution wasn't so hard to get around.
This is exactly the point.
The US does have a pretty intolerant culture at times. But, in the United States, government is limited by it's Constitution, so these cultural intolerances can't be codified into law.
Most European countries do not have guarantees like we have in the United States. I know, for example, that Europeans often have no guarantees of freedom of expression or assembly.
Socializing commerce and health care also means that the Social Democracies have totalitarian control over people's lives. This is what the Social Democracies have in common with Nazism. Without even a trial, people can be condemned to die by the government by rationed health care or denied their livelihood through capricious decisions of government control of commerce. We in the US are not much different in this regard as we are getting more "cradle to grave" services all the time.
The Europeans seem smug in their belief that Democracy will protect them from tyranny, without recognizing the fact that Democracy and tyranny are in no way incompatible. Democracy can be defined as the tyranny of the majority. Hitler rose to power in a Democracy.
We in the US feel that limited government is the only way to prevent tyranny. Of course, our Constitution is routinely ignored these days, so much of this is just nostalgia.
And, it's worked pretty well. The US enjoys the longest surviving government in a single form (under the same Constitution) in the world.
Does "Linux" here refer to the kernel, or to the various distributions? If it's the latter, there is no "it" - there's a pile of different distributions, some of which, arguably, specialize in something they're intended to do really well.
(And even if it does refer just to the kernel, not all useful kernel stuff is in the Official Kernel Source - that's another place where different distributions could do different things.)
I'd say it's both the kernel and the distributions.
While the kernels may have flexible options, there may just flat be things that a BSD kernel does better than any Linux kernel. Of course, this may be seen as a sore point to Linux kernel developers who will attempt to address it in various ways, just as BSD developers may attempt to address things that Linux kernels do better than BSD kernels.
At the end of the day, there will still be differences. Even the perception of difference will lead to specialization in the marketplace.
Any specialization that occurs will lead to a certain market using it heavily which will lead to more experience with the product being used in that way which will lead to further specialization.
The existence of so many "easy to install" distributions implies specialization in the marketplace for Linux vs. BSD. I'm not sure the distributions help that much in ease of installation, but I'd be surprised if there weren't some Linux distributions that were easier to install than most BSD systems. Again, BSD folks might put together "distributions" and this would lead to competition and again, there would be a reputation for one being more for the Geek and the other being for the newbie based on their relative successes.
I'd be very surprised if there is a Linux system that is an exact superset of all of the attributes of a BSD system or vice versa. The only way I could see this happening is if one completely marginalizes the other, which I don't see happening.
Just the fact of GPL leads to some specialization. Linux will be used by GPL advocates, for their purposes and BSD will be used in commercial products for their purposes. This will tend to move the products in different directions.
It is odd to talk about something that's Open Source as a "product". What Linux or BSD are is really mostly perception. Either can be many things to many different people, based on what you have on your system.
It sounds like you're accusing the BSD systems of trying to soak up the credit for other people's work.
No, I was trying to address the issue "how would you interpret the fact of market success for BSD". I would attribute it, to some degree, to the success of Linux and I would point out that the market success (not it's existence, you are correct that BSD predated GNU/FSF) of BSD was only made possible by GPL'd software.
Because BSD _is_ open source software. Open Source != GPL.
You're right, I did conflate Open Source and GPL, as others have pointed out. My mistake.
(I can see this comment being moderated down right now...)
We often see statements about how *BSD-positive comments are routinely moderated down, but it's funny, they usually are moderated UP, especially if they aren't just taunts.
It's clear to me that Slashdot covers BSD a great deal and for the most part this coverage is warmly greeted by the community here. The Open Source community continues to prove that it's very Open.
One of the "problems" with Linux is that there are forces trying to make it all things to all people. Having *BSD flavors around, each specializing in something they do really well, provide important compliments.
In theory, they can all share apps, they can each benefit from the success (and learn from the failures) of the others, and they'll provide a rich competitive environment. The future won't be (MS or Linux or Commercial Unix or...), but (MS or Linux or FreeBSD or OpenBSD or NetBSD or Commercial Unix or...).
One of the biggest, and by no means the only, problems with MS was that they held a desktop monopoly. Choice is good.
...Then what does that do to the elaborate castles of theory people have been building on the "Open Source Movement". Pundits from the credible (think ESR) to the credulous (think Jon Katz) have been pounding their shoes on the pulpit about the unstoppable force that is community code.
I don't know about Jon Katz, but in ESR's case, he was frankly amazed at the "Linux phenomenon." ESR could simply not understand how Linux could be stable and usable without a lot of central control, design, testing, etc. etc. He wrote The Cathedral and The Bazaar in an effort to come to grips with the phenomenon.
More than one reputation is now founded on the premise that open source is "unique" and provides marvellous, unheard of benefits that tightly controlled products never could enjoy.
This is a strawman. Who says that tightly conrolled products never could enjoy the benefits of what Open Source projects have? Well, except the obvious benefit that all changes are accretive and are guaranteed to benefit all of society. Open Source projects benefit projects like *BSD, while *BSD projects may be a duplication of effort of another *BSD project.
So if the BSD's succeed in gaining considerable market share, doesn't that mean most of the rhetoric we've been reading about open source is mostly hot air?
Of course, the BSD's already have held considerable market share. Before Linux, BSD/OS and FreeBSD probably powered more ISPs than any other system. I know of a number of companies that use *BSD "under the hood" to power appliances. Anything like this that's done in Open Source goes to make the rolling Open Source snowball bigger and bigger, while these efforts in BSD tend to fork off into closed backwaters. It seems that Open Source advocates only need to observe a few historical facts to point out the clear dangers of free-but-not-Open Source. Has (Open/Free/Net)BSD benefitted from the fork that occurred when BSD/OS was created? Open Source advocates believe it's the accretive nature of Open Source that has fueled Linux's unparalleled growth and popularity. To what do you attribute Linux's recent successes? Hype and personality culture? Yes, Linus is a powerful, magnetic personality.
The various BSD flavors languished in near obscurity since 1993. So, come 1999, suddenly there's all this excitement around Linux, the hot new thing that might unseat Microsoft and take over the computing world. Big vendors like Oracle, IBM (including Lotus), SGI, Compaq, Dell, Sybase, Informix, and Corel all get behind it. Wall Street approves, makes Linux startup guys paper billionaires.
Some guys in the *BSD community have built a Linux emulator. Some segment of this new marketplace that Linux is rapidly building sees that there might be advantages to a similar, but different Free Code operating system called *BSD. This difference might be an especially agressive, ground up security model (OpenBSD) or something else. And, after all, they all run all the Linux code, so there's little risk. The *BSD flavors prosper like never before, and why not? Now, finally, there's the promise of a BSD that has Office Apps, and advanced Window Managers like Gnome and KDE and a whole wealth of other goodies that have suddenly become available.
So, you would draw from this that the "rhetoric we've been reading about open source is mostly hot air?"
I would draw that it's good to ride the coattails of a winner.
If I'm correct in that interpretation (and I might not be - please correct me) the BSD's are much more like Netscape's model than Linux's model.
Ironic that you would invoke Netscape's model as being equivalent to BSD's model. Supposedly, Netscape was inspired to open up Mozilla based on the writings of one ESR. Seems that some people have drawn different conclusions from The Cathedral and The Bazaar than have you.
In any case, any success that *BSD has is, in not small part, due to the availability, reliability and quality of gcc. Last I checked, gcc is Open Source. Thus, the lesson to be drawn from BSD's success is that Open Source is a powerful force.
Wouldn't it imply that, really, strict central control is a good idea for a software project?
Another strawman. Others have pointed out that Linus maintains strict control over Kernel mods as do the *BSD leaders. Almost every successful GPL'd software has a set of core developers (sometimes serially) behind it that drives and guides it.
Besides, I don't recall anyone in the Open Source community suggesting that the only good software comes from Open Source projects. Cathedrals are beautiful, after all.
The existence of Mandrake and CheapBytes releases of RedHat makes me wonder at the hype surrounding the RedHat IPO.
I just don't see making distributions being the kind of high margin business that would justify all the interest in RedHat. I think a lot better argument can be made for cross-distribution support and training operations like linuxcare being a big growth market with higher margins.
It's not that I don't think that RedHat isn't providing a great service to the Linux community, I do. I am having a hard time with the business model justifying the astronomical stock price. If what I think is reality later sets in, a crash in RedHat stock price in the future will not do the Linux community any favors as it might signal a lot of people that the "Linux Revolution" is over.
On the other hand, it might be better if the "Linux Revolution" hype cooled off. Linux doesn't need the hype to be really big. The big industry players (the IBMs, Compaqs, SGIs, etc.) like the hype because it keeps stirring the pot, getting people to buy new systems and services. Just as customers were tiring of the Microsoft/Intel Upgrade Treadmill, here comes Linux to get customers back on the "install a new IT infrastructure because it's the coming thing and we don't want to be left out" treadmill.
Anybody who read The Cathedral and Bazaar (most people here, I'm assuming), know that the entire PREMISE of the free software industry is "release early, release often" -- which means that free software uses the attitude described in this article, only on steroids.
Anyone who has read The Cathedral and The Bazaar will recognize that this apparent contradiction, "How does quality, useful software come from this anarchic-no-formal-spec/testing?" is at the heart of the whole essay.
I don't see that much similarity with commercial software and free software releases. Sure, the philosophy is "release early, release often" with free software, but there's absolutely no pressure to release before you feel it's ready.
Feee (sic. Freudian slip? - JordanH) software usually doesn't have formal testing either. Instead of a dedicated testing team like most commercial software has, the testing philosophy is to release it and for users to test it. Not good preventive treatment obviously. Nobody is going to test if the new SCSI driver is going to wipe off your hard drive - it's left for the beta testers to find this.
Well, the fact that this works at all may well be an indication that dedicated testing teams are overrated. With Open Source software, if you have a release, you can not only report a problem, but potentially, if you are so inclined, provide a fix. This is not the case with commercial software. In fact, in most commercial software shops, the testers are not even allowed to propose fixes. By eliminating this extra communication, things can be done rather more efficiently.
Here's the Open Source scenario: A new kernel is released with a new SCSI driver. This is a development kernel. Literally thousands of potential developers download the kernel and get it running. Some small number reports that their drive was wiped. A few actually debug it and propose fixes. The kernel developers have an open discussion about this on the Internet and determine the best of the proposed fixes and it goes into the new development kernel. A patch is made available to fix the problem before the new development kernel is made available.
Eventually, the development community blesses some set of code as a stable release. There's very little chance that a stable release will wipe anyone's hard drive. It, by some chance, it did wipe someone's hard drive, some set of qualified kernel developers would start to work on this isolated problem and come up with a patch, usually within a day.
Here's the commercial scenario: A new release candidate comes out of development. The testers get ahold of it and exercise it with all of the SCSI cards/drives they have in the lab. It doesn't show any problems. It's released. A whole lot of people complain that their hard drives are wiped. The help desk people who receive the complaints first start to blame the customers for something stupid and tell them to reinstall. Customers reinstall and still have the same problem. Eventually, this is realized to be a problem, and the company's PR machine jumps into overdrive. Data is collected, but at arms length as much as possible. The company is afraid of liability so they admit nothing. Developers and testers duplicate the problem in the lab a fix is developed and a complete QA cycle is performed on the patched system (liability, you know). Weeks later, the customers get a patch.
Now, MS has been using beta testers for years in much the way Open Source does, but with the considerable difference that Open Source testers are often able to provide solutions.
We read in the article that QA testing is increasingly slipshod with commercial software. MS is big on the HUGE beta distribution so that they can get coverage of the many many combinations of software/hardware they need to test against. MS really HAS to do this as application programs on their OS's are known to bring the whole thing down. This is relatively rare on other OS's.
As the article points out, the vendors attempt to explicitly exclude themselves from any liability if their system wipes your hard drive, so I'm not sure that I have much confidence that their software has been well tested either.
I have also looked at the source code for many free projects such as GCC and GIMP and noticed that the code quality was quite low. For example, malloc() calls were usually unchecked (especially in GIMP). I have worked on commercial projects before, and checking malloc() is rule #1 -- if you happen to run out of memory while using GIMP, it'll blow up, where as commercial systems will simply fail to complete the current operations. If such a high profile package is of such low code quality, I expect the lesser profile packages are considerably more buggy.
As others have pointed out, your analysis of GIMP is not entirely correct (it mostly uses a wrapper malloc()), but you have inadvertently brought up an important point here. Software quality experts have recognized that Code Reviews are the single most cost effective thing you can do to improve software quality. Many people are suprised that code reviews, on average, turn up more defects than do formal testing. Open Source is like one huge rolling Code Review, with the Internet discussion forums being the communication media. You have now weighed in on quality issues in GIMP and it will be reviewed. There's a good possibility that someone will fix it if you have a valid point.
Contrast this process with commercial software where, in my experience, you almost never see review of code that has been formally tested and released. Usually, there's a lack of political will to make changes to code that's been "working" in previous releases to future releases. Check the CVS histories of some of the bigger Open Source projects and you'll see a lot of ongoing continual refinement. I like to believe that Open Source product quality is getting increasingly better, while most commercial software I've been involved with has gotten worse over time.
Also, I think you have worked in rather good commercial shops with real standards (always check malloc() return, for example). I was just reading today that the MS Office products don't "like" to work with documents on floppy drives as they tend to create temporary files on the same source that the document comes from and they don't gracefully handle out of disk space problems gracefully. As the article points out, standards are falling rapidly in the industry as a whole.
I guess the proof of the pudding is in the eating. Linux and FreeBSD now have a reputation for stability and quality. Maybe that reputation is undeserved, I don't know. If the software is of such low quality that it doesn't meet your stringent standards, then don't use it.
And every project that worked and was on time--happend because we did that old boring junk that no one likes to do:
1) Write Specs 2) Follow the spec. 3) When the marketing department trys to add stuff, you say "Is it in the spec?"--"Sure we can add it, but it is going to take X additional weeks". 4) Test
I don't want to take anything away from your experiences. I'm sure you've had success with this process.
I've been in projects like this where success was declared at the end. But, I knew then, or perhaps just a little bit later that things were not so rosey.
Building something to spec is wonderful. Especially when it's a bridge, or a tower, a road. I've not seen as much real success with this when it's software we're building.
There are many many problems to talk about in the design and development process that I could go over. But one that isn't often talked about that dooms software to "suck" is what I like to call the two customers problem.
The people who write specs generally are marketing people, or managers, or maybe even, if you're lucky, analysts who think they really know the problem domain and have been around it for years and who are sure they know what goes into a good system.
Software is not designed for or by users. It's designed by people who sit around and try to dream up solutions without ultimately taking any responsibility for the useability of the system. Even when the designers make an honest effort to study the problem, talk to real users and do useability studies, too much of the ego of the spec writers comes through. Often, the grand dreams of the spec writers are in opposition with the stability that the real users crave. By stability, I mean both reliability (it doesn't crash) and that a new piece of software should be familiar, should have similarity to the software presently used for this function.
So, a project is initially judged a success or failure based on how you satisfy the management, the analysts and the marketing types. Testing pretty much proves that it works in the ways that the spec writers envisioned it being used. Unfortunately, the software will ultimately be judged by those who actually have to use it, and tested in the real world in ways the spec writers never dreamed. These two groups, the spec writers and the users, the two customers, have very different goals.
There is some hope. Rather than the spec, build, test, release model, a spiral development or RAD prototyping can ultimately get you a lot closer to a satisfying solution.
Even here, I've actually seen cases where management will seem to prefer that the system be hard to use or lack important functionality. You sometimes get the impression that management feels that if a piece of software satisfies the lowly user, then the organization is spending too much on software development.
It's a sad state of affairs. It's ironic that study after study shows that the # 1 customer satisfaction factor is a pleasant experience with the bank teller, the store clerk, the phone order taker, etc. Management consistently shows an almost studied disregard for the tools that these people are forced to use.
And while it is fun to slam managment/marketing, programmers have to take blame too: lots of time we say "Yeah, it *WOULD* take a year for someone else to do it, but I am a programming genuis. I can have it done in a month!".
Very true. One problem is that management often shops for a team or programmer who will tell them the estimate they want to hear. And, when you actually have to "name that tune", corners are cut. The corners that typically get cut are in places that are not visible externally, like bad coding practices, lack of concern for modularity and reuse, memory leaks (As long as memory leaks stay beneath the level that testing finds, it's thought that it's OK to leak some. Enlightened testing checks for memory leaks in the stress tests, but enlightened testing is not that common). Ultimately, this cutting of corners is what leads to the software sucking so badly. There's rarely political will to rewrite large systems, even when they are implemented in sand, so each new release suffers with the accretion of sins of the past.
Bringing this back to the subject of Open Source software, always on topic, never out of style on Slashdot, the problems I've outlined above don't really apply to Open Source development, at least not today. Typically, Open Source projects have not suffered the layers of management, analysts and thinkers that typical software development groans under. Most often, the user is the developer so the result is most likely to be satisfying (or if it's not, you know who to blame and usually know how to go about getting to satisfaction). Even when Open Source projects are written for someone else, the real testing is done on early releases by real users in close communication with the developers. So much organizational simplicity, so little need for endless meetings, project reviews, marketing "input", cost justifications, etc.
I like to think that free software is really about freeing developers to serve people more directly. With GPL software, if you aren't serving the customer, then someone else can take what you've produced and serve that customer better. With proprietary software, the trick is to develop just enough functionality and value into your offering that anyone else who tried to clone your software would incur too much expense and lead time for your customers to bear.
BSD projects, notably *BSD OS's, seem to get along just fine without the accretive GPL.
They get along fine, if your goals are modest. The "advantage" to GPL is exactly that it is accretive. People cannot take advantage of GPL software without contributing back to the original author any changes and enhancements.
(Sorry for the lecture on GPL here, most people know this, but I have to develop this for those who don't.)
RMS believed that this would grow a body of software that would benefit everyone and the recent evidence seems to suggest he was right. Chart the growth of *BSD vs. Linux. While a lot of *BSD folks grumble that this is all just hype and marketing, I disagree. I feel this is a direct result of GPL.
When the dreaded "forks" have occurred, (i.e. when Theo de Raadt correctly insisted that FreeBSD was insecure and orchestrated the OpenBSD variant) the community of users and developers has benefited and acquired more choices.
Has the community of users and developers benefited from the fork that occurred when BSDI developed BSD/OS?
I ask this a lot here, and I've yet to be answered. Why are there not organizations that have grown up to support, package and sell *BSD distributions, except for BSDI, the way there are with Linux distributions? I'm beginning to think the existence of BSDI suppresses the *BSD support market.
If a business wants *BSD, packaged and supported, well there's BSD/OS, with it's proprietary drivers and kernel enhancements. It's priced such that many would just buy BSD/OS rather than try and support FreeBSD themselves. If a business wants Linux, there's an active competitive market out there. All the Linux competitors have to stay sharp and be intensely customer focused or someone else will take their product and do a better job of it (witness the keen competition between RedHat and Mandrake).
This is a healthy situation for Linux and a stultifying one for *BSD.
Perhaps someone should take the *BSD source base, package it, support it and release any modifications under GPL (or some slightly modified GPL if there's some conflict between the BSD license and GPL that makes this problematic). This might be the best thing for the future of *BSD.
It seems to me that the same thing that happened almost 10 years ago with nascient Operating Systems (Linux and BSD) using GPL'd GCC as an enabling technology is happening today with a broad range of computer applications using GPL'd Linux as an enabling technology.
If BSD has a better base kernel and is easier to port - claims that I have no reason to doubt - couldn't there be advantages to applying the "accretive" nature of the GPL to it?
Perhaps I'm not appreciating the *BSD culture, here. I've heard it argued that BSD has better 'roots' and that it is a more stable, better designed base to work from. If this is the case, is there some problem with placing mods under GPL? Or, is the main problem with GPL is that it is too restrictive, not allowing your mods to be used profitably in proprietary ventures?
*BSD supporters who feel this way should recognize that, in all likelihood, there would be no freely redistributable BSD today if it weren't for GPL'd gcc. The accretive nature of GPL guaranteed that gcc would be continually improved and new architectures would be supported such that it eventually provided an important tool to springboard both Linux and *BSD.
I find it ironic that *BSD supporters would claim that GPL supporters are pious and hypocritical. I guess this parallels someone who has fallen from the graces of some Church who complain that what they don't like about that Church is that the people there are too pious.
Mr. Stallman, while loudly (and lengthily) proclaiming his eschewal of monetary gain from programming, certainly seems to enjoy the miniscule kernel of power his GPL licenses have given him.
There is a class of human, Stallman and Nader among them, who bypass money as a means of keeping score and get right to the heart of the matter. They seek to self-aggrandize and accrue as much power, within their limited sphere of influence, as possible.
As much as you might like to pillory RMS for maintaining some kind of "control" over GPL'd software, it's clear to me that the aims of the GPL are to remove truly restrictive controls over software. RMS invented the GPL because he saw that entities were taking public-domain licensed software, making modifications and placing this new software under proprietary licenses and copyrights. The BSD-style licenses allow for entities to gain this same proprietary control over derived works. GPL is the license which attempts to remove "control" from software in so far as is possible. To accomplish this, the GPL requires the small bit of control that those who derive works from GPL'd software not exercise "control" on it. You can do whatever else you want with the software, you just can't modify it and claim it as your own. The BSD license requires that you include the Berkeley copyright. Both licenses imply some control. One guarantees that noone will take control over derived works and the other one doesn't.
What are the reasons for releasing under BSD-style licenses over a GPL license? I can think of three; 1) All men, even those who would take advantage of this work for their own profit, are brothers and this software should be made "free" to the brotherhood of man. 2) Self aggrandizement. You want your name to appear in as many places as possible, including in proprietary derived works. 3) I wish to promote this particular piece of software as free software, but reserve the right to make some changes it to it later and then make it proprietary.
Please enlighten me about other reasons for choosing a BSD-style license over a GPL license. I don't have any problem with reasons #2 and #3 I've given above, but only reason #1 is selfless. I do consider reason #1 to be unrealistic and ultimately leading to a situation where more software is "controlled" and proprietary.
Are GPL supporters hypocritical because they claim to be selfless when in fact they are not? Show me a GPL supporter who claims to be selfless and we'll check this on a case by case basis. Some are possibly hypocritical, others may truly be selfless (in so far as that applies to anyone), but I think you'll find that most don't claim to be selfless.
It's probably true that RMS appreciates any recognition that he may get as the founder of the Open Source movement. What, exactly, is wrong with that? Because he doesn't do things for remuneration, but, in some part, instead for recognition and honor in the eyes of his peers, he's somehow hypocritical? I'm sure RMS would never claim to have been a Buddhist, doing what he does to annihilate his ego.
Why do Jordan Hubbard and Theo de Raadt do what they do? So they will have better software to use for themselves and work in a team environment where this can be developed? I think this is the primary motivation of most GPL supporters, including RMS.
Again, I apologize to Slashdot readers for the polemic on GPL. Most of you have heard it all before. I do feel that people who come to Slashdot to criticize Linux and GPL should get what they should reasonably expect to get, an argument.
it doesnt make much sense to start up a small company to write free software, but that doesnt stop people from just writing free software.
I'm not at all sure that this is true. It is common to see a small company start up that will support, integrate and consult about software. Such a firm could make available Open Source software to get their foot in the door and as a means to advertise their existence. Of course, if someone wanted enhancements, support or consulting involving said Open Source product, you can guess where they might look first.
In fact, this article , which was referenced on Slashdot in August seems to suggest that the future will have many small companies writing Open Source software. Here's an extract from that article that seems to suggest this:
"The open-source community has long been working and waiting for the day when Linux becomes widely used, and developers will be able to develop for a popular platform on which no vendor has a secret advantage. But the vendors in this new world may find it looks much like the world we now have. There will be no Very Large Software Company to scare ISVs into sticking to the niches, but any vendor with a horizontal product (that is, one in wide use), will face a host of competitors. Both the number of competitors and the availability of useful free products will help drive down application prices and profits. And vendors of widely-used proprietary products who keep their prices too high may find their products cloned! As a result, vendors will find they can make more money in the niches--where they are today."
Now, this article is brought to you by IBM, and I'm thinking that IBM is hoping that those who want support for Open Source in the future will come to IBM Global Services, particularly the big firms, governments, etc.. Perhaps this article is glossing over the benefits to the really big ISV of Open Source. I do think the article is well reasoned though, and does support the idea well that there will potentially be a lot of small firms writing and supporting Open Source software in the future.
I've even seen this business model in action. I recently saw the author of a popular Open Source (GPL) eCommerce perl application give a talk about his product. He currently has more consulting work that he and a small band of associates can handle.
Sometimes, I feel we are overly concerned with "fairness" (in this case stated as "apparent inequality") at the expense of other things that we should value highly.
In this case, the *BSD community seemed to feel, rightly or wrongly, that they were being slighted by the Slashdot editors. In an effort of welcome community building, the Slashdot editors have seen fit to take positive action to remove any appearance of bias, and to actively support discussion and education about an important player in the Open Source Operating System world.
I don't see that these actions cost anyone anything. There's nothing that makes Slashdot hostile toward Linux, BeOS, etc. by Slashdot providing a space for *BSD. If you don't like the slashbox, turn it off. Otherwise, you won't see any difference, with the possible exception of increased *BSD coverage on the main pages and if you don't like that, you can also turn off presentation of that. See your configuration pages for details.
Congrats Slashdot. Your "Open"ness is refreshing.
One thing that I can't agree with at all is:
Believe me, somewhere in a secret cavern beneath the Wharton School of Business (which is to finance as Stanford is to Computer Science) or someplace similar, teams of fiery-eyed MBA candidates are plotting to take down today's computer professionals as hard as OPEC, engineers, and Louis XVI all got slammed in their respective days.
This is just paranoia. Maybe it's just meant to be funny, after all there's not really a secret cavern beneath the Wharton School. I don't believe that anybody "took down" OPEC and engineers in the '70s. I especially bristle at the comparison of MBA candidates to the downtrodden French peasants.
It's popular to believe that cabals worked behind the scenes to destory OPEC, but really, they did it to themselves. The poor countries in OPEC have never been able to resist the desire to profit at the expense of the rich. In addition, there have been important holdouts (like the North Sea) that has made the OPEC cartel less than dominant.
Engineers in the 70's were brought down by a bad economy and a marked decrease in defense/aerospace spending. They were not targetted by a cabal of management types who were jealous of their market successes. Heck, these same forces cost a lot of middle management their jobs in the 70's and 80's.
You can bet that the first to get hit by a downturn in the IT economy today would be the MBA type middle-management. Upper management would first get rid of as much management as possible before cutting into the "productive" IT workforce.
Having said all that, I do agree that any number of things can happen to cause IT workers to suffer similar fates to the Engineer's of the '70s. People shouldn't be smug and should be prepared. It may not be a conspiracy to "bring you down", but it feels the same when there's no work.
Being prepared for a downturn is not showing your loyalty and commitment by working 80 hour weeks. Quite the opposite. Don't believe that management will appreciate it when you end up burned out and overly specialized. The real things you can do to improve your marketability are to sharpen your skills in a wide array of technologies and learn to communicate better. Although I've not tried it, it might be that participating in Open Source projects in your "spare time" might be a good way to sharpen your skills and practice written communication. (Note to those who want to improve their Karma, always work in positive comments about Open Source and Linux is a good way, no matter how far afield from the subject at hand.)
It's not rocket science, and it would go a long way to helping foster acceptance of OSS by people who were previously clueless. Not to mention the fact that communicating effectively with management makes you that much more valuable to those you work for.
While I'm all in favor of everybody learning to communicate better, I think you have to recognize what it means to be a geek. A geek is typically a specialist in some technological field. Communication may not be their strong suit.
A manager, particularly one who is described as a "Master of Business Administration", should have significant skills in the area of communication. If a manager's primary job is not to communicate with employees, both expectations and to learn about the business from them, then what is it?
That being said, I think that the typical geek is far more able to communicate with the typical MBA than the typical MBA is to perform the geek's job.
It's frustrating to me when managers claim that they can't communicate with their people. That's like geeks saying that they don't understand the technology their using. It's an admission of incompetence.
Look, I recognize that some geeks are EXTREMELY difficult to communicate with. In these cases, management needs to select or develop some geek interpreters among the technical staff. It's not acceptable to just give up and say that there are some geeks with whom you cannot communicated. If this were the case, how do you expect to set your expectations to these geeks?
Sorry for the rant, but I too am tired of seeing superior solutions passed over because those in the know could not or would not make a proper business case to management.
And I'm tired of management who expect me to do their job and "fire up excel" to prove to them that what I'm saying is correct. When technical people are excited about a given technology, it's management's job to get down with the techies and pull out the business case from the technical detail for utilizing this technology. Developing business cases is one of those communication skills that MBAs have gone to school for, after all.
What Rob actually said wasn't that there was going to be a huge increase in the supply of programmers but that there was almost certain to be a structural shock to the industry... he specifically said that he could not predict the source of this shock.
How can one argue that the boom market will continue indefinitely for IT workers? It won't.
The number one thing we have to fear is simple economic downturn. Your list of concerns however, makes no sense, and in fact you contradict yourself. You seem to be agreeing with Rob that there will not be an increase in the IT workforce to compete against, but then proceed to tell us about various ways that the IT workforce will be increased (new "lower quality" programmers, programmers from the 2nd and 3rd worlds, new graduates like yourself).
I apologize for the long post, but here's my criticism, point by point:
This could be that:
a) More problems are solved by pre-packed solutions - hence less need for custom solutions or from a sys-admin point of view maybe vast leaps forward are going to be made in reliability.
I've never really noticed that pre-packed solutions have lead to a decrease in IT workers. You can buy pre-packaged solutions for just about any business problem you can name today, and in fact, the development of pre-packaged solutions is the biggest growth market in existence, yet we are still (supposedly) suffering more and more acute shortages of IT workers.
I can think of a number of reasons for this, but let me leave you with a few.
First, the design and implementation of pre-packaged solutions tends towards huge DISeconomies of scale. Ever notice that one guy can knock out and support an application where a team cannot? Any time you try to build a standard application that fits a whole huge market segment, you are attempting to tackle a big "programming in the large" problem that leads to huge development times, ever-growing requirements, unbelievable lead times and often utter catastrophy.
Second, even if you have a system that seems to fit your businesses needs, you typically have the need for many IT workers to install, configure, consult, train and support the use of this system. I don't have figures, but I would be surprised if SAP installations have had the net effect of less IT workers addressing the same need as before. Some businesses may claim that they've been able to get rid of some number of in-house developers due to a SAP installation, but that doesn't take into account the consultants and help desk people they've had to add to support the behemoth.
b) A new language comes out which lower quality programmers can use to achive equivalent results.
Ah, the Silver Bullet finally arives, eh? Well, I suppose anything is possible, but it's been a long time promised.
This is essentially a twist on how Microsoft Marketing sells Windows to Corporate America. It's closely related to the possibility that pre-packed applications will lead to an IT worker glut.
What you are saying is that with the correct technology X we'll be able to "deskill" the workforce, allowing just anyone to replace all those highly skilled workers we have now.
While I've never seen a technology that empowers programmers of "lower quality" to produce equivalent results, I have seen technologies that empower programmers of "lower quality" to produce better results than they would otherwise.
Know what? These technologies always allow the "higher quality" programmers to perform even better than they did before, completely out competing these "lower quality" programmers. The "lower quality" programmers are passed over for hot projects (and what project is not hot?) and the "higher quality" people gain more and more advantage of experience over the "lower quality" programmers. Ultimately, these "lower quality" programmers move on to another field that's less frustrating, or they find a niche where they can perform at their customary fraction of productivity of the highly skilled workforce. But, there's no total decrease in the number of IT workers here. The highly skilled you did have are still working. You've just added some "lower quality" people.
It's not typically technologies that really puts people out of work, not in the big picture. Sure, some workers are displaced by a given technology, but others are employed. The people who typically are displaced by new technologies are the lower skilled workers. If new technogies are introduced, they typically benefit the highly skilled IT workers, not endanger them.
c) Large amounts of new labour become available - look at all the companies which have experimented with outsourcing their projects to 3rd world techies... these guys are just as bright, work just as hard (or harder) and cost fractions of a western worker.
Check the literature. These projects have often experienced less than stellar results. It seems that close communication is really necessary for projects to succeed, for the most part, and this is something that suffers by putting your development off-shore. Even when you have good collaborative tools, there are the difficult problems of cultural differences, timezone differences and just the headaches of long range management (managing a project completely by paper) that make these outsourced projects so problematic.
Even so, there has been a HUGE growth in outsourcing projects to India, etc. in the last 10 years (this is not a new idea, and it's hard to imagine that it will become even more popular than it already is) and yet the proclaimed IT shortage grows ever more acute. Even when these off-shore projects are a big success, it's been observed that you still need a lot of analysts (to communicate technical requirements), help desk, trainers, consultants, etc. etc. to support these new wares from abroad. In the end, it's not much of a net negative to IT workers in the US and Europe, at best.
From what I've said above, it seems that there's just an ever increasing demand for more and more and more IT out there. In fact, that seems to be the case. Every new technology increases geometrically the number of skilled people to support it. A new language comes out (and succeeds) and instantly there's a huge boom in interfacing this new language to all the legacy systems. You still have to have people to support all the legacy interfaces to the legacy systems as well. I saw a chart recently that showed that COBOL programmers (even past Y2K) will still be in demand at a slowly linearly decreasing rate. So, adding C/C++, Java and all the rest has mostly just added new IT workers, not displaced those who program in COBOL, RPG, etc.
The software "crisis" is really just a crisis in the minds of hucksters and hypesters. If there were truly full employment of IT workers, you'd see such wage inflation that it would make your head spin. But, there's not really. There's been some increase, but it's really similar to increases we see for MBAs or high-tech Marketing people over the same time frame. Nobody is complaining about a Management or Marketing "crisis".
What I think is really being said when they say that we are in a software crisis is that we could be more productive if we could execute all of the projects that we can imagine. Middle management is in the business of justifying new projects, it's often their entire reason for being. If their grand schemes can't be carried out because it's not as simple to deploy the technology required as they would like, for whatever reason, including inability to staff them, then perhaps their scheme isn't so grand after all.
Business is in a feeding frenzy for more and better information. The more they get, the more they want and the more they want, the more information there seems to be. At some point, there will be an economic downturn which will pull the breaks on this spiral. Once things start to slow and they can find their way to actually lay off some middle management, this will be less managers asking for data. This will lead to the ability to lay off IT workers and then, less IT workers will need less management, who will need less information who will... This is the way recessions work. Less begets less.
I am concerned about a real economic downturn and what it would mean to the IT world and (gulp!) my job.
My advice (as if anybody cares)? Don't become overspecialized in cutting edge technologies that require big infrastructures. In a recession, there will be a paring down of technologies supported. Management will want things to be reliable, stable, supportable and not requiring consultants from 3000 miles away (sound like OSS/Linux?).
Here's the simple, supportable skills that would be paramount in this environment; C/C++, SQL, Perl, shell scripting, possibly VB. You should be able to setup systems (Unix and/or Windows) with Web Servers (including setting up CGI scripts, all you would really need for UI development on-the-cheap would be CGI and UI development in a recession would definitely be on-the-cheap) and File Servers. Know something about computer network security. Know something about Cisco router configuration. Know something about system administration.
In general, someone with a large set of diverse skills in relatively simple areas could replace a lot of specialists in a bind. Some DBAs will be needed in a recession, but new applications or ones where table and storage requirements change a lot will be at a minimum, thus requiring little DBA activity. If you already know how to do standard backup and other DB maintenance on Oracle or some RDBMS, that will be in demand with those other skills listed above, but I wouldn't expect that a lot of arcane DB tuning and in depth administration/setup knowledge would be in high demand. People would more likely suffer with poorly performing applications in a recession. New DB instances would be cloned from existing applications in so far as possible, requiring little DB Administration activity.
Finally, a few stray comments on some things you've said:
The likelyhood remains that if this industry (IT et al) where to remain structurally the same then salaries for techies will level off and then fall in the medium term due to increased supplies of new graduates (of which I am one).
I've been reading that there are currently fewer people today getting CS and IT degrees. Your model seems to suggest that demand is static, people don't move out of the IT field due to promotion, burn-out and retirement and that there supply of new graduates is increasing.
We are still an infantile industry - demand is high prices are volotile but can it really last indefinatly.
The computer industry is almost 50 years old. Older than cell phones, microwave ovens, color TV, VCRs, CDs, DVDs and mini-discs. A lot of these industries seem to have fairly stable price structures. It seems to me that the industry was far more stable 40 years ago when you could really argue that it was in its infancy.
Which is exactly what I had said, that the slave trade was still permitted by all European countries, that ever participated in it, in 1791. While European countries may have abolished the practice of slavery earlier than the US, they were still profiting from the slave trade for some time. Seems like Europe doesn't have much to be proud of in this regard.
For those who aren't familiar with The Soul of a New Machine by Tracy Kidder, it's about the development of the Data General MV10000 series machines. This is the machine that Data General had hoped would be the VAX killer. It was marginally better than the 780, the first VAX, when it came out and DEC had rapid-fire new implementations, notably the 8000 series and the MicroVax lines that utterly destroyed the MV10000.
If the author had waited a couple of years and did some serious post-mortems on what they did wrong and why it happened, maybe it would have been a better book. As it was, it was just a breathlessly romantic description of a bunch of people doing the wrong things in the wrong way. I feel about this book the way I would feel about the (unwritten) romantic account of Neville Chamberlain and how his great statesmanship saved Europe from war.
Guess which version would have been more maintainable? Guess which version is more robust? Guess which version wouldn't have to be rewritten next year because some software that depends on this algorithm has changed and now the performance is finally unacceptable?
The problem that programmers don't have enough time is because they are spending so much of their time on rework and bug fixing caused by their rushing through solutions. The problem is short sighted management who encourages programmers to get to the finish line at whatever cost.
But, tell me, what country in 1791 supported anything similar to the rights laid down in the US Constitution and it's First 10 Amendments, the Bill of Rights? Admitedly, there was the considerable hypocrisy of slavery, but that's been corrected. In 1791, there was no European country that had banned the practice of the slave trade, I believe.
The Magna Carta was an important step, of course, but that only constrained the sovereign to live under the rule of law. This established stability such that the regional rulers could consolidate their own holdings without fear of royal capriciousness. The US Constitution first established that the people were sovereign. An important historical event, I think.
Enlightenment thinkers like Voltaire may have came up with the philosophical backdrop for Individual Liberty, but the Europeans at the time had a hard time implementing them. France in particular had a difficult time of things after first declaring themselves a republic for about 100 years of brutal repression and serial Governments.
Sure, it had precedent all the way back to the Laws of Hamurrabi, but what was started in the US was an important step forward that only now is being widely codified into law as basic human rights in Europe.
A lot of what I posted was just my trying to get a rise out of my debating opponent who said he had said the last word. From more than 12 years of Netnews debating, I've learned that when someone says "and this is the last I'm saying on the subject", then you get a free shot at saying pretty outrageous things to try to goad them back into the discussion. If you can get them back in, you've made them look bad in a way.
It's childish and stupid and I would recommend that any moderator who is reading this, please feel free to ding my previous post as a troll if you feel that this will teach me a lesson.
There's some truth in what I've said. I am upset at Europeans for being so wishy-washy with respect to Kosovo and Yugoslavia in general and expecting the US to bear the largest part of the cost, both monetarily, in human life and exposure to terrorism.
And Europe wasn't carrying their weight in NATO after their economies had recovered from WWII also. That's pretty frustrating to Americans. Paying for the defense of Europe the way that we did.
I agree that the US has supported a lot of horrible regimes. There's some excuse in the fact that we were fighting a long cold war. We have historically selected a lot of our "good" vs. "bad" countries on how they supported our cold war policies. I think the US record when compared to the records of the regimes supported by the other side in the cold war is rather good, but that doesn't excuse anything.
Things aren't always just so straight forward as it seems on the surface, either. The US maintains it's policy toward Cuba for good reasons, I think. Before Castro, Cuba was the richest country in the Caribean. There were some abuses, sure, but really people had similar freedoms to what they have under Castro. There may be more "economic" equality now, but people suffer from no freedom of speach, religion, assembly, etc. Gays are brutally repressed under Castro, for example. You might claim that Castro is very popular with the Cuban people, but this is partly due to the fact that they have no free Press and partly due to the exodus of people who might be antithetical to him. Not to mention Castro's record of imprisoning any opposition. Castro was an opportunist who saw he could prosper personally by positioning himself against us in the cold war. He's no hero.
From the US perspective, our stand against Cuba is really by a concern over property rights. We cannot support a Dictator in this hemisphere who comes to power and abolishes private property the way that Castro did. Americans owned a lot of that property and we consider it theft. Sorry, that's just how our system works. Americans have a very open economic system where foreigners can have HUGE holdings in the US (BP, Shell Oil, Siemens, Sony, etc. etc. etc.) and we insist upon stability of our holdings elsewhere. Without these guarantees, world trade and economic cooperation could collapse. We are Capitalists and make no apologies for it. It's not an accident that support Capitalism to a greater or lesser extent generally have a better standard of living when compared to those that do not.
If it's any consolation, I think we're getting better. Our biggest problem right now is that the Clinton Administration is insistent upon normalizing relations with China (PRC) while the Chinese continue to brutalize their own people, sell arms irresponsibly, and are increasingly threatening their neighbors.
It only took Europe 200 years to learn from the example of the United States that individual liberty is a good thing.
I wonder if these laws will actually be enforced to protect unpopular opinions, like Pro-Nazi views. I'll bet that Pro-Nazi views fall under the "public safety" exception. Somehow, people don't understand that Freedom of Expression is in place to protect unpopular views. Popular views don't need to be protected.
Scarcity is the rule in the history and pre-history of man. Services will be rationed, it's just a fact. As I said, I prefer to not grant this power to governments as then the decision as to who gets and who gets denied services will be based on politic considerations. It may be no "fairer" to allow these things to be worked out by marketplace forces, but at least it doesn't lead to political tyranny.
I may also fear the tyranny of scarcity, that there are "haves" and "have nots". This is what motivates me to be productive. I believe that I have control over this and that ultimately, it is the way of nature. Look around, those who produce and take care succeed and those who don't lose out. (Now I'll get called a "Social Darwinist" or some such crap). The tyranny of an evil, even democratic government, is much more difficult to fight.
With a well framed government with appropriate and working restrictions and checks and balances, your concerns should be minimized.
You yourself pointed out that Europeans "saw no need" for Constitutional guarantees for basic freedoms.
An all-inclusive government system is not evil in and of itself, but if it gets in the wrong hands, which democracy alone has NO mechanism to prevent, it is extremely evil. I don't advocate anarchy. I advocate limited government. I believe government has some important functions, like defense of it's own values against Hitlers and Stalins, adjudicating disputes and enforcing rights, property rights among them. These are about the limits of government power I trust. If a government tries to grab the power it needs to be totalitarian, it will have to set up the mechanisms first. If those mechanisms are already in place through ever more expansive cradle-to-grave government provided services, it's a lot easier. Only in an environment where we insist on limited government power will the people consistently oppose an evil government trying to grab the power to enforce tyranny.
As I said, there's a reason why the US form of government has outlived all the others. It doesn't need to be radically reformed or overthrown because it is inherently stable. The government can't get too much power and the people prosper.
I'm not at all offended at your slights about how this is a uniquely "American" view. There's a lot to be proud of in an American view. American's have defended the world against horrible tyrants for the last 100 years (you know, those Hitlers and Stalins that you find so distasteful). American's have, over time, had the most productive institutions, be it Education, people flock to American schools of higher learning like nowhere else, technology - Linus came to California, for example, people come to America to be productive more than they go to Europe, I wonder why if Europe is such a paradise on earth? - or business (the center of the business world is New York, I'm told).
I tire of Europeans lecturing Americans on our "backward" system while we fight their wars for them (Iraq, Kosovo, WWII, WWI), help to rebuild Europe after it was decimated by WWII (Marshall plan) and generally have the institutions that everyone ELSE tries to emulate.
People give lip service to respecting differences, except when that difference is capitalism vs. socialism. To these same people, who respect all sorts of social conventions, capitalism is just a horror that must be brought down at all costs.
As far as health care goes, look no further than the US. Health insurance is for whoever can afford it. Furthermore, costs are spiraling.
Yes, and Mussalini made the trains run on time.
The issue is not one of efficiency, but control. When the government, even a "true Democracy", controls health care there is always the possibility of rationing that would have the current tyranny disposing of people that are unpopular.
Sure, there's rationing that occurs because of scarcity that also determines who lives or dies, but I prefer this kind of 'natural' rationing (natural because we observe it in nature) over allowing some tyrant this power.
This is the central flaw with socialism. People are willing to trade freedom for comfort. It makes people comfortable to know that people will be covered by a Universal Health Care system, they just have to give up some freedom. A little here and little there...
This isn't because the government is a socialist one...it's just because, well, they see no need.
And this is how tyrannies are allowed to form. Nobody sees a problem with denying freedoms, until they themselves need the freedom. People in Hitler's Germany didn't see Hitler as a threat to them, so why not let him take over?
The mindset of socialism goes part and parcel with this belief that an enlightened government should be given all power. Enlightened takes on different meanings at different times.
Never heard of it. It's a good thing, if it's enforced.
Germans are still routinely arrested for expressing Pro-Nazi views or even having in their possession Nazi materials.
The enforcement of EU laws in individual member states has yet to be tested. We'll see.
The "Industry", capitalists all, see Open Source as free razors (software) to sell more of their razor-blades (hardware).
Hackers with no political or economic axes to grind see Open Source as individuals freed to produce great things.
The computer industry press see it as a hype machine that brings out endlessly fascinating stories.
It's like the Elephant and the Blind Men. Each one "sees" the Elephant as something from their "point of view" based on their background and experiences.
RMS has it right. It's not really about anything but freedom. Freedom to exchange ideas, whether they are embodied in speech or programs. Freedom is difficult to define and comprehend, but everyone pretty much sees it in a positive light. Everyone relates it to their own utopia.
This is exactly the point.
The US does have a pretty intolerant culture at times. But, in the United States, government is limited by it's Constitution, so these cultural intolerances can't be codified into law.
Most European countries do not have guarantees like we have in the United States. I know, for example, that Europeans often have no guarantees of freedom of expression or assembly.
Socializing commerce and health care also means that the Social Democracies have totalitarian control over people's lives. This is what the Social Democracies have in common with Nazism. Without even a trial, people can be condemned to die by the government by rationed health care or denied their livelihood through capricious decisions of government control of commerce. We in the US are not much different in this regard as we are getting more "cradle to grave" services all the time.
The Europeans seem smug in their belief that Democracy will protect them from tyranny, without recognizing the fact that Democracy and tyranny are in no way incompatible. Democracy can be defined as the tyranny of the majority. Hitler rose to power in a Democracy.
We in the US feel that limited government is the only way to prevent tyranny. Of course, our Constitution is routinely ignored these days, so much of this is just nostalgia.
And, it's worked pretty well. The US enjoys the longest surviving government in a single form (under the same Constitution) in the world.
(And even if it does refer just to the kernel, not all useful kernel stuff is in the Official Kernel Source - that's another place where different distributions could do different things.)
I'd say it's both the kernel and the distributions.
While the kernels may have flexible options, there may just flat be things that a BSD kernel does better than any Linux kernel. Of course, this may be seen as a sore point to Linux kernel developers who will attempt to address it in various ways, just as BSD developers may attempt to address things that Linux kernels do better than BSD kernels.
At the end of the day, there will still be differences. Even the perception of difference will lead to specialization in the marketplace.
Any specialization that occurs will lead to a certain market using it heavily which will lead to more experience with the product being used in that way which will lead to further specialization.
The existence of so many "easy to install" distributions implies specialization in the marketplace for Linux vs. BSD. I'm not sure the distributions help that much in ease of installation, but I'd be surprised if there weren't some Linux distributions that were easier to install than most BSD systems. Again, BSD folks might put together "distributions" and this would lead to competition and again, there would be a reputation for one being more for the Geek and the other being for the newbie based on their relative successes.
I'd be very surprised if there is a Linux system that is an exact superset of all of the attributes of a BSD system or vice versa. The only way I could see this happening is if one completely marginalizes the other, which I don't see happening.
Just the fact of GPL leads to some specialization. Linux will be used by GPL advocates, for their purposes and BSD will be used in commercial products for their purposes. This will tend to move the products in different directions.
It is odd to talk about something that's Open Source as a "product". What Linux or BSD are is really mostly perception. Either can be many things to many different people, based on what you have on your system.
No, I was trying to address the issue "how would you interpret the fact of market success for BSD". I would attribute it, to some degree, to the success of Linux and I would point out that the market success (not it's existence, you are correct that BSD predated GNU/FSF) of BSD was only made possible by GPL'd software.
Because BSD _is_ open source software. Open Source != GPL.
You're right, I did conflate Open Source and GPL, as others have pointed out. My mistake.
We often see statements about how *BSD-positive comments are routinely moderated down, but it's funny, they usually are moderated UP, especially if they aren't just taunts.
It's clear to me that Slashdot covers BSD a great deal and for the most part this coverage is warmly greeted by the community here. The Open Source community continues to prove that it's very Open.
One of the "problems" with Linux is that there are forces trying to make it all things to all people. Having *BSD flavors around, each specializing in something they do really well, provide important compliments.
In theory, they can all share apps, they can each benefit from the success (and learn from the failures) of the others, and they'll provide a rich competitive environment. The future won't be (MS or Linux or Commercial Unix or ...), but (MS or Linux or FreeBSD or OpenBSD or NetBSD or Commercial Unix or ...).
One of the biggest, and by no means the only, problems with MS was that they held a desktop monopoly. Choice is good.
I don't know about Jon Katz, but in ESR's case, he was frankly amazed at the "Linux phenomenon." ESR could simply not understand how Linux could be stable and usable without a lot of central control, design, testing, etc. etc. He wrote The Cathedral and The Bazaar in an effort to come to grips with the phenomenon.
More than one reputation is now founded on the premise that open source is "unique" and provides marvellous, unheard of benefits that tightly controlled products never could enjoy.
This is a strawman. Who says that tightly conrolled products never could enjoy the benefits of what Open Source projects have? Well, except the obvious benefit that all changes are accretive and are guaranteed to benefit all of society. Open Source projects benefit projects like *BSD, while *BSD projects may be a duplication of effort of another *BSD project.
So if the BSD's succeed in gaining considerable market share, doesn't that mean most of the rhetoric we've been reading about open source is mostly hot air?
Of course, the BSD's already have held considerable market share. Before Linux, BSD/OS and FreeBSD probably powered more ISPs than any other system. I know of a number of companies that use *BSD "under the hood" to power appliances. Anything like this that's done in Open Source goes to make the rolling Open Source snowball bigger and bigger, while these efforts in BSD tend to fork off into closed backwaters. It seems that Open Source advocates only need to observe a few historical facts to point out the clear dangers of free-but-not-Open Source. Has (Open/Free/Net)BSD benefitted from the fork that occurred when BSD/OS was created? Open Source advocates believe it's the accretive nature of Open Source that has fueled Linux's unparalleled growth and popularity. To what do you attribute Linux's recent successes? Hype and personality culture? Yes, Linus is a powerful, magnetic personality.
The various BSD flavors languished in near obscurity since 1993. So, come 1999, suddenly there's all this excitement around Linux, the hot new thing that might unseat Microsoft and take over the computing world. Big vendors like Oracle, IBM (including Lotus), SGI, Compaq, Dell, Sybase, Informix, and Corel all get behind it. Wall Street approves, makes Linux startup guys paper billionaires.
Some guys in the *BSD community have built a Linux emulator. Some segment of this new marketplace that Linux is rapidly building sees that there might be advantages to a similar, but different Free Code operating system called *BSD. This difference might be an especially agressive, ground up security model (OpenBSD) or something else. And, after all, they all run all the Linux code, so there's little risk. The *BSD flavors prosper like never before, and why not? Now, finally, there's the promise of a BSD that has Office Apps, and advanced Window Managers like Gnome and KDE and a whole wealth of other goodies that have suddenly become available.
So, you would draw from this that the "rhetoric we've been reading about open source is mostly hot air?"
I would draw that it's good to ride the coattails of a winner.
If I'm correct in that interpretation (and I might not be - please correct me) the BSD's are much more like Netscape's model than Linux's model.
Ironic that you would invoke Netscape's model as being equivalent to BSD's model. Supposedly, Netscape was inspired to open up Mozilla based on the writings of one ESR. Seems that some people have drawn different conclusions from The Cathedral and The Bazaar than have you.
In any case, any success that *BSD has is, in not small part, due to the availability, reliability and quality of gcc. Last I checked, gcc is Open Source. Thus, the lesson to be drawn from BSD's success is that Open Source is a powerful force.
Wouldn't it imply that, really, strict central control is a good idea for a software project?
Another strawman. Others have pointed out that Linus maintains strict control over Kernel mods as do the *BSD leaders. Almost every successful GPL'd software has a set of core developers (sometimes serially) behind it that drives and guides it.
Besides, I don't recall anyone in the Open Source community suggesting that the only good software comes from Open Source projects. Cathedrals are beautiful, after all.
I just don't see making distributions being the kind of high margin business that would justify all the interest in RedHat. I think a lot better argument can be made for cross-distribution support and training operations like linuxcare being a big growth market with higher margins.
It's not that I don't think that RedHat isn't providing a great service to the Linux community, I do. I am having a hard time with the business model justifying the astronomical stock price. If what I think is reality later sets in, a crash in RedHat stock price in the future will not do the Linux community any favors as it might signal a lot of people that the "Linux Revolution" is over.
On the other hand, it might be better if the "Linux Revolution" hype cooled off. Linux doesn't need the hype to be really big. The big industry players (the IBMs, Compaqs, SGIs, etc.) like the hype because it keeps stirring the pot, getting people to buy new systems and services. Just as customers were tiring of the Microsoft/Intel Upgrade Treadmill, here comes Linux to get customers back on the "install a new IT infrastructure because it's the coming thing and we don't want to be left out" treadmill.
Anybody who read The Cathedral and Bazaar (most people here, I'm assuming), know that the entire PREMISE of the free software industry is "release early, release often" -- which means that free software uses the attitude described in this article, only on steroids.
Anyone who has read The Cathedral and The Bazaar will recognize that this apparent contradiction, "How does quality, useful software come from this anarchic-no-formal-spec/testing?" is at the heart of the whole essay.
I don't see that much similarity with commercial software and free software releases. Sure, the philosophy is "release early, release often" with free software, but there's absolutely no pressure to release before you feel it's ready.
Feee (sic. Freudian slip? - JordanH) software usually doesn't have formal testing either. Instead of a dedicated testing team like most commercial software has, the testing philosophy is to release it and for users to test it. Not good preventive treatment obviously. Nobody is going to test if the new SCSI driver is going to wipe off your hard drive - it's left for the beta testers to find this.
Well, the fact that this works at all may well be an indication that dedicated testing teams are overrated. With Open Source software, if you have a release, you can not only report a problem, but potentially, if you are so inclined, provide a fix. This is not the case with commercial software. In fact, in most commercial software shops, the testers are not even allowed to propose fixes. By eliminating this extra communication, things can be done rather more efficiently.
Here's the Open Source scenario: A new kernel is released with a new SCSI driver. This is a development kernel. Literally thousands of potential developers download the kernel and get it running. Some small number reports that their drive was wiped. A few actually debug it and propose fixes. The kernel developers have an open discussion about this on the Internet and determine the best of the proposed fixes and it goes into the new development kernel. A patch is made available to fix the problem before the new development kernel is made available.
Eventually, the development community blesses some set of code as a stable release. There's very little chance that a stable release will wipe anyone's hard drive. It, by some chance, it did wipe someone's hard drive, some set of qualified kernel developers would start to work on this isolated problem and come up with a patch, usually within a day.
Here's the commercial scenario: A new release candidate comes out of development. The testers get ahold of it and exercise it with all of the SCSI cards/drives they have in the lab. It doesn't show any problems. It's released. A whole lot of people complain that their hard drives are wiped. The help desk people who receive the complaints first start to blame the customers for something stupid and tell them to reinstall. Customers reinstall and still have the same problem. Eventually, this is realized to be a problem, and the company's PR machine jumps into overdrive. Data is collected, but at arms length as much as possible. The company is afraid of liability so they admit nothing. Developers and testers duplicate the problem in the lab a fix is developed and a complete QA cycle is performed on the patched system (liability, you know). Weeks later, the customers get a patch.
Now, MS has been using beta testers for years in much the way Open Source does, but with the considerable difference that Open Source testers are often able to provide solutions.
We read in the article that QA testing is increasingly slipshod with commercial software. MS is big on the HUGE beta distribution so that they can get coverage of the many many combinations of software/hardware they need to test against. MS really HAS to do this as application programs on their OS's are known to bring the whole thing down. This is relatively rare on other OS's.
As the article points out, the vendors attempt to explicitly exclude themselves from any liability if their system wipes your hard drive, so I'm not sure that I have much confidence that their software has been well tested either.
I have also looked at the source code for many free projects such as GCC and GIMP and noticed that the code quality was quite low. For example, malloc() calls were usually unchecked (especially in GIMP). I have worked on commercial projects before, and checking malloc() is rule #1 -- if you happen to run out of memory while using GIMP, it'll blow up, where as commercial systems will simply fail to complete the current operations. If such a high profile package is of such low code quality, I expect the lesser profile packages are considerably more buggy.
As others have pointed out, your analysis of GIMP is not entirely correct (it mostly uses a wrapper malloc()), but you have inadvertently brought up an important point here. Software quality experts have recognized that Code Reviews are the single most cost effective thing you can do to improve software quality. Many people are suprised that code reviews, on average, turn up more defects than do formal testing. Open Source is like one huge rolling Code Review, with the Internet discussion forums being the communication media. You have now weighed in on quality issues in GIMP and it will be reviewed. There's a good possibility that someone will fix it if you have a valid point.
Contrast this process with commercial software where, in my experience, you almost never see review of code that has been formally tested and released. Usually, there's a lack of political will to make changes to code that's been "working" in previous releases to future releases. Check the CVS histories of some of the bigger Open Source projects and you'll see a lot of ongoing continual refinement. I like to believe that Open Source product quality is getting increasingly better, while most commercial software I've been involved with has gotten worse over time.
Also, I think you have worked in rather good commercial shops with real standards (always check malloc() return, for example). I was just reading today that the MS Office products don't "like" to work with documents on floppy drives as they tend to create temporary files on the same source that the document comes from and they don't gracefully handle out of disk space problems gracefully. As the article points out, standards are falling rapidly in the industry as a whole.
I guess the proof of the pudding is in the eating. Linux and FreeBSD now have a reputation for stability and quality. Maybe that reputation is undeserved, I don't know. If the software is of such low quality that it doesn't meet your stringent standards, then don't use it.
1) Write Specs
2) Follow the spec.
3) When the marketing department trys to add stuff, you say "Is it in the spec?"--"Sure we can add it, but it is going to take X additional weeks".
4) Test
I don't want to take anything away from your experiences. I'm sure you've had success with this process.
I've been in projects like this where success was declared at the end. But, I knew then, or perhaps just a little bit later that things were not so rosey.
Building something to spec is wonderful. Especially when it's a bridge, or a tower, a road. I've not seen as much real success with this when it's software we're building.
There are many many problems to talk about in the design and development process that I could go over. But one that isn't often talked about that dooms software to "suck" is what I like to call the two customers problem.
The people who write specs generally are marketing people, or managers, or maybe even, if you're lucky, analysts who think they really know the problem domain and have been around it for years and who are sure they know what goes into a good system.
Software is not designed for or by users. It's designed by people who sit around and try to dream up solutions without ultimately taking any responsibility for the useability of the system. Even when the designers make an honest effort to study the problem, talk to real users and do useability studies, too much of the ego of the spec writers comes through. Often, the grand dreams of the spec writers are in opposition with the stability that the real users crave. By stability, I mean both reliability (it doesn't crash) and that a new piece of software should be familiar, should have similarity to the software presently used for this function.
So, a project is initially judged a success or failure based on how you satisfy the management, the analysts and the marketing types. Testing pretty much proves that it works in the ways that the spec writers envisioned it being used. Unfortunately, the software will ultimately be judged by those who actually have to use it, and tested in the real world in ways the spec writers never dreamed. These two groups, the spec writers and the users, the two customers, have very different goals.
There is some hope. Rather than the spec, build, test, release model, a spiral development or RAD prototyping can ultimately get you a lot closer to a satisfying solution.
Even here, I've actually seen cases where management will seem to prefer that the system be hard to use or lack important functionality. You sometimes get the impression that management feels that if a piece of software satisfies the lowly user, then the organization is spending too much on software development.
It's a sad state of affairs. It's ironic that study after study shows that the # 1 customer satisfaction factor is a pleasant experience with the bank teller, the store clerk, the phone order taker, etc. Management consistently shows an almost studied disregard for the tools that these people are forced to use.
And while it is fun to slam managment/marketing, programmers have to take blame too: lots of time we say "Yeah, it *WOULD* take a year for someone else to do it, but I am a programming genuis. I can have it done in a month!".
Very true. One problem is that management often shops for a team or programmer who will tell them the estimate they want to hear. And, when you actually have to "name that tune", corners are cut. The corners that typically get cut are in places that are not visible externally, like bad coding practices, lack of concern for modularity and reuse, memory leaks (As long as memory leaks stay beneath the level that testing finds, it's thought that it's OK to leak some. Enlightened testing checks for memory leaks in the stress tests, but enlightened testing is not that common). Ultimately, this cutting of corners is what leads to the software sucking so badly. There's rarely political will to rewrite large systems, even when they are implemented in sand, so each new release suffers with the accretion of sins of the past.
Bringing this back to the subject of Open Source software, always on topic, never out of style on Slashdot, the problems I've outlined above don't really apply to Open Source development, at least not today. Typically, Open Source projects have not suffered the layers of management, analysts and thinkers that typical software development groans under. Most often, the user is the developer so the result is most likely to be satisfying (or if it's not, you know who to blame and usually know how to go about getting to satisfaction). Even when Open Source projects are written for someone else, the real testing is done on early releases by real users in close communication with the developers. So much organizational simplicity, so little need for endless meetings, project reviews, marketing "input", cost justifications, etc.
I like to think that free software is really about freeing developers to serve people more directly. With GPL software, if you aren't serving the customer, then someone else can take what you've produced and serve that customer better. With proprietary software, the trick is to develop just enough functionality and value into your offering that anyone else who tried to clone your software would incur too much expense and lead time for your customers to bear.
They get along fine, if your goals are modest. The "advantage" to GPL is exactly that it is accretive. People cannot take advantage of GPL software without contributing back to the original author any changes and enhancements.
(Sorry for the lecture on GPL here, most people know this, but I have to develop this for those who don't.)
RMS believed that this would grow a body of software that would benefit everyone and the recent evidence seems to suggest he was right. Chart the growth of *BSD vs. Linux. While a lot of *BSD folks grumble that this is all just hype and marketing, I disagree. I feel this is a direct result of GPL.
When the dreaded "forks" have occurred, (i.e. when Theo de Raadt correctly insisted that FreeBSD was insecure and orchestrated the OpenBSD variant) the community of users and developers has benefited and acquired more choices.
Has the community of users and developers benefited from the fork that occurred when BSDI developed BSD/OS?
I ask this a lot here, and I've yet to be answered. Why are there not organizations that have grown up to support, package and sell *BSD distributions, except for BSDI, the way there are with Linux distributions? I'm beginning to think the existence of BSDI suppresses the *BSD support market.
If a business wants *BSD, packaged and supported, well there's BSD/OS, with it's proprietary drivers and kernel enhancements. It's priced such that many would just buy BSD/OS rather than try and support FreeBSD themselves. If a business wants Linux, there's an active competitive market out there. All the Linux competitors have to stay sharp and be intensely customer focused or someone else will take their product and do a better job of it (witness the keen competition between RedHat and Mandrake).
This is a healthy situation for Linux and a stultifying one for *BSD.
Perhaps someone should take the *BSD source base, package it, support it and release any modifications under GPL (or some slightly modified GPL if there's some conflict between the BSD license and GPL that makes this problematic). This might be the best thing for the future of *BSD.
It seems to me that the same thing that happened almost 10 years ago with nascient Operating Systems (Linux and BSD) using GPL'd GCC as an enabling technology is happening today with a broad range of computer applications using GPL'd Linux as an enabling technology.
If BSD has a better base kernel and is easier to port - claims that I have no reason to doubt - couldn't there be advantages to applying the "accretive" nature of the GPL to it?
Perhaps I'm not appreciating the *BSD culture, here. I've heard it argued that BSD has better 'roots' and that it is a more stable, better designed base to work from. If this is the case, is there some problem with placing mods under GPL? Or, is the main problem with GPL is that it is too restrictive, not allowing your mods to be used profitably in proprietary ventures?
*BSD supporters who feel this way should recognize that, in all likelihood, there would be no freely redistributable BSD today if it weren't for GPL'd gcc. The accretive nature of GPL guaranteed that gcc would be continually improved and new architectures would be supported such that it eventually provided an important tool to springboard both Linux and *BSD.
I find it ironic that *BSD supporters would claim that GPL supporters are pious and hypocritical. I guess this parallels someone who has fallen from the graces of some Church who complain that what they don't like about that Church is that the people there are too pious.
Mr. Stallman, while loudly (and lengthily) proclaiming his eschewal of monetary gain from programming, certainly seems to enjoy the miniscule kernel of power his GPL licenses have given him.
There is a class of human, Stallman and Nader among them, who bypass money as a means of keeping score and get right to the heart of the matter. They seek to self-aggrandize and accrue as much power, within their limited sphere of influence, as possible.
As much as you might like to pillory RMS for maintaining some kind of "control" over GPL'd software, it's clear to me that the aims of the GPL are to remove truly restrictive controls over software. RMS invented the GPL because he saw that entities were taking public-domain licensed software, making modifications and placing this new software under proprietary licenses and copyrights. The BSD-style licenses allow for entities to gain this same proprietary control over derived works. GPL is the license which attempts to remove "control" from software in so far as is possible. To accomplish this, the GPL requires the small bit of control that those who derive works from GPL'd software not exercise "control" on it. You can do whatever else you want with the software, you just can't modify it and claim it as your own. The BSD license requires that you include the Berkeley copyright. Both licenses imply some control. One guarantees that noone will take control over derived works and the other one doesn't.
What are the reasons for releasing under BSD-style licenses over a GPL license? I can think of three; 1) All men, even those who would take advantage of this work for their own profit, are brothers and this software should be made "free" to the brotherhood of man. 2) Self aggrandizement. You want your name to appear in as many places as possible, including in proprietary derived works. 3) I wish to promote this particular piece of software as free software, but reserve the right to make some changes it to it later and then make it proprietary.
Please enlighten me about other reasons for choosing a BSD-style license over a GPL license. I don't have any problem with reasons #2 and #3 I've given above, but only reason #1 is selfless. I do consider reason #1 to be unrealistic and ultimately leading to a situation where more software is "controlled" and proprietary.
Are GPL supporters hypocritical because they claim to be selfless when in fact they are not? Show me a GPL supporter who claims to be selfless and we'll check this on a case by case basis. Some are possibly hypocritical, others may truly be selfless (in so far as that applies to anyone), but I think you'll find that most don't claim to be selfless.
It's probably true that RMS appreciates any recognition that he may get as the founder of the Open Source movement. What, exactly, is wrong with that? Because he doesn't do things for remuneration, but, in some part, instead for recognition and honor in the eyes of his peers, he's somehow hypocritical? I'm sure RMS would never claim to have been a Buddhist, doing what he does to annihilate his ego.
Why do Jordan Hubbard and Theo de Raadt do what they do? So they will have better software to use for themselves and work in a team environment where this can be developed? I think this is the primary motivation of most GPL supporters, including RMS.
Again, I apologize to Slashdot readers for the polemic on GPL. Most of you have heard it all before. I do feel that people who come to Slashdot to criticize Linux and GPL should get what they should reasonably expect to get, an argument.
I'm not at all sure that this is true. It is common to see a small company start up that will support, integrate and consult about software. Such a firm could make available Open Source software to get their foot in the door and as a means to advertise their existence. Of course, if someone wanted enhancements, support or consulting involving said Open Source product, you can guess where they might look first.
In fact, this article , which was referenced on Slashdot in August seems to suggest that the future will have many small companies writing Open Source software. Here's an extract from that article that seems to suggest this:
"The open-source community has long been working and waiting for the day when Linux becomes widely used, and developers will be able to develop for a popular platform on which no vendor has a secret advantage. But the vendors in this new world may find it looks much like the world we now have. There will be no Very Large Software Company to scare ISVs into sticking to the niches, but any vendor with a horizontal product (that is, one in wide use), will face a host of competitors. Both the number of competitors and the availability of useful free products will help drive down application prices and profits. And vendors of widely-used proprietary products who keep their prices too high may find their products cloned! As a result, vendors will find they can make more money in the niches--where they are today."
Now, this article is brought to you by IBM, and I'm thinking that IBM is hoping that those who want support for Open Source in the future will come to IBM Global Services, particularly the big firms, governments, etc.. Perhaps this article is glossing over the benefits to the really big ISV of Open Source. I do think the article is well reasoned though, and does support the idea well that there will potentially be a lot of small firms writing and supporting Open Source software in the future.
I've even seen this business model in action. I recently saw the author of a popular Open Source (GPL) eCommerce perl application give a talk about his product. He currently has more consulting work that he and a small band of associates can handle.