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."
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.
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?
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.
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
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?
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:
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.
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.
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.
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
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
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
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.