Joel mentions that the two reasons MSFT could rewrite from scratch was because they had Heijlsberg and they had a "zillion" engineers working on it.

How about two more?
1) A monopoly position on the desktop that turns PC manufacturers into Microsoft console makers. Dell, Compaq, etc are beaten up when they just joke about preloading superior environments.
2) The software boom is over, and Microsoft is confident that it can "cut off the air supply" of any startup that it doesn't like.

None of these are new points. But I sort of thought that Joel would call a spade a spade. How can he even say ".NET appears so far to be one of the most brilliant and productive development environments ever created," when Joel also admits that he doesn't know the first thing of programming in it? Just because it stopped making older MS technologies difficult to program in?

Arguments welcome. Out of respect for Joel's wishes, I kept this out of his thread.

Samuel
Thursday, April 11, 2002

By the way, I would like to state that I'm interested in developing for the .NET framework. I think it's better than Java. But at least I'm not too optimistic about why it will be successful.

Samuel
Thursday, April 11, 2002

Joel's opinion on the brilliance of .NET undoubtedly is based on one thing (as are most of Joel's points about development in general): .NET will make developers more productive. Period.

The productivity gains that I've seen with .NET are astounding. Read Mike Gunderloy's post in Joel's thread for reference. If there is an integrated development environment that enables developers to be as productive as .NET on any of the *nix platforms, I'd like to know about it so I can start learning it immediately.

Programming on the Windows platform makes developers more productive, and Microsoft provides more support for developers than any other vendor out there, hands down.

Randy Holloway
Thursday, April 11, 2002

Hey Joel, Don't keep changing your arguments ...
How can you conclude that
"it's because .NET appears so far to be one of the most brilliant and productive development environments ever created."
And what had you told about .NET http://joelonsoftware.com/articles/fog0000000049.html

I admit am totally out of .net but had gone through the C# whitepapers and many other comparative studies on one of Anders Heilsbergs languages and C# and am happy with what am using and glad to know that you don't go for any religious war. Well Japanese might be a superior language after all. It could be just that it requires more marketing.

Sunish
Thursday, April 11, 2002

what 'keep changing'? That was 2 years ago. I'm not allowed to change my opinion once in 2 years?

Anyway, the main thing that's wrong about the old article is that I said that .NET - the development environment - is incremental, not revolutionary, and it turns out I was wrong. But the thrust of the old article is that Microsoft overhyped .NET two years ago, two years before it shipped, which is true.

Joel Spolsky
Thursday, April 11, 2002

Randy,

The main thing that disturbs me though is that Joel left out the dark reasons why Microsoft can just rewrite something from scratch. It has the monopoly to do so, and when Joel leaves things like this out, it sets him up to look biased.

It's not the technical reasons at work. If you want to rewrite, get a monopoly. Normal rules won't apply to you.

Then later, Joel gets away with praising .NET's greatness and giggling at its competitors, by saying let's not waste our time with "religious discussions." Frustrating! Joel doesn't have to look so biased.

But aside from that, it's a good article. Joel really has no choice but to adopt a smart .NET strategy.

Samuel
Friday, April 12, 2002

To err is humane and to admit is superhuman and here we have, Joel admitting he was wrong. That's really great.

But then you could again be wrong on the Japanese language part, I mean Delphi is perhaps better :-)

Sunish
Friday, April 12, 2002

What impact does everyone think that the .NET-alike efforts (dotGNU, Mono) will have on lowering the "porting barrier"?

By way of example: if Ximian were to be able to take some C# function or set of functions - say, sufficient to create a window with controls, etc - and have the code work on both Windows and Linux/Unix/whatever Mono runs under, would you consider "porting" to these other platforms? Does anyone think these projects have a chance at reducing the barrier to porting?

spiny norman
Friday, April 12, 2002

"But the thrust of the old article is that Microsoft overhyped .NET two years ago, two years before it shipped, which is true. "

MSFT has not heard of "Guerrilla Marketing", has it Joel. :-)

Prakash S
Friday, April 12, 2002

Perhaps they misheard "guerilla" as "gorilla".

Walter Rumsby
Friday, April 12, 2002

MS advertising for .NET in the UK is... well... cringe inducing. Or it would be if it didn't fill me with terror for the years ahead.

It's SO obviously not aimed at anyone technical. Chap boasting that when he started the companies IT systems weren't all joined together... but he's only been there a few months. All by the grave of .NET

People who are actual developers know that you could join systems together using C+, PERL, shell-scripts... batch files... it's nothing to do with the technology and everything to do with the purchasing department not raising a purchase order for the orders that either Fred or Joe deal with, until the supplier has delivered the stuff in which case stock control gets a handwritten note requesting the items to be carrier-pidgeoned to an office somewhere in the arctic circle. But there are no actual WRITTEN DOWN rules about these exceptions, no-one understands them all and at least two of them will be mutually exclusive...

It's aimed at the same people that bought into the Java myth that it would do the same thing and then ran away and hid in board meetings while other people asked the awkward questions about under what conditions exactly invoices didn't quite count as invoices and are filed in a different place...

