Why Religious Wars are Stupid
Yesterday I made what I thought was a lightweight claim about how the "choice" of languages in .NET is not as much of a choice as you might think.
Some people assume that this means I am against .NET, or I'm "clueless," because I don't understand the productivity benefit of managed code.
OK, they didn't read what I wrote less than a month ago praising the productivity of .NET.
Of course, when I wrote that, some people assumed it meant I was for .NET, and dug up an old article from two years ago in which I complained that an early white paper on .NET didn't say anything. (It was true, the white paper didn't, and .NET didn't ship for 2 years). So I'm a hypocrite because I used to be against .NET and now I'm for .NET.
Anything as complicated as .NET is bound to have many positive aspects and many negative aspects. Duh. The stupid thing about religious wars is when one person says, "you don't get as much language choice as you think" and the other person says, "you are clueless, because you're 4-6x more productive!" What a waste of time.
The World Is Complicated. Get Used To It.
Some people can't. Look at how angry Michel gets because I point out that (a) features sell products and (b) choices reduce usability. So? The whole point of design is that you have different goals that you need to resolve. Want to design a trashcan for street corner? You have to make it light so it can be emptied easily. You have to make it heavy so it won't blow away. You have to make it big so it will hold lots of trash and the trash won't blow out. You have to make it small so it won't take up too much space. You have to make it easy to throw trash in so people don't miss and litter. You have to make it hard for trash to get out so when it's windy the street doesn't litter itself. Design is all about making hard choices and, hopefully, sometimes, hitting upon elegant solutions that solve conflicting goals. But when you can't solve conflicting goals, you have to be smart enough to decide which goal to solve, and not just be a lazy punter and pretend that adding a checkbox to the options dialog will solve it.
Don't use Verisign. They suck, and there's no reason to use them. I've been using register.com for domain names (although namebargain.com is cheaper and run by register.com with the same excellent interface) and Commercelock, also run by register.com, for digital certificates. Commercelock is actually provided by Baltimore Technologies which charges a heck of a lot more for exactly the same thing.
You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.
I’m Joel Spolsky, co-founder of Fog Creek Software, a New York company that proves that you can treat programmers well and still be highly profitable. Programmers get private offices, free lunch, and work 40 hours a week. Customers only pay for software if they’re delighted. We make Trello, which lets you organize anything, together, FogBugz, enlightened issue tracking software for bug tracking, and Kiln, which provides distributed version control and code reviews. I’m also the co-founder and CEO of Stack Exchange. More about me.