Slashdot Mirror


Spolsky Stands Firm on Linux on the Desktop

erlando writes: "SoftwareMarketSolution is running an interview with Joel Spolsky (from JoelOnSoftware) in which he responds to this earlier thread here on Slashdot. In short: He defends his position and makes some interesting remarks on Linux and the desktop."

296 comments

  1. whow ... by Alpha600 · · Score: 0

    I really impresses me how slashdot is able to change at least some parts of the only world. not only with slashdotting other servers ;), but although no big know firm is behind slashdot people from the whole IT listen on slashdot, as it's their own voice.

    really impressive what's done here ...

    b4n

    --
    why are newer posts modded up, while older with same content are classified as redundant?
  2. Justifying his earlier statement by Mattygfunk · · Score: 5, Insightful
    SMS:...you stated that code doesn't rust, i.e., that once a piece of a program has been debugged and various workarounds added, it represents a repository of stored knowledge and should be left alone.

    JOEL:It may be true for the software that Eick evaluated. It's not true for the software that I've written, because I tend to refactor and clean things up regularly.

    His argument is that code doesn't rust however he argues it by saying that he "refactors and cleans things up regularly". Perhaps he needs to think about that one a little more.

    1. Re:Justifying his earlier statement by Anonymous Coward · · Score: 0

      Yeah, it's kind of like saying 'my car doesn't rust - I cut out old sections and weld new ones in, and paint everything regularly.' It's not the same thing really, is it?

    2. Re:Justifying his earlier statement by Greyfox · · Score: 3, Insightful
      The refactoring people tend to believe that refactoring can be a be-all and end-all. Having apparently never worked on a team in the Real World and had a piece of code delivered that was so hideous that the only thing you could really do with it is have it taken out and shot. XP Practices can help you avoid having such a hideous piece of code delivered in the first place, but you'll have a had time convincing small shops to do pair programming.

      Of course, he gets around that one too, stating that if it costs more to add features to the current code than it does to rewrite it, then rewrite it. I've seen designs so bad that it's literally more cost effective to scrap them and start from scratch.

      He also says that it would make more sense to have a new (and competent) programming team refactor Outlook rather than have the existing one rewrite it from scratch because the existing Outlook team sucks. That actually makes a bit of sense if you think about it. He doesn't go into how much the new team might have to "refactor" Outlook. Anyone want to make a guess?

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    3. Re:Justifying his earlier statement by decesare · · Score: 1

      That statement caught my eye, too. All I can say is that maybe it's not true for the software that he's written, but he hasn't written every single line of software code in operation, and yes, some code is bad enough to be taken out and shot.

      So, when should code be replaced (i.e. taken out and shot)? IMHO, it's when the overall architecture is so bad or the wrong language or toolset is used such that refactoring simply won't work. In a lot of projects, not nearly enough time is spent on software architecture and design, and not enough of the proper expertise is on hand to come up with a good design. As a result, the code is often quite ugly, not just because it's not commented, but because the chosen approach was flat-out wrong. That's when code should just be junked. Should it be scrapped one module at a time (i.e. refactoring)? Well, that would be safer in terms of product quality, but that approach has to be thought out even very carefully than the "blank sheet of paper" approach, and not many coders or managers have the patience to do that.

    4. Re:Justifying his earlier statement by Krusher55 · · Score: 1

      Isn't refactoring the same as rewriting except you do it piece by piece over a long period of time instead of all at once?

      If you spend, on average, a day a week refactoring for 5 years are you really any better off than not doing any refactoring for 4 years and then spending a year doing a complete rewrite?

    5. Re:Justifying his earlier statement by ethereal · · Score: 1

      Exactly - and in fact, if you're making all sorts of refactoring and redesign decisions when in the midst of an otherwise normal bug fix, you're actually adding risk to the bug fix by increasing the amount of code that is changed. It also makes it harder to back out that bug fix if you decide it isn't working, since it's tied in to the refactoring effort.

      I'll agree with his original argument that old code does represent stored knowledge (generally hidden requirements) and that those requirements are sometimes hard to reverse-engineer when you re-write the whole thing. I've been involved in that sort of effort, and it's true that you do miss things in the rewrite that worked in the original code. (On the other hand, you also often fix things that you never noticed were broken in the old code.)

      In fact, I would say that you're more likely to capture all of these hidden requirements in the code when doing a full rewrite, as opposed to the piecemeal cleanup that he describes. If you do the rewrite all at once, you can take the time to understand the whole system and all of its stored knowledge. If you do the rewrite bit-by-bit, you may think that you can clean up an ugliness, not realizing that it really has a purpose somewhere else in the codebase, because your scope of refactoring at the moment doesn't include that other part of the code. So Joel's system may work for him, but I don't think you can necessarily apply it to all software systems.

      He's definitely correct that you want to make an economic decision, not just a gut reaction that the codebase sucks and needs to be replaced. Software projects are too expensive to make these decisions on non-economic grounds.

      --

      Your right to not believe: Americans United for Separation of Church and

    6. Re:Justifying his earlier statement by SuiteSisterMary · · Score: 5, Insightful

      Refactoring means that when you find a more efficient carburator, you install it in your car and go. Ground up rewriting means that when you find a more efficient carburator, you throw your old car in the trash, go buy a new one, and install your new carburator in it.

      --
      Vintage computer games and RPG books available. Email me if you're interested.
    7. Re:Justifying his earlier statement by hey! · · Score: 5, Insightful

      Although there is the matter of the initial way you look at the problem.

      There's two stances you can take: (1) This is is a bloody mess, let's rewrite. (2) This thing is a bloody mess, let's see if we can't fix it.

      If you look for ways to fix things, then you will find them more often than if you don't look for a way to fix them. The problem is what happens when consistently find your fixes don't fix, or break new things? I don't think there should be a general rule that thou shalt never rewrite, but that you should look sincerely and hard at fixing before you rewrite.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    8. Re:Justifying his earlier statement by ichimunki · · Score: 2, Insightful

      No and maybe, maybe not.

      Rewriting means starting from scratch. Refactoring means doing things like analyzing existing code using code profilers and such to find weak spots or by accepting bug reports, then going into the routines that cause those bugs or weaknesses and looking for ways to improve the existing code. Maybe adding new features carefully.

      Your hypothetical situation is simply too general and detached to draw conclusions from an analysis thereof. But offhand I'd say yes, much better. That's five years of finding bugs and squashing them, five years of tuning slow routines and bottlenecks, five years of security testing, and five years of usability tweaks. If you can provide all of that in just one year of development from scratch, you are a better programmer than most.

      --
      I do not have a signature
    9. Re:Justifying his earlier statement by sketerpot · · Score: 1
      This is a bad anology. Perhaps I can find a better one:

      Refactoring means that when ou ind a more efficient engine, carburator, spark plug, whatever, you install it in your car and go.

      Ground up rewriting means that you chuck out your old inefficient car and get a new better one.

    10. Re:Justifying his earlier statement by SuiteSisterMary · · Score: 2
      Ground up rewriting means that you chuck out your old inefficient car and get a new better one.
      Also throwing out all the other modifications you've made, detail work, and so on, and then buying a factory car and starting all over again, just because it's newer.
      --
      Vintage computer games and RPG books available. Email me if you're interested.
    11. Re:Justifying his earlier statement by ClosedSource · · Score: 1

      "In fact, I would say that you're more likely to capture all of these hidden requirements in the code when doing a full rewrite, as opposed to the piecemeal cleanup that he describes. If you do the rewrite all at once, you can take the time to understand the whole system and all of its stored knowledge."

      I agree. And the longer you wait to rewrite, the more difficult it will be because the people who understood the original requirements will be increasingly unavailable.

      Another advantage to a rewrite is that the design can reflect not only the original requirements, but new requirements that have added since the original design was created.

      In addition, you are refreshing the company's expertise in the product. After the rewrite is complete, your current team will a deep understanding of the system and it will take a while for those people to leave the company.

      Another factor is that in rewriting the code you can take advantage of new languages. This protects the company from having to look for people with skills in older languages that are hard to find.

    12. Re:Justifying his earlier statement by 5KVGhost · · Score: 1

      "Ground up rewriting means that you chuck out your old inefficient car and get a new better one."

      More like throwing out your existing car and designing, engineering, and building a new one yourself.

    13. Re:Justifying his earlier statement by Krusher55 · · Score: 1

      I guess I misinterpreted what he meant by:

      "Half the time when I go into a function to fix a little bug, I figure out a cleaner way to rewrite the whole function, so over time it gets better and better."

      Finding a cleaner way to rewrite the whole function is no different than rewriting the complete application except on a smaller scale. If you rewrite all the functions you have effectively rewritten the application.

      You have some valid points. In theory you make a lot of sense. Why trash code that has been optimized for 5 years but lets live in reality. I'd bet 95% of all code never gets looked at again after it is written unless a bug is uncovered and when it does get looked at again to fix that bug it is usually by someone different than the person that wrote it in the first place. Even if it was the same person it is quite likely that they don't remember much about the code. The result is some sort of hack gets implemented to fix the bug and not a 'refactor'. Most software development houses put their junior developers on bug fix projects so it is quite possible that the bug fix degrades the code originally written by the 15 year veteren. If somehow you can manage to convice your 15 year veterens to perform maintenance tasks and somehow you can convince management that it makes sense to have your 15 year veteren making big bucks to do maintenance then your arguement will be more valid.

    14. Re:Justifying his earlier statement by sketerpot · · Score: 1
      All right, you have a point. I didn't have as much time as I would have liked to make the last part of my comment very good, and yes, you do throw away all of your modifications. But sometimes the vanilla factory car is better than your existing one. Consider, for example, an original Volkswagen Beetle that runs just like new that you've added some neat stuff to, and one of these new cool hybrid gas/electric cars. Ultimately ditching your Beetle and getting the new car may save you money on gas, especially if gas prices continue to go up.

      Rewiting is not alwys feasible, or even desirable. But it can be good sometimes.

    15. Re:Justifying his earlier statement by ichimunki · · Score: 1

      How can a "bug fix" possibly degrade the quality of the code? By definition code with a bug in it is as bad as it can be. Anything that removes the bug, but does not introduce new bugs improves the quality of the code. Whether or not it is pretty to look at is irrelevant.

      If a manager has fifteen year veterans that he can't control (i.e. get them to do maintenance coding) then maybe he ought to hire some programmers who are not primadonnas or take a leadership class.

      Frankly, if programmers can't understand that their real value as professionals lie in their ability to maximize the usage of scarce resources, then they don't deserve "plum" assignments. That is to say, a good programmer, one who can consistently demand raises and quantify his/her value is one who can point to work done and say "this saved X number of CPU cycles" and therefore $Y on new processors, RAM, or disk. They might point out how this gets the data out Z times as fast and how this allows for X more transactions or hits or whatever.

      Sure, a new program may be great in that it adds completely new value to the organization, but to take existing software and rewrite it after allowing the previous version to lag seriously behind? In the real world running projects like that is the best way to not get funding. Your rewrite, instead of being incremental, easily managed and predictable, becomes a major capital expense and very risky.

      --
      I do not have a signature
    16. Re:Justifying his earlier statement by pod · · Score: 1

      Except retarded car analogies never work when applied to computers.

      Refactoring is nothing like replacing some car parts. If you have a carburator, you replace it with another carburator, not some new gee-whiz gizmo. That's not refactoring. Refactoring would be to get rid of the carbutator altogether and redesign the surrounding machinery to get by without it.

      Refactoring means whole-sale rewriting of chunks of code (but not the entire program) to accomodate some future changes, necessary features, fixing inefficiencies or bugs. If you have class A talking to B through C because of some arcane conditition, and that condition goes away for some reason, you don't go out a design a new class C (a better carburator), you chuck it out, and rewrite A and B to talk to each other directly.

      --
      "Hot lesbian witches! It's fucking genius!"
    17. Re:Justifying his earlier statement by Anonymous Coward · · Score: 0
      Of course there aren't any end-all be-alls other than experience, education, and discipline. He doesn't say that there are though, he's assuming you have those 3 and he's trying to provide best practices.



      Of course, he gets around that one too, stating that if it costs more to add features to the current code than it does to rewrite it, then rewrite it. I've seen designs so bad that it's literally more cost effective to scrap them and start from scratch.


      That's not something engineers decide. You know? I've heard dozens of slashdotters say stuff like that but I've never known any to be in the position to decide if it's actually more cost effective. In my youth I used to feel that way quite a bit, looking back I don't think I was every close to being right. I was just too lazy to understand the code and it didn't appeal to my personal sense of aesthetics. When servicing old code is your job then that's your job, if it's cheaper to throw it out and start fresh then they wouldn't hire you or you'd have a different job.


      He also says that it would make more sense to have a new (and competent) programming team refactor Outlook rather than have the existing one rewrite it from scratch because the existing Outlook team sucks. That actually makes a bit of sense if you think about it. He doesn't go into how much the new team might have to "refactor" Outlook. Anyone want to make a guess?


      Fresh eyes are worth something. Outlook is a critical product to MS. Unless they have just complete dorks on the team who can't talk to managment then they should be able to present the fact to the MS uppers that it needs to be cleaned up and it's a big effort. I'm guessing the current team doesn't see the need for it to be done. MS has shown in the past that they are willing to do big efforts to make things better. They don't do it to every product but when it's needed and the product is worth it, they do.

    18. Re:Justifying his earlier statement by yeOldeSkeptic · · Score: 1
      Refactoring means that when you find a more efficient carburator, you install it in your car and go. Ground up rewriting means that when you find a more efficient carburator, you throw your old car in the trash, go buy a new one, and install your new carburator in it.

      Good analogy for as long your old car still works. But if its really old and rusty, wouldn't it be more economical to just a buy a new one? If you own a VW Beetle and you want to make it into something that works more like a Ferrari Testarossa, how the hell are you going to refactor it? I would like to see that. I say throw that beetle away and get your self the Ferrari.

      The same with code. Outlook is an insecure and kludgy piece of junk that no amount of refactoring can make it purr like a Jaguar. With all the resources that MS has, why can't it hire talent that will rewrite outlook from scratch and replace it's rusty Model T outlook?

      I think ``refactoring'' is just a new buzz word for what we old-timers would call maintenance.

    19. Re:Justifying his earlier statement by Krusher55 · · Score: 1

      "How can a "bug fix" possibly degrade the quality of the code? By definition code with a bug in it is as bad as it can be. Anything that removes the bug, but does not introduce new bugs improves the quality of the code. Whether or not it is pretty to look at is irrelevant."

      A "bug fix" isn't supposed to improve the quality of code (i.e. readability, maintainability, etc.) but rather improve the quality of the application. Furthermore, fixing one bug does not guarantee that the application is in fact better as that fix might have caused other bugs to crop up.

      "If a manager has fifteen year veterans that he can't control (i.e. get them to do maintenance coding) then maybe he ought to hire some programmers who are not primadonnas or take a leadership class."

      Go ahead, ask your 15 year veteren to spend the next year maintaining code. My guess is that 80% of them will quickly start dispersing their resume for jobs that are more challenging and rewarding.

      "Frankly, if programmers can't understand that their real value as professionals lie in their ability to maximize the usage of scarce resources, then they don't deserve "plum" assignments. "

      If managers can't understand that having their high quality experienced engineers working on the most difficult tasks then they don't deserve to be a manager.

      "That is to say, a good programmer, one who can consistently demand raises and quantify his/her value is one who can point to work done and say "this saved X number of CPU cycles" and therefore $Y on new processors, RAM, or disk. "

      Most programmers don't work for money (it is simply a nice benefit). There are some programming jobs that you could pay me $200K that I wouldn't take because I would much rather spend my time designing and engineering new software systems.

      "Sure, a new program may be great in that it adds completely new value to the organization, but to take existing software and rewrite it after allowing the previous version to lag seriously behind? "

      Who said the previous version lagged seriously behind? In my example it was maintained for 4 years before it was determined to be too difficult to maintain and a rewrite was necessary. Over those 4 years you have integrated in bug fixes, new features, maybe changed how a few features worked, supported new platforms, etc. but now the code is becoming difficult to maintain (functionally it is better, but cost of maintaining it is getting higher).

  3. Not too bad, but... by bovinewasteproduct · · Score: 1

    This article was not too bad, but to me he almost bites his one tail a couple of times.

    In the discussion on software decay he talks about the way he is always tweaking things. If the code was good to begin with, why play with it?

    The one thing I do like is how the article brings up the point that you HAVE got to have a good medium between sales and techies or else you either get bogged down by feature creap from the sales department or else you can't sale jack because the customer was bored out of their skull with the too detailed presentation! Been there and done that... The sales department would drag me out (on the phone or otherwise) when they needed to know if we could produce it, but other than that I stayed in my cave.

    BWP

    1. Re:Not too bad, but... by Anonymous Coward · · Score: 0

      > In the discussion on software decay he talks about the way he is always tweaking things. If the code was good to begin with, why play with it?

      It was good enough when it was first built; afterwards, over time, he learned better ways of doing things, or the software's requirements changed so it needed parts redesigned/reimplemented, or parts were built quick & dirty at first, and at first that was OK - but as time went on and demands on that part of the code increased, it couldn't keep up with the load and needed to be redone.

  4. If found this quote funny: by EnglishTim · · Score: 3, Interesting

    I found this quote (from a Slashdotter) quite funny:

    I was in a company that was run by technical people, but when the company ran into financial trouble, decided to become more "market oriented".

    They hired a bunch of professional executives, marketing people, etc. Marketing was put in charge of determining product direction, as they knew what the customer wanted.

    Well it turned out that the technical people were in fact smarter than the marketing and PR guys, who seemed to think that software could be created by committees and meetings and lots of vision. The company sank like a rock."


    (S)He blames the downfall of the company on the marketing people, and yet had stated earlier that they were already in trouble anyway. Sounds to me like the company was doomed irrespective of the marketdroids.

    1. Re:If found this quote funny: by Anonymous Coward · · Score: 0

      Sounds like you're reading things into that statement. If you go back and read it, it semes to say, they identified problems and decided to fix it the "normal way". The fix, it seems, caused them to sink faster than otherwise anyone would of expected.

      Bluntly put, this is to be expected. Most marketing people are lucky to find their shoes in the mornining. Generally speaking, most marketing/sales people only slightly understand the product that they sale and deferr the techinical issues to the techies to iron out. These people should NEVER be in charge of products. NEVER, ever, NEVER! They should be mouth pieces between the customer/client base and the techies. This allows techies to implement what they KNOW has to be implemented and while at the same time implementing what is being requested.

      When marketing runs things, things that should be implemented tend to never get in..or if it does, it's a half ass solution because it's not "important" (thus not enough time was allowed to be invested in it) because it didn't come from marketing or direct customer feedback.

      A good company has synergy between marketing and the techies. Bad companies are run by marketing. On the other hand, I've seen a rather lage number (smaller companies) that do rather well being run by techies.

      Generally speaking, most companies know they have a need but have no idea what the solution is. On top of that, customer solutions are often very customer centric which means it may have little value for other customers. It might also be a problem as implemented for another. This means that more time is spent customizing for each customer instead of working on core value and value added.

      Let the techies implement what they KNOW NEEDS to be implemented and enhance it based on customer/marketing feedback.

  5. He know us... by juliao · · Score: 5, Funny
    From the article:

    slashdotters are not exactly famous for reading the things they are commenting on

    Oh well...

    1. Re:He know us... by Anonymous Coward · · Score: 1, Funny

      I was going to post that, but it looks like someone else read the entire article.

    2. Re:He know us... by mvw · · Score: 2
      Which should earn him a (Score:-1, Flame Bait) :-)

      While he writes (Score:1, Funny) and (Score:1, Interesting), I often think he is (Score:-1, Overated) after reading his essays.

      At least he doesn't plug his latest product (a true /.er would most likely use something PHP or Zope or Perl based anyway instead) in the interview, or did I overread that? :-)

  6. WINE-Win95 by uebernewby · · Score: 4, Insightful

    I doubt that it will be enough for WINE developers to catch up with Win95. No one uses the out-of-the-box version of Win95 anymore, do they? There's all sorts of updates you need to get your software running and, yes, those updates include additions/changes to the API.

    --

    News and bla for computer musicians: http://lomechanik.net/
    1. Re:WINE-Win95 by ftumph · · Score: 1

      There are a ton of individuals and small businesses out there still running Windows 95 un-updated, out of the box. At least from what I'm seeing.

      I think his comment is fair. The reality is that a usable target API has been out there since late 1995.

      Microsoft's big leap in technology was in going from Windows 3.1 to Windows 95. Everything else has been incremental improvements. I don't know what the sales figures are like, but personally I've seen a lot of machines still running Windows 95, Office 95 or 97, etc. For each release of the software, the reason to upgrade becomes less and less compelling. If everything you need to run works, why upgrade?

      Plus people just go with what was installed on the machine when it was shipped, and do not mess with it. Windows software development shops know this.

      How many 3rd party software packages have you seen that require Windows 98 or ME but will not run on 95?

    2. Re:WINE-Win95 by Forseti · · Score: 1

      But that's not really the poibnt he's making, is it? He's right when he says that the "moving target" argument is moot, because WINE isn't even at the level of win95, they've had over 6 years to reach that target, even more if you consider that wine started with win3.1 as a target, and that win95 still has a LOT of residual 16-bit code.

      If they haven't managed to get it at that level yet, then maybe we should acknoledge that reaching that target is more than a few part-time developpers can handle in a reasonable amount of time.

      I still hate M$ though... ;-)

      --
      Delay is preferable to error. (Thomas Jefferson)
    3. Re:WINE-Win95 by Chang · · Score: 1

      He's incorrect because it is not a correct assumption that the goal of the WINE team is to reproduce the Win95 API.

    4. Re:WINE-Win95 by erasmus_ · · Score: 2

      No one is saying that the goal is to reproduce the Win95 API, did you forget to actually read both the article and other people's very articulate explanations of what he said? The argument is that if Win95 is the base, and all these things were added since then, like DirectX, AD, IE5, etc. then why can't WINE at least still not even catch up to the base functionality? Obviously the goal isn't to stop there, but to replicate current API calls as well, but he's just saying that worrying about today is silly when they're not at the point that Windows was even 7 years ago. I hope that clears it up.

      --
      Please subscribe to see the more insightful version of th
    5. Re:WINE-Win95 by madfgurtbn · · Score: 1

      Microsoft Office XP doesn't appear to run under Win95, nor under NT until SP6 :

      This is from the Office XP FAQ:


      Does Office XP require Microsoft Windows® XP?

      A. No. Office XP Professional will run on Microsoft Windows 98, Microsoft Windows Millennium Edition (Windows Me), Microsoft Windows 2000 Professional, and Microsoft Windows NT® 4.0 with Service Pack 6 (SP6) or later. Windows XP will deliver the best Windows experience and, combined with Office XP, the best computer experience, but it is not required for Office XP.


      Sounds like M$ can barely hit their own moving target.

      --
      Send lawyers, guns, and money. Dad, get me out of this.
    6. Re:WINE-Win95 by j7953 · · Score: 2

      That's true for the typical end-user mass-market software you're probably thinking about, e.g. office applications. But for the most part, this software is already available on Linux anyway as native applications, so there isn't any real need for WINE. Sure, having the Windows apps work on WINE would make the transition to Linux much easier for a lot of people because the software would be exactly the same, but it isn't really essential.

      There are, however, also thousands of custom-developed applications out there that have been written for a niche market or even just a single customer. A hell lot of these applications will work with an unmodified version of Windows 95 (or Windows NT 4.0), simply because they tend to get updated less often and the updates tend to be small enhancements in functionality rather than a complete rewrite of the GUI just because using an Explorer-like toolbar would be cool.

      If this software doesn't run on Linux, many small and medium businesses don't even have the chance to run Linux without previously spending thousands of dollars to have their software rewritten.

      --
      Sig (appended to the end of comments I post, 54 chars)
    7. Re:WINE-Win95 by abelikoff · · Score: 1
      That's true for the typical end-user mass-market software you're probably thinking about, e.g. office applications. But for the most part, this software is already available on Linux anyway as native applications, so there isn't any real need for WINE.


      Big mistake. Being in the state of denial doesn't change things unfortunately. FWIW, Excel is the spreadsheet standard and PowerPoint is the presentation standard. If you doubt it, see how much success you'll get by sending any other format to anyone outside the friendly Linux community (and what would you send to your fellow Linux user: a Gnumeric file? A StarOffice file? An OpenOffice one? Kspread maybe? Note, I'm talking about file formats so far, not even about advanced features like macros and common scripting standard).

    8. Re:WINE-Win95 by uebernewby · · Score: 2

      He wasn't talking about spreadsheets and PowerPoint, he was talking about custom made software for which there *isn't* an alternative handy on linux. So if what he's saying is true and *those* apps *do* tend to work with unmodified Windows 95 (a statement that is somewhat debatable, as it's fairly easy to make sure that a limited number of company desktops feature at least Windows patch X, and I'm pretty sure that happens every now and then), getting big companies to migrate to linux will be easier once WINE can do the Win95 API well. StarOffice will handle the rest for them.

      --

      News and bla for computer musicians: http://lomechanik.net/
    9. Re:WINE-Win95 by j7953 · · Score: 3, Insightful
      Big mistake. Being in the state of denial doesn't change things unfortunately. FWIW, Excel is the spreadsheet standard and PowerPoint is the presentation standard.

      ...and Windows is the desktop OS standard. By your reasoning, you would need Windows anyway.

      But it is very possible to not use the standard tools and still communicate with the rest of the world. The real issue with MS Office is not running the actual applications on Linux, it is (as you've correctly pointed out) to access the data. Of course, Linux applications must be able to at least read MS Office files. For sending documents to someone else, you can use standard formats like PDF. Obviously, this would require some user training, but I believe that it is possible for a company to run Linux on the desktop if they want.

      The non-availability of MS Office on Linux certainly is a problem, but I believe custom-built applications are a larger problem, and anyway the problem cannot be solved by playing catch-up with the Windows API.

      --
      Sig (appended to the end of comments I post, 54 chars)
    10. Re:WINE-Win95 by jmccay · · Score: 2

      According to Joel, if you paraphrase his comments on WINE you can determine people have been wasting their money buying the newer versions of Windows because EVERYTHING works moderately well with Windows 95. Somehow I doubt that.

      I found him to be talking in circles. He talks about not rewriting software from the ground up in the original interview, and then he mentions he always rewrites his code? Ok, so translated, he doesn't rewrite software from from the ground up--he rewrites software from the second floor up!

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
    11. Re:WINE-Win95 by jejones · · Score: 2

      The thing he doesn't notice or doesn't point out is that once WINE gets to that point, it suddenly becomes very much in MS's interest to break it and thus far more likely that MS will find it worth moving the target. (And the more people shoved into the .NET vision of apps not stored locally, the easier it will be to make the target move very fast indeed.)

    12. Re:WINE-Win95 by jedidiah · · Score: 2

      Doesn't Office merely bring all of the relevant bits of WinXX with it?

      --
      A Pirate and a Puritan look the same on a balance sheet.
    13. Re:WINE-Win95 by ScottKin · · Score: 1

      No - he was only saying that new software is tested to be backwards-compatable with Win95. I can't see how you missed that or how you misconstrued it enough to come-up with your supposition.

      Additionally, it appears that you just skimmed through the article, because he squarely said that it's all dependent on the economics of doing a re-write .vs clean-up. If it makes economic sense to re-write from the ground-up, do it; if it doesn't, then you have your answer.

      Have a nice day!

      --
      I don't give a rat's behind about "karma" here or anywhere else. Don't like what I have to say here? Deal with it!
    14. Re:WINE-Win95 by Arker · · Score: 2

      I doubt that it will be enough for WINE developers to catch up with Win95. No one uses the out-of-the-box version of Win95 anymore, do they? There's all sorts of updates you need to get your software running and, yes, those updates include additions/changes to the API.

      Yes and no. There are a lot more people than ever before using that MS-VMS^^^^^NT^^XP brand of OS than before, but a great many people still use win 9x^^CE^^ME. And the vast majority of programs still run just fine on 95OSR2. The key framework of the API is there in 95OSR2. 98 adds some bugfixes (which you can download anyway, and actually aren't all that common - the real F-ups seem to come from the application division) and "Active Desktop" aka "Active Pain in the Rear" which gets chopped on a lot of machines anyway. ME adds little of note beyond the removal of the "DOS" Mode boot option. If you don't run one of these MS programs you may not be able to run other MS products, but your ability to run world class applications that don't try to take over your computer like Pegasus Mail, Opera, StarOffice, etc. should be just fine. If they can keep DirectX less than a year or two behind I won't even need to reboot for games anymore.


      A good solid WINE/Win95 compatibility would allow a lot of people to switch to a Free OS (gratuitous link) and quit paying the microsoft tax with minimal impact.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
  7. bitter much??? by Em+Emalb · · Score: 1, Offtopic

    From the article:

    "Too many of my execs (except, for some reason, the VP of Development) are engineers. This leads to a whole host of problems: Many of them tend think they're smarter than people in non-engineering roles. Pursuant to this, they don't think PR and marketing and sales are "hard" or really even "important". Again after #1, they're always right when in disagreement with marketing or sales guys. Most of them haven't developed in a decade+, so now they know just enough to be dangerous -- make micromanaging decisions about detailed subjects things they don't understand well enough, chase unnecessarily after bleeding edge tech, etc. Fail to understand that not everyone wants to always work 14 hours a day. Laugh off meetings, so that eventually nobody in the company knows what's going on.

    As a result, nobody's heard of us (no marketing budget, no trade shows, no nothing) and nobody's buying our products (engineers tend to make lousy sales guys; despite what they might believe, nobody wants to listen to a 3-hour ridiculously detailed presentation on your product)."

    Dude, lets paint the whole frigging "army" of engineers that have moved into management with one broad paint stroke. How about MANAGING them, rather than bitching like this. Don't like what they are doing? Get rid of them. Bring in someone who gets the whole picture. Don't bitch, you make the situation no better, AND you are publicly critizing them. You go boy.

    --
    Sent from your iPad.
    1. Re:bitter much??? by Anonymous Coward · · Score: 0

      If you actually READ the interview rather than
      skimming it for something to bitch about you
      would know that Joel didn't say this.

      It's a slashdot comment from the last interview.
      The interviewer quoted it and Joel responded
      intelligently.

    2. Re:bitter much??? by Em+Emalb · · Score: 1

      I wasn't referring to Joel, Senior AC. Thanks for your assumption I didn't read the post.

      ta-ta for now. And get a login, will ya?

      --
      Sent from your iPad.
    3. Re:bitter much??? by Anonymous Coward · · Score: 0

      Go fuck yourself. Yes a login makes you so much more responsible. A guy like you lets it all hang out, eh. The assumption that you didn't read the post was completely justified. You sound like such a dumb ass that one is surprised to hear that you can actually read.

  8. Show us the Code by Greyfox · · Score: 4, Interesting

    Joel says he's been programming for 20 years. Is any of his code available for public review? I looked at his web page briefly but nothing jumped out at me.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  9. The Tao of Programming by juliao · · Score: 4, Insightful
    From The Tao of Programming:

    A well-used door needs no oil on its hinges.
    A swift-flowing stream does not grow stagnant.
    Neither sound nor thoughts can travel through a vacuum.
    Software rots if not used.

    These are great mysteries.

    1. Re:The Tao of Programming by BrokenHalo · · Score: 1
      Hey, this site is fun! How come I never came across this before! :-)

      Someone mod this chappie up!

    2. Re:The Tao of Programming by AVee · · Score: 3, Insightful

      Thus spake the master programmer:
      "Though a program be but three lines long, someday it will have to be maintained."

      I guess most of you will know what happens to your room when you always move things around and add things, but never clean up...

      Now there's the reason code rots. Old code tens to be changed and have things added, but hardly ever gets a clean-up. That way the design is lost, the code gets bigger and bigger and easily becomes buggy. This makes changing code harder over time. Most if the time this goes on until there is no one left that understands how it works and it has become to hard to find out, compared to a complete rewrite.

      Joel states: "Half the time when I go into a function to fix a little bug, I figure out a cleaner way to rewrite the whole function, so over time it gets better and better."
      And he makes a good point there, maintaining code should be more than just changing and adding things, it should involve clean-ups to prevent rotting of your codebase. But cleaning up is way easier if your the only one using the code, and in a company there is always the pressure of deadlines and marketing.

      And of course it's just more fun to write somthing new...

    3. Re:The Tao of Programming by MidnightLog · · Score: 1

      Sh!t, thats good advice. You should create your own web page: AVeeOnSoftware. Personally, I think you would do a better job than Joel. Its not that he doesn't have any valuable knowledge; He just presents things in a judgemental, condescending way. Let's face it, its hard to listen to someone after they piss you off. Luckily there are lots of "software development gurus" out there, so I don't have to read Joel's stuff.

      --

      To understand what's right and wrong, the lawyers work in shifts ...

  10. Its teamwork by cholokoy · · Score: 2, Insightful

    Most software projects are made by teams and as in any team activity, its the weakest and strongest links that will determine the success of the team.

    Take any game like hockey or basketball, many teams have exceptional players but they don't win championships. Those that do play with teamwork on their minds that's why whey get to win.

    Blaming marketing or second-rate programmers is not the way to go it should be a team effort wo win because not many games are played solo like tennis or golf. Even those games require seconds that provide valuable support to the player.

    --
    Return the bells of Balangiga.
    1. Re:Its teamwork by gowen · · Score: 1
      Take any game like hockey or basketball, many teams have exceptional players but they don't win championships.
      I don't know about thats, the Bulls went into the toilet fast enough when Jordan left after a lengthy period of dominance (after he'd won their last finals for them practically on his own). Hasek and Jagr carried an otherwise mediocre Czech team to an Olympic gold (and the Dominator took the Sabres to the Stanley Cup finals single handed). The 2001 D'Backs rode Schilling and Johnson to a World Series... And thats just the last few years. I could go on...
      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    2. Re:Its teamwork by LooseChanj · · Score: 1

      > Blaming marketing or second-rate programmers is not
      > the way to go it should be a team effort wo win
      > because not many games are played solo like tennis
      > or golf.

      How do you play tennis solo?

      --
      Mix the failings of Usenet with the shortcomings of the World Wide Web and the result is slashdot.
  11. Bloatware does cost by reachinmark · · Score: 2, Insightful
    Joel: Well, most people with encyclopedias only look up 0.01% of the topics in the encyclopedia. But would you rather have the Encyclopedia Britannica or would you rather have a lightweight brochure containing the top 100 topics? (You might answer: on a camping trip, I'd rather have the lightweight brochure. Fine. Get the brochure for your camping trip. But at home, where all that 'bloatware' isn't actually costing you anything, you want the full edition.)

    "Bloatware isn't actually costing you anything"!? How about more time to load your application and a significantly higher probability of it crashing as the code becomes more bloated and less maintainable?

    There is a gigantic chasm of a difference between "bloatware" of information, and bloatware of software features.

    1. Re:Bloatware does cost by Ayende+Rahien · · Score: 3, Insightful

      Not really.
      On Windows & Linux (I believe, not certain) pages are being faulted to memory, so if you've a part of the executable that you don't touch, then it's simply not being brought to memory.
      If you've a 100MB exe, but you only use 1MB of code from it, then it will use only 1MB.

      As for the other reason, any big enough project is being cut to pieces, on Windows, it's usually COM objects, meaning that it's fairly easy to dissect the parts that gives you trouble.
      Beside, if you don't use something, it can't crash your program.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    2. Re:Bloatware does cost by erasmus_ · · Score: 2

      So you're making the assumption that extra features all affect your base functionality, which is of course erroneous. With good programming, extra features go into their own libraries and should have abscolutely nothing to do with a higher probability of your app crashing. Either you're not familiar with programming, or are just a bad coder who does not understand separating functionality through modularity.

      --
      Please subscribe to see the more insightful version of th
    3. Re:Bloatware does cost by hcdejong · · Score: 1

      Nice theory. In practice, when I upgrade an application, the new version almost always turns out to be slower than the old one: example. So much for modularity.

    4. Re:Bloatware does cost by erasmus_ · · Score: 2

      Perhaps you shouldn't install the new version then? If you're complaining that new features are useless to you, and slow you down, don't install it. I'd also like to point out that just because program X (in this case, Eudora) became slower, that does not mean that is true for all programs. Having put plenty of new features into plenty of new versions of programs myself, I know that it's quite possible to not affect the old functionality at all if that's what one wants.

      --
      Please subscribe to see the more insightful version of th
    5. Re:Bloatware does cost by hcdejong · · Score: 1

      If you're complaining that new features are useless to you, and slow you down, don't install it.

      No, I was saying that the new features do not justify a ~10x speed decrease. Now, this is just one example, and an extreme one at that (the 'new features' included radical changes like multithreading), but...

      I'd also like to point out that just because program X (in this case, Eudora) became slower, that does not mean that is true for all programs.

      Of course. But *in my experience*, very few programs get any faster with a new release. In fact, the Mac OS X updates (from 10.0.0 to 10.1.3) are the only counterexamples I can come up with right now.

      Just because Moore's Law has been more or less correct for the entire history of PCs up to now, doesn't mean it should apply to software as well. With all the improvement in hardware speed we've seen over the years, have things like starting a program (or even starting the computer itself) become any faster? No. Sure, we can now do things that weren't feasible ten years ago (DVD playback). But in the meantime, processes that should take no time at all by now are still no faster than back then.

    6. Re:Bloatware does cost by erasmus_ · · Score: 2

      Well, this is all a matter of opinion, but I respectfully disagree. My IE starts instantaneously, whereas older Netscape loaded and loaded some modules or other, and Office 2000 starts so fast I can't even see the logo window, in comparison to older Office suites. Now of course one can say this is because of certain things in the OS, or preloading, but I consider all those valid techniques for getting programs to start faster, which in my experience has happened in many cases with newer versions.

      Yes, Windows 2000 does not load as fast as Windows 3.1, but besides the fact that it loads many more functions, a lot of this just has to do with hardware drivers, which there is really no shortcut for. And unlike Win 3.1, newer OSs can be hypernated/put to standby, which allows instant boot from disk, eliminating boot time. Those are just a few examples off the top of my head.

      --
      Please subscribe to see the more insightful version of th
    7. Re:Bloatware does cost by hcdejong · · Score: 1

      My IE starts instantaneously, whereas older Netscape loaded and loaded some modules or other,

      Well, Microsoft is cheating here by loading most of IE at startup to use it as the file browser (you may say it's a valid technique, but this particular technique can be used only by Microsoft on Windows, so it does muddy the comparison).

      Is this (e.g. Office) on the same computer you used those older versions on? That makes the comparison even more difficult. New versions of applications often seem (to me) faster only because the new version is used on massively faster hardware than the older version.

    8. Re:Bloatware does cost by erasmus_ · · Score: 2

      I realize that faster hardware may cause faster load times, but my comment was in response to the assertion that even with faster hardware, apps seem slower.

      As for your comment that loading things at Startup is only available to Microsoft, I don't see how this is valid - any program can add items to registry or Startup group, and have them load at any point. Anyone can write a service that will be loaded by the OS at boot time, and available at logon, there are instructions on doing it freely available. Your statement is therefore inaccurate and potentially biased.

      --
      Please subscribe to see the more insightful version of th
  12. doesn't like "ground-up rewrites," but - by 47PHA60 · · Score: 5, Insightful

    Joel seems to admire himself for doing just that, as when he talks about why his own code doesn't decay (he keeps freshening it up, you see. In other words, rewriting it over time).

    This is easier to do when it's just his code, versus a large set that more than one person maintaining it over a decade (like the evaluated software that was foudn to 'decay').

    Also, Joel stated that the problems with Outlook were with "1%" of the code, but that is not the point. The slashdot comment was not commenting on the quality of Outlook's code, but on the flaws inherent in the design of the application (such as executing untrusted software and not following mime type information when passing data to the OS). I think that the post was talking about a redesign, which would mean a rewrite, and Joel dodged that one (or just didn't understand it). Fixing bugs in good features is different from tossing bad features.

    1. Re:doesn't like "ground-up rewrites," but - by GigsVT · · Score: 2, Insightful

      Also, Joel stated that the problems with Outlook were with "1%" of the code

      5000 parts per million (0.5%) of lead in your water is a lot.

      It only takes one bad line of code to crash everything.

      Who does this guy think he is kidding with this 1% figure?

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:doesn't like "ground-up rewrites," but - by WildBeast · · Score: 1


      Linus doesn't believe that designing software is that important.

      "I _am_ claiming that the people who think you "design" software are seriously simplifying the issue, and don't actually realize how they themselves work. " - Linus

    3. Re:doesn't like "ground-up rewrites," but - by Ayende+Rahien · · Score: 2

      Those two points that you noted could be fixed in about a week by someone who knows the product.

      As for a redesign, it's a totally different thing than re-writing.
      Re-design mean that you change the way that the product works, but you get to keep a lot of the old code, because you keep the code in a working order *all the time*.
      Re-writing means that you start from zero, so you don't have a working product until you are done, see NS for the results of such a thing.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    4. Re:doesn't like "ground-up rewrites," but - by erasmus_ · · Score: 3, Informative

      Right, because executing untrusted scripts is the core functionality of Outlook. And here I was thinking it was composing emails, dealing with contacts, and scheduling appointments. Joel is right, and you're not understanding his point.

      Outlook has a problem with attachments to email, which is probably actually less than 1% of the codebase of the product. Therefore he is right, and saying that rewriting everything in the program is the only way to fix it is wrong. Sure, let's redo the spellchecker, the datetime picker for the calendar, the user interface components - ONLY by rewriting all of those things will Outlook be secure!

      It only takes one bad line of code to crash everything.

      Yes, thanks. So should the solution be to rewrite that one line or the whole app? Hmmmmmm

      --
      Please subscribe to see the more insightful version of th
    5. Re:doesn't like "ground-up rewrites," but - by Anonymous Coward · · Score: 1, Insightful
      doesn't like "ground-up rewrites," but Joel seems to admire himself for doing just that, as when he talks about why his own code doesn't decay (he keeps freshening it up, you see. In other words, rewriting it over time).

      Refactoring small parts of your code over time isn't the same as a ground-up rewrite. Refactoring means you get the same functionality but with a better implementation. At no point do you lose functionality. A ground-up rewrite means you lose everything and try to piece it back together if you're trying to salvage or else completely rewrite it. I prefer not losing functionality to losing functionality. Eventually it is possible that perhaps you modify your entire code base. However instead of being a rewrite, it's really a revision or refinement. It's the difference between getting two buggy first editions (complete rewrite) and getting a buggy first edition which is refined over time into a smooth running second edition.


      This is easier to do when it's just his code, versus a large set that more than one person maintaining it over a decade (like the evaluated software that was foudn to 'decay').

      This may well be true in this case as it probably was written without knowledge of OOD. However, code base size is hardly of mention when your it is written in a reasonable object-oriented manner.

      Also, Joel stated that the problems with Outlook were with "1%" of the code, but that is not the point. The slashdot comment was not commenting on the quality of Outlook's code, but on the flaws inherent in the design of the application (such as executing untrusted software and not following mime type information when passing data to the OS). I think that the post was talking about a redesign, which would mean a rewrite, and Joel dodged that one (or just didn't understand it). Fixing bugs in good features is different from tossing bad features.

      So... why would you have to redesign the entire application? For the problem of executing untrusted software that could be as simple as an "if (trusted(software)) {execute(software);}" type of phrase. For mime type information, you could simply check with a mime-type storage mechanism and follow that. Both of these have issues (mime-type disagrees with .xxx extension - then what? Mime-types aren't perfect although my guess is you'd say to just follow them blindly) but neither of them demand a redesign of the entire application and certainly not a rewrite of it.

      I don't consider "refactoring" to be the answer to everything (in fact, I'm kind of leery of the XP guys) but I also don't understand why people are quick to try to do large scale rewrites. The motto I've found to work best in my programming experiences is "Do what needs to be done." Limit yourself to solving the problems at hand and you'll accomplish your goals in a focused, efficient manner. Often, creating a whole new project instead of solving the problems in the old one is the perfect way to lose your focus on your established goals. In the case of using different languages, I could be persuaded to agree or disagree with him. Certainly, though, he is looking at the right issues (money and time costs) rather than proposing something out of sheer disdain for using an old language or because of vague reasoning of future problems - "most people don't program in that language" doesn't mean anything so long as you can hire someone that does program in that language (and again, if things like time and money aren't more adversely affected than if you ported the code).

    6. Re:doesn't like "ground-up rewrites," but - by 47PHA60 · · Score: 1
      Those two points that you noted could be fixed in about a week by someone who knows the product.

      I was not talking about just those two points, just using examples. But since we're on the subject: they could be fixed in about a week, so the reason they're not is, what?

      When I refer to the design of an application or a ground-up rewrite, I don't mean rewrite all the linked functions. A company should consider functions such as encryption, smtp sessions, and spell checkers (or whatever), should be considered separate products, even though they are purely internal products. This way, if someone wants to rewrite his smtp connect functions and classes, he can, and once the changes are doc'd and released, new versions of apps can use the upgrade. What I refer to is rethinking all the assumptions and design decisions in a product. I have been involved in several projects called "re-writes" where not everything was written from scratch, but everything was re-examined to look for possible improvements and effects of changes. Very few "re-writes" fit Joel's definition.

      Even Joel says that there can be a cost-benefit analysis case where this makes sense. For example, an appplication like Outlook Express which started as a nice simple e-mail client, but was clumsily connected to the world of http, vbscript, none of which appear to be sufficiently understood by the architects of the app.

    7. Re:doesn't like "ground-up rewrites," but - by ClosedSource · · Score: 2, Insightful

      Perhaps he has this point of view because the fundamental design of Linux was done by Bell Labs.

    8. Re:doesn't like "ground-up rewrites," but - by 47PHA60 · · Score: 1
      It only takes one bad line of code to crash everything.

      I think you may be quoting a comment I did not write, since that sentence is not in my post.

      It is not my assertion that we should re-write the whole app based on bugs.

      What I was trying to address is Joel's equation of "redesign to address faulty assumptions" = "rewrite or perfectly good code," which is part of the confusion his first article caused.

      Also, Joel seems to agree that code (even his) left untouched will be harder to maintain over time, and that at some point the benefits of a rewrite could outweight the costs of doing so. However, he also talks about re-examining old functions and rewriting them. The confusion I have about his statements is that he seems to be saying in this interview "re-write your code over time or all at once, but you will re-write your code if you want to keep it working."

      I agree with him that if Ye Olde Fortran code works and your sysadmin is willing to install the Fortran libs on the systems, leave it alone. And I agree with his assertion that if only 1% of your code is broken, just fix that 1%.

      When I read the "leaked" security memo from Bill Gates, however, it seems that BG realizes that software can have security problems caused by bugs in good features and bad features that simply should not be part of the design. Now, what do you do if that feature is at the heart of your application suite, and is the thing which allows them to share files? Based on that vague question, I can't answer, but I can see where it could be possible to conclude one of two things:

      "This info sharing via SuperInfoMarkupLanguage was a fundamentally bad idea, because it was never designed to be a robust database. Let's come up with something else and completely rewrite the datastore for our next release."

      or

      "Oh, the problem is that our SuperInfoMarkupLanguage implementation is buggy, even though there is nothing wrong with the standard. Let's examine and fix code."

      If either of those means rewriting a lot of code, Joel could accept that. What Joel seems to object to is the assumption that "a rewrite automatically fixes everything because something done twice is something done better." Most of us agree with that idea, I think.

    9. Re:doesn't like "ground-up rewrites," but - by erasmus_ · · Score: 2

      Sorry about the confusion with the quote. I wanted to save time and respond to your post and another post supporting you in the same thread (have you read other responses to your post?). If I understand the rest of your point, once again, as someone else has said in a better fashion than I, I think you might be confusing code maintenance with updating. If I understand him correctly, he was saying that when he goes in to fix bugs, he uses this as an opportunity to clean up the code and make it better, throughout the initial process. That way, later on, the code is understandable, 1 year or 4 years from that point.

      Therefore his contention is that code does not erode if it is documented and well done the first time. Now this might be idealistic, but I think I agree with this overall assumption - good code should be good now and later, and should not necessitate a rewrite in most cases that might be advocated by someone who won't take the trouble to figure out its function.

      --
      Please subscribe to see the more insightful version of th
    10. Re:doesn't like "ground-up rewrites," but - by buggered · · Score: 1

      This is easier to do when it's just his code, versus a large set that more than one person maintaining it over a decade (like the evaluated software that was foudn to 'decay').

      I agree. I have spent most of the last 15 years doing software maintenance: fixing bugs, adding and modifing features. And I can say without a doubt, with more than one person working on it, software rusts. On projects where I was the only one working on it (toward the end of the life cycle for example), then I could clean things up and the software does improve over time. But on projects with 40 or 50 people constantly adding features and fixing bugs, even if it started out well designed, it won't stay that way. With that many people you are going to have a mix of levels of experience, different points of view on what is good and bad, and completely different styles. And from what I've seen this causes software to rust.

    11. Re:doesn't like "ground-up rewrites," but - by Ayende+Rahien · · Score: 2

      They were fixed.
      They already disabled the auto-exec of files, which is something that helps, but we see users saving and then executing already.
      Don't know about the mime problem, but I think they fixed it too.

      The problem is that it's not so much as a technical issue as a human issue.

      In general, what *are* your problems with outlook? You list the viruses, which have been fixed, to the best of the ability that you can without rendering the client totally useless.

      About very few re-writes... please see Netscape case.
      And there isn't a *need* to re-write outlook if one dialog box is all what you are concerned about.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    12. Re:doesn't like "ground-up rewrites," but - by King+of+the+World · · Score: 0
      ...only if you have a superficial understanding of Linux, or any operating system for that matter. We may as well call AtheOS an Amiga ripoff, or BeOS a MacOS ripoff. Just going on 'what unix is' won't get you far, and it's

      It's not that Linus doesn't believe in design. Linux itself has roadmaps. He doesn't be in over-design.

    13. Re:doesn't like "ground-up rewrites," but - by sheldon · · Score: 3, Interesting

      Oh christ. Can't you people bother to educate yourself and realize that Outlook XP doesn't approach things this way.

      They've already fixed the design issues by refactoring, it's time to get past that and start thinking about new things to whine about.

    14. Re:doesn't like "ground-up rewrites," but - by ClosedSource · · Score: 2, Insightful

      Linus accomplished something significant that most programmers will never even attempt, but his task was greatly eased by having a known target to shoot for. All programmers owe a debt for the prior work they're building on, but the debt is greater in some cases than in others.

    15. Re:doesn't like "ground-up rewrites," but - by King+of+the+World · · Score: 0

      Pliant? GNU? Linux is not unix. But yeah - that pipes thing.

    16. Re:doesn't like "ground-up rewrites," but - by ClosedSource · · Score: 1

      "Linux is not unix"

      Well, they aren't exactly the same thing, but clearly Linux could not exist without Unix. If one wanted to learn the basics of how to operate Linux, a book on Unix would tell you most of what you needed to know.

    17. Re:doesn't like "ground-up rewrites," but - by King+of+the+World · · Score: 0

      Aye - dat be true.

  13. Joel by TurboRoot · · Score: 2

    I know this may come as a shocker, but Joel may not necessary be right all the time. But I have followed some of his work for a few years, and he defiently is qualified to say the things he says. So don't blow him off.

    1. Re:Joel by Anonymous Coward · · Score: 0

      Ummm bullshit... he is a complete moron...

      you want proof? Show me one bit of source he wrote... you cant...

      why? because he is afraid of peer review.

      Anyone who is a supposed "programmer" will have something in the public domain or Open source.. he dont because he is afraid that if it got out we all woud realize he is nothing but a no-talen hack with a big mouth...

      Pretty much sums up every microsoft programmer..

    2. Re:Joel by Anonymous Coward · · Score: 0

      Cool it. Joel may *want* someone to "blow him off."

    3. Re:Joel by frankrachel · · Score: 1

      I've been programming professionally for 14 years. I don't have any code out in the public domain or out there as Open Source. So not I'm not a "programmer"..?

      Please.. No wonder you posted Anonymously.

    4. Re:Joel by ethereal · · Score: 1

      Well, you can have peer review without having public peer review, you know. Although if Microsoft does that, it doesn't seem to help them very much.

      --

      Your right to not believe: Americans United for Separation of Church and

    5. Re:Joel by Anonymous Coward · · Score: 0

      he dont

      Wow. You must be some sort of Einstein!

      Jerkoff

    6. Re:Joel by Anonymous Coward · · Score: 0

      Well, he certainly isn't right about rewriting code, at least not the all-or-nothing approach he takes. I'd hate to work for someone who is so black-and-white!

      Programmers rewrite software all the time, but almost never from the ground up. They might call it a rewrite, but no one throws away all those functions and stuff they wrote before, they just rewrite the framework and revalidate the functionality and error checking of all the modules and function calls.

      For example, we plan on rewriting Escapade, our (free) flagship product (Escapade is a server-side scripting language/engine this is similar to HTML) next year. Do we plan on throwing away all that code that was written before? Of course not! But we plan on rewriting the framework that calls all those modules and functions, taking out the functions that we no longer use, taking out obsolete options and keywords, and in general streamlining the code so that it is easier to maintain.

      Even when we do a prototype, we certainly don't throw away all that code - we reuse the functions if we can, modify them to be more generic if we can't, and add them to the ever-growing function library that we have. Nothing is wasted.

      Joel's comment about "my software doesn't rot" sounds suspiciously like most people whose ego (and mouth) write checks that their code can't cash who also claim that their excrement doesn't smell bad. Not that Joel has a big ego - I like Joel's writings, for the most part, but this sort of "I'm SuperProgrammer!" ego-driven nonsense certainly needs to be examined closely and never taken at face value.

  14. Anti /. by Anonymous Coward · · Score: 0
    Article seemed a bit too anti-/. for me. Lots of subtle digs in there. For example


    We have discovered the screams and yells of people whose favorite little fillip is now gone from their favorite product or service can make a mighty clamor that belies their 1% status. But that's real world thinking.


    If they feel /. has nothing useful to say then ignore the commentary their article generated (afterall we're _ONLY_ their readers, not very "customer focused" for a bunch of marketting droids if you ask me), if they do think the posts people made in response to their article are worth while the address the issues without the cheap-shots.
    1. Re:Anti /. by King+of+the+World · · Score: 0

      Slashdot is an easy target. All slashdot readers are young stupid idealistic zealots (who just talk, and aren't programmers). Welcome to the backlash.

  15. Slashdot and the art of Summarization by tswinzig · · Score: 2

    In short: He defends his position and makes some interesting remarks on Linux and the desktop.

    WHAT IS HIS POSITION?

    I realize links are provided that can be scrutinized to determine this, but there is a reason a space for 'story summary' is provided...

    --

    "And like that ... he's gone."
    1. Re:Slashdot and the art of Summarization by GigsVT · · Score: 1

      His position is "on Linus, on the desktop". Kinky.

      Oh that's "Linux". My bad.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:Slashdot and the art of Summarization by erasmus_ · · Score: 2

      His position is that he likes his Linux on his servers, but sees absolutely no reason to put money into porting his product to this platform, or to Mac, because he says it does not make business sense. The site was not Slashdotted, so I'm not sure why you had time to ask, but not to peruse the article yourself. But glad to help.

      --
      Please subscribe to see the more insightful version of th
  16. I never contradict myself ... well sometimes I do by Zero__Kelvin · · Score: 2, Flamebait


    "Half the time when I go into a function to fix a little bug, I figure out a cleaner way to rewrite the whole function, so over time it gets better and better. "

    So it's not that his code rots with time ... it started out that way 8^}

    Sounds like he could save quite a bit of time and maintanence nightmare if he just invested the effort to write it well the first time. It may sound negative, but this guy is a constant wealth of contradictions. He doesn't advocate re-writes of the product, but 'half the time' re-writes functions? Doesn't he know that the function *is* a product?

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  17. He's a wimp. by mjh · · Score: 0, Flamebait

    I mean, really. It's not like slashdot prevents him from responding to these comments directly! But, no instead, he responds in a nice controlled environment of a follup interview! C'mon, Joel. Don't trust your point of view enough to defend it in person?

    --
    Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
  18. On Costs by CaptainZapp · · Score: 3, Insightful
    Now let's look at Outlook. There are hundreds of developer years tied up in that code base. 99% of the code is fine. 1% of the code isn't. Throwing out the whole code base and beginning from scratch is extremely unlikely to be cost-effective, because you have to reproduce most of those hundreds of developer years from scratch, and what guarantee do you have that the new code won't have just as many bugs

    True, scrapping and re-creating Outlook is certainly not cost-effective for the Microsoft.

    Unfortunately the current Outlook mess is not very cost effective for their customers, just hit by the worm-du-jour.

    So I guess it just depends from whose perspective you define "cost-effectiveness".

    --
    ich bin der musikant

    mit taschenrechner in der hand

    kraftwerk

    1. Re:On Costs by Anonymous Coward · · Score: 0

      The problem is that MS doesn't know which 1% is causing the problem. If they did, it they would have fixed the thing a long time ago.

      Poor design, poor execution.

    2. Re:On Costs by tswinzig · · Score: 2

      True, scrapping and re-creating Outlook is certainly not cost-effective for the Microsoft.

      Unfortunately the current Outlook mess is not very cost effective for their customers, just hit by the worm-du-jour.

      So I guess it just depends from whose perspective you define "cost-effectiveness".


      This is a lame argument, for two reasons.

      (1) Microsoft released a patch that ultimately fixes 99.9% virus and worm problems in Outlook, by not allow Outlook to have access to any attachments that are executable. It's been available for well over a year now. The same technology is built in to Office XP.

      (2) Now that you know the above, you can guess what problem number two is with your argument -- it doesn't matter if Microsoft 'fixes' the problem, either by releasing a patch as they've done, or rewriting Outlook from the ground up. It's still going to take a long time for most people to stop using the versions with huge, gaping security holes.

      --

      "And like that ... he's gone."
  19. Linux causes marriage break-ups? by dipfan · · Score: 4, Funny

    Once every open-sourcer has seen their marriage break up by installing Linux on their non-technical spouse's computer, they'll finally understand that, no, most people don't prefer command lines.

    Non-technical Spouse: "No, honey, the reason I had an affair with the baby-sitter was because you installed Slackware."

    1. Re:Linux causes marriage break-ups? by Lumpy · · Score: 1

      This is another example of how he has no clue...

      marriage break up because of linux? did steve ballmer write that for him? my god that comment can only be made by a person that has no clue what he is talking about.

      --
      Do not look at laser with remaining good eye.
    2. Re:Linux causes marriage break-ups? by HopeOS · · Score: 1

      Two comments on this.

      My wife refers to my linux boxes as "the other women" in my life (presumably based on the time I spend with them.)

      And secondly, my wife claims she actually prefers the command prompt (in combination with the desktop) because "it's more consistent." She plays her AVI movies by popping up a console, cd'ing to her movie directory and typing aviplay and the file name (with tab completion). I pointed out that she can open it up in Nautilus just as easily, but no thanks, she likes the CLI.

      I LOVE THIS WOMAN!!!

    3. Re:Linux causes marriage break-ups? by Anonymous Coward · · Score: 1, Funny

      Yeah, my wife doesn't have a problem using Suse for email and the net, although I did hear her proudly tell someone "Oh, we don't use a computer, we use Linux." Which was kinda cool.

    4. Re:Linux causes marriage break-ups? by erasmus_ · · Score: 1

      Just a wild guess, but maybe he was joking? No, you're right, it's much more sensible to assume that he has no clue about what he's discussing, while you are smarter. I'm looking forward to an interview with you being featured on Slashdot.

      --
      Please subscribe to see the more insightful version of th
    5. Re:Linux causes marriage break-ups? by Dokta_C · · Score: 1

      I just bought her a Mac.

    6. Re:Linux causes marriage break-ups? by Russ+Nelson · · Score: 2

      Gee, my wife *insisted* that I install Linux on her computer. She was tired of Windoze crashing all the time.
      -russ

      --
      Don't piss off The Angry Economist
    7. Re:Linux causes marriage break-ups? by Anonymous Coward · · Score: 0

      you wont see me interviewed on slashdot or anyplace else... why? because I'm not an ego-maniac and like to see myself talk or talked about like this guy. (Sheesh ,look at the dude's web-page.. .the shrine to worshipping Joel and his word society!)

      joel is a joke, has been for years. only those that are easily distracted find him interesting in the slightest.

    8. Re:Linux causes marriage break-ups? by Anonymous Coward · · Score: 0

      Russ, you're lying. Stop lying. On the off-chance that you're actually married (and to someone as insufferable as the Slashbots), I thank you for getting her off the market. Please do not breed.

  20. Narrow viewpoint by costas · · Score: 5, Interesting

    Joel Spolsky makes good points and his articles are usually excellent reading, regardless if you agree with him or not --I usually do. However, I think he over-generalizes his conclusions based on his own experience --selling consumer-oriented, "shrink-wrap" software. He leaves the entire enterprise software world out of his viewpoint and some of his conclusions don't make sense in that sphere.

    For example, I tend to agree that "software doesn't rust". But that holds if your customer is Joe Q Public; it doesn't (usually) hold for enterprises. E.g. his Net Present Value calculation in the article doesn't take into account opportunity cost, i.e. the competitive advantage a company would gain if it upgraded their old F77 program into a faster one, with more mindshare (easier to lure/train IT staff) and more features that would increase productivity and lower costs.

    Again, I do usually agree with Joel and read his essays religiously, but I wish he opened his worldview to the rest of the software industry.

    1. Re:Narrow viewpoint by ajm · · Score: 3, Interesting

      Very true and well put. The world of shrink wrap is different from the world of internal only enterprise packages, which is also different from the world of expensive packages sold to a, relatively, small number of customers. It's not always true that what works for shrink wrap works inside an enterprise.

    2. Re:Narrow viewpoint by sheldon · · Score: 2

      I don't think Joel would disagree with you, because you have presented a clear economic reason for why not rewriting is bad(i.e. competitive advantage). The difficulty is quantifying that into real numbers and will it solve your problem.

      Joel has certainly addressed the issue of competitive advantage, and I believe he used the example of Netscape. With Netscape 6, they choose to rewrite from the ground up. In the mean time they left the marketplace for 4 years while the competitors came out with continual improvements to their own products. Can you afford to leave the market place for 2-3 years while you rewrite your product from the ground up? Or is it better to spend 6-12 months refactoring?

      It all depends.

      As far as the mindshare to lure/train IT staff, yes there is an economic cost to this, but it's hard to quantify. I think Kaplan/Norton try to approach this in their Balanced Scorecard book from Harvard Press. The point being, studying those arguments, if they are solid you ought to be able to quantify this out into a ROI model to prove the value of a rewrite.

    3. Re:Narrow viewpoint by Anonymous Coward · · Score: 1, Interesting

      While I agree that there's sometimes a large "opportunity cost" with "enterprise" software, if anything vertical market or internal software proves the guy's point that Software Doesn't Rust.

      Lots of shinkwrap companies have found themselves with worthless codebases due to Industry changes (DOS to Windows, or Novell to TCP/IP).

      But yet most businesses (especially the big-E Enterprises) rely on loads of legacy stuff because it runs their business. Punch Cards, FORTRAN, DOS, BTrieve, OS/2 -- you name it, they use it. Because it's non-rusty and it works.

      It's only rarely that there's some enormous strategic benefit to replacing these systems, and the Old Is Icky faction usually only wins when all the operational people who understand the system have been laid off, retired, died, etc.

  21. bloatware by tswinzig · · Score: 4, Interesting

    Or, here's an argument that even the youngest slashdotters will understand. The WWW is bloatware. Finding things is impossible because there's so much stuff out there. Think how much hard drive space is wasted on all kinds of web pages that only .00000000001% of the world ever reads. Since the vast majority of people only go to Yahoo, Ebay, and MSN, wouldn't the WWW be better if it only had Yahoo, Ebay, and MSN? It would be much more "optimized."

    One difference is I don't run the entire WWW on my computer.

    --

    "And like that ... he's gone."
    1. Re:bloatware by bleuchat · · Score: 1

      One difference is I don't run the entire WWW on my computer.

      It goes deeper than that, though. He isn't even doing a fair comparison. He's taking software features and comparing them to information storage. Of course we all want as much information as we can get. But software isn't a book or the Internet. The Internet is built by software to store stuff.

      I feel it would be akin to saying that little used features of cars, perhaps the tape-deck, should be removed and you reply by saying that we should get rid of the truck or make it tiny. The two aren't related in any way.

    2. Re:bloatware by knabar · · Score: 1
      Since the vast majority of people only go to Yahoo, Ebay, and MSN, wouldn't the WWW be better if it only had Yahoo, Ebay, and MSN?

      This is a bad example, because all the other web sites on the WWW do not make it harder to "find" Yahoo, Ebay, and MSN. They may make it harder to find some Geocities web site, but then that site would probably be considered "bloat" anyway...

      If you are a user who only goes to pages that are pre-bookmarked in your browser, you don't care about everything else.

      Of course, this would be different if the whole WWW was pre-bookmarked :-)

    3. Re:bloatware by Anonymous Coward · · Score: 0

      Right. Besides the WWW is data, not a program. Programs display and access the WWW, but the WWW itself is just data; therefore it is dumb to compare the WWW to a program (possibly shows what 20 years of being a bad programmer can do).

      The idea behind WWW is to make data available. It is a dumb analogy to say that removing data would optimize data. The number of people reading a particular data set does NOT matter. What matters is that data is available.

      I'll bet that even the youngest /.er's hold him in contempt.

    4. Re:bloatware by Anonymous Coward · · Score: 0

      > Of course, this would be different if the whole WWW was pre-bookmarked :-)

      My copy (generated via a licenced the Google database) is;-)

      I'm just wondering why there are so many goat links located just below the Slashdot site....

  22. Re:I never contradict myself ... well sometimes I by Kevinv · · Score: 1
    and in the very next question he says code doesn't need to be rewritten from the ground up! huh?


    so in the first 2 questions we have:
    a) My code doesn't decay because I rewrite it (duh, code decay happens to un-maintaned code. same as unmaintained steel rusts)


    b) even though I rewrite my functions from the ground up, software doesn't need to be rewritten from the ground up

    then in the question on bloatware he moves from talking about code to talking about content -- different subjects! adding 10,000 articles to an encylopedia makes it heavier -- it doesn't make the encyclopedia go up in flames because they were written poorly. or give you the flu because of poor security.

  23. What API changes? by Smallest · · Score: 1
    ...those updates include additions/changes to the API.

    can you name any of those API changes?

    -c

    --
    I have discovered a truly remarkable proof which this margin is too small to contain.
    1. Re:What API changes? by Chang · · Score: 3, Informative

      DirectX
      IE5
      Windows Media Player
      Windows Installer
      Active Directory

      All of these modify, or extend the Win32 API under Win95 when installed.

    2. Re:What API changes? by uebernewby · · Score: 2

      Off the top of my head, USB support comes to mind, as well as the networking stack (I may be wrong about that one, though). Since I'm not a Windows developer, I can't name specific API's however, so you've got me there.

      I'm basing my statement solely on the fact that there's a ton of updates for Windows since 95. Often these updates affect core OS functions. Also, every time you install a new version of a Microsoft app, such as Office or Internet Explorer, you're in reality updating half of your operating system (Win98 w/ windowsupdates applied dilligently, Office2k and Explorer 5.5 is basically the same thing as WinME, for example). Then there's DirectX, that isn't a part of vanilla Win95. Without a recent version of it, your games won't run (mostly). Finally, though I admit I'm threading on developer territory here where maybe I shouldn't (flame away), I know MFCxx.DLL has seen a few updates, almost every Windows app depends on this DLL and recent ones (those that were made with VisualStudio 6, say) depend on the latest version of it being present. There's probably quite a few people here who can shed light on exactly how fundamental the latest changes in this API library are. As a Windows user, I can only attest to the fact that nearly every app you install will make sure 4.2 is present. Since this DLL provides a lot of the core functions of Windows, this alone means that the WINE developers can't just aim for Win95 compatibility and leave it at that.

      My point is that there is no such thing as 'vanilla Windows 95' in use today (except on a, I imagine, very limited number of glorified typewriters that run nothing more recent than Office 95 or whatever it's called). I *seriously* doubt that what this guy says is true, about developers making sure their apps will run on 'vanilla Windows 95'. I, for one, can't think of a single app that does.

      --

      News and bla for computer musicians: http://lomechanik.net/
    3. Re:What API changes? by that_guy · · Score: 1

      And a whole splew of COM Components, and COM+. Thats where the windows api is going these days.

      --

      Driving backwards on the highway of life
    4. Re:What API changes? by TheAwfulTruth · · Score: 2

      Color Management

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
    5. Re:What API changes? by Ayende+Rahien · · Score: 2

      Wrong, by large the most part of the used API in Windows has been stable not since Win95, but since Windows NT 3.1.
      All those updates that you mention, yes, they are useful, and yes, they are being used, and no, they *aren't* that needeful, because everybody and their wife test on freshly installed Win95.

      As for MFCxx.dll, that is an abstraction library that builds *on* Win32 API.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    6. Re:What API changes? by DavidJA · · Score: 2

      All those updates that you mention, yes, they are useful, and yes, they are being used, and no, they *aren't* that needeful, because everybody and their wife test on freshly installed Win95.

      Err, what crack have you been smoking?

      Take ADO for arguments sake. ADO (ActiveX data objects) is a com based library for accessing all types of databases. Back in Win 95, ADO did not even exist, it was DAO. (think access centric)

      100% of applications released in the last 2-3 years will rely on ADO 2.x

      ADO is part of the MDAC package (Microsoft data access components), so unless you can install MDAC on said WINE machine, there is no way that an app that is linked to ADO is going to run!

    7. Re:What API changes? by King+of+the+World · · Score: 0
      Also when you factor in (snigger) Office and the other popular Microsoft software you have much more than the published Win32 API involved.

      Again, it's Joel talking strongly about what he doesn't know. A few "probably"'s would go a long way.

    8. Re:What API changes? by Ayende+Rahien · · Score: 2

      You can install MDAC on Win95, therefor, you don't need to copy MDAC functionality, only 95 functionality, and then just install MDAC!

      That is the point I'm trying to make, once you got the common base, you can start expending, but there are glaring holes in WINE that has been there for a long time.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
  24. marketdroids by Anonymous Coward · · Score: 0

    Often the marketing and sales guys really are stupid, and any engineer with half a clue could do a better job. The problem is that people with half a clue don't want to do a job that's a brain dead as that of marketing and sales. So most companies are stuck with morons doing that job.

    People rise to their level of incometence.

  25. They Stole A Slashdot Interview! by GeekLife.com · · Score: 4, Interesting

    Hmm...There's nothing preventing any company out there using slashdot comments as interview material for the entire content of their site, right?

    It feels weird unknowingly providing content for a for-profit site I don't (often) visit or care about, but I suppose my comments are public-domain once I've posted them here?

    I know it doesn't fit in with the copyleft thing, but shouldn't they at least have to ask before using slashdot content for their own means?

    1. Re:They Stole A Slashdot Interview! by GeekLife.com · · Score: 1

      Then again, is it all even now that slashdot has taken the content from their site ("value-added" content from this site) and used it for its own for-profit content?

      My head is spinning. I hope they don't use the responses to this story for a new story over there or my head might explode.

    2. Re:They Stole A Slashdot Interview! by foobar104 · · Score: 2

      Part of the principle of fair use is that it's okay to quote from a published source, even at length, if your purpose in quoting is to comment directly on the material quoted.

      So no, they shouldn't have to ask before using Slashdot content for their own means... if, as in this case, their purpose is to comment on what they quote.

    3. Re:They Stole A Slashdot Interview! by Geek+In+Training · · Score: 5, Insightful

      ...shouldn't they at least have to ask before using slashdot content for their own means?

      Legally, they don't have to do any such thing. What would be nice, however, is an oft-forgotten concept known as Professional Courtesy.

      It went out of style sometime between when the entire corporate work-force was made up of white male WWII verterans who wore white shirts and black ties to work (at leats on TV); and the high-ranking executives of companies like LTV Steel in Cleveland taking 17 million dollars in bonuses three weeks before the company filed for bankruptcy, putting three thousand blue-collar steel guys in line for unemployment benefits with no pension of health coverage.

      Sorry to be offtopic... yes, it would have been nice for them to ask, but now that professional courtesy is dead, I'd be more surprised if someone DID ask permisson than if they just did whatever the hell they wanted for an almight buck to make sure the CEO gets to buy the "big yacht" this summer.

      (And FYI, "Flamebait" does not mean "I disagree with this person." Point down your modpoints for a minute and take the time to write a thoughtful argument. Also, I work for a corporation, and I am critical of corporations. It's not hypocracy, it's called "taking a stand for change from within.")

      --
      SlashSigTheorem: Humorous, Political, Critical, Constructive- If you have a .sig, someone WILL complai
    4. Re:They Stole A Slashdot Interview! by ethereal · · Score: 1

      I predict the whole controversy is soon to be a new book from Jon Katz, and maybe a major motion picture.

      I'd like to have Jon Sherman play Jon Katz, please.

      --

      Your right to not believe: Americans United for Separation of Church and

    5. Re:They Stole A Slashdot Interview! by Sloppy · · Score: 2

      This gets bizarre when you think about it.

      From their point of view, Slashdot is a page with a lot of comments, so quoting a tiny piece of that large page, is certainly fair use.

      But "Comments are owned by the poster." From your point of view, they didn't take a tiny fraction of a page -- they took most of a whole comment. Not fair use?

      Eww.. what a mess!

      IMHO (IANAL, etc) they're right. When you send your stuff to a public viewable website, post it to usenet, etc. you know what you're getting into. And if you don't want a wide-as-possible audience for your words, why are you posting them in a public forum?

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  26. Well... by epiphani · · Score: 2, Informative
    After reading the entire article, I have a few comments directed at Mr Joel Spolsky, since I am sure he will be reading.

    You have what I would call a superiority complex. I would say that is completely normal for a technically inclined or computer competant person. One thing you dont have, which is quite evident in your last statement, is a simple respect for your peers.

    Now, I may not directly consider you a peer, for the simple fact that we differ on a number of simple comparitive issues. You are stuck in the past. Since you will most definitely ask for some type of proof of this, allow me to explain.

    In your responce to the question regarding the recode of a fortran program, you responded:

    First of all, yes, you should hold onto a program in FORTRAN "just because it works." Don't even talk to me about spending money replacing something that works.

    Do you hold on to an old 286, even though it could easily crash purely because of its old-hardware, just because it works? Do you hold on to a 1982 Toyota Corolla, just because it works? No. For the safety of you data, and for the safty of your family, you go and get new stuff.

    Of course, your responce will be well, programs dont degrade with time. I say they do. Allow me to elaborate once again.

    I've worked on a number of programming projects. One of which works perfectly, but we are still planning a complete rewrite of. For a matter of context, I'll involve the name. The Bahamut IRCd happens to be presently supporting over 130,000 simultanious connections between about 30 servers. It will probably be quite good until well over 200,000 connections. But we're rewriting it anyway. Because we've learned one thing the hard way. Dont wait for problems to come to you. Just because your software works fine with 10,000 users, doesnt mean its going to scale to 11,000 users.

    Programming in *any* arena is not cut and dry. Programs are *never* "perfect", as you as a software developer should know. If you've worked on any project of any reasonable size, then you realize that there is a point where picking through old code to improve software isnt worth your time, and you can simply rewrite the whole damn thing to do what you want and accually have spent less time doing it.

    --
    .
    1. Re:Well... by inerte · · Score: 1

      easily crash purely because of its old-hardware, just because it works

      If it crashes, it doesn't work.

    2. Re:Well... by ergo98 · · Score: 4, Insightful

      You're preaching just as much as Joel ever does, so I don't really understand why you're accusing him of a superiority complex. If you are bothered that Joel has a platform, realize that it is the result of many brilliantly insightful articles that he has written (that's my opinion, anyways. Especially concering UI matters where it is eye opening and humbling).

      However, I think everyone here is taking what Joel is saying GROSSLY out of proportion : There are two poles in software rewriting -> Those who approach every issue with a "we have to rewrite this piece of crap" (these programmers are common and have cost companies billions in cost overruns. "Hey Jim I noticed on that report that it's cutting off the interest rate at 5 characters : Do you think you could increase that to 6?". Then, six days later Jim replies "Oh man, I looked at that code and it's horrible! I'm going to develop a mega new reporting engine in C# that'll use an XML subsystem". Three years later the six character interest rate still isn't there. Again this is common because many programmers do not have checks and balances, and it's much more heroic and personal to rewrite the whole thing and lay a grand claim to fame than to just do a quick fix isn't it? On the other end of the pole are those who treat all code as sacrosanct : From what I've read Joel is not one of these people. Exactly as he stated (which many people jumped on as hypocrisy where there is none): He is an advocate of refactoring, which as a philosophy is entirely unlike rewriting.

      Let me put it another way: Every now and then I watch one of those HGTV shows where they remodel a home, and sometime I am stunned because in the end they've replaced virtually the entire house, so naturally my question is "Well why didn't they just bulldoze the original house and start from scratch?", but obviously there were benefits to going on the existing infrastructure. This fundamental holds significantly more true in software engineering (hehe, I use that term just to bother the PEs out there) because as a discipline it is far more "artistic" and far less defined than home construction. Why, then, are so many people so willing to rebuild from scratch with no proof of improvement? I can't make comments on your specific project, but in the grand tradition of program rewrites, you'll complete it and find that now you can handle 210,000 connections, so you'll just have to rewrite it again...

    3. Re:Well... by Anonymous Coward · · Score: 0

      >You have what I would call a superiority complex
      And what do YOU have, doctor, thinking that you are able to psychologically diagnose a person from a mere interview?

      Joel states his opinions from a business point of view. Which makes it exactly right: don't rewrite stuff that works. Your 1982 Toyota Corolla rusts - software does not. It is insecure because it's been worn down. You don't wear down software but you CAN maintain it to match newer needs. I too have been working on large scale projects and I have come to a conclusion much like Joels. I am sure that even your project Bahamut (must admit that I haven't followed the link and I have no idea what the project is about.. Touché) could be upgraded to support over 200,000 connections and I think that it would be faster than rewriting the whole thing.
      Of course, I couldn't possibly know but I do know that I as a programmer tend to feel an urge to do everything from scratch because of an unhappiness with the way things are. As a business man, though, I have come to realize that that is rarely the best solution.

    4. Re:Well... by mardoen · · Score: 1
      sheesh. slashdotters, stop nitpicking. now. most comments are pretty boring an non-productive up to now.

      Do you hold on to an old 286, even though it could easily crash purely because of its old-hardware, just because it works?

      erm.. in my definition, "it works" means, amongst other things, "it does not crash".

      Do you hold on to a 1982 Toyota Corolla, just because it works? No. For the safety of you data, and for the safty of your family, you go and get new stuff.

      you _can't_ compare creating software with buying a car. this is ridiculous. you _can_ compare _buying_ software with buying a car, though.

      on your rationale on how to know if you should rewrite your software -- i think joel says just the same, from a different point of view: one bases the decision whether to do a rewrite or not on a logical set of arguments, trying to foresee if it acually will pay off. he does it based on cost, you do it based on a list of intuitive rules gained by "experience". the difference between these two strategies: you risk putting too much work into the chase for a vision of a "good system" than you really needed to, and he risks getting his numbers wrong (happens just as easy).

      so it's maybe a rather philosophical question. i don't believe that most of these kind of questions have a "right" or "wrong" answer. and thats why i think that most of the /.'ers postings re: this article are quite uninteresting.

    5. Re:Well... by Chris+Z.+Wintrowski · · Score: 1

      ..One thing you dont have, which is quite evident in your last statement, is a simple respect for your peers.

      I don't see how you can conclude Mr. Spolsky has no respect for his peers from a statement that is otherwise completely correct, as we shall see as I continue to comment on your post.

      Do you hold on to an old 286, even though it could easily crash purely because of its old-hardware, just because it works? Do you hold on to a 1982 Toyota Corolla, just because it works? No.

      I believe this is contrary to the point Mr. Spolsky made in the interview. Software is a different entity to hardware, it represents a method of doing something whereas hardware is just the means of executing this method. Thus, the hardware can be replaced relatively easily (and cheaply), whereas the software cannot.

      As Mr. Spolsky made abundantly clear in the interview, if your company still uses some FORTRAN codes to successfully accomplish a task, then it makes sense to hold on to said codes rather than throwing them out purely for emotional reasons.

      On the other hand, if it's costing too much to maintain the codes, and makes economic sense to rewrite them into C, then you have a very good reason to do it. If it's cheaper to hold on to the FORTRAN, then why spend money on fixing something that is not broken?

      [...]
      It will probably be quite good until well over 200,000 connections. But we're rewriting it anyway.


      You know, that's like someone saying, "Yes, my house holds 4 people, and it would probably handle about 8 people. But we're knocking it down and rebuilding it anyway." It doesn't make any sense, and is an invalid argument.

      One of the points Mr. Spolsky is trying to make in the interview, and through the many articles on his site, is that it is almost *always* better to improve what you already have rather than spend the time and money on building it anew.

      With your Bahamut IRCd project, it makes more sense to modify your existing code-base, rather than blowing it away and starting again just because you can't be bothered finding out what's wrong with the code and fixing it.

      In my own personal opinion, it is through programmer arrogance, inexperience, and inability that the decision to scrap existing code and start over becomes a good idea. Such programmers find it too difficult to modify existing code and weed out the subtle bugs.

      [...]
      Programming in *any* arena is not cut and dry. Programs are *never* "perfect",...


      So what makes you think rewriting a program from the ground up is going to produce a more perfect program than the one you already have?

      In the time it takes to start over and get your new code up to the same point as the old code, you could have fixed the old code and have it refactored into a form much superior than any new code. And that's a fact, my friend.

      --
      - Chris Z. Wintrowski -
      [ Site ]
    6. Re:Well... by Sloppy · · Score: 2

      Do you hold on to an old 286, even though it could easily crash purely because of its old-hardware, just because it works? Do you hold on to a 1982 Toyota Corolla, just because it works? No. For the safety of you data, and for the safty of your family, you go and get new stuff.

      This is merely a clash of values. Safety is the key value in your example. In the more general case, most Slashdotters are .. uh .. romantic fools and just want maximum quality. ;-)

      This dude just has one value: maximum profit. He's not talking about how to make the best programs; he's talking about how to manage a business. He's a computer industry Darwinist, and when you look at Microsoft vs WordPerfect et al, profit really is the metric for selection.

      Note that I said computer industry, not the overall bigger picture or the (to steal from Knuth) The Art of Computer Programming. He sees a piece. You see a piece. Maybe everyone's got a blind spot.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    7. Re:Well... by Thing+1 · · Score: 2
      Do you hold on to an old 286, even though it could easily crash purely because of its old-hardware, just because it works? Do you hold on to a 1982 Toyota Corolla, just because it works? No. For the safety of you data, and for the safty of your family, you go and get new stuff.

      To take your analogy even further: a "perfectly good program" written in 1970's FORTRAN might be able to be rewritten in a newer-style language, with well-document and well-tested libraries (Perl, Python, Java, Visual Basic, many others). This could reduce a program from 100,000 lines to, say, 10,000 lines.

      By reducing the size by 10 times, you also reduce the complexity (perhaps not by 10 times, but by a lot).

      No amount of "additional carburetors" (as another poster put it) will ever give your old car anti-lock brakes, traction control, a heads-up display, etc.

      If it's worth selling 10 years later, it's probably worth rewriting in the language-of-the-day, to afford the benefits of scale. Take advantage of the work other programmers have done on the "foundation" (libraries), so you can more easily build a larger "building."

      And as another poster mentioned, the skillset for the old language is dying as developers learn and prefer the newer languages, thus making the older language's programs more expensive to maintain.

      --
      I feel fantastic, and I'm still alive.
  27. WINE will save Linux for the desktop? by hyacinthus · · Score: 5, Insightful

    Spolsky asserts that Linux won't be a player in the desktop market until it can run Windows applications. I find this a very puzzling assertion--one I've seen elsewhere. Certainly the case of OS/2 clearly refutes this notion: OS/2 could run Windows applications, could even run them better than Windows itself, but then, why run OS/2 when you could just run Windows, and (more importantly) why _develop_ for OS/2 when by developing for Windows you could cover both bases.

    I spot a flaw in my analogy, which is that OS/2 was a commercial competitor, while Linux is "free" and therefore more attractive.

    hyacinthus.

    1. Re:WINE will save Linux for the desktop? by Ayende+Rahien · · Score: 3, Insightful

      Developing for OS/2 was harder than for Windows, because MS did everything that they could to convince developers to develop for Windows, and IBM force developers to pay for the info needed to program for OS/2
      This, along with several other foul-ups, resulted in OS/2 being the inferior platform.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    2. Re:WINE will save Linux for the desktop? by sgtrock · · Score: 3, Interesting

      The reason that WINE is necessary in order to make Linux a significant player on the desktop is the huge installed base of existing apps that people and companies can't afford to abandon overnight. For example, I work for a financial institution with about 60,000 desktops. We have dozens (hundreds?) of canned apps that we bought from a wide spectrum of vendors.

      These apps vary widely in both quality and support for current technology. We still have vendors successfully selling Btreive and NetBIOS based apps to our business units, for Pete's sake! I know of at least one case where we're still running Win 3.1 on about 100 desktops to support one of these ancient apps.

      Why do the vendors get away with it? Frequently, the vendor is the only one, or one of two or three vendors, in a very small niche market. In other cases, the business unit failed to do a proper search of the market for choices, and/or they also failed to ask for help from the tech guys early in the product evaluation process. We too often find out about these problem apps AFTER the business unit has already signed a contract. Fortunately, that's very slowly changing for the better.

      So, where does that leave us? Well, if we want to quit paying the Microsoft tax on the desktop, we absolutely need WINE. Otherwise, we're stuck. A good portion of the business world is in the same boat.

      Home desktops, by contrast, could probably be cut over to Linux fairly painlessly if; a) people could sync their PDA of choice to the mail and calendar package of choice and b) the bulk of their favorite Windows games would install and play painlessly.

      I have no clue whether anyone has addressed the PDA question fully, because it's not an area I personally care about. Some tweaked variant of WINE like WINEX, or compiled WINE with OpenGL hooks, is necessary to make the latter happen. Even then, I can't call the game install process painless yet.

      So yes, while I disagree with a lot that Joel had to say in this interview, I have to reluctantly conclude that he's right on the money concerning his views about Linux on the desktop.

    3. Re:WINE will save Linux for the desktop? by lukeduff · · Score: 1

      There needs to be two things for Linux to succeed on the desktop. One, what Spolsky mentioned, the ability to run the applications you're using today. And two, compelling Linux-only applications.

      OS/2 ran Win16/DOS programs fine. All that software you were using under Windows 3.1 worked great. But where were the killer apps that made people want to buy OS/2?

      Windows 95 ran Win16/DOS programs fine. It also ran Office 95, DirectX games, etc.

    4. Re:WINE will save Linux for the desktop? by WeaselGod · · Score: 2, Interesting

      Emulating games will be the toughest accomplishment. More and more games are being written in DirectX, which goes through pretty big changes every year or so (the difference between 8 and 7 is huge). Its going to be a lot of work to make directX compatibility layers, and by the time a decent version is ready Microsoft will probably have released a new version.

      Moreover people fail to realized that software isn't the only thing linux needs to be compatible with. Windows is compatible with damn near every piece of hardware produced (though there is usually a lag time for drivers when a new Windows is released). No other OS can really claim this. Wine isn't going to help here, hardware companies need to start caring about other OSes (and either produce their own drivers and release documentation so others can make drivers).

      --
      - WeaselGod
      Eagles may soar, but weasels don't get sucked into jet turbines
    5. Re:WINE will save Linux for the desktop? by Anonymous Coward · · Score: 0

      I just want to point out that you are one of the few slashdotters that actually understands how Windows' holds it's dominance in the business markets. It's not the office suite (well, not entirely) -- it's all those vertical apps.

      These things will never ever ever get rewritten -- I know some of these vendors that are still struggling with getting their nitch DOS applications ported to Windows. 99% Good Emulation is absoutely required and that's why Windows is the back-compatible monster that it is.

      It's also rather disapointing that the other person who replied to your point was talking about games (home products with a 1 year shelf life as opposed to 20 years like many business apps).

  28. The Point Is... by GeekLife.com · · Score: 2, Insightful

    That almost all new apps are *tested* on the plain vanilla Windows95. So if WINE gets to that level, all of those tested apps will work fine on WINE.

    He's not saying that there are a ton of people out there using unmodified Win95, just that the vast majority of Windows programmers program with that possibility in mind.

  29. I can tell he's a former MS programer by Spit_Fire1 · · Score: 1

    Joel: First of all, yes, you should hold onto a program in FORTRAN "just because it works."
    So since you have no fortran programers, and probably can't find a good one, what happens when your pay-roll program breaks, not have payroll for 4 months until you can get another written?

    --

    "The secret of success is to know something nobody else knows." -Aristotle Onassis
    1. Re:I can tell he's a former MS programer by WildBeast · · Score: 1

      Ever heard of consultants? Ever heard of disaster recovery?

    2. Re:I can tell he's a former MS programer by erasmus_ · · Score: 2

      And if you have no Fortran programmers or consultants available at all, how are you going to rewrite it from scratch? All the business rules documented in there, all the bugs that (as Joel points out) have been fixed over time, are going to be lost to you. If the app works except for small part X, find the money and hire a consultant to fix. They're out there.

      --
      Please subscribe to see the more insightful version of th
    3. Re:I can tell he's a former MS programer by ChrisWong · · Score: 1
      "So since you have no fortran programers, and probably can't find a good one, what happens when your pay-roll program breaks, not have payroll for 4 months ... ?"


      How would an unmodified payroll program that has worked for decades "break", especially if there are no Fortran programmers to break it?
    4. Re:I can tell he's a former MS programer by Waffle+Iron · · Score: 2
      So since you have no fortran programers, and probably can't find a good one, what happens when your pay-roll program breaks, not have payroll for 4 months until you can get another written?

      Well, I guess I'd tell the programmers that I do have that they won't get their next paycheck until they learn FORTRAN and fix the program. It's a pretty straightforward language. With this extra bit of motivation, I'd bet it would be fixed by the next pay period :-).

    5. Re:I can tell he's a former MS programer by TheAwfulTruth · · Score: 2

      Oh, uh. maybe y2k? or maybe 2028? or maybe > 5k employees? or any number of other things?

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
    6. Re:I can tell he's a former MS programer by MidnightLog · · Score: 1


      Yes, it would be fixed. But you might not like how it calculates bonuses.

      --

      To understand what's right and wrong, the lawyers work in shifts ...

  30. Still same Old Joel if it sucks it rocks.. by linuxislandsucks · · Score: 1

    Still same old Jole debating a poitn and proving that his argument is groundless in the same paragraph...

    It slike the Certification of winNT as secure by goveernment standards

    winNT coudl not pass the test due to its weird unsecure DLL version behavior (ie all dlld versions have same name and file path)

    So governemtn decided to change the test to allow winNT to pass..

    Joel is good exampel of Why MS's current Security Initiative will FAIL!

    --
    Don't Tread on OpenSource
    1. Re:Still same Old Joel if it sucks it rocks.. by demon · · Score: 1

      NT itself, as a product, was not certified as C2 secure. It was a particular installation of it that was certified. A certification rating of that type covers the entire installation - the system configuration, where and how it's installed there, the surrounding physical security, and so on.

      Also, the big thing with the NT 3.51 system's C2 certification was (a) no removeable media (CD-ROM, floppy, etc.) could be installed, and (b) no network connection. It had to be completely isolated from the outside world, because there was effectively no way to restrict unprivileged users from using those resources.

      --

      Sam: "That was needlessly cryptic."
      Max: "I'd be peeing my pants if I wore any!"
  31. Linux & Marriage by Tony · · Score: 2

    Once every open-sourcer has seen their marriage break up by installing Linux on their non-technical spouse's computer, they'll finally understand that, no, most people don't prefer command lines.

    My S.O. is not a computer geek, but is fairly good with computers. She likes working at home on Linux, and complains regularly about MS-Win2k at work. She says, "It won't let me do anything."

    Installing Linux hasn't destroyed my marriage. In fact, since I've installed Linux, she's agreed to marry me.

    --
    Microsoft is to software what Budweiser is to beer.
    1. Re:Linux & Marriage by Anonymous Coward · · Score: 0

      Is this CmdrTaco?

    2. Re:Linux & Marriage by Anonymous Coward · · Score: 0

      Interesting. Linux doesn't let me do anything. Music? no. Graphics? no. Printing? no. Gotta, as much as I hate the Mac. At least it can DO stuff.

    3. Re:Linux & Marriage by Anonymous Coward · · Score: 0

      My spouse was parnoid about virii and general Outlook crazyness. After I repaired her piece 'o crap HP with bad hd and power supply, I installed Mandrake on a second partion. She does 90% of her PC stuff in Linux now, and likes it better than windows. She is definitly a neophyte, but adapted quite quickly.

      On the otherhand, she would not have been able to set it up herself.

    4. Re:Linux & Marriage by Anonymous Coward · · Score: 0

      WTF are you talking about? That is one of the most ignorant things I have ever heard about linux. Either you have been hiding under a rock (hard to believe for someone on Slashdot) or you are a troll.

      I don't know any music editing software for linux, but everything else is available. For playing music, there's xmms. For downloading music, there's a half dozen gnutella clients. For graphics editing, there's the GIMP. For graphics viewing, the GIMP works, but ee and xv work well and are more lightweight. Printing is quite supported under linux, although you should be more cautious when buying a printer, being sure to check for drivers (any printer that supports PostScript doesn't need a driver).

  32. Optimization? by Spit_Fire1 · · Score: 1

    Optimization is not merely about reducing run times or footprint, it also is about choosing the right design and architecture. If you have a program where a given feature is used >1% of the time by >1% of the users and you keep it in new version, you have "non-optimized" code. If that was a key function that some people use sometimes, then it is a good feature, no one is going to pay 200$ for MS Word unless it does something that notepad doesn't which is free, if you go cutting features out of your program to make it Optimized then you could end up with completely optimized version of ms word, that looks alot like Notepad

    --

    "The secret of success is to know something nobody else knows." -Aristotle Onassis
  33. It's an analogy by inerte · · Score: 2, Insightful

    That you didn't seem to perceive. He was saying that removing or denying even some of the smallest features is not a good thing.

    I don't see how your argument can counter-attack his. Sure, you don't run the www on your computer. But still, you 'run' the www when you browse the internet. Doesn't matter where the features are located, the point is somewhere, somehow, someone might need.

    1. Re:It's an analogy by Ace+Rimmer · · Score: 1

      Browsing large parts of web doesn't cost you anything until you really visit the site.

      The analogy would be a program which consists of many small modules which would be stored on (many) cheap media or so. You want the feature you insert the media and load the stuff...

      This is obviously not the case of 90 RSS megabytes of StarOffice (loading more than 50 seconds) just to write a five lines long letter.

      --

      :wq

    2. Re:It's an analogy by ethereal · · Score: 1

      The point is the cost of each incremental small feature. Each additional feature in Word increases the storage costs, memory costs, and security risks on my machine - software features cost me something, whether they give me something in return or not. In contrast, each individual "pictures of my cat" page on Yahoo has no effect on me at all, unless I go and look at it. So I do think it was a bad analogy because the costs of software bloat don't really map up to the costs of a more complete WWW.

      --

      Your right to not believe: Americans United for Separation of Church and

    3. Re:It's an analogy by bcrowell · · Score: 2
      The analogy would be a program which consists of many small modules which would be stored on (many) cheap media or so. You want the feature you insert the media and load the stuff...
      A better analogy would be the classic Unix approach to software, where I can learn cat and ls without having to learn grep until I need it. Or the kind of stuff happening with Bonobo, etc. The user-interface issue is just as important as the storage issue you refer to, probably more important. Hard disks are getting huge, so for most people the only issues with a big footprint are backups and (for open-source stuff) download times.

      Bloat isn't just an end-user issue, either. The MS Word file format is so complex that it makes it hard to work with. For open-source projects, bloat makes a barrier to entry for new programmers.

    4. Re:It's an analogy by betis70 · · Score: 1

      I thought of this analogy differently than others apparently.

      Laundry list of "bloat" on the WWW that might make it a more useful analogy (features that make the WWW a more interesting place):

      SSL, XML, EJB, ASP, MP3, RM, MOV, JavaScript, JScript, PNG, JPEG, GIF, PDF (plus a whole bunch I don't have time to write down. You get the idea).

      --
      I forget...are we at war with Eurasia or East Asia?
    5. Re:It's an analogy by ethereal · · Score: 1

      OK, that's a closer analogy (I'm not sure if that's the one that Joel was thinking of, but whatever). Although the browser plugin/helper app model for these actually makes them less bloat-like in my mind - many of these aren't part of the browser itself, so you don't have to deal with them unless you want to. If I never read pdf files, then I don't care how buggy or large the Acrobat Reader code base is.

      Now, new web standards or languages like CSS, DHTML, javascript, etc. do fit the bloat definition pretty well. Including the fact that they introduce new security holes at times as a result of their featuritis (especially javascript). I agree that inasmuch as this functionality becomes more integrated into the browser, the browser becomes more bloated.

      --

      Your right to not believe: Americans United for Separation of Church and

    6. Re:It's an analogy by Ayende+Rahien · · Score: 2

      You are aware that Bonobo is a copy of MS techonology called COM, right?
      The one nearly *every* Win application is built of?

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    7. Re:It's an analogy by betis70 · · Score: 1

      >>I'm not sure if that's the one that Joel was thinking of, but whatever

      You know you are right. I went back and read the article and it did seem like he was talking about _data_ rather than services or features. So my bad.

      --
      I forget...are we at war with Eurasia or East Asia?
    8. Re:It's an analogy by ethereal · · Score: 1
      You know you are right.

      First time for everything!

      --

      Your right to not believe: Americans United for Separation of Church and

  34. He is correct about WINE by rseuhs · · Score: 2

    I also think that Win95 compatibility - but 100% - would be enough for most non-games.

  35. Given that he worked for MS, not very likely by Smack · · Score: 2, Insightful

    Some programmers still do write closed source software, remember?

    1. Re:Given that he worked for MS, not very likely by rubinson · · Score: 1

      Actually, although his company, FogCreek Software, sells proprietary software, they do provide the customer with a copy of the source-code for some (all?) of their products. It's not Open Source (and certainly not Free Software) but you can review the code yourself, fix bugs, etc...

      http://www.joelonsoftware.com/articles/fog00000000 26.html

  36. The lasy I heard by Spit_Fire1 · · Score: 1

    honestly think that Sun's Solaris platform does not have much of a future. They will see their market share shrinking to the rarefied world of mainframe-class machines while Linux steadily erodes from below. And if Sun abandons Solaris to start selling Linux boxes, they're just making commodity boxes, which doesn't justify Sun's current cost structure.
    I thought sun was stoping the i386 version of solaris to only make it for sparc, not make i386 workstations with linux installed.

    --

    "The secret of success is to know something nobody else knows." -Aristotle Onassis
  37. Some thoughts... by Tyreth · · Score: 1
    The introduction to slashdot is flattering to say the least. It almost sounds like they had this second interview just to get the extra hits to their site :)

    Regarding rewriting software from the ground up. I agree there are circumstances where keeping old code and updaying it is best. But I can't agree that it always is the best solution. If you build on a bad foundation then your code will not naturally be able to handle innovations of the future, and so adding new portions will be slow and painful. Redesigning at a certain point when the end goal is in mind may reduce the total programming time since a good architecture should lend itself to speedy programming.

    >Or, here's an argument that even the youngest slashdotters will understand.
    >The WWW is bloatware. Finding things is impossible because there's so much
    >stuff out there. Think how much hard drive space is wasted on all kinds of
    >web pages that only .00000000001% of the world ever reads. Since the vast
    >majority of people only go to Yahoo, Ebay, and MSN, wouldn't the WWW be better
    >if it only had Yahoo, Ebay, and MSN? It would be much more "optimized."

    This is a terrible example. The internet is a portal to web pages, it is not the webpages itself. Yahoo is a portal by which people connect to webpages. As for Ebay and MSN, if we just had them the internet would be extremely boring. I doubt that they account for the 99.99999999999% webhits that he's talking about. This argument is like saying Microsoft should only offer Windows XP, Microsoft Office, and a file browser (but without the hard disk or the files to browse). Anything else is bloatware. He missed the point. The argument of extra features that are used by 0.1% is the equivalent of a mouse inverter for the desktop, or some other trivial feature that you don't include in the OS, but a rare few might find useful. Removing such features, or making them available for download as extra features, is closer to the argument. I don't enjoy the way he patronises us with this example when it is completely irrelevant.

    >The good news is that a lot of stuff I write about UI is starting to have an
    >impact on the Gnome and KDE people. There's a lot more appreciation for the
    >value of good UI than there used to be in the Linux community. Once every
    >open-sourcer has seen their marriage break up by installing Linux on their
    >non-technical spouse's computer, they'll finally understand that, no, most
    >people don't prefer command lines.

    Yeah, that's why we hear so many stories of Grandma's, parent's and wives who have linux installed on their computer and exclaim "This is so much easier to use!". Does he have any evidence of this, or is he just presuming that Linux is hopeless on the desktop? Oh wait, he's talking about the commandline. I guess you'd have to be pretty confident in your Grandparent's computing abilities to install linux without X+KDE/Gnome.

  38. Joel on bloatware by Anonymous Coward · · Score: 2, Insightful

    > SMS: Another interesting point was raised in reference to bloatware... Do you
    > think a product like Microsoft Word would benefit by having every feature that is
    > used by 1% or less of the installed base removed from the product?
    >
    > Joel: ...The WWW is bloatware. Finding things is impossible because there's so
    > much stuff out there. Think how much hard drive space is wasted on all kinds of web
    > pages that only .00000000001% of the world ever reads. Since the vast majority of
    > people only go to Yahoo, Ebay, and MSN, wouldn't the WWW be better if it only had
    > Yahoo, Ebay, and MSN? It would be much more "optimized."

    With Joel from Microsoft at the helm the entire contents of the Internet would reside on a single loooooong web page.

    The oposite of MS-Bloatware (TM) is not lack of features. The opposite is UN*X's lean tool approach. Use tools for one function or a small set of tightly related functions. Create a screwdriver to screw screws, a hammer to nail nails. You do not create a Rube Goldberg machine with a flight simulator.

    ___
    Anonymity is freedom!

  39. I believe his point was that by darthlazy · · Score: 0

    Win95 is the common denominator(sp?) for the windows API, in other words the following versions are merely an extension of the seven year old spec. Respectivley, once WINE is fit with the 95 API, it should be able to run almost all Windows applications as they all are tested to work with Win95.

    --

    you can pick your friends,
    you can pick your nose,
    you can't however,
    pick your friends' nose.
    1. Re:I believe his point was that by TheAwfulTruth · · Score: 2

      Which is becoming largely irrelivent. This is very much like OS/2 and it's "windows" subsystem. It came out, could run all win16 (Windows 3.x) apps. Only problem was, Windows 95 just came out and windows 3.1 emulation very quickly became totally irrelivent.

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
  40. Re:I never contradict myself ... well sometimes I by Shynedog · · Score: 2, Informative

    "Sounds like he could save quite a bit of time and maintanence nightmare if he just invested the effort to write it well the first time."

    You people seem to be going out of your way to miss Joel's point on this.

    Routine code maintenance (ie, refactoring code, adding small improvements, etc.) is a standard part of the development cycle that every good software team follows. Doing so does not mean that the product wasn't written well the first time. (You Linux people should know that better than any of us, but I digress...)

    Code maintenance is not the same thing as a complete code rewrite, which is what Joel is arguing against. Incidentally, lack of proper code maintenance over time will likely result in the unwieldy mess that Stephen Eick describes.

    So does code rust? Of course not. Does poorly-developed, unmaintained code rust? Maybe, but that still doesn't mean that everything should be rewritten from scratch.

  41. well.. by papasui · · Score: 1

    Joel's says that there's never a reason to rewrite something that works... What a load of crap. There are reasons to redo things that work, and that involves a little foresight. If a system becomes difficult to manage, expensive, slow, etc are all reasons to replace it. As a system ages it starts to cost more money to maintain it. Sure, it costs a lot of money to implement and develop a new system but in the long run it's gonna last many more years with out the high maintence costs that you have to support a 'legacy' system. You will also be able to add new features that add productivity to the system that wasn't possible before all the while saving money. Let's say that I have a order processing system that while still can do the job, is slow, unreliable at best, and often needs manpower to keep things running smoothly. This is an ideal system to replace because you will be able to add reliability, reduce manpower, increase system performance, and add new features such as checking system status via the web or sending a email/page to a cellphone when something goes wrong. Technology changes for a reason, we shouldn't limit ourselves to staying inside the rut of the last truck.

  42. Typical "elite" programmer hypocrisy by Salamander · · Score: 4, Interesting

    Joel thinks that rewriting things is a bad idea because it loses information embedded in the old code (original anti-rewrite essay, search for "Nancy" to find a good example) and then says in the interview:

    Half the time when I go into a function to fix a little bug, I figure out a cleaner way to rewrite the whole function

    This is the same guy who wrote Yet Another Bug Tracking System while observing that such things were a dime a dozen, and then went on to write Yet Another Content Management System without defining its target market, even as he criticized others for such undirected development. Apparently, Joel's quite comfortable stating commandments for others while living by different rules himself. His articles are unfailingly interesting, but should by no means be accepted as authoritative (as is true for anyone who spends more time on the pundit circuit than actually programming)

    --
    Slashdot - News for Herds. Stuff that Splatters.
  43. Lack of attributions? by renehollan · · Score: 2
    I see some of the more insightful posters' comments were excerpted for the article. Fair enough. It does bother me though, that they lacked attribution.

    Yes, Slashdot is a public forum, but posters still retain copyright on their comments, and if they're excerpted and posted in another public publication, attribution, or at least a hyperlink to the original comment in context strikes me as the proper (and legal) thing to do.

    Perhaps it was felt that a single link to the thread holding all the comments was sufficient, but I tend to disagree.

    --
    You could've hired me.
  44. Re:What do you expect from a faggot? by Anonymous Coward · · Score: 0

    Well, I guess that puts my reply to the "don't blow him off" guy in a new perspective.

  45. good design prevents alot of these issues by mekkab · · Score: 1

    I need to first state my bias: I'm with Joel on this one for 90% of the time. However for that mission critical, people's lives are at stake, other 10% I am with you. But let me generalize it and say you should have a back up plan. There is a risk that your system will fail in someway. How have you mitigated that risk? If you don't have a plan B you fail. Your company has chosen to re-write as part of plan B. That's great!

    Now if your initial code design is modular enough, you don't have to re-write the whole thing. Yes, I understand that sometimes people code for performance and that involves highly hacked kernel c involving pointers to pointers to function pointers. But as long as you have a clear design methodology there is no reason to completey re-write.

    The new version of an operating system doesn't have the queue device you relied on previously? (happened to me) Rewrite the queueing functionality, but leave the rest alone.

    Now on to the comment of your software not scaling. Rewrite or no rewrite, if you software isn't DESIGNED to perform from the start, then no amount of rewriting/rebasing is going to help you out! You know what kind of performance a processor/os pairing will give you (becuase YOU baselined it yourself!), so you design around that.

    If your first version wasn't designed with performance in mind, then you better be re-writing it!

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
    1. Re:good design prevents alot of these issues by Anonymous Coward · · Score: 0
      Now if your initial code design is modular enough, you don't have to re-write the whole thing.

      We had a web-based system that was deployed in 98, it got re-written in 99 because the original version didnt work. I was involved in the 99 re-write. It deployed and went through 900% growth in the next 12 months. The system peaked in it's abilities in 2000. We tried refactoring it several times to expand but we were up against the limitations of the initial design. During the 2 years of operations the scope of the project had also expanded and the system was doing things that were never in the original requirements. About 75% of the system's functionality was post-initial requirements.

      We decided to rewrite it on a new framework in 2001. It went through testing in August and was deployed for Jan 1st, 2002. We designed it so that it could expand and adapt to the new markets it was getting pitched at. In particular we designed to be able to handle a particular client with ease, we were rewarded with them joining us on the deployment date and the system greww 100% on it's first day lol.

      Since then the system has expanded again to new clients, changing operations and expanded scope. In particular with Field Devices. None of that would have been possible without a rewrite. This system should be good for 5 years now. We did not have the knowledge of the systems operational flow, nor had the Frameworks to build such a system in 1998. We still didnt have it in 1999, though servlets made it better than the previous. Web development has matured enough that there are plenty of excellent, well engineered, opensource frameworks now to base a long term project on.

      In our case we were left with little option to redesign the first time as it was on an inappropriate platform and written in an inappropriate language. The second time we redesigned because we could expand no more, the operational flow had changed significantly and technology for web frameworks had advanced exponentially since the first system was deployed. There are no plans to rewrite again. The system is adaptable and expandable enough for immediate future needs. (phew)

      mocom--

  46. Re:I never contradict myself ... well sometimes I by e-Motion · · Score: 3, Insightful

    Sounds like he could save quite a bit of time and maintanence nightmare if he just invested the effort to write it well the first time.

    Yes, software development would be a breeze if we could write perfect code the first time.

  47. He replied to the wrong argument by Tony · · Score: 3, Insightful

    Joel was commenting about a study that indicates that software does "decay." In one old project, a lot files had to be touched for a simple change; then, after what amounts to a "refactoring," changes were more localized. after time, the old situation recurred, in which a lot of files had to be modified for a change.

    Joel's reply (paraphrased) consisted of, "Well, perhaps for *that* study. But *my* code doesn't rot. I'm constantly refactoring it!" So he claims the study doesn't apply to his software, because he's constantly refactoring his code.

    He needs either to read the questions before answering them, or get struck repeatedly with a Very Large Cluestick.

    --
    Microsoft is to software what Budweiser is to beer.
    1. Re:He replied to the wrong argument by Ayende+Rahien · · Score: 2

      Has it occured to anyone that if someone suddenly touched a dormat source code, it might be for large things, and not just small bug fixes?

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    2. Re:He replied to the wrong argument by Anonymous Coward · · Score: 0

      No.

  48. Thank you, Joel by jquiroga · · Score: 5, Insightful

    I could rant a bit about how wrong (or right) Joel is about lots of topics, but that would be a little redundant.

    Instead, I would like to say thank you. Thanks, Joel, for writing about your opinions and experiences, the lessons you learned, what you did wrong. Thanks for taking the time to tell us. It doesn't matter if we agree with you or not. Thanks for trying to help, you centainly help me a lot.

    1. Re:Thank you, Joel by Anonymous Coward · · Score: 1, Insightful

      Is it possible to moderate a comment (-1) Sappy?

    2. Re:Thank you, Joel by jquiroga · · Score: 2

      Yes, you just did it.

      In fact, I don't care. It seems not many people realize how right Joel is in most of what he says. That's because it's difficult to understand some grim realities of software development, particularly about project management, without real experience in a similar setting. I run my own software company, so I fight daily the problems Joel talks about. My clients are corporations, and my software is custom, so my context is not the same as his. Nevertheless, I've failed less often thanks to his advice. I want to give credit when credit is due.

      I see that many posts try to point out what Joel does not get right. I know that he is spectacularly right about at least one thing. Why not read about it in his own words?

    3. Re:Thank you, Joel by betis70 · · Score: 1
      I actually just found his site because of this story. Read some of it and it seems like he has some pretty good advice. I especially like the article on "The Iceberg Secret"(which should be subtitled "Customers don't know what they want").

      Discussions about software construction are always good IMO. Sometimes I agree with the person and other times I have no frame of reference (eg., making shrink-wrap software) and sometimes I just flat out think they are wrong.

      I do like his list of books.

      --
      I forget...are we at war with Eurasia or East Asia?
  49. Wow... by Lumpy · · Score: 2

    I was going to respond with the same open-minded ness I had on the last article.. but after reading his comments... He leaves no doubt...

    He has no clue and just likes to hear himself talk... another name for me to add to my wanna-be from microsoft list.

    Please Joel, you make yourself sound less credible with the way you talk.. and please stop interjecting things you make up for shock value, this isn't morning radio.. sane people don't leave their spouse over linux, so stop the shock-jock act.. it just makes more of the community write you off as hack.

    --
    Do not look at laser with remaining good eye.
  50. Re:What do you expect from a faggot? by avandesande · · Score: 0

    He reads Slashdot. What more proof do you need?

    --
    love is just extroverted narcissism
  51. Greenspun Lite by Anonymous Coward · · Score: 0

    Greenspun Lite.

    Or maybe heavy. Joel could stand to lose a few.

  52. Re:I never contradict myself ... well sometimes I by SuiteSisterMary · · Score: 3, Interesting

    What he's saying is 'If I'm working on Foo.bar, and it's got 10 functions, if I'm in function 1, I might notice a better way to do what function 1 does, so I implement it. Better program.' What he's railing against is the huge mass of programmers who would say 'Because function 1 is broken, lets rewrite ALL 10 FUNCTIONS because we can.'

    --
    Vintage computer games and RPG books available. Email me if you're interested.
  53. Funny stuff here... by GooberToo · · Score: 3, Insightful

    It's not true for the software that I've written, because I tend to refactor and clean things up regularly. Half the time when I go into a function to fix a little bug, I figure out a cleaner way to rewrite the whole function, so over time it gets better and better.

    In other words, his code decays MUCH faster than anyone elses. Glad he doesn't work for me. At "half the time", that means he's costing any project 50% more in his time/dollar worth. Ouch!

    Don't even talk to me about spending money replacing something that works.

    No, he doesn't replace an application at one time, it does it over a period of time, one function at a time. LOL!

    Well, most people with encyclopedias only look up 0.01% of the topics in the encyclopedia. But would you rather have the Encyclopedia Britannica or would you rather have a lightweight brochure containing the top 100 topics?

    What? I thought they were asking about optimization and maintaining code that no one used?!?! Perhaps he answered a different question for Reader's Digest and was confused.

    The good news is that a lot of stuff I write about UI is starting to have an impact on the Gnome and KDE people. There's a lot more appreciation for the value of good UI than there used to be in the Linux community. Once every open-sourcer has seen their marriage break up by installing Linux on their non-technical spouse's computer, they'll finally understand that, no, most people don't prefer command lines.


    Hmmm....and I thought this was a process of evolution simply because neither KDE or GNOME can snap their fingers and have everything under the sky that makes everyone happy. Gosh, it's taken MS how many years and they still don't have it right. Suddenly this is all about you Joe? Ya, I'm sure the face of UI is changed because you're the only one that can understand how computers are used. Oh ya...I forgot...you're the only one with parents that use computers...

    Well, I write code every day, and have done so for most of the last 20 years. I think this is pretty self evident if you read what I write on my site, but slashdotters are not exactly famous for reading the things they are commenting on!

    Seems I read what you said and I must say, aside from your high opinion of your self, you don't seem to understand much else.

    1. Re:Funny stuff here... by bigbird · · Score: 1
      In other words, his code decays MUCH faster than anyone elses. Glad he doesn't work for me. At "half the time", that means he's costing any project 50% more in his time/dollar worth. Ouch!

      What he is saying is that if he is modifying a piece of code anyway, he'll see if the code he is changing could be improved. When revisiting code, you often see how it could be written differently in perhaps a cleaner way. Refactoring like this is a great way to incrementally improve your code base.

    2. Re:Funny stuff here... by e-Motion · · Score: 1

      (Joel)
      It's not true for the software that I've written, because I tend to refactor and clean things up regularly. Half the time when I go into a function to fix a little bug, I figure out a cleaner way to rewrite the whole function, so over time it gets better and better.
      (End Joel)

      In other words, his code decays MUCH faster than anyone elses. Glad he doesn't work for me. At "half the time", that means he's costing any project 50% more in his time/dollar worth. Ouch!

      "Half the time" is probably an estimate, and I'm pretty sure that he is not saying that half of his time is spent improving old functions. He is saying that he often finds himself cleaning up older code by refactoring it. And I seriously doubt that the time is wasted, as your cost analysis seems to assume.

      (Joel)
      Don't even talk to me about spending money replacing something that works.
      (End Joel)

      No, he doesn't replace an application at one time, it does it over a period of time, one function at a time. LOL!

      He is arguing against complete rewrites, and favors refactoring the code as it is being updated. Is there something wrong with this? I don't see anything in there worth laughing about.

    3. Re:Funny stuff here... by DWIM · · Score: 1
      Well, most people with encyclopedias only look up 0.01% of the topics in the encyclopedia. But would you rather have the Encyclopedia Britannica or would you rather have a lightweight brochure containing the top 100 topics?

      What? I thought they were asking about optimization and maintaining code that no one used?!?! Perhaps he answered a different question for Reader's Digest and was confused.

      Wow. When reading the article, I thought he was addressing this issue when he gave that answer:

      SMS: Another interesting point was raised in reference to bloatware.

      Silly me.

  54. Plan to throw one away, you will anyway. by MattRog · · Score: 3, Interesting

    I liken the 'never rewrite' issue to MySQL. Yeah yeah, MySQL is cool and all and we all like it for interesting tasks and whatnot, but there are several glaring, fundamental problems with the database engine (filesystem buffered writes, inability to use more than one index on a query, no clustered indexes, crappy query optimizer etc.). In the spirit of object-oriented design, they said, "Well heck, we'll just allow different table types to be complied in and then we can avoid doing the hard work". In theory, this is interesting, but in practice, it is far less than they had hoped.

    InnoDB doesn't store a count of rows, so select count( * ) from table now takes far, far longer to return a result. Most RDBMs' operate this way, but to a developer who hasn't experienced that before (since MyISAM/Gemini store a count in the table) it would be confusing and not entirely intuitive why this happens. Not only that, but since text/blob/etc. information is stored on the row (instead of off-row like, again, other RDBMs') users of textual data now may find the hard row-size limit of InnoDB a problem when working with large amounts of text data (like it used to be in PostGRES).

    Gemini has their own sets of problems, some of which are due to MySQL's horrendous lock-manager (if such a thing exists). When you perform a table scan on a Gemini table, it appears that it will not escalate the table scan to a full table lock but instead dutifully lock each and every row (and it appears that it does not release the lock after it 'passes' the row either, only when the entire result set is dumped). In these sorts of cases, a table lock is far more efficient since you'll save the lock manager of maintaining count( * ) locks for your table. Also, since it is difficult to manage (if at all) the transaction log, deletions or modifications of many rows can cause it to choke on the massive amount of data in order to roll-back the transaction.

    Now, I don't want to make this a "I Hate MySQL" post, but I think it illustrates the "Well we can just make these little incremental changes here or there, or maybe make it modular so that we can simply 'hack in' new features whenever we think them up!" fallacy that Joel seems to love to stick by. It hasn't worked for MySQL, and for sufficiently complex applications I don't think it would work there either. There comes a time in which you must say "Well shit, we did it wrong. And all our core functions are locked in the old, broken way of thinking. If we re-do the core functionality, then we can be more competitive, have a better product, etc." Are we asking them to start over from scratch? In most cases I think that would be a bad idea. Obviously the MySQL parsing engine (which determines if SQL statements are valid) is 'good enough'; there's no reason to reinvent the wheel. However their lock manger could use a good overhaul.

    Or as Brooks said in The Mythical Man-Month "Plan to throw one away, you will anyway."

    --

    Thanks,
    --
    Matt
    1. Re:Plan to throw one away, you will anyway. by WildBeast · · Score: 1

      No clustered indexes? What do you do when a table has millions of rows?

    2. Re:Plan to throw one away, you will anyway. by Anonymous Coward · · Score: 0

      You misunderstood Joel's entire essay; he was not advocating not rewriting the entire app from scratch. Your post didn't say "completely rewrite MYSQL!", you pointed out A Few areas where rewriting that functionality, while leaving other parts alone, would be helpful.

      You never advocated rewriting ALL of MYSQL, so you agree with Joel.

    3. Re:Plan to throw one away, you will anyway. by Anonymous Coward · · Score: 0
      What do you do when a table has millions of rows?

      Use a different database.

  55. Anarchy? by Slashdolt · · Score: 2

    From the Article:
    "Our interview was reported on at www.slashdot.org, a lively location on the web dedicated to expounding the joys of Open Source programming, Linux, UNIX, and anarchy (among other things)."

    Open Source, Linux and Anarchy? Oh come on! I think we should "kill -9" anyone who believes that. Please share this post with all of your friends.

    1. Re:Anarchy? by WildBeast · · Score: 1

      You got something against Open Source, Linux and Anarchy?

  56. Joel's an idiot by Anonymous Coward · · Score: 0

    He is definitely a self-appointed 'elite' hacker. If you didn't graduate from an ivy league school, don't bother even talking to him, you don't exist.

  57. Not a moving target? by drew_kime · · Score: 4, Interesting
    But due to chicken-and-egg problems, running Windows apps is probably nonnegotiable for most people, so WINE is going to have to get a lot better before Linux is a threat to the desktop. I sort of expected with all the effort Corel put into it, it should be there by now, but they seem to be as far as ever from seamlessly running Win apps. (By the way, a lot of people think that the Windows API is too much of a moving target for WINE to catch up. As a Windows developer, let me say, this is rubbish. Almost every Windows app out there is tested on Win 95 to make sure it runs decently on the entire 32 bit Windows product line. If WINE could ever catch up to Win 95, they would be almost completely done. The target hasn't moved anywhere since August, 1995.)

    Correct me if I'm wrong, but when I install, say, Office 2000 on my Win95 machine, doesn't it update many dll's that were part of the original OS installation? That being the case, is it really true to say that new software runs on Win95, or is it more accurate to say that each new app provides an incremental OS upgrade?

    --
    Nope, no sig
    1. Re:Not a moving target? by Sacrifice · · Score: 1

      Joel really dropped the ball on this one. He neglects to consider that most non-trivial software written today that still works in Win95 at some point either explicitly detects the OS version and assumes the platform will behave as tested, or performs some undocumented ritual to work around flaws in the particular incarnation of Windows.

      Of course, well-written applications staying within the bounds of documented Windows Platform APIs *should* work on a perfect WINE. But, the idea that Win95 is a reasonable, stable target that WINE could easily catch up with is laughable - it takes a long time to pin down the right set of undocumented behaviors (that sounded euphemistic for "bugs") that will satisfy all the apps targetting them.

      Your rebuttal is also a strong one - considering that installs of Office on old versions of Windows require a reboot, it does seem likely that core OS files are being altered (stuff like the MFC DLLs should just make calls to core Win32, so they should in theory work as well under WINE as the real thing).

    2. Re:Not a moving target? by PaulGibson · · Score: 1
      Really good point. However, I think the line between OS and application here is blurred. The DLLs that Office uses (particularly earlier versions) could perhaps not be considered part of the base OS. So, if you write an app that is Win32, and totally self contained, then you don't need to rely on any of the extensions. Of course, not many people these days write windows apps that way, but you certainly could. If you do more complex interactions, like writing to databases and so forth, you have now linked yourself to the use of extensions. In this case, if you use the original Win95 version of the extension to test your code with, then you can be "assured" (never 100%) that your app will be compatible with the later versions. Certainly M$ has been much better with backward compatibility than SGI (IRIX) and Apple, my only other experiences, but has not been perfect.

      On the other hand, I think that Joel is still over simplifying the case. If it were that simple then certainly Corel should be done. I'd like to hear a rebuttal from someone at Corel on this matter.

    3. Re:Not a moving target? by Anonymous Coward · · Score: 0

      And isn't Lindows supposed to solve this problem? Or am I clueless? I thought Lindows was just Linux with a finished WINE implementation on top of it.

    4. Re:Not a moving target? by swillden · · Score: 2

      Not clueless, but perhaps a bit overly optimistic.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  58. why? because he is afraid of peer review. by inerte · · Score: 1

    I guess you don't take his costumers are reviewers. Sure they don't look directly into code lines, but once they bought, if they are happy and recommend the product to friends, what better peer review do you want?

    You can't look at this from just one perspective.

  59. Sounds like a moron to me... by Anonymous Coward · · Score: 0

    Once every open-sourcer has seen their marriage break up by installing Linux on their non-technical spouse's computer, they'll finally understand that, no, most people don't prefer command lines.

    He's writing about Linux, but (obviously) has never used it (or, at least hasn't used it in the past 4 years.)

    I installed Linux on my (non-technical) wife's computer.

    She's able to work with it just fine - she can check her email, update her resume, surf the web, and balance our checkbook. She has never used the command line.

    I installed Linux on my (non-technical) mother's computer.

    She's able to work it just fine - she does email, works on the book she's writing, and comments about how much less it crashes now. She's never seen the command line either.

    Joel is obviously an idiot. He complains about /.'ers not reading the article they write about, while he's obviously guilty of exactly the same thing.

    command line != linux

  60. Design is more important by rlowe69 · · Score: 2

    Having apparently never worked on a team in the Real World and had a piece of code delivered that was so hideous that the only thing you could really do with it is have it taken out and shot. XP Practices can help you avoid having such a hideous piece of code delivered in the first place, but you'll have a had time convincing small shops to do pair programming.

    I agree that what he suggests is XP-like, but it doesn't require pair programming. You can't make a 3 story house of cards into a full-sized brick house, no matter how hard you try - design is paramount to refactoring.

    I think people get confused when they read about XP and think design is ignored and everything is done "as you go". It's definitely not! You still have to keep in mind where you are going, even though you are only implementing for the present. Not only does that enable you to refactor, but also cuts down the refactoring time itself.

    Joel's code is inherently refactorable because he's used to writing like that - and used to refactoring. What Joel hasn't said is that you have to purposely make your code easily refactorable from the outset, otherwise you'll spend your whole life refactoring from one feature to another.

    So take your hideous house of cards into the middle of the street and shoot it if you have to. Refactoring may just be a waste of your time if the design is not easily refactorable.

    --
    ----- rL
  61. A joke on this subject by inerte · · Score: 1

    I can edit my comment.

  62. My one big problem with this article. by thesolo · · Score: 1
    Joel: First of all, yes, you should hold onto a program in FORTRAN "just because it works." Don't even talk to me about spending money replacing something that works. The only question that is relevant is -- what does it cost to fix it if it doesn't work?

    I really have to disagree with that. Just because something works is not a good reason to continue using it. Especially with the circumstances he was commenting on.

    Money is not the only factor here! Sure, spending money on replacing software that works might seem like a waste, but when you compare it to the benefits of the replacement, it doesn't seem so bad at all.

    Benefits of a rewrite can include getting out of a code freeze, having a piece of software that is easily & readily maintainable, being able to offer better support or more functionality, I could go on. All these things need to be factored into replacing/rewriting a piece of software, and in my experience, usually those factors outweigh the cost of new development/product purchasing.
  63. No MS support, no USB by rlowe69 · · Score: 3, Informative

    No one uses the out-of-the-box version of Win95 anymore, do they?

    Two things about Win95:
    1. Microsoft no longer supports Windows 95.
    2. USB is not natively supported in the early versions of Win95 (and later versions are spotty, they get it right by Win98).

    So on that level, Joel's arguments are flawed. Less and less people will be testing on Win95 because MS doesn't support it any more. The WIN baseline now starts at Win98.

    Another thing: if you DO use Win95, do you test the off-the-CD version or the highly patched (practically Windows 98) version? Grey grey grey area, Joel.

    --
    ----- rL
  64. Re:I never contradict myself ... well sometimes I by rlowe69 · · Score: 2

    Sounds like he could save quite a bit of time and maintanence nightmare if he just invested the effort to write it well the first time.

    This is counter to the XP get-it-out-the-door-with-the-minimum-amount-of-wor k thinking. If you only need your function to do one thing right now, only implement the one thing right now. No use making the function more complicated - you'll only 1) take more time to implement it and 2) make it more complex which adds opportunity for bugs and increased testing cases to handle.

    Having minimally implemented functions also lets you have an almost-always exectuable codebase, which is important to XP.

    When you see that the functionality NEEDS to be extended, you extend it. Not before. You can still make the design before you write in that code for the other 4 features, but holding off from coding and then refactoring them in later incrementally will make your testing and maintaining life a lot easier. Just keep in mind you are going to refactor if you want to make it easier to incorporate them in.

    --
    ----- rL
  65. Wrong end of the horse.... by AstynaxX · · Score: 2

    You dance near to the issues, but what really needs to happen is for several OSS alternatives to Micro$soft wares to become popular on Windows. Once that happens, switching to Linux, *BSD, or whatever else might come down the pike becomes easy and logical (ie: 'We already use X, Y, and Z software, which run on this 'Linux' too, may as well have a more stable environment at a lower cost too').

    MS does not have a monopoly because of Windows, they have a monopoly in spite of it.

    --
    -={(Astynax)}=-
    "Darkness beyond Twilight"
    1. Re:Wrong end of the horse.... by Christopher+Whitt · · Score: 2

      what really needs to happen is for several OSS alternatives to Micro$soft wares to become popular on Windows

      This is an interesting point, and it's one of the reasons that I'm very happy for the progress of products like StarOffice and Mozilla. My dad is a high school teacher, and this year he's updating some technology courses with simple stuff like assignments to create a webpage, write a document, use a spreadsheet. Nothing fancy, but he is finding that OpenOffice (even a 6.0 beta build I think) is working quite acceptably for him. Yes, still more work to do on the import filters, stability and features, but for his needs it works. OpenOffice is also attractive because Sun donated a nice server and a bunch of thin clients to his school this year, but that alone wouldn't be enough to convince him to use it in his classes.

      If he can get more than just a few entry-level classes using OpenOffice, then more people can switch seamlessly between the Windows PCs and the unix thin-client lab. Of course, they don't have the expertise or motivation to put linux on PCs, but this definitely lowers the barrier to entry if somebody wants to advocate it down the road.

      Now my church is looking for a database package to track members of the congregation, their areas of involvement or interest, elderly people who want to be visited at home or in the hospital etc. Our membership is getting too large for one or even a few people to keep track of everything in their heads. They're looking at custom database software targetted at churches. I'd love to recommend a free (libre) database to them, but I don't know anything that will allow them MS Access-like ability to design the front end to make it usable by volunteers or the church secretary. I certainly don't have the time to provide tech support myself - I'm already very involved in other areas. If the free software community can begin to fill niches like that with cross-platform software, it's going to be a whole lot easier for people like me to evangelize free OS's.

    2. Re:Wrong end of the horse.... by Andrew+Allan · · Score: 1

      Good point - I started running linux on my PC, because I was running Apache and PHP on Win98, and when I started to program in MySQL, I realised I'd be better off running them all on Linux. Especially useful when trying to learn stuff like that, since a lot of tutorials etc are written with a *nix slant.

      One day, someone is bound to ask "So... can Linux run Mozilla?"

  66. Woa, alotta woa.. by dmouritsendk · · Score: 2, Insightful

    I havent read the first article they refer to, but the linked-interview give you a pretty good idea about what it was about.

    An I must say, it baffels me anybody want to argue with that guy. He one big contradiction,but i wont even comment on this since i saw a few comments on that subject
    already and this really talk for it self:

    that once a piece of a program has been debugged and various workarounds added, it represents a repository of stored knowledge and should be left alone

    a bit furter down the text we see(as a counter to a argument from a slashdotter):
    It's not true for the software that I've written, because I tend to refactor and clean things up regularly.

    But why not argue his point with him?Conversation/discussion is a be good, and people tend to learn from it.

    Because hes a pain-in-the-***. You ever met one of thiese programmers who made a obvious mistake. But you need to argue 28 minutes with them, begging them to fix it. And they throw alsorts of wierd examples at you, just prolonging getting the job done. Thiese guys dont want constructive input, they just want to be right.

    Joel needs to chill out. And stop talking about people that doenst share his views as interlectual inferiors("But not everybody writes code well" , "younger slashdotters" etc).
    Learn to have a discussion without creating lame examples to "protect" your own argument. Im thinking about the Encyclopedia example.. Thats the worst B******* ive ever read.

    If you buy a encyclopedia, its probertly to access to information about stuff you want to learn more about. Hence the "applications" job is to provide information, having only 100 words would be an incomplete application. The entire purpose of an encyclopedia is to provide you with information you didnt know you needed when you bougth the books.
    A wordprocessor application which doensnt feature the newest 20meg office assistent, text taperingtool, access integration etc. couldnt be defined as an incomplete application, just a application with is less rich on features. Bacially the applications can do the same thing, create documents. A 100 word encyclopedia wont do the same job as a full one, so, they cant be compared.

    And for the WWW example, again same thing. Information gaterhing. And even the younger of us slashdotters know that what is great about the WWW is that if you are one one the .00000000000000000000001% people that have a craving to read about fishing in nothern norway(or some other wierd thing), the WWW will have a page for u(and btw. what the freak would be the purpose of having yahoo if they only could index ebay and msn? doooh!).

    Simply put, so even the older-softwaremarketsolutions.com-article-authors- with-overinflated-egos can understand it:

    A WWW without webpages, or a encyclopedia with 100 words is not comparable to a wordprocessor/emailclient/what-ever-app with out office assistents , 3D logo generater, HTML wizards, Office exporter.
    Its more comparable to a wordprocessor with out keyboard support.

    1. Re:Woa, alotta woa.. by Anonymous Coward · · Score: 0

      mod up for thorougly debunking
      the encyclopaedia arguemnent.

    2. Re:Woa, alotta woa.. by pod · · Score: 1

      Yup, the encyclopedia example was ridiculous, but it's always hard to defend against silly arguments, they're so obviously flawed, you just don't know where or how to begin.

      His other example, wife leaving over Linux... shit man, if my wife left me because I installed Linux I'd give her a good kick in the ass on her way out the door!

      I think Joel is slowly getting out of touch with reality. Maybe he needs to go back and work in a real software company, like Microsoft, where they will teach him that rewriting several pages of code when you just want to fix a typo in a dialog box is a fireable offense. He used to be insightful and interesting and made good sense most of the time. But that interview was something else. Maybe it's a spoof. Yeah, that's it.

      --
      "Hot lesbian witches! It's fucking genius!"
  67. No. by Otis_INF · · Score: 2

    Outlook strips all executable attachments, period. Outlook XP does that, Outlook 2000 does that after you've installed the service release (free download).

    A rewrite is not necessary, it's already fixed. However, there are still people believing that we're living in 1996 or something and that nothing has changed.

    --
    Never underestimate the relief of true separation of Religion and State.
    1. Re:No. by erasmus_ · · Score: 2

      I agree that that's a good solution for the corporate environment, but I never liked that solution personally, as it assumes that every user has no idea what they're doing. MS held out too long in this case, hoping that user education would enable users to not open pif/vbs/exe files, but eventually just shut off everything. So now when I want to send something, it's a pain because you have to rename the file. I thought a better solution would've been to allow Outlook to have its attachment policy set by Exchange, where some users could receive no active attachments, some could only save to hard drive, and some could execute directly. This might already be available, perhaps I'm just not aware of it.

      --
      Please subscribe to see the more insightful version of th
    2. Re:No. by Ayende+Rahien · · Score: 2

      Hm, IIRC, there is a checkbox to disable this behaviour if you are sure of yourself.

      --

      --
      Two witches watched two watches.
      Which witch watched which watch?
    3. Re:No. by erasmus_ · · Score: 2

      I'm pretty sure not in the patch version, where installing the patch is just like checking the checkbox and never being able to uncheck it. And most companies that installed them installed them for everyone. Of course I guess the company could create a software distribution policy and only enable this on certain machines. I guess I was just saying it'd be nice to have a server-side policy for this by groups/accounts, which I don't think is provided.

      --
      Please subscribe to see the more insightful version of th
  68. Actually it does - sort of. by WyldOne · · Score: 1

    Software becomes dated and outlives its usefulness. This doesn't happen because the software degrades, but because hardware improves.

    As an example: Would you use a 286 based compiler on a Athlon/Pentium machine now? Of course not.

    Software may not rust, but it does fade away.

    --

    make Linux, not Microsoft. sin(beast) = -0.809016994374947424102293417182819
    1. Re:Actually it does - sort of. by laserjet · · Score: 2

      If it worked just fine and I had no reason to upgrade, yes.

      --
      Moon Macrosystems. Sun's biggest competitor.
  69. Does Joel know how silly his arguments are ? by Canook · · Score: 0

    Come on, Joel. Engage brain before opening mouth: You said: "... at some point I spend some time rearranging all that code to make it more maintainable. I like refactoring ..." That's exactly the point Stepen Eick was making. Call it refactoring, call it oogabooga, YOU'RE WRITING CODE !!! The fact that you do quite a bit of this "refactoring" would seem to point to code that was fairly stinky in the first place.

  70. Victor Stone comments on Joel Spolsky by AdamBa · · Score: 4, Funny
    A former Microsoft architect (Stone) commenting on a former Microsoft program manager (Spolsky)...put 'em together and you still don't have a single line of code!

    The Baggage Factor.

    - former Microsoft programmer

  71. No Grey by Anonymous Coward · · Score: 0

    I currently am developing for a client, large gov org, that still uses 95 desktops, though the 2000 rollout is in progress right now. These boxes run current software like Office 2000 without a hitch and there are no API update required for 95 to do this. The software I am working on works for both clients without any fancy tricks. Sure the USB support is minimal if none existant, but the base API have not changed. I am still using the same API's for the last 5 years or more.

    1. Re:No Grey by TheAwfulTruth · · Score: 2

      Yes but there is a lot of stuff MISSING from 95 (I.e. Color management). If your app depends on it, then 95 isn't going to work. I will also testify that a lot of software's base is now 98 instead of 95 because of the basic API functionality it reqires is not present in 95. Only apps that don't require color calibration (Among other things) can be speced for 95.

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
  72. My experience (as a Linux True Believer) by ShmuelP · · Score: 1

    Once every open-sourcer has seen their marriage break up by installing Linux on their non-technical spouse's computer, they'll finally understand that, no, most people don't prefer command lines.

    I've installed Linux on my wife's computer, and she's thanked me for it. Actually, once we can get our printer working better under linux, we'll get rid of her windows partition to save HD space.

    Granted, she's a CS major...

    But due to chicken-and-egg problems, running Windows apps is probably nonnegotiable for most people, so WINE is going to have to get a lot better before Linux is a threat to the desktop.

    To all those who claim that Wine is horrible: try a recent version! Try codeweaver's excellent crossover plugin. The MS Office viewer programs work tremendously well. Of course, OpenOffice 641C ain't too bad either.

    --
    Solution to blink tags: wrap them in another blink tag, with a javascript delay loop, so they cancel each other out
    1. Re:My experience (as a Linux True Believer) by Anonymous Coward · · Score: 0

      Holycows, pad're ya should listen ta your own crappola ... and gag --- "once the printer works"??? Printers have been working transparently on goldcode systems since , er ... 1983, or is that 1963? But Linux can't get it right in 2002. And ya wonder why normal folks got work to do laugh at weenies and spit on the OS?

  73. Necessary vs. Sufficient by antizeus · · Score: 2
    Saying that Linux needs to run Windows apps to succeed on the desktop is a claim of a necessary condition. Saying that the success of Linux on the desktop is guaranteed by running Windows apps is a claim of a sufficient condition. Therefore your "counterexample" (OS/2) does not refute the apparent assertion by Spolsky (Linux won't be a player in the desktop market until it can run Windows applications).

    Check out this page for more information about necessary and sufficient conditions.

    For the record, I take no position about whether running Windows apps is either a necessary or a sufficient condition for the success of Linux on the desktop.

    --
    -- $SIGNATURE
    1. Re:Necessary vs. Sufficient by hyacinthus · · Score: 2

      I see what you're saying. Spolsky's exact words were, "WINE is going to have to get a lot better before Linux is a threat to the desktop." If one takes "WINE is going to have to get a lot better" to be equivalent to "Linux is going to have to run Windows apps seamlessly", then Spolsky is asserting that running Windows apps is a _necessary_ (but not sufficient) condition to Linux's success. OS/2 satisfied the condition, but perhaps there were others.

      I think you'd be hard pressed, though, to think of any condition sufficient to insure Linux's success.

      hyacinthus.

  74. "But the network is the computer!" by deepestblue · · Score: 1
    One difference is I don't run the entire WWW on my computer.

    When you surf, you are essentially "run"ning the WWW. Joel's point is that removing the content-starved sites would probably improve the www-experience of most, for one thing because DNS would become so much simpler, and hence faster. If you look at it from an economic perspective, the net effect to all the surfers will in all likelihood be positive.

  75. Extremes are a load of garbage... by ACK!! · · Score: 2

    There are plenty of times I have thrown up my hands in disgust because some nutball wants to re-write a perfectly good app in the hot language of the moment.

    However, I live everyday with a badly thought out program married to absolutely bizzare methods for socket and thread support. If the very core of the program is rotten and maintenance costs more than a re-write then by the above author's own admission the project needs re-writing.

    I have seen both sides and extremists drive me nuts in all things.

    Don't throw out something that works and works well.

    Fix the program that works but does not work well.

    Re-write the program that does not work, breaks all the time and costs too much to keep in its current state.

    This is not freakin' rocket science!

    ________________________________________________ __

    --
    ACK /ak/ interj. 2. [from the comic strip "Bloom County"] An exclamation of surprised disgust, esp. i
  76. Excellent point by GCP · · Score: 5, Insightful

    Office now requires RichEdit 3.0, version 3 of the *system control* RichEdit. Since Win95 only has RichEdit 1.0 by default, an Office installation has to upgrade the OS -- and it does.

    Interestingly, Microsoft does NOT allow ISVs to distribute RichEdit 3, nor do they make it available as a simple download from MS.

    This creates two classes of application vendor. First class vendors are those named "Microsoft", and they are allowed to target the entire installed base for maximum revenue, upgrading any OS version to *make* it meet minimum requirements.

    Second class vendors are all others, and if they need the same thing Office needs, RichEdit 3 for example, they are advised to get their customers to go buy an OS upgrade from MS.

    Whether this is "fair" or not isn't my point. MS owns the whole platform. You can have any scraps that they don't want.

    If you clone the Win98 API, apps from second-class vendors, everyone other than MS, will probably run fine. The apps from the first-class vendor, Microsoft, probably won't.

    I say "Win98" instead of "Win95" because of the large number of vendors who have ceased to support Win95. If they can't upgrade the OS themselves, they either have to give up older OSes or give up some functionality that people are used to having in MS's own apps. Most have chosen to compromise, giving up some market, the Win95 platform for now, as well as the most recent nifty(Win2K+) features. In a couple of years, these vendors will be giving up Win98, too, so WINE *does* have to keep moving.

    That's the nature of the platform. There are two "installed bases", a big one for MS and a smaller one for everyone else.

    MS has made "3rd party horizontal app" an oxymoron on their platform. If WINE wants to run the most popular (a.k.a. "horizontal") apps, it has to keep up with the latest OS versions. Lotsa luck.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  77. Logical Fallacy by irexe · · Score: 1

    Comparing bloatware to an encyclopedia really doesn't make any sense:

    when I read something in my encyclopedia just once, that, on average is a very nice score because reading the same thing 12 times isn't likely to happen. In other words: 'not often used' is a very relative concept when talking about encyclopedias.

    When I use the pinball machine in M$ Word or the Flight Sim in Excel once in my life fur the fun of it, that doesn't exactly compare as favorably to the regular features like grammar checking and other stuff most people use them every day.

    1. Re:Logical Fallacy by blastedtokyo · · Score: 1

      The flight sim is less likely to be bloatware than the grammar checker.

      For the rest of the world that doesn't use english, it's completely useless. (and considering that the rest of the world is poorer than the english world, then arguably the cost for disk space relative to silly american is a lot higher compared with disposable income).

      We'd all rather have stuff designed exactly for us with the features only for people exactly like ourselves.

      But given the choice of using Vi or Word for publishing a complex document, I'd pick Word.

  78. Are you just skimming the article, or what? by Phillip+Birmingham · · Score: 1
    So since you have no fortran programers, and probably can't find a good one, what happens when your pay-roll program breaks, not have payroll for 4 months until you can get another written?

    I believe that's sort of covered here:

    For the sake of argument let's say that it costs you three times as much to add small new features to the old FORTRAN program because you have to hire retired consultants who charge extra to be dragged away from their golf games.

    OK, so tell me the net present value of the stream of the marginal extra cost of those extra-expensive consultants for all future expected repairs. If that number exceeds the NPV of the rewrite, OK, fine, rewrite it, you have made an economic argument that it pays off. Not an emotional argument about old fashioned programming languages, which doesn't impress me -- an economic argument.


    I believe Spolsky would say that if it's more expensive to fix the problems than to rewrite, you should rewrite. After all, you don't have to rewrite the payroll system whenever it breaks, you just have to fix the bug.
    --
    Make me aerodynamic in the evening air
  79. So, by k2x · · Score: 1

    ...we should be running two OSs by now right? A kernel-based OS(winxp) and a user-mode OS(internet explorer).

    hehe. finally makes sense.

  80. what I want to know is... by mmusn · · Score: 1

    If you should never throw away things and start from scratch, why the hell did Microsoft reimplement old technology (NT is basically VMS and UNIX)? And why does his company produce yet another content management and bug tracking system instead of just building on one of the open source ones?

  81. do you want to have to.... by Ender+Ryan · · Score: 2
    "shouldn't they at least have to ask before using slashdot content for their own means?"

    I'd like to point out that they are not using slashdot content, they are using written speach.

    Do you want to have to ask every time before saying, "So and so said, 'such and such'"?

    I didn't think so...

    At least I hope not, Gawd!!

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
  82. He designed KDE?!?! by IamTheRealMike · · Score: 2
    The good news is that a lot of stuff I write about UI is starting to have an impact on the Gnome and KDE people.

    Umm, since when do the KDE/Gnome people base their UI design on the writings/ramblings of Spolsky? News to me.

  83. news flash: Spolsky causes the Sun to rise by mmusn · · Score: 1
    The good news is that a lot of stuff I write about UI is starting to have an impact on the Gnome and KDE people. There's a lot more appreciation for the value of good UI than there used to be in the Linux community

    Ah, yes, and Spolsky's widely published notion that it would be good for the sun to rise in the morning also causes the sun to rise.

    I guess we can look forward to software on Linux that is just as good as Windows. But, wait, why am I not running Windows, then? Maybe, just maybe, people are running Linux because, unlike Windows, its UI doesn't suck?

    But due to chicken-and-egg problems, running Windows apps is probably nonnegotiable for most people,

    Wow, what a profound insight. Didn't some court come to the same conclusion? Except, they called the "chicken-and-egg problem" by its real names: "network effects" and "a monopoly".

    I don't see anything interesting this guy has to say. He is just repeating the Windows party line, and he is developing the same dull, uninspired Windows desktop software as thousands of other commercial Windows developers. This is not the kind of advice the Linux community needs, unless, of course, you want Linux to become merely a free version of Windows, with the same dull applications on top of it.

  84. Refactoring equivalent in the automotive world... by weave · · Score: 2
    Refactoring equivalent in the automotive world...

    www.riceboypage.com

  85. refactorable? by KyleCordes · · Score: 2

    I'm not quite sure what "refactorable" means, but I want my code to be like this:

    * Good Cohesion

    * Low Coupling

    * No Duplication

    It seems to me that the point of refactoring is often to make the code be this way. I don't think code has to already be good to refactor it, though mediocre code is clearly easier to work with than terrible code.

    1. Re:refactorable? by rlowe69 · · Score: 2

      I'm not quite sure what "refactorable" means, but I want my code to be like this:
      * Good Cohesion
      * Low Coupling
      * No Duplication


      Refactorable really means keeping your code in a state that allows it to be cheaply and quickly refactored. If you have to spend hours and hours to refactor you code, it's not worth it - it might be cheaper to rewrite it. If you consciously write your code so that it can be played with (ie. it's readable, consistent), you will have better luck.

      --
      ----- rL
    2. Re:refactorable? by KyleCordes · · Score: 2

      What attribute of code makes it "refactorable", other than the things that make it good? To me, these are exactly the same thing, but I am open to hearing about some aspect of code that's important to refactorability but not otherwise important.

    3. Re:refactorable? by rlowe69 · · Score: 2

      What attribute of code makes it "refactorable", other than the things that make it good? To me, these are exactly the same thing,...

      Heh ... my explaination was pretty poor in that last one.

      Ultimately, the properties of your code aren't really that important outside of readability and understandability. They are important characteristics, but are often overlooked when you know you are just going to go back later and replace that chunk of code you just wrote. Maybe you'll write a small note to explain how to extend it later .... not 'good practise', but it's good for quick development of a usable product (ie. fulfilling test cases), which is an important aspect of XP.

      So really you just need to be able to see the big picture clearly by looking at the code. If you can do this, you can determine whether or not it is suitable to accept the new feature you are going to add or if the design needs to be rethinked (refactored) a bit. If you can spot the design from the code quickly, you can refactor efficiently. So all of the aspects that make code readable and understandable also make it easier to refactor or redesign.

      The way I see XP is, you start out with a small managable design that you can get a basic product with. When you want to add features, you determine whether or not the part of the code you're working on can handle the feature and redesign it if it doesn't. To me, refactoring more applies to the design than to the code itself (ie. the forest and not the trees). It may seem weird to code this way, but the result is that you ALWAYS have a functional version of the product ready to test and use - albeit in the early stages a very limited piece of software.

      But everyone probably has their own opinion of XP and refactoring. To explain refactoring outside of XP would probably take a lot more effort and experience than I have. :)

      I'd even question its usefulness outside of XP for large projects - programs designed the old way tend to be a nice enough design for version 1.0, with feature after feature after bugfix slapped on top of each other. It would be a lot less efficient to refactor in this environment, you can imagine - a lot of hands have touched this code and made it a hard to understand mess. You don't want to break this fragile beast. But it still might be worth your while ...

      --
      ----- rL
    4. Re:refactorable? by Tony-A · · Score: 2

      I think the point to refactoring is to leave things a bit better than you found them. Slowly the code quality oozes from terrible to mediocre to good to excellent. It works well, but does not fit into the instant gratification scheme of things.

    5. Re:refactorable? by Arker · · Score: 2

      Also, refactorable code is really more efficient to produce, because of its longevity, but in the short turn takes longer, if only because in order to write it the programmers would have to slow production" and no bean-counter would ever agree to that. It's totally counterintuitive to that deeply entrenched and enriched tie wearin boss man mindset. But if you want to write code that's going to be easy to update and fix, you have to slow down, think things through... bosses, however, are genetically programmed to want to see their employees working long hours, brows furrowed, pounding out code at a frantic pace on their keyboards.


      Sure, there are a few exceptions. But most of them are just passin.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
  86. Refactoring-- by schmaltz · · Score: 2

    To refactor code in object-oriented programming is just another way of saying you have to redesign a chunk of your class hierarchy to accomodate new features, or to eliminate bugs/bad behavior. If you're at the end of your release life cycle, and you're "refactoring", it probably means you've painted yourself into a design corner and you're now having to "refactor" your way out.

    The goal of good design, imnsho, is to avoid refactoring. One way to help yourself, your programming team and company do this is to employ design patterns. One of the main strengths of design patterns is, they force you, the designer/implementor, to consider strongly the long-term reusability and extensibility of your code. If you've worked with any of the standard design patterns from the "Gang of Four" book, you'll know what I mean (written by Gamma, Vlissides, et al.)

    So, when he talks about "refactoring" things from ten down to one, yes, it sounds like he's found a way to save some coding or CPU time, maybe, but it also sounds like he wasn't generic or abstract enough to accomodate whatever new feature got added.

    --
    Big Daddy, Johnny, Burp, Aunt Zelda, Scott, Slurp, Big Momma ... where's Siggy?
    1. Re:Refactoring-- by Samrobb · · Score: 1
      The goal of good design, imnsho, is to avoid refactoring.

      Hmm. I'd have to disagree - I'd argue that refactoring is not a replacement for good design, but an adjunct to be used in those places where the design, for whatever reason, is determined to be inappropriate.

      This can happen for any nubmer of reasons external to the design itself. If you're working on a 2-year project, and your target marketplace undergoes an economic upheaval a year into development... well, you might end up re-evaluating your original design. Or your implementation may expose a bug in a 3rd-party application or even the operating system iteself that you cannot fix, cannot get fixed, and therefore have to work around (by changing the design, if you happen to be very unlucky. We were.) Finally, of course, the design my have been produced by someone or some group who either just missed some subtle or not-so-subtle points when producing the design.

      These things happen - I've seen both, at more than one company. The designs were good, but they were created with certain assumptions. IMHO, this is where refactoring is valuable. If you have designed and implemented your code with refactoring in mind, you are essentially saying that one of the design assumptions you have made is that the design may need to be changed at some point if one of the other assumptions were wrong. . That's not "bad design" - if anything, it's an example of good risk management.

      --
      "Great men are not always wise: neither do the aged understand judgement." Job 32:9
    2. Re:Refactoring-- by humblecoder · · Score: 1
      No offense, but it doesn't sound like you know what refactoring is. Refactoring, as defined in the book by Fowler of the same name, has little to do with redesigning. Refactoring involves restructing code without breaking it. Usually this involves incremental changes to the code, and running unit tests in between each change to ensure that the code doesn't break. I would argue that refactoring is a much lower-level activity than redesigning.

      Visit the refactoring web site if you want to learn more about what refactoring is (and isn't).

  87. Re:What do you expect from a faggot? by Anonymous Coward · · Score: 0

    well, how the hell has he been programming for 20 years if just graduated in 1991? He is a lier also? Anybody knows more?

  88. Re:news flash: weenie apps suxk by Anonymous Coward · · Score: 0

    Afraid of say what??? Dull, functional M$ apps, eh ... not the low-beta, 6-fingered webtoed weenie abortions that currently populate the *nix world ... eh? Ya probably think GIMP is worth two-piles a dog-crap --- don'tcha ...

  89. Re:What do you expect from a faggot? by Anonymous Coward · · Score: 0

    WHAT THE HELL IS WRONG WITH YOU?!!?

    That is extremely poor taste and not a bit funny.

    Your Mod should be (Score:-10, Deserves a Shit Kicking.)

  90. win proggies didn't always migrate to OS2 by Anonymous Coward · · Score: 0

    Actually, winX proggies were a bitch in general to migrate to OS2. Yeahyeah they wuz supposed ta come right over just CLICK the migrate button and ... half the time nothing happened but an OS2 syscrash!

  91. And who the heck is that guy? by Alex+Belits · · Score: 2

    What, slashdot would link to any arrogant asshole's interview only because his opinion is unpopular? And why is he answering to comments here in the form of "interview"? Can't he just umm... write comments here like we do, and be flamed in a regular course of things?

    --
    Contrary to the popular belief, there indeed is no God.
  92. You are all missing the point! by humblecoder · · Score: 2, Insightful
    I've read a lot of the comments on here, and I think that many of you are missing the point of his argument that rewriting is bad. If you re-read the article and if you read his original rant about rewriting code on his web site, you will see that he doesn't say that you should never rewrite code. He is saying that if you choose to rewrite code, you better have a sound business case for rewriting the code.


    I think his position stems from the fact that we coders out there love to rewrite things on a whim. Often times we as coders like to work with pristine code, and we find ugly code offensive (even if the ugly code works). However, his take is that unless you can show that the cost of rewriting outweighs the benefit, you should leave the code alone.


    In most cases when you have a piece of working code that does the job, the cost of rewriting it from scratch is very VERY high (higher than we coders think). Therefore, you should think long and hard before going down that path.


    At the first company I worked at out of school (a large financial institution), I had the misfortune of working on a large, monolithic FORTRAN app. This app was one of the worst messes I have ever seen. It was originally written by a financial guru who knew just enough about programming to be dangerous. In time, many programmers had come and gone and added their own bug fixes and feature to the code. By the time I had gotten to it, it was a bear to make changes to. My first thought was that this app should be rewriting from the ground up. In fact, I started working on a project to replace the app. After a few weeks I came to the realization that rewriting the app was a waste of time.


    The fact is that old FORTRAN app worked! To create an new app that would completely mimic the old thing would take many, many man-years. Sure modifications to the old app were a pain. However, it took less time to make the modifications to the old app than it would take for me to rewrite the whole thing.


    In the end I put aside my snobbish attitude and learned a little FORTRAN!

  93. Re:I never contradict myself ... well sometimes I by humblecoder · · Score: 1
    Repeat after me:

    rewriting from the ground up != refactoring a function

    [Ooops... I see that your post is modded as Flamebait. You win :-)]

  94. Incorrect. by avdi · · Score: 2

    Refactoring has nothing to do with adding features or eliminating bugs. If you are doing either of those things, what you are doing is not refactoring. Refactoring is rearranging the internals of your code to eliminate duplication and increase modularity, without changing existing behaviour at all.

    --

    --
    CPAN rules. - Guido van Rossum
  95. Maybe... by dmouritsendk · · Score: 1

    his wife just have a really wierd thing with penguins.. i wonder if there is such a thing as pengu-fobi :)

  96. Support by Anonymous Coward · · Score: 0

    But in any case, M$ doesn't bear the cost of supporting those people.

  97. Efficiency vs safety by Anonymous Coward · · Score: 0

    Joel's talking about efficiency. Waffle Iron's talking about safety. Consider spacer's economy from any good SF book - the second of anything is never unnecessary.

  98. you answer yourself by twitter · · Score: 2
    I know of at least one case where we're still running Win 3.1 on about 100 desktops to support one of these ancient apps.

    So, the new M$ OS is not as backwards compatible as they say? No Way! I would not believe it if it were not true at each "upgrade".

    As this is true, why do so many people cling to the insecure, ineficient and ugly "products" M$ keeps reselling? Joel can sit around and justify MicroSoft's ugly junk all day long. The free world has run circles around his increasingly irrelavant dinosaur, rewriting everything from the ground up multiple times AND making good use of shared and reusable code. M$ has been so busy advertising, squashing the "competitors" who made their platform useful to begin with, and building "security" for pimpy music publishers and their own goofey office suite that their core software looks terribly ancient. What is left to differentiate thier junk from the rest of the world's software but the ease of monopoly forced preloads, and access to closed hardware interfaces that gaurantee your current computer will break in two years and the hardware will not work it's replacement? Phthththtt!

    Enough time wasting here, that article on Maryland's county wide LAN for everyone looks like much more fun. I wonder if they run a Debian mirror on it yet...

    --

    Friends don't help friends install M$ junk.

  99. Hrm... by Cossie · · Score: 1

    Building an entire new article around comments on the last article that came from people that he obviously doesn't respect much. Anyone else find this a bit... off?

  100. Re:I never contradict myself ... well sometimes I by Zero__Kelvin · · Score: 2


    "What he's saying is 'If I'm working on Foo.bar, and it's got 10 functions, if I'm in function 1, I might notice a better way to do what function 1 does, so I implement it. Better program.'

    Actually, I did a search on the text, and he doesn't say that anywhere. You mean that what you choose to interpret his words to mean is ... [quote from above]

    He talks about the folly about recoding from the ground up. It's a matter of scale. He ... for some bizarre reason ... advocates recoding from the ground up at the functional level, but is whole-heartedly against the same thing when a higher level of abstraction is involved.

    His argument is easily defeated. If I have a 10,000 line uncommented buggy program in an obsolete language that does something I can pull of in C with a single function call ... should I *really* keep the original because it's worked up until now? Of course not. Case closed.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  101. Re:I never contradict myself ... well sometimes I by SuiteSisterMary · · Score: 2

    He advocates incremental fixes as they seem appropriate, as opposed to throwing out all previous work and starting from scratch as the 'this will fix everything' solution.

    --
    Vintage computer games and RPG books available. Email me if you're interested.
  102. Interview cites Slashdot to refute Linux on Deskt by ahde · · Score: 2

    Interviewer: Slashdot, as you know, is a citadel of Linux True Believers...However, to date, as a desktop OS and competitor to Windows, it's been a bust.

    The interview prefaces with a description about the last time their site was mentioned on Slashdot:

    Visits to www.softwaremarketsolution.com shot to 40K page views in a single day and in turn generated a lively new thread on Slashdot about the ideas and viewpoints expressed in the interview.

    And they're arguing against Linux on the desktop?!?

    The success of Slashdot is directly related to the success of Linux on the desktop. Yes, there are Windows using readers, and god knows even I've tried reading it with Lynx, but by and large, Slashdot is the end users of Linux.