This suddenly hits home for me. I've been thinking for a while about a new software-based product/service and I'm in the steps of developing a business plan in order to raise money.
As I step through possible scenarios in my head, patents come up. I believe I would be offering a genuinely new product, and that makes me think I can patent it and gain the entire market. Suddenly, patents don't seem so bad.
On the other hand, I understand that a patent would mean there's no competition in any given space, that innovation to reduce the price of said product/service (a net win for consumers everywhere) would never happen.
But wouldn't a company earning large profits from the patents expand, grow, create jobs, pay more taxes, and get the wheels of the economy going? Now that I'm in a position to possibly use a patent, they become easy to rationalize.
When they were only a theoretical exercise for me, patents seemed like they would have adverse affects on innovation.
I suppose the real danger is my unknowing infringement of another's patent and the hilarity that would ensue.
... years ago. He noted in his book (I forget which one) that content is king. He drew an analogy to the TV industry. Instead of focusing on the hardware which will become commoditized, Bill saw that the content was the real money maker. TVs today are made by cheap 3rd world countries. Content is made by billion dollar studios. Tomorrow's PC OS will become commoditized (linux, anyone?), but content will still be king.
The hardware (TV, PC, whatever) is just the vessel. If this is the case (and I tend to agree), then Apple seems to have the lead with distributing content over the PC.
To the rag that is the Wash. Times: Let them scan!
on
Reining in Google
·
· Score: 4, Interesting
1. The Washington Times != The Washington Post. One is a bastion of DC journalism. The other is only slightly better than a tabloid.
2. Let Google scan. Let me search. Only by having Google's (or someone's) index available will I be able to easily find a book I never knew existed. The Dewey Decimal System's got nothing on full text indexing.
Both MS Office and OpenOffice (or any other Office suite, web app, etc.) should comply to the federal mandate for accessibility.
I am giving OpenOffice the benefit of the doubt by assuming the software is Section 508 compliant. I can see perfectly well so I cannot ascertain its compliance. I like to believe that Sun and whomever else backs OO.o understands accessibility.
I think these Senators have recently been in backroom talks with some unnamed software company from Redmond, WA. The alliance backing open document formats in MA should follow the money trail and see if any donations have been made to the senators in question.
If OpenOffice is, in the end, inaccessible and non-508, shame on the open source community.
A new "standard" is to make everything into a Service Oriented Architecture. XML is the new standard for everything from communication and messaging, to remote procedure calls, to application configuration.
Microsoft integrated XML pretty deep into.NET, so naturally they are trumpeting the usefulness of the XML standard and SOA. Have you noticed they sell tools? Have you noticed the implementations for SOA are so difficult that you need tools to create it? ($$$ for VS.NET, just to add [WebMethod] to a C# class)
All this hype about Ajax is great, but too many people are drinking the koolaid, exposing xml web services, and actually parsing XML in the client. Have you actually tried parsing xml using xmlHttpRequest? It's painful. Javascript Object Notation (www.json.org) is 100x simpler to use... and it just so happens to be a language feature of Javascript and Python. It's code AND data. XML is just data and a bitch to parse. This is just one little example of people not thinking critically and swallowing -- hook, line, and sinker -- whatever is marketed at them.
That is what you get when you have average developers of average ability following the average standard.
Again, I could be entirely wrong. Your mileage may vary. I find that simple solutions are always the best ones, despite whatever marketing hype you hear about a standard from MS, Sun, Oracle, or anyone else.
Assuming a normal distribution on the bell curve, aiming for "standard" is to aim right for the big, juicy middle of the curve. Doesn't that mean you're aiming for average overall?
What does it mean to have or be a "standard"? Average business practices? Average technology? "Average" doesn't sound too bad, but the word "mediocre" sure does. As a business owner, I would hate to have mediocre technology.
When your software is online, running on servers, controlled entirely by you... why go for average or mediocre? Why not be smart about it and go for something simple that bucks the "standard" trend? (SOA comes to mind).
Critical thinking and a complete disregard for standards (especially tech standards driven by corporations with marketing agendas) is useful when creating your own technology. It's the only way to break out of "mediocre".
1. Make it work.
2. Make it work well.
3. Make it work fast
And #3 is the most interesting... how fast is fast? In an absolute sense, sure, C/C++ will always be faster. But does the end user notice this in a webapp? NO!
I have a p3 450mhz box running Tomcat/MySql. It serves my local applications fast enough. The server can render the page much more quickly than my browser (on a p4 1.5ghz box) can render it. As a webapp, java on an old machine is plenty fast.
Java as a desktop GUI is an altogether different story, but I'm not using java on the desktop. This point is moot to me.
"Fast enough" to not be noticeable. That is the secret of #3. In a webapp, this is easily achieved in java.
Will this announcement or even the first several versions of a web office suite dethrone MS Office? Of course not!
Actually, though, the concept of versions becomes a little irrelevant, don't you think? I suspect they'll launch a version 1 as soon as they possibly can. The marketing types will hype up a version 2 and version 3, but the engineers will know better. They'll be able to incrementally update their software every day, if they so choose. Zillions of little changes will evolve this suite into something special.
As for MS Office compatibility... I assume that they will one day give users the ability to upload a.doc file and have it render well in their web office. This might be in version 1, because it is pretty damned important.
The world is changing alright. Schwartz's comment might be full of hubris, but he's right (though he might not be able to honestly take credit). Interactive web applications and ever increasing broadband will ultimately trump the desktop. If you don't believe this, then you don't appreciate deploying a webapp versus local installations.
I will be able to install this office suite by typing in a URL and hit ctrl-enter. When they update the software to version 2, 3, 4, and 5, I'll have each one instantly.
The desktop is (ultimately) doomed. It'll take a while, but webapps are the way to go for a large percentage of needs. Even Bill Gates knows this.
A gov't contractor I worked for was getting a contract to consolidate multiple servers and apps into a single pair of servers (web and db) for a small gov't agency.
The agency bought a pair of dual proc Dells with lots of RAM and a full software stack (Windows Server, SQLServer, and ColdFusion Server). Total cost: ~$57,000.
That's right, nearly 60k.
Now, I've read that Google buys their white boxes at $1k each for their server farm. And I couldn't help but think what they'd (or I) would do with 57 boxes instead of 2.
But hey, my opinion doesn't matter. I'm not a PHB in a gov't agency. But sure as hell, if I were a business in a competitive environment (and a gov't agency is not), I'd be looking to implement the simple and effective white box solution on the cheap. But that's just me.
Read "How to Win Friends and Influence People" and practice what it says.
No one likes a complainer. No one likes the negative guy.
Be positive. Suggest good things. Don't get your panties in a bunch if things don't go your way.
Remember that everyone has an opinion and it's quite possible to be equally valid to your's. And that's what politics is: managing people and everyone's desires to some degree of consensus.
JSON is a much better mechanism for handling data transmission in AJAX applications.
Why? Less verbose (easier on bandwidth) and no parsing (ever tried parsing XML using XmlHttpRequest? It sucks). JSON is object syntax. It is a real, live object serialized to string.
It just so happens that JSON is also legal Python object notation.
Hmmm... GMail, Google Maps, Google Suggest... none of these use XML. Google is also renowned for using Python. JSON syntax is the same in client-side javascript and server-side python... hmmm... makes me think twice, anyway, instead of drinking the web services kool-aid Sun and Microsoft are serving.
and if what Jobs says is accurate -- that the record companies make more profit from an iTunes song than physical media -- then yeah, I'd tend to agree that they're being greedy.
As the price of reproduction drops, the price of the item should drop correspondingly. At least that's how the economic theory goes. Profit margins drop but profits are made through bulk sales, much like today's commodity ethernet cards and memory chips. It allows for many companies (or artists) to create a product, spurring competition, providing choice. All of this is good for the consumer.
...though maybe not the JDS, but open source certainly.
Why any rationally thinking country would want to be at the mercy of a foreign owned commercial entity is beyond me.
Why any developed country would want their critical infrastructure and national security owned by a foreign owned commercial entity is beyond me. If France really hates us, why on earth would they want to be locked in to MS?
As countries develop and take control of their own infrastructure, I wager they will actually want to control it, which means access to the source code.
Both companies make products that are HUGE! So big that they require fulltime administrators and/or consultants.
My question is: Who actually needs all this bloat? There are much simpler ways of implementing a solution that would work while saving on the license fees and consultants.
I work for a government contracting shop in Northern VA. We're living high on the government hog, and one of our clients wanted to implement Documentum. This product is so big, they've created entirely separate applications (each measuring many megs in size) just to install and configure the application. As a programmer, I am frustrated trying to maintain this. Why can't it Just Work(tm) when you drop a WAR file into the/webapps directory (Documentum is java-based, and their webtop application's WAR is 128mb).
Consultingware is a phenomenon that I just don't understand. Our client has no need for 90% of Documentum's functionality. They just wanted to share files on the web. They've spent millions on servers, licenses, and consultants (including my company) to install and maintain it. I could have written something much smaller that fit their needs, and saved them most of their money.
I don't know, maybe this is just a gripe. But when something feature-rich like PostgreSQL is available and you're hiring talented coders to maintain a HUGE application instead of writing a very small and lean one... well, I just don't get it.
Every line is code comes with a price tag. The less code the better. The smaller and simpler solution the better. Less is more. This is important when you're trying to keep costs low and compete in a competitive marketplace, which I suppose is not happening with a gov't client or a big honking corporation.
But I don't expect everyone (anyone?) to agree with me.
Everyone has been bitching about open standards forever. It is what we need more than open source software.
That said, open standards means open source will eventually win. As word processing formats (a la what's happen in MA) become standard, then the software will become commoditized. It's the end of MS Office's reign. OpenOffice can and will quickly implement the standard, and no one would have a reason to use MS Office anymore.
Open standards are the death knell for MS's monopoly, and they know it. Expect MS to fight tooth and nail every step of the way.
Once we have open standards and everyone is coding to that standard, the consume will win. The consumer will have choice and competition will make the software smaller, faster, more secure, and more plentiful.
The software in the space shuttle cannot fail. billions of dollars and people's lives are on the line, so it cannot fail.
At CMM level 5, you don't fix the bug when you find it. You fix the process that let the bug happen in the first place.
CMM Level 1 is no process. anything goes, really.
CMM Level 2 is fixing the bug and documenting that you found it. That more or less boils down to using a bug tracking system, keeping good version control, and everyone following this process.
CMM Level 3 is the software engineering level. that basically means that everyone in your organization builds their software similarly (software design and documented use of design patterns is good here).
Levels 4 and 5 is all about keeping a database of your processes and fixing your processes. Process flaws cause bugs, not code errors. You don't fix your code, you fix your process.
It's important to note the budget for the team writing the space shuttle code. Lots and lots of money and lots and lots of time go into that software. Ordinary application writers like us don't get that luxury.
I have neither a certification from a major vendor nor a CS degree. And I'm asked time and again how/why I got my computer skills. I'm knowledgeable and well read, but the lack of the "piece of paper" is glaring to employers.
Students with the 4.0GPAs with CS degrees might come out of school and not know jack about shit, while the self-taught guy with a 2.8 in Liberal Arts might code rings around the former. That's a fact.
I am in the process of getting certified and I would relish the opportunity to go back to school and get a CS degree. But the cert is a notch on my resume and a clear win in the short term. Once I'm in the door I know I can do well.
It's all about getting the toe in the door. Get the "piece of paper".
Summary: Windows and Linux both scale technologically, but only Linux scales financially. In the hands of the right people, Linux and open source software is a competitive advantage that cannot be matched by proprietary software.
In a world where software is migrating to the server, it does not matter what operating system you use, which web server you deploy, or what language you choose for your software. What matters is that it works and works well.
The executive summary mentioned that Linux and Open Source are a competitive advantage in the hands of the "right people." Who are these people? They are the best and the brightest that you want your company to hire. If you employ average or sub-average programmers to build your software on a system that constrains what you can do and limits the creativity of truly great programmers, your product will be average or sub-average. Conversely, if you hire the smartest and most creative programmers and give them limitless freedom in terms of what they can do with a system, you get the best product your money can buy.
What freedoms are denied programmers using a closed source, proprietary OS and web server? The source code, of course, but few people are likely to actually understand and modify the Linux kernal. The freedom that is denied programmers is the "framework" provided the average programmer to work with.
While not exactly open source and free, Java and J2EE provides freedoms not found in.NET and IIS. It drives some programmers crazy.
J2EE is a specification and a series of interfaces, which are pieces of code that describe code. An incoming request to a webserver, for example, is defined by the interface HttpServletRequest. The actual implementation is left to your webserver vendor. You have the freedom to implement your own HttpServletRequest, as the author of this report has done. You can create a simple, mock Request that would provide just enough functionality to test your server-side code offline. You wouldn't need a running webserver for this. You wouldn't need testers pointing and clicking on a web page to test. It could be handled automatically in the middle of the night while you are sleeping.
.NET and IIS, on the other hand, provide no such convenience. HttpRequest in.NET is a "sealed" class, meaning it cannot be extended for your own use. It is not an interface, so you canot provide your own definition of how it should behave. You are forced to use it one way only: the way Microsoft tells you to use it. The "average" programmer mentioned above is very likely to put much of an application's business logic in an ASPX "code behind" page. How can this be easily tested, offline, in an automated fashion? The short answer is it can't, or not easily, not without writing your own offline version of IIS. The.NET Framework dictates to the programmer exactly how they should write code. Expert programmers find this maddening.
When expert programmer's control the entire software stack from webserver to OS and can choose the tools that provide them the most freedom, they will run circles around the average programmer who's forced to code in a way dictated by another. The expert programmers will win every time.
In summary, you should choose the best tools that provide the most freedom to the smartest programmers you can find. Doing otherwise is to deliberately choose "average" or "sub-average", which is not a winning solution in the long run.
As I step through possible scenarios in my head, patents come up. I believe I would be offering a genuinely new product, and that makes me think I can patent it and gain the entire market. Suddenly, patents don't seem so bad.
On the other hand, I understand that a patent would mean there's no competition in any given space, that innovation to reduce the price of said product/service (a net win for consumers everywhere) would never happen.
But wouldn't a company earning large profits from the patents expand, grow, create jobs, pay more taxes, and get the wheels of the economy going? Now that I'm in a position to possibly use a patent, they become easy to rationalize.
When they were only a theoretical exercise for me, patents seemed like they would have adverse affects on innovation.
I suppose the real danger is my unknowing infringement of another's patent and the hilarity that would ensue.
The hardware (TV, PC, whatever) is just the vessel. If this is the case (and I tend to agree), then Apple seems to have the lead with distributing content over the PC.
1. The Washington Times != The Washington Post. One is a bastion of DC journalism. The other is only slightly better than a tabloid.
2. Let Google scan. Let me search. Only by having Google's (or someone's) index available will I be able to easily find a book I never knew existed. The Dewey Decimal System's got nothing on full text indexing.
I am giving OpenOffice the benefit of the doubt by assuming the software is Section 508 compliant. I can see perfectly well so I cannot ascertain its compliance. I like to believe that Sun and whomever else backs OO.o understands accessibility.
I think these Senators have recently been in backroom talks with some unnamed software company from Redmond, WA. The alliance backing open document formats in MA should follow the money trail and see if any donations have been made to the senators in question.
If OpenOffice is, in the end, inaccessible and non-508, shame on the open source community.
Microsoft integrated XML pretty deep into .NET, so naturally they are trumpeting the usefulness of the XML standard and SOA. Have you noticed they sell tools? Have you noticed the implementations for SOA are so difficult that you need tools to create it? ($$$ for VS.NET, just to add [WebMethod] to a C# class)
All this hype about Ajax is great, but too many people are drinking the koolaid, exposing xml web services, and actually parsing XML in the client. Have you actually tried parsing xml using xmlHttpRequest? It's painful. Javascript Object Notation (www.json.org) is 100x simpler to use... and it just so happens to be a language feature of Javascript and Python. It's code AND data. XML is just data and a bitch to parse. This is just one little example of people not thinking critically and swallowing -- hook, line, and sinker -- whatever is marketed at them.
That is what you get when you have average developers of average ability following the average standard.
Again, I could be entirely wrong. Your mileage may vary. I find that simple solutions are always the best ones, despite whatever marketing hype you hear about a standard from MS, Sun, Oracle, or anyone else.
What does it mean to have or be a "standard"? Average business practices? Average technology? "Average" doesn't sound too bad, but the word "mediocre" sure does. As a business owner, I would hate to have mediocre technology.
When your software is online, running on servers, controlled entirely by you... why go for average or mediocre? Why not be smart about it and go for something simple that bucks the "standard" trend? (SOA comes to mind).
Critical thinking and a complete disregard for standards (especially tech standards driven by corporations with marketing agendas) is useful when creating your own technology. It's the only way to break out of "mediocre".
I could be wrong. Your mileage may vary.
In the United States, business firms patent you!
1. Make it work.
2. Make it work well.
3. Make it work fast
And #3 is the most interesting... how fast is fast? In an absolute sense, sure, C/C++ will always be faster. But does the end user notice this in a webapp? NO!
I have a p3 450mhz box running Tomcat/MySql. It serves my local applications fast enough. The server can render the page much more quickly than my browser (on a p4 1.5ghz box) can render it. As a webapp, java on an old machine is plenty fast.
Java as a desktop GUI is an altogether different story, but I'm not using java on the desktop. This point is moot to me.
"Fast enough" to not be noticeable. That is the secret of #3. In a webapp, this is easily achieved in java.
Actually, though, the concept of versions becomes a little irrelevant, don't you think? I suspect they'll launch a version 1 as soon as they possibly can. The marketing types will hype up a version 2 and version 3, but the engineers will know better. They'll be able to incrementally update their software every day, if they so choose. Zillions of little changes will evolve this suite into something special.
As for MS Office compatibility... I assume that they will one day give users the ability to upload a .doc file and have it render well in their web office. This might be in version 1, because it is pretty damned important.
The world is changing alright. Schwartz's comment might be full of hubris, but he's right (though he might not be able to honestly take credit). Interactive web applications and ever increasing broadband will ultimately trump the desktop. If you don't believe this, then you don't appreciate deploying a webapp versus local installations.
I will be able to install this office suite by typing in a URL and hit ctrl-enter. When they update the software to version 2, 3, 4, and 5, I'll have each one instantly.
The desktop is (ultimately) doomed. It'll take a while, but webapps are the way to go for a large percentage of needs. Even Bill Gates knows this.
The agency bought a pair of dual proc Dells with lots of RAM and a full software stack (Windows Server, SQLServer, and ColdFusion Server). Total cost: ~$57,000.
That's right, nearly 60k.
Now, I've read that Google buys their white boxes at $1k each for their server farm. And I couldn't help but think what they'd (or I) would do with 57 boxes instead of 2.
But hey, my opinion doesn't matter. I'm not a PHB in a gov't agency. But sure as hell, if I were a business in a competitive environment (and a gov't agency is not), I'd be looking to implement the simple and effective white box solution on the cheap. But that's just me.
No one likes a complainer. No one likes the negative guy.
Be positive. Suggest good things. Don't get your panties in a bunch if things don't go your way.
Remember that everyone has an opinion and it's quite possible to be equally valid to your's. And that's what politics is: managing people and everyone's desires to some degree of consensus.
Why? Less verbose (easier on bandwidth) and no parsing (ever tried parsing XML using XmlHttpRequest? It sucks). JSON is object syntax. It is a real, live object serialized to string.
It just so happens that JSON is also legal Python object notation.
Hmmm... GMail, Google Maps, Google Suggest... none of these use XML. Google is also renowned for using Python. JSON syntax is the same in client-side javascript and server-side python... hmmm... makes me think twice, anyway, instead of drinking the web services kool-aid Sun and Microsoft are serving.
As the price of reproduction drops, the price of the item should drop correspondingly. At least that's how the economic theory goes. Profit margins drop but profits are made through bulk sales, much like today's commodity ethernet cards and memory chips. It allows for many companies (or artists) to create a product, spurring competition, providing choice. All of this is good for the consumer.
Yeah, the RIAA is still trying to stick it to us.
Would you, personally, want all your personal IT, your company's IT, and your country's IT controlled by, say, a company in Russia or Germany?
Why any rationally thinking country would want to be at the mercy of a foreign owned commercial entity is beyond me.
Why any developed country would want their critical infrastructure and national security owned by a foreign owned commercial entity is beyond me. If France really hates us, why on earth would they want to be locked in to MS?
As countries develop and take control of their own infrastructure, I wager they will actually want to control it, which means access to the source code.
at the same story for a story submission :)
My question is: Who actually needs all this bloat? There are much simpler ways of implementing a solution that would work while saving on the license fees and consultants.
I work for a government contracting shop in Northern VA. We're living high on the government hog, and one of our clients wanted to implement Documentum. This product is so big, they've created entirely separate applications (each measuring many megs in size) just to install and configure the application. As a programmer, I am frustrated trying to maintain this. Why can't it Just Work(tm) when you drop a WAR file into the /webapps directory (Documentum is java-based, and their webtop application's WAR is 128mb).
Consultingware is a phenomenon that I just don't understand. Our client has no need for 90% of Documentum's functionality. They just wanted to share files on the web. They've spent millions on servers, licenses, and consultants (including my company) to install and maintain it. I could have written something much smaller that fit their needs, and saved them most of their money.
I don't know, maybe this is just a gripe. But when something feature-rich like PostgreSQL is available and you're hiring talented coders to maintain a HUGE application instead of writing a very small and lean one... well, I just don't get it.
Every line is code comes with a price tag. The less code the better. The smaller and simpler solution the better. Less is more. This is important when you're trying to keep costs low and compete in a competitive marketplace, which I suppose is not happening with a gov't client or a big honking corporation.
But I don't expect everyone (anyone?) to agree with me.
Sungeth Afroman: "I was gonna make a standard, but then I got high..."
That said, open standards means open source will eventually win. As word processing formats (a la what's happen in MA) become standard, then the software will become commoditized. It's the end of MS Office's reign. OpenOffice can and will quickly implement the standard, and no one would have a reason to use MS Office anymore.
Open standards are the death knell for MS's monopoly, and they know it. Expect MS to fight tooth and nail every step of the way.
Once we have open standards and everyone is coding to that standard, the consume will win. The consumer will have choice and competition will make the software smaller, faster, more secure, and more plentiful.
You insensitive clod!
Why, oh, why would MySql risk their reputation knowing how SCO looks to the entire open source community?
Those who do not understand Unix are condemned to reinvent it, poorly.
The software in the space shuttle cannot fail. billions of dollars and people's lives are on the line, so it cannot fail.
At CMM level 5, you don't fix the bug when you find it. You fix the process that let the bug happen in the first place.
CMM Level 1 is no process. anything goes, really.
CMM Level 2 is fixing the bug and documenting that you found it. That more or less boils down to using a bug tracking system, keeping good version control, and everyone following this process.
CMM Level 3 is the software engineering level. that basically means that everyone in your organization builds their software similarly (software design and documented use of design patterns is good here).
Levels 4 and 5 is all about keeping a database of your processes and fixing your processes. Process flaws cause bugs, not code errors. You don't fix your code, you fix your process.
It's important to note the budget for the team writing the space shuttle code. Lots and lots of money and lots and lots of time go into that software. Ordinary application writers like us don't get that luxury.
Students with the 4.0GPAs with CS degrees might come out of school and not know jack about shit, while the self-taught guy with a 2.8 in Liberal Arts might code rings around the former. That's a fact.
I am in the process of getting certified and I would relish the opportunity to go back to school and get a CS degree. But the cert is a notch on my resume and a clear win in the short term. Once I'm in the door I know I can do well.
It's all about getting the toe in the door. Get the "piece of paper".
In a world where software is migrating to the server, it does not matter what operating system you use, which web server you deploy, or what language you choose for your software. What matters is that it works and works well.
The executive summary mentioned that Linux and Open Source are a competitive advantage in the hands of the "right people." Who are these people? They are the best and the brightest that you want your company to hire. If you employ average or sub-average programmers to build your software on a system that constrains what you can do and limits the creativity of truly great programmers, your product will be average or sub-average. Conversely, if you hire the smartest and most creative programmers and give them limitless freedom in terms of what they can do with a system, you get the best product your money can buy.
What freedoms are denied programmers using a closed source, proprietary OS and web server? The source code, of course, but few people are likely to actually understand and modify the Linux kernal. The freedom that is denied programmers is the "framework" provided the average programmer to work with.
While not exactly open source and free, Java and J2EE provides freedoms not found in .NET and IIS. It drives some programmers crazy.
J2EE is a specification and a series of interfaces, which are pieces of code that describe code. An incoming request to a webserver, for example, is defined by the interface HttpServletRequest. The actual implementation is left to your webserver vendor. You have the freedom to implement your own HttpServletRequest, as the author of this report has done. You can create a simple, mock Request that would provide just enough functionality to test your server-side code offline. You wouldn't need a running webserver for this. You wouldn't need testers pointing and clicking on a web page to test. It could be handled automatically in the middle of the night while you are sleeping.
.NET and IIS, on the other hand, provide no such convenience. HttpRequest in .NET is a "sealed" class, meaning it cannot be extended for your own use. It is not an interface, so you canot provide your own definition of how it should behave. You are forced to use it one way only: the way Microsoft tells you to use it. The "average" programmer mentioned above is very likely to put much of an application's business logic in an ASPX "code behind" page. How can this be easily tested, offline, in an automated fashion? The short answer is it can't, or not easily, not without writing your own offline version of IIS. The .NET Framework dictates to the programmer exactly how they should write code. Expert programmers find this maddening.
When expert programmer's control the entire software stack from webserver to OS and can choose the tools that provide them the most freedom, they will run circles around the average programmer who's forced to code in a way dictated by another. The expert programmers will win every time.
In summary, you should choose the best tools that provide the most freedom to the smartest programmers you can find. Doing otherwise is to deliberately choose "average" or "sub-average", which is not a winning solution in the long run.