Good Software Takes 10 Years? 250
webword writes: "Joel Spolsky is running an editorial where he claims that writing really good software takes ten years. (Yes, TEN years.) He explains several mistakes that are made by companies that don't understand his ten year principle. The mistakes are backed up with some interesting industry examples, so it isn't just vapor. Unfortunately, he doesn't mention any OSS/FS examples, but I'm sure we can handle that. I am mostly skeptical of his idea because I'm not sure how he thinks a young software company could possibly survive without building really good software in much less time. Spolsky mentions that new companies need to strictly control their cost structures, and that will save them, but that doesn't seem like enough to me."
10 Years to good software? (Score:2)
Yes, he mentioned Wine, but... (Score:2)
Thank God... finally a programmer who understands. (Score:5)
Those old hippies were smart.
Re:MS IE (Score:2)
Internet Explorer 1.0 was based on Spyglass Mosaic code, which was the NCSA's commercial distribution of Mosaic. Later versions of IE were, of course, based on IE1.
There's an excellent site devoted to the history of key browsers (though it's missing Konqueror and Lynx) at http://www.blooberry.com/indexdot/history/browser
.
----
Re:do you even know (Score:2)
But, did you ever examine the early mozilla code (ie what they started with from netscape) ? That was a poisoned chalice if ever I saw one. It didn't support any of the trickier elements, but it still took a ton of code to do not very much badly.
BTW, how come nobody ever mentions Opera in all this. It is *by far* the best browser around, but nobody ever mentions it. If writing a decent browser is so impossible (unless one is inventing the standards yourself) how did they do it ?
Re:do you even know (Score:4)
Marc Andresson was an intern at NCSA. His maths wasn't good enough for him to do what he was hired for, but he did know motif pretty good, so his superior Ping Foo asked him to write a GUI for www. This proved to be a good idea. Then Jim Clarke (founder of SGI) thought it would be a good idea to commercialise the idea, and hired the more commerically minded people from NCSA (not the same as the smartest, for instance - Ping whose idea the project was, and who made some of the smarter design decisions (eg single click to follow link), never joined).
Netscape was the browser tail wagging the internet dog for a while, but they declared MS history too early. The VC money they got from being declared the next MS enabled them to hire 1000s of developers very quickly. This was profoundly stupid, because having 1000 mediocre developers is far worse than having 10 decent ones. These people wrote 100s of 1000s of lines of shitty code. This code was then released to the mozilla effort, and left it with no fucking chance. Writing a browser isn't *that* tough, but if you start with a massive shitty code base, you can lose sight of that.
Re:This *WONT* Be True Any Longer (Score:3)
Uh, if you have a logical language that describes what your program is supposed to do, why not just compile it? It sounds like what you're doing is writing the same program twice in two different languages and comparing the output - you would be better off with a code generation tool.
You don't need to release good software to survive (Score:4)
Re:Depends on the project.. (Score:2)
Hmmm. I'm not entirely convinced. I felt Angband peaked at around v2.5.8, and since then, has suffered from the same problems as MS Office -- new features for the sake of new features, not because they're needed. Yes, some of them are quite nice, but they're just candy, and had game development stopped back then, I'd still be playing it today. By that I mean, I am still playing it today, but the The *gameplay* hasn't got significantly better for some time. But then, it's hard to improve when you're that close to perfection in the first place :-) Zangband is intriguing, in that it
does give altered gameplay (I'm still
torn on whether it's an improvement or not, but
there is definitely innovation there).
Re:Good Software takes FOREVER! (Score:2)
Re:What about RAD? (Score:2)
Re:stupid nonsense (Score:2)
Re:nonsense! (Score:2)
Re:MS IE (Score:2)
--
MS IE (Score:4)
Also, I'd agree with others who have posted that this counts for things like OS's, DBMS's and the like. To create a simple application (eg, a text editor) should take less time.
--
Re:Depends on the project.. (Score:2)
Re:That graph won't convince me (Score:2)
1) It was a PC-based client-server program in the 1980s. Way ahead of it's time, but that meant it pretty much had to run on the unpopular OS/2 operating system, and even then 10 concurrent users was a miricle on the hardware people had.
2) It was exclusively marketed to large corporations (read: it was ridiculously expensive) until the early 90s. It still is a lousy product for places without dedicated system admins and developers.
3) Lotus also sold cc:Mail which was the #1 corporate e-mail system from about 1987 to 1997. Cancelling cc:Mail and transitioning users to Notes obviously had a huge effect on the Notes user base.
4) Oh, it's true that the email component wasn't close to being "done" until v5 shipped a couple years ago. (insert link to UI Hall of Shame)
And because it's so old, it does carry tons of legacy baggage, including lots of back- and forward-compatibility features.
--
another OSS example... (Score:2)
If you look at the "selected release sizes" table, there was a big jump in "core + lib + ext" from 4.036 (798K) to 5.000 (1504K), and a big jump in the documentation size from 5.003_07 (976K) to 5.004 (1587K).
Does anyone have the Camel Book sales figures from 1991 (when it was first published) to the present?
--
refactoring vs. rewriting (a bit off-topic) (Score:2)
--
Re:This *WONT* Be True Any Longer (Score:2)
--
What is good software ? (Score:3)
Software need only fall into one or possibly two of the above categories in order to reach the accolade of 'good'. There are even packages in use today that are in mainstream use that are not necessarily good but have just become ubiquitous by default. [Windows Notepad springs to mind -its minimally featured, you can't edit large files with it, yet everyone uses it at some point or other].
There are other packages (e.g. games) which take nowhere near 10 years to develop (Minesweeper is incredibly simple but is a great game and is virtually unchanged since Windows 3.0/1).
Re:I disagree. It takes good programmers (Score:2)
1. All CompSci degrees are not created equal. What some lower-rung schools call CS makes me cry. No theory, no math, no algorithms, just programming languages and trendy topics.
2. Software Engineering != CompSci. They are very different disciplines, and there are very few schools teaching Software Engineering right now. CMU and RIT are the two I know of (based on previous /. posters). You don't hire a physicist to design a car, you hire a mechanical engineer. The same should be true in software.
-jon
Re:I disagree. It takes good programmers (Score:2)
I could be wrong about the comp-sci bit. Maybe it's the lack of comp-sci that does it. When I think of the 10 worst programmers I've known, 7 of them had comp sci degrees, though. On the other hand, to be fair, of the 10 best I personally know, 6 have comp sci degrees (and the top three all have them). So it's probably just laziness in general, and has nothing to do with comp sci.
I also overspoke. Good programs require more than good code (as someone else pointed out). They also require correct design and the correct feature set. I guess I subscribe to the preferences of "as few features as possible". But still, I think bugs are worse, and more prevalent, than feature sets that are too small, and that blame lies squarely with the programmers.
Re:I disagree. It takes good programmers (Score:2)
Re:I disagree. It takes good programmers (Score:2)
However, I still agree with you on the curricula probably being still experimental by neccesity of the comparitive newness of the subject. I'd love to see a class on quality coding practices in general though.
Re:I disagree. It takes good programmers (Score:2)
Re:What's it worth? (Score:2)
No. Every time you haven't been bitten, you haven't notice.
You're 100% right of course.
You may also be right about the environments (I work for a shop that creates and sells products, not customer-specific). I have worked in an IT-type shop, but even there speed was a factor, but not to the minute. I also suspect we're talking about differing degrees of bad code. I've worked with web designers cum javascripters, vb guys writing transactional queue systems, java people pretending they're not just building web applets, x86 ASM people reinventing the wheel (and the road), and c++ people coding to Win32. You can bet your ass their levels of checks and errors were vastly different. I've worked with lots and lots of new programmers, too. I'll say this though: If you can write an app in 1 day and fix its problems a month later in 20 minutes, the code must either be trivial or use very high-quality tested existing chunks (which reinforces my point).
You're doing precisely what I'm talking about. I don't mean checking every damn variable on every use. I'm talking about checking the parameters as they come in, making sure you haven't overflowed your buffers, and making sure you haven't wrapped your integers. You're at least providing the high-level trap. I'm talking about programmers that don't do that :) We're not in as much disagreement as you think.
Re:What's it worth? (Score:3)
It isn't always worth it.
It is to me. That one thing or other I've skipped in the past always comes back to bite me. I've never had a boss that pressured me on time once they saw that my code didn't break the thing 6 months later when we were all struggling to fix a few pages that the coder didn't take the time to do it right. Also, that occassional wundercode I've pulled off pretty much buys me whatever time I ask for. I guess it's the old saying : Fast, Good, Cheap; pick any two. My way certainly isn't the only way, but I can never pick the check to leave out, because I can't always conceive what the person that uses my code will do with it.
Once in a while I get burned by that long lived program or scope creap that I underestimated and end up with a big program that should of had the checks in place.
And that's why i always build the checks in first. The time saved up front has never, ever, been worth it.
In some situations where I've gone into an existing program, the checks were wrong simply because there was so much code that the developers got lost and ended up with crap.
And thus one of my points. They weren't doing quality work. If they were, the burn would have been much smaller or non-existent.
I understand what you're saying, though. Throw-away code can be written with throw-away techniques. I'm just particularly bad at knowing in advance what's going to be throw-away code.
I disagree. It takes good programmers (Score:4)
If programmers wrote solid code and tested it thoroughly, it would not take ten years to produce truly good software. I see more unchecked parameters, non-tested failure conditions, and badly designed function interfaces now in the work of the average programmer than ever before. I'm not sure who or what to blame for the problem (dare I say comp-sci curricula?), but I suspect part of it lies with the fact that "safe" languages are the first most programmers gain mastery on.
Re:This *WONT* Be True Any Longer (Score:2)
I am working for a research group that develops a tool for checking software *automatically*.
[...much deleted...]
Our tool is still very very buggy and limited.
Doesn't that basically sum up what happens when new 'silver bullet' software technologies hit the real world? I don't mean to knock valuable research, because I know there's much room for improvement in software development tools and techniques, but when you have to apply them to the fuzzy requirements and deadlines of the real world, the results aren't as revolutionary as one would hope.
Re:stupid nonsense (Score:2)
Read your posts. You have a bit of growing up to do as far as your social skills go. You are replying to real people that put serious thought and effort into their messages and articles. Respect the fact that they are posting their ideas for you to learn from.
Mozilla as a product based on Netscape 5.0 which was based on previous versions of Netscape which were based on Mosaic which was first released in 1993. Give it 10 years. Judge the quality of Mozilla in 2003.
Q3A is definitely based on older versions of Quake, Doom & Wolfenstein.
The fact is that if you are a programmer for a commercial product, you should not expect any of your code to last more than 3-4 years in that product. The product will continue to improve. Those improvements entail replacing older code, eventually replacing all older code.
Think about it.
PI (Score:2)
Re:Not 10 years for the first release... (Score:2)
--
Re:This *WONT* Be True Any Longer (Score:2)
For those of you who think this is interesting, you can also check out meta-level compilation [stanford.edu], implemented as an extension to gcc.
And for those of you wondering how useful stuff like this is, it's already caught bugs in the Linux kernel [stanford.edu], among other things. So that low-level, tricky race condition that was fixed in the newest version? It might have been pointed out by this tool.
-sugarescent
TeX! (Score:2)
Err... I have no idea how you count that, but remember, it was (almost) all done by one man, who was also writing METAFONT at the same time.
True, Donald Knuth isn't your average developer, but -- see? It can be done.
-grendel drago
Exactly! (Score:2)
Maybe KDE or GNOME in general will take ten years to mature into a 'final' state. Maybe Apache too... but when I think 'software', I think 'XMMS' or 'konsole'. Little stuff.
-grendel drago
Re:And in conclusion... (Score:2)
<tag attribute="value">data</tag>
idea? Something like this is so basic you don't really think about where it came from...
-grendel drago
Wine ? (Score:2)
This guy must be talking about red wine, not software.
-- Pure FTP server [pureftpd.org] - Upgrade your FTP server to something simple and secure.
Re:not exactly (Score:2)
------
Re:This *WONT* Be True Any Longer (Score:2)
Input: request for door to open
Output: door opens or error reported IF (this or that or that)
While this logic may be complex (lets say the API to the door is a nightmare), verifying that the output matches a set of desired conditions can be far simpler in certain cases than the actual logic to implement the desired behaviour? Especially depending on the language you are using to implement
Hey Taco... (Score:5)
Re:MS IE (Score:2)
It's probably more because MS diverted their best and brightest from every other product it had to work on IE. During those years they must have spent more $ on making IE than working on Windows, Office, and all their other stuff put together...
---
10 years? (Score:2)
And in conclusion... (Score:3)
To a Lisp hacker, XML is S-expressions in drag.
stupid nonsense (Score:2)
Simply put, software takes... as long as it takes. Some software is incredibly great after only 2 or 3 years, other software takes 10 or even 15 years before it is great. And then there is tons and tons of software that is NEVER great.
Just take a look at Netscape. It was a very widely used piece of software that has NEVER been fully stabilized, and there are countless bugs in that POS. It is a bad piece of software.
Then there is Mozilla (WTF is he laughing about?). It's only 3 years old, 100% new code, and while it's not even to 1.0 yet, I'd say it's good. It is well on it's way to becoming great software well before 10 years.
Another example of a great piece of software, which happens to be one of my favorites, Q3A! ; ) I'm not kidding though, it is a fantastic piece of software. It is almost perfectly stable, I can't even remember the last time I saw Q3A crash. I've played Q3A for countless hours over the last year, and it hasn't crashed in that whole time. And, there is only 1 bug I can think of off the top of my head. Q3A is only (3? 4?...) years old and it is a complicated piece of software.
tar+bzip2 (was Re:Good Software takes FOREVER!) (Score:2)
I assume you meant tar -j instead of -zI (apparantly there were a couple of different patched versions using -y or -I and so they picked -j in the newest versions intead).
OT? Yes. Many apologies. I am bored.
Re:another OSS example... (Score:2)
You also have to realize that Linux actually means GNU/linux, and the gnu project really started around 1984. So you could argue that in 1994 linux 1.2.x + GNU operating system was the final product, the linux kernel being the last piece.
Re:so why does notepad still suck? (Score:2)
Re:so why does notepad still suck? (Score:2)
Re:PI (Score:2)
Or an idiot opinion writer on the web
Re:This *WONT* Be True Any Longer (Score:2)
From the Java Pathfinder page: "In keeping with this philosophy we have developed a verification and testing environment for Java which integrates model checking, program analysis and testing. Part of this work has consisted of building a new Java Virtual Machine that interprets Java bytecode. JPF is the second Java Model Checker developed by the Automated Software Engineering group at NASA Ames - JPF1 used a translation from Java to PROMELA in order to do model checking with the SPIN model checker."
While your enthusiam is great, I do not think it will revolutionize software development. The tool would have to be amazing. And yes, I do mean amazing. If it was amazing right now, which it is not, you'd have a chance to change the software development world. It also seems very academic and not truly practical. I could be totally wrong about this -- remember, IANAJP!
Bottom line: It is a good idea and sounds interesting so keep your chin up. But, try to be a bit more realistic.
Quake (Score:4)
Just because it changes on the surface doesn't mean the whole program gets scrapped and everyone starts over. Unless we encounter a serious technological bottleneck in our current engines, it is quite likely they will still be in use in another five years.
-------------------------
Re:No way... (Score:2)
Actually, we may make a pitch to them.
No way... (Score:5)
Another is one that we're nearing completion on. It has taken 1 year for four developers, and it's a large distributed system. It's very stable and it's good software. We've also taken on the idea of "plugins" and exposed a great deal of our system's internal data and functionality so that we can add almost all of our new features via the "plugins" and not have to worry about mucking with the base system and messing it up.
Now, as my old boss used to say: "We're not sending rockets to Pluto," but these are fairly large complex system.
The first was a multi-user engineering system for developping cell phone networks (base station locations, traffic analysis, propagation prediction, interference prediction, etc...) The second is an enterprise wide tracking system, used to track everything from bugs in the software itself, to evidence in police stations, to prisoners in prisons, to assets for a company.
So, I don't really buy into the 10 year thing. Not to mention the speed of technology changes, hell, you can't design for what's going to be there 10 years from now. Who knows what's going to be on your desktop?
The Wine developers must be chuffed. (Score:2)
The final line of the article is...
(Okay, so I changed the link).
That graph won't convince me (Score:2)
BTW (Score:2)
But Linux... (Score:2)
Notice that some of the best projects, although usable, are not "mature" software until at least 3-4 years.
Linux has been around about that long, and in the last 2-3 years has really picked up speed (and dollars) from corporations.
Microsofts OS picked up speed around Windows 3.1 & 3.11 (early 90's) and had matured for aproximately 10 years prior to that (DOS 1.0 - DOS 6.22) You get the idea. Now that Windows is aproaching 10 years (Windows 2000) is finally an almost dare I say it "Good" OS.
Although 10 years might not hold true for all applications, it will hold for a large number.
Been there, done that. (Score:2)
It's quite possible to use formal methods, and tools that check them, to produce bug-free programs. But the formalism is too much for most programmers. That's the real problem. Using a verifier means writing code that you can explain in a formal notation. This is a huge pain. It is, though, quite straightforward to check for low-level problems like possible numeric overflow and subscript errors by formal methods. More recent work has extended this to race conditions and deadlocks.
Back when we were working on this, a major problem was that it took 45 minutes on a 1 MIPS VAX 11/780 to verify about 1000 lines of code. Today, that would take 2 seconds. You can be too early with a technology.
Incidentally, undecidability isn't a problem. It's possible to construct programs whose halting is formally undecidable, but they're not very useful.
Although program verification hasn't done much for software, formal techniques are widely used in IC design, where people are serious about engineering and stuff is expected to work.
What about RAD? (Score:3)
I think it still applies that in a month I can write a very useful application using something such as Visual Basic or Delphi (Kylix)
The time in development does not have to fall soley on MY shoulders. The Delphi people have spent many years coding the base libraries and IDE for Delphi. How does this entire development philosophy fit into this guys plan?
What about 4Gl's where many years have been spent refining these languages. Many years have been spent thinking of how to make programming flexible (to a degree) and easier. Does this not
I am not implying any such a platform exists I am just stating that it seems to me this is quite feasible with the right tools. Maybe they are not out there yet but they will be some day.
I just think that in software development you will find many rules and philosiphies spring up only to be later invalidated as the nature of the beast changes.
Anyhow, laters.
Jeremy
Re:so why does notepad still suck? (Score:2)
Agreed. If I want to edit a webpage, I use Notepad. A webpage that is too big to load in Notepad is too big. Period.
If I want to view or edit a really large plain-text, I open it in MSVC. MSVC whips the pants off Wordpad for large plaintexts. Wordpad is only useful for viewing documents from people who insist on sending you .doc files. As long as there isn't any crap embedded in a word file, you can view it. If people send me word files with crap in them, it usually doesn't matter. 99% of the time the graphics are just that--crap with no information that can't be deduced from the accompanying text.
Battlecruiser 3000 anyone? (Score:2)
Re:This *WONT* Be True Any Longer (Score:2)
logical language
Oh, so all we have to do is write a bug-free program to check our first program for bugs? Brilliant! (Seriously, I'm all for correctness checking, but if you think it is a solution and not a tool, you're smoking too much of that there crack cocaine.)
"Beware of bugs in the above code - I have only proved it correct, not tested it."
- Knuth
Re:This *WONT* Be True Any Longer (Score:2)
You might want to take a few more math classes, and then then get back to us. I'd tell you to suggest to your professor to do the same, but incompetent professors are often extremely vindictive.
There's often nothing useful you can do with a computer science professor who has refused to learn any computer science, except nod and smile and stay the hell out of their way.
Re:Not 10 years for the first release... (Score:2)
It's kind of amusing that you can do the same thing in UNIX with X without all the hassle. Who says UNIX is harder to use than Windows??
---
Re:Not 10 years for the first release... (Score:2)
---
Re:so why does notepad still suck? (Score:2)
View Menu > Scientific
Enter your number, and click the "x^2" button
It's been this way since at least Windows 3.1
Wicked problem (Score:5)
Re:Depends on the project.. (Score:2)
Madness? You bet. http://www.nethack.org [nethack.org]
Re:I disagree. It takes good programmers (Score:2)
Maybe we should just stick with safe [schemers.org] languages?
I also take exception with the comp-sci dig =). I think a good comp-sci curricula leads to LESS slipshod code. I've seen too many people reinvent the wheel (poorly) because they didn't understand basic computer science concepts and design. The teaching of which is the goal of the very first class in the curriculum. [ou.edu]
Ten years? (Score:2)
Re:No OSS/FS projects? (Score:2)
Sounds like he's fairly anti-OSS/FS to me. He advises against "release-early, release-often" and "it'll ship when it's ready"; he takes a poke at Mozilla because they're not stamping "1.0" on a buggy release; and seems to believe that software rental is the only way to go.
Re:Good Software takes FOREVER! (Score:2)
Since the support is external (stuff is just piped through the bzip2 command), one could argue that tar could've been properly designed from the start to handle an arbitrary compression program (just as 'tin' works with arbitrary text editors and 'rsync' works with an arbitrary rsh-like program [though in the rsync case, I'm not sure when that was added -- but should ssh ever get supplanted by a new rsh-like program, rsync's already ready to support it]).
Furthermore, one could argue that the existence of both 'compress' and 'gzip' should've clued the tar developers in on the idea of supporting arbitrary compression programs.
However, I don't think the people who make tar particularly dropped the ball or anything. It's just that the software could've been made flexible enough before-hand.
Re:Thank God... finally a programmer who understan (Score:2)
Re:Quake (Score:2)
As for the 3 games you mention, Medal of Honor is a port of a Playstation game. And Playstations haven't been around for even 5 years yet, so that could hardly be 10 years work.
Depends on the project.. (Score:5)
Not all software has even close to thelifespan of the big applications this guy is talking about. Most user applications, games, web technologies, they are all projects that get used for a few years and then get replaced. To develop a single game for 10 years would be madness. The amount of time a project has is usually linearly related to the lifespan of the outcome. If you're writing soemthing thats going to be used in 20 years time, then its probably not an afternoons work.
No he's talking about revision-codes (Score:2)
Actually I believe that he's really refering to what software revision codes actually mean [ornot.com].
OSS example... (Score:3)
Re:MS IE (Score:2)
Well. first of all, they licensed the Mosaic source from Spyglass (completely screwing them over). But the issue here is IE 3 and 4 development. Using Mosaic code got them out the door a lot faster but their blowing by Netscape was their own doing, and Netscape's.
I think where Joel is off is that he says Mozilla made a crucial error by restarting from scratch. But didn't Microsoft completely rewrite the rendering engine for IE 5?
Unsettling MOTD at my ISP.
Re:Depends on the project.. (Score:4)
I agree about games, with the exception of low-tech stuff like Angband and other Rogue-likes. I also agree about simple utilities. (That's why I don't care whether Miguel and Ximian decide to throw their energies into chasing .NET -- the stuff I care about in Gnome, like grip and xchat, is only going to get slower and buggier if they ever really get Bonobo in place.)
But user applications like office suite components, financial applications, things like that definitely need time to mature. It took Word and Excel years to go from their original Mac-only incarnations to their usability peaks (Mac Word 5.1 and Excel 6.0, IMHO). And web browsers are far more usable than they were five years ago.
While I'm here, responding to some things in the article:
Mistake number 2. the Overhype syndrome. When you release 1.0, you might want to actually keep it kind of quiet.
A corollary of this -- don't crank up the hype before you've written anything! That way lies Eazel, Mozilla, Marimba and, I'm guessing, Mono.
Mistake number 5. The "We'll Ship It When It's Ready" syndrome. Which reminds me. What the hell is going on with Mozilla? I made fun of them more than a year ago because three years had passed and the damn thing was still not out the door.
I made fun of them, too. Until it turned out that its function at AOL was to serve as a bargaining chip with Microsoft. It did its job. And I don't think you can fault them for not releasing those horrific 0.9 versions as 1.0. You can fault them for taking so long to make it usable.
Unsettling MOTD at my ISP.
No OSS/FS projects? (Score:2)
He did mention Wine [slashdot.org] at the end. But i guess it'll take longer than 10 years for this wine to come of age ;)
Re:I disagree. It takes good programmers (Score:2)
Unfortunately the teach-em-only-what-industry-is-using approach does not provide students with any real perspective and you end up with second rate programmers.
For my own part, the "safe" languages aren't safe enough. Java etc. don't give Joe programmer access to dangerous pointers and so forth, but you still get runtime type errors, unchecked error cases, suckful performance, and an inability to stick to a spec. [Plug: it's nigh on impossible to avoid checking error codes in Mercury...]
Re:Bad, Good and great software (Score:4)
Will there ever be a new commercially viable operating system (not saing Linux is bad, but just that it's market share is far too low to consider it at this point)? Can suchan effort exist if the company producing it needs seed capital for 10 years of operation before a quality product can be produced?
This seems actually to be a great opening for Open Source. OSS has the advantage of not requiring large capital outlays to continue development. Look at the number of OSS projects started in the past 5 years, and at the number of corporate software startups from the past 5 years. How many of the corporate software startups are still around? How many OSS projects are still around?
I recall a statistic someware that only 2% of companies ever really succeed, beyond 3 years. I wonder whatr that percentage is for OSS projects...
Based on the above comment, it seems to me that the only major competition in large scale software such as Operating Ststems, Enterprise quality databases and Perhaps Wordprocessor software will come from OSS, which is the only development model that could survive for the decvade nessecery for the products to reach maturity.
The alternative is to say that the only major software companies that will ever exist have already been established and that the bariers to entry into these markets are too high for any new startup. This is not something I would ever want to have to admit.
--CTH
--
Good Software takes FOREVER! (Score:4)
I think a software is only good iff it takes forever. As software *approach* perfection, changes are made less often. New features are still being added, but they are few and far in between. Eg old warhorse like tar now has support for .bz2 files (tar -zI). It is impossible to say something is perfect and cannot be improved anymore. Anyone remember that quote about "all the inventions had already been invented"?
Of course this probably don't apply to the commercial environment (which is what the article is aimed at I think). Imagine starting a business selling tar: buy tarXP because... okay lets go to a subscription model ;-)
====
Re:No way... (Score:2)
1. Thomson's 1st DirecTv satellite receiver.
2. Thomson's DOCSIS Cable Modem.
Most impressive about these programs is that they incorporated "first silicon" for their technologies. So not only the software worked, but the hardware worked on the first "tape out".
Ten years? BS. That sounds like a poor excuse for crappy engineering.
Re:Not 10 years for the first release... (Score:2)
There is also VNC, just like PC-Anywhere, 'cept its free, and works on many platforms.
Re:i hate this subject line (Score:2)
*Shudder*.
Re:This *WONT* Be True Any Longer (Score:2)
On the other hand, will this detect whether or not the programmer put anything in place to catch a buffer overflow? Considering that Microsoft has issued six patches since December, each because an unchecked buffer allowed a security exploit, ...
Re:Not 10 years for the first release... (Score:2)
Um, maybe, just maybe: The guys who are doing it right now? There is nothing that says open source has to be made in somebody's parents garage. I'm positive that this is not the only clinic with a programer onhand working on keeping their crusty old custom software working.
Now if two or more of these guys working on these custom apps for clinics get together and work on something together then they all can enjoy the work done by the others.(After auditing it themselves of course). You don't have at least a periferal grasp of how OSS work, right?
- RustyTaco
Re:MS IE (Score:2)
"Things you should never do"
--
Two witches watched two watches.
Re:No OSS/FS projects? (Score:2)
What she (it's a she, not he) says is that:
A> Don't advertise during the super bowl your *1.0 product*. It's not going to be good enough, and you'll lose people's trust that way.
B> Don't create over-ambitious goals. Don't say, "I want to create a word processor", and then try to copy every feature of Word on your 1.0 product.
C> *Keep* a scheduale. Without one, programmers code for fun, not for the best of the application.
D> Don't expect *immediate* commercial success.
--
Two witches watched two watches.
Re:But Linux... (Score:2)
The one thing that MS needed with 9x is compatability with DOS & Win16 applications.
They damn well got *that* one.
The problem is that this compatability *cost*. And that cost is in the stability of the system. The OS can't guard itself against rouge applications.
--
Two witches watched two watches.
Re:But Linux... (Score:2)
If you are talking about the kernel, it was usable quite some time ago.
It still need to be worked out around some problems that it has, but the kernel is mature.
But the kernel isn't the problem with Linux, it's the rest of the system that raise many objections.
Especially in the desktop market.
--
Two witches watched two watches.
Re:MS IE (Score:2)
http://joel.editthispage.com/stories/storyReade
Gay?
--
Two witches watched two watches.
Re:No OSS/FS projects? (Score:2)
The food the IDF supply *does* make hair grow on your chest.
"I didn't have a boyfriend"
http://joel.editthispage.com/stories/storyReade
Gay?
--
Two witches watched two watches.
Re:I admit (Score:2)
Most of the code is *not* on the kernel, you know.
Put Linux, X, KDE/GNOME, Bonobo, J2EE implementation, TCP/IP, Apache, sendmail, together, how many LOC does this come out?
That is (very roughly) what NT has.
--
Two witches watched two watches.
Re:so why does notepad still suck? (Score:2)
--
Two witches watched two watches.
Re:so why does notepad still suck? (Score:3)
Not 10 years for the first release... (Score:5)
Re:I disagree. It takes good programmers (Score:3)
The best way to teach comp sci is not to give the students "safe lanuages", but to teach them how to learn languages and how to develop software (planning, modularity, commenting, etc.). The problem is that I think the field of computer science is still going through beta testing in most universities. Topics like CoE and EE have a pretty firm base. The classes don't vary much from school to school. But with CIS, schools are still learning how to teach the concepts. Sure, a class in C++ or assembly lanuages won't vary much...but knowing a language can only get you so far. There's really not a solid platform yet for universities to start their curriculum.
As high schools start offering more technology classes (which they're starting to) and colleges work out the bugs in their curricula, you'll probably start seeing the software industry become more stream-lined and standardized...like engineering.
--