Once again, we're going to have to put up with the unrealistic expectations of management who've bought a silver bullet at last (again) and get confused and angry when it turns out to be not quite so magic in practice.

Already I'm hearing tales of institutions in the UK who are ripping out their almost-working-but-not-magic-enough infrastructures in Java, to replace it all with .NET...

The less adventurous companies are STILL not letting people re-write the shite systems written in assembly language and clipper that don't work and rely on running on DOS 3.3, because now it can all be "fixed" with a skim of .NET over the top.

Personally, I think it's about time that, as professionals, people turned round and asked why we get ordered to change tools just after we work out where the "on" switch is on them.

Vernor Vinge got it completely right. In a thousand years, spaceships will fly between the stars, and they'll have wizzy but half-complete interfaces written in that year's new tool, and they'll have an antique PC running DOS 3.3 and some legacy app written in Foxpro buried in the ship core that no-one's every been able to update because the funding is always for work with This Year's Tool.

How many more times are we going to have to do this stupid dance before people get a handle on the fact that it's not the languages not being magic enough that's the problem, its that most business models seem more like ant colonies than something you draw in Rose.

{And yes. It has been a bad day.}

Katie Lucas
Friday, April 12, 2002

Spiny - I'm not 100% up on Mono/dotGnu, but from the last look I took, I don't think they're going to make it significantly easier to move real .NET applications to other platforms. They may well be able to do a fine job of implementing the CLI, but until they port the superstructure of the .NET Framework Class Library, I can't think of a single interesting application that I could easily port.

Mike Gunderloy
Friday, April 12, 2002

Suppose it's true - .NET does make developers more productive. I suspect this is only true in the short term, however. For sure, it makes you more productive only if you're developing for Microsoft platforms. That in itself is also fine; in my considered opinion, Microsoft has every right to do this.

In the long term, however, you're putting your productivity in the hands of a company with a vested interest in ultimately cutting off your air supply. You'll always have a ceiling on how successful your software can be; any better than that, and Microsoft will want to "absorb" your product into their OS. So you can be more productive, but only to a point.

Moreover, you're helping to perpetuate this trend where if you want the apps, you have to use Microsoft, and thus Microsoft can continue to use that to beat vendors into submission.

Paul Brinkley
Friday, April 12, 2002

Peopleware makes a mention that any change produced a measurable productivity increase (They called it "the hawthrone effect", if I'm not mistaken).

Is .net productivity increase for real, or a hawthorne effect? We'll have to wait a few years to tell. Java the language, for example, DOESN'T increase productivity - it's Java the environment that does. And frameworks that have more or less all of the Java environment functionality and ease of use have been there long before Java.

And Randy - about a Unix environment with such productivity gains - use Python. It's perfectly cross Platform, it has a high quality library that, while not as large as Java, covers 90% of what most people need (not the same 90% for everyone...). It's readable, it's easy to pick up (you can read it NOW, and in a day you can actually become effective writing it - I've taught a Python class a few years ago in which people wrote useful programs after a 3-hour lecture). It's complete, it scales, it embeds into applications easily, it compiles into Java bytecode if you insist (and a .net version will probably make a magical appearance soon). It supports many programming paradigms cleanly (functional, procedural, object oriented) at the same time, but doesn't force you into any of them.

It's not good for "hard real time" systems, and it's not as fast as one could hope; The latter problem has an incomplete, but promising solution in the works called Psyco. I'd say that for now, Python is the perfect prototyping environment, and for most areas also a competitive option.

Ori Berger
Friday, April 12, 2002

Programmers looking to learn Python should read "Dive Into Python" ( http://diveintopython.org/ ), or at least the first three chapters of it. It's geared towards those with experience in other languages already. It's free, it's downloadable, and it's quite good. I say this with the utmost bias, having written it. ;-)

Mark Pilgrim
Friday, April 12, 2002

"Peopleware makes a mention that any change produced a measurable productivity increase (They called it "the hawthrone effect", if I'm not mistaken)."

I'm guessing this was from a study done in an auto factory. They raised the lights to see what it did to productivity (increased it). They dimmed the lights to see what it did to productivity (increased it). It turned out the lights had nothing to do with it, the study did - the fact the people were being studied makde them more productive.

Another similar story (or another part of the same story) was that being talked to - having the things explained to you made you more productive.

Certainly that can have something to do with it. The willingness to do the work, being willing to accept lower quality work because you're 'learning' - all of these things can affect your subjective or even objective measure of speed in a given environment.

Mark W
Friday, April 12, 2002

The Hawthorne Effect was "discovered" in research at the Western Electric Hawthorne Plant in the late 1920s and early 1930s. The study was led by Elton Mayo, and is a classic of the industrial engineering literature.

"The occurrence of the Depression also encouraged job productivity, perhaps through the increased importance of jobs and the fear of losing them."

Funny, this is what Greenspan and Clinton attributed the 90's bull market to - increased worker fear, I believe do to globalization. I.e. "if you don't like your work conditions too bad, we can always take your jobs away to mexico."

Of course, I didn't hear them say this firsthand, so it's possible my source made it up, and being years later, I don't remember what the source was.