Only recently has it become possible to build an app that replicated built-in functionality, or that used any kind of scripting/code execution engine. For a long time, the only "alternate" browsers for iOS were simply custom skins around the WebKit browser engine that Safari Mobile was also using. Opera, as an example, violated both of those prohibitions (it was a complete replacement for Safari Mobile, and it included a JavaScript execution capability). As I understand it, Apple lifted those prohibitions at some point, but only after years of locking out developers of whole classes of features just because they were control freaks and they could. The market, as a whole, tolerated that BS. I didn't, and still don't.
There's also actually a rather active homebrew/hacking community for WP7 right now. Custom ROMs (including some nice new features, like installing app packages directly from the browser) are currently only available for HTC WP7 devices (and not for all of them) but Samsung devices like the Focus have the most accessible stock firmware for homebrew (everything from custom themes - pretty simple, really - to full filesystem access and bypassing the "does your carrier allow this?" check for the WiFi hotspot "tethering" feature).
If you're looking for a phone that has a more "trustworthy" marketplace than Android, but is a lot easier to tweak and hack on than an iPhone (with current firmware), get a first-gen Windows phone (the second gen ones haven't been unlocked yet, though people at XDA-Developers.com are working on it).
Out of curiosity, have you actually used WP7? I mean, your points are valid, but you make a claim about WP7 that contradicts the claims of those I know who have one (I live in Seattle, they're moderately common here this close to MS). Speaking as a developer, it's quite nice.
Your point? I challenge you to find anything WinCE-esque about WP7. Yes, technically the kernel is CE, but even app developers don't know (or need to know) that, unless they are trying to hack the thing. The kernel of Win7 is NT - same as Vista (they even share a major version number). The technology line of the kernel doesn't tell you that much. A lot of the old limitations of CE were removed, anyhow.
The thing that really matters is the full experience, and there is nothing about WP7 that resembles WinMo from a user perspective.
LOL you haven't a clue what Windows Phone is like, do you? If you weren't already at +5 I wouldn't even bother responding.
1.0 GHz single-core, 512 MB of RAM. It'll blow the socks off any Android device with similar specs in terms of UI smoothness, app launch time, or battery life (which on mobile devices is mostly determined by the amount of stuff running in the background). The gen2 devices typically have 1.4GHz, still single-core, and can outperform many dual-core Android models.
Oh, for the record, my main computer is a three-year-old laptop with Core 2 Duo (not quad) and 4GB of RAM (not 8). Win7 boots faster on it than Linux does, and large programs load quicker (due to better caching, using that RAM which you claim isn't even sufficient).
It's iOS-style "multitasking" for the most part (as distinguished from desktop/WinMo/Android-style). You can technically abuse the background task APIs to get almost true multitasking (or, with sufficient permissions, modify the app-backgrounding suspend/dehydration behavior to get full multitasking), but that's really only useful for homebrew - Microsoft won't accept an app that does such things into the Marketplace.
Marking a text box read-only should prevent the keyboard from showing up but still allow the user to select and copy text.
The screen designer built into Visual Studio is a bit of pain. The one in Expression Blend (which is explicitly designed for XAML, and a version of it specifically for WP7 XAML is included with the dev kit) is much better, though it is a new UI to learn. As for resolutions, WP7 only allows a single resolution - 800x480 - so the concerns you have coming from Android aren't currently relevant. If/when they allow other resolutions, my guess is that legacy apps will just use the hardware scaler (which is required on WP7 devices) to enlarge the screen contents to the new resolution, while new apps will ahve the option of targeting 1200x720 or whatever new resolution they decide to allow.
Visual Studio has a debug-output view, scrollable with history (I don't know if it can be redirected into a file, never tried). It's quite possible to print debug messages from within an app; they will only show up when the debugger is attached (of course) and appear in a VS window/tab. It's also possible to use MessageBox to show debug messages during development, though that's a hacky solution (it works without the phone being connected to the debugger, though). As for OS-level logging, it's not visible. That shouldn't be a problem when developing sandboxed apps, though.
Ignoring your spelling errors and similar indications of low credibility, do you have any citation for that claim about the Lumia? I've heard quite a bit of buzz about it, mostly the 800 but also a bit about the 710, and neither is even available in the USA (where I live) yet. Granted, I hang with a techier crowd and frequent techier websites than most people (and also develop for mobile devices, including WP7), but it doesn't appear to be getting ignored at all.
FYI, the reason for things like medicinal, cosmetics, and jewelry companies is because SOPA includes the ability to take down sites selling things that infringe (or are alleged to) on patents, and trademarks. Basically, it's a way to get knock-offs and counterfeits taken down. Outside the US, a lot of people can't really afford name-brand cosmetics, and therefore buy cheap knock-offs that are advertised to be the same thing (though $DEITY only knows what's actually in them).
This isn't anywhere near a good enough excuse to support SOPA if you understand how the Internet works, but it's a pretty good reason to support it if you don't. *All* companies with stakes in IP - be it copyrights, patents, or trademarks - which is to say, essentially every company anywhere - can be sold on that aspect of the bill, especially if there are a lot of knock-offs or couterfeits online. Of course, most of them don't understand enough to oppose the bill based on how broken it is; the bill's supporters are not trying to sell L'Oreal's IT staff on SOPA, they're trying to sell its executives in exchange for more funding.
Trivial to mitigate. Each time the image is shown, crop it a little differently and show it on a different part of the screen. Maybe even scale it or rotate it. Win8 implements at least a few of these mitigations.
Also, you're clearly not thinking about it enough. A suction cup will easily allow you to pull the door toward you. Security through obfuscation ("I can't figure out how to pull this door open, there's no handle!" or "I can't figure out how to decrypt this file; it's a custom crypt algoritm!") is about as useful as its name sounds. Anybody who bothers to really try will probably find more weaknesses in the method you used than in the well-known and widely-tested techniques.
Ugh... man, I hate to break it to you, but your "understanding" of the security technologies is *way* off.
First, DEP is trivial to bypass. Go research "return-oriented programming" and you'll find not only working exploits but even entire toolchains that can compile an arbitrary C program into a return-oriented stack that executes by controlling the program counter and stack frame (including local variables) to make a binary execute completely different instructions. (The mitigation here is ASLR, which has its own counters although the easiest so far is finding a binary that is loaded without ASLR enabled and its address is therefore known.) The most common purpose of a return-oriented program is to mark a section of memory executable (turn off the NX flag for that page, which essentially says "I want this piece of memory to prevent DEP is disabled" and has many legit purposes, so it can't be blocked).
Second, there are attacks that work even when DEP is enabled. Ever heard of "JIT spraying"? It's a pretty simple technique, actually - you use any program that has a JIT compiler, like Safari (or any other modern browser, or Flash, or a Java applet, or...) and have it load a script or bytecode containing a whole bunch of instructions like this that do things like add two 64-bit integers together. With each of these, you write 17 bytes of memory into the instruction stream. You have full control over 16 of them and you know what the other one is. Now, if the instruction pointer jumps to the start of the first instruction, it'll do a bunch of meaningless arithmatic on really big numbers. If it jumps into the stream in the middle of one of those huge instructions, though, it's now exeuting attacker controlled code, and can do pretty much anything at all (you can fit a lot of x86 instructions wholly within a 64-bit number, much less a bunch of them). You have to work around the actual arithmetic opcodes, but since you know what they are and you control the bits around them, you can make them be interpreted as part of the alternate instruction sequence.
Seriously, that's just two approaches off the top of my head that both completely defeat DEP. There are others, too. In general, if the attacker can write even a few bytes of arbitrary memory (sometimes as little as changing one bit is sufficient), you assume they can take over the program. If they've already got control of the instruction pointer (which is the point where DEP even becomes relevant) you *KNOW* you're hosed.
Also, the kernel-mode crash is certainly due to to a kernel bug. Hypothetically you can have a bug that doesn't involve memory corruption, like a syscall that takes a pair of parameters and divides them without checking whether the denominator is zero. However, any kernel entry point (be it in a driver or otherwise) is supposed to validate its input when the input is coming across the user/kernel boundary. If it's not doing that, or not doing it correctly is is a bug. Since we're discussing kernel-mode code here, it is specifically a kernel-mode bug. The fact that the bug is triggered by compromising a user-mode program doesn't change that at all; I could just as easily write a user-mode program that intentionally triggered the kernel bug, and get arbitrary privileges on the system.
It's been audited, multiple times. The problem is that it's both truly immense (hundreds of public entry points, to say nothing of its internal functions) and a mishmash of code dating back to the early days of NT (NT 4 at least, maybe the 3.x versions too) up through new code for Win8. I have no idea how many source files compile into it. I got a (legit and very nearly complete) copy of the Win2K source for a university project, and even in that version (now 4 releases old), Win32k.sys was a terrifying thing to behold.
I once heard a Microsoft employee talking about the Stuxnet malware. He joked that it goet in through "this vulnerability called Win32k.sys - I mean, this vulnerability *in* win32k.sys..." They're quite aware of its problems. However, even when a bug is found, it's extremely difficult to fix it safely (I'm told that the average number of regressions during fixing a bug they find is greater than two, and each of those may cause more regressions when you try to fix them).
Well, I don't think they can get married. Of course, something approaching 10% of people can't either, at least not to the partners they would want to (not in any way that is recognized by the federal government).
Chrome (and IE and, I think, Firefox) have "private browsing" modes. Quite handy for those "other websites", unless you need to persist data between sessions.
Yep. IE9 with the tracking protection / privacy filter lists from AdBlockPlus, and it works nearly as well as on Firefox (a little harder to configure, though still easy to turn on or off for a given site).
The fact that people are willing to put up with severely ad-laden sites always amazes me.
There are some dual-mode phones that use CDMA on Verizon or Sprint (in the US) but have n unlocked GSM SIM slot as well (for use overseas). I'd be willing to do business with Sprint (not a fan of Verizon) with one of those phones, but so long as a tolerably non-evil pure GSM provider exists, why bother?
I once hit a case where I was glad my browser was a single 32-bit process, because that meant when it started leaking RAM like crazy, it only managed to use up 2GB before it couldn't allocate more working set, and therefore didn't burn up all my physical RAM. This is not a good thing to ever be happy about...
Windows is still the most widely used desktop OS (by a large margin). I suspect that lots of Windows devs only recently discovered open-source (lots of other devs too, there's new ones made all the time) and discovered that there is a "Microsoft-blessed" open-source license. You must remember, the vast majority of people do not intrinsically hate Microsoft. To most folks, Microsoft is "the big company that makes the software on my computer" and is no more good or evil that "The big company that helps me find stuff online" Google or "the big company that helps me connect with my friends" Facebook or "the big company that makes TVs and PlayStations" Sony, to name some other companies that those who follow tech news typically have a dim opinion of (or at least of some subset of).
It's entirely possible to be a developer, even an open-source developer, without sharing the opiniions, prejudices, and bias, be they valid or otherwise, common to the GNU/FSF community of coders. It's also possible that some people really like having a open-source permissive license which is basically the BSD license with patent protection built in (automatically grants a license for patent use, provided the recipient isn't suing the developer over patent use, is my reading - but IANAL). Pretending software patents don't exist (at least in the US and a number of other significant countries) isn't going to make them go away. Either strip out that clause or invalidate software patents world-wide, and the MS-PL is basically just the BSD license.
Apple actually got sued over that once: they claimed in an ad to show how blaing fast browsing was on the iPhone, then cut out that boring part of mobile browsing where you wait for the page to load. Amazingly enough, it was deemed misleading to advertise something's speed and responsiveness by purportedly showing a demo of its use, but edit out the slow and unresponsive bits.
Oh please, close your BS hole. IE4 through IE6 were pretty well integrated into the OS. There was a lot of code sharing between Explorer (nominally shell and file browser) and IE (nominally web browser). You could browse the filesystem from within IE, browse the web from within Windows Explorer, and the desktop used IE to render its background (assuming you used a JPEG wallpaper) and to display dynamic content (remember "Active Desktop"? I sure wish I didn't).
Now, was any of this a particularly good idea? No, certainly not. Starting with Vista/IE7, the line between IE and [Windows] Explorer started becoming a lot more distinct. With Win7/IE8 (and IE9), the browser has become an optional component of the OS again, just like it was back in the late 16-bit and very early 32-bit days. Mind you, MSHTML.DLL (implements Trident) is still needed in a few places (relatedly, this is why you should upgrade to IE8 or IE9 - whichever you can - even if you don't use IE) but try removing Webkit from OS X or Android and see how much stuff breaks there too.
Was it techncally possible to excise IE from Win98? Yes, it was and it was done. It's also possible to install Vista on a machine with 384MB of RAM (not even very hard, I did it just out of curiosity), block execution of explorer.exe (responsible for an awful lot of what people think of as "Windows") and use another shell/file browser, and run IE6 on Linux. In all cases, though, it's an incredibly bad user experience, at which point you're arguably (and this is what MS argued) not using Microsoft's product anymore - you're using something derived from it. MS has no need nor desire to support that behavior.
Most other toolchains don't even offer PGO. Even without PGO, binaries compiled with MSVC outperform binaries compiled with GCC (on Windows, of course, that being what MSVC typically targets). PGO is part of what keeps Firefox competitive, speed-wise, on Windows. Chrome has apparently already abandoned it, but they are built ona faster base to begine with.
Only recently has it become possible to build an app that replicated built-in functionality, or that used any kind of scripting/code execution engine. For a long time, the only "alternate" browsers for iOS were simply custom skins around the WebKit browser engine that Safari Mobile was also using. Opera, as an example, violated both of those prohibitions (it was a complete replacement for Safari Mobile, and it included a JavaScript execution capability). As I understand it, Apple lifted those prohibitions at some point, but only after years of locking out developers of whole classes of features just because they were control freaks and they could. The market, as a whole, tolerated that BS. I didn't, and still don't.
There's also actually a rather active homebrew/hacking community for WP7 right now. Custom ROMs (including some nice new features, like installing app packages directly from the browser) are currently only available for HTC WP7 devices (and not for all of them) but Samsung devices like the Focus have the most accessible stock firmware for homebrew (everything from custom themes - pretty simple, really - to full filesystem access and bypassing the "does your carrier allow this?" check for the WiFi hotspot "tethering" feature).
If you're looking for a phone that has a more "trustworthy" marketplace than Android, but is a lot easier to tweak and hack on than an iPhone (with current firmware), get a first-gen Windows phone (the second gen ones haven't been unlocked yet, though people at XDA-Developers.com are working on it).
Out of curiosity, have you actually used WP7? I mean, your points are valid, but you make a claim about WP7 that contradicts the claims of those I know who have one (I live in Seattle, they're moderately common here this close to MS). Speaking as a developer, it's quite nice.
Your point? I challenge you to find anything WinCE-esque about WP7. Yes, technically the kernel is CE, but even app developers don't know (or need to know) that, unless they are trying to hack the thing. The kernel of Win7 is NT - same as Vista (they even share a major version number). The technology line of the kernel doesn't tell you that much. A lot of the old limitations of CE were removed, anyhow.
The thing that really matters is the full experience, and there is nothing about WP7 that resembles WinMo from a user perspective.
Nokia's Lumia 800 hs been available for about a month... not a long time before Christmas, but more than enough to buy one.
Oh, you're probably in the US. Yeah, that's rough.
LOL you haven't a clue what Windows Phone is like, do you? If you weren't already at +5 I wouldn't even bother responding.
1.0 GHz single-core, 512 MB of RAM. It'll blow the socks off any Android device with similar specs in terms of UI smoothness, app launch time, or battery life (which on mobile devices is mostly determined by the amount of stuff running in the background). The gen2 devices typically have 1.4GHz, still single-core, and can outperform many dual-core Android models.
Oh, for the record, my main computer is a three-year-old laptop with Core 2 Duo (not quad) and 4GB of RAM (not 8). Win7 boots faster on it than Linux does, and large programs load quicker (due to better caching, using that RAM which you claim isn't even sufficient).
It's iOS-style "multitasking" for the most part (as distinguished from desktop/WinMo/Android-style). You can technically abuse the background task APIs to get almost true multitasking (or, with sufficient permissions, modify the app-backgrounding suspend/dehydration behavior to get full multitasking), but that's really only useful for homebrew - Microsoft won't accept an app that does such things into the Marketplace.
Marking a text box read-only should prevent the keyboard from showing up but still allow the user to select and copy text.
The screen designer built into Visual Studio is a bit of pain. The one in Expression Blend (which is explicitly designed for XAML, and a version of it specifically for WP7 XAML is included with the dev kit) is much better, though it is a new UI to learn. As for resolutions, WP7 only allows a single resolution - 800x480 - so the concerns you have coming from Android aren't currently relevant. If/when they allow other resolutions, my guess is that legacy apps will just use the hardware scaler (which is required on WP7 devices) to enlarge the screen contents to the new resolution, while new apps will ahve the option of targeting 1200x720 or whatever new resolution they decide to allow.
Visual Studio has a debug-output view, scrollable with history (I don't know if it can be redirected into a file, never tried). It's quite possible to print debug messages from within an app; they will only show up when the debugger is attached (of course) and appear in a VS window/tab. It's also possible to use MessageBox to show debug messages during development, though that's a hacky solution (it works without the phone being connected to the debugger, though). As for OS-level logging, it's not visible. That shouldn't be a problem when developing sandboxed apps, though.
Ignoring your spelling errors and similar indications of low credibility, do you have any citation for that claim about the Lumia? I've heard quite a bit of buzz about it, mostly the 800 but also a bit about the 710, and neither is even available in the USA (where I live) yet. Granted, I hang with a techier crowd and frequent techier websites than most people (and also develop for mobile devices, including WP7), but it doesn't appear to be getting ignored at all.
FYI, the reason for things like medicinal, cosmetics, and jewelry companies is because SOPA includes the ability to take down sites selling things that infringe (or are alleged to) on patents, and trademarks. Basically, it's a way to get knock-offs and counterfeits taken down. Outside the US, a lot of people can't really afford name-brand cosmetics, and therefore buy cheap knock-offs that are advertised to be the same thing (though $DEITY only knows what's actually in them).
This isn't anywhere near a good enough excuse to support SOPA if you understand how the Internet works, but it's a pretty good reason to support it if you don't. *All* companies with stakes in IP - be it copyrights, patents, or trademarks - which is to say, essentially every company anywhere - can be sold on that aspect of the bill, especially if there are a lot of knock-offs or couterfeits online. Of course, most of them don't understand enough to oppose the bill based on how broken it is; the bill's supporters are not trying to sell L'Oreal's IT staff on SOPA, they're trying to sell its executives in exchange for more funding.
It can be blocked using Group Policy, yes.
(Seriously, does anybody bother to do even a little research before commenting? This was announced months ago!!)
Trivial to mitigate. Each time the image is shown, crop it a little differently and show it on a different part of the screen. Maybe even scale it or rotate it. Win8 implements at least a few of these mitigations.
Also, you're clearly not thinking about it enough. A suction cup will easily allow you to pull the door toward you. Security through obfuscation ("I can't figure out how to pull this door open, there's no handle!" or "I can't figure out how to decrypt this file; it's a custom crypt algoritm!") is about as useful as its name sounds. Anybody who bothers to really try will probably find more weaknesses in the method you used than in the well-known and widely-tested techniques.
The portion of the picture that is shown for Picture Password is cropped and moved around the screen, specifically to mitigate a "smudge attack".
Ugh... man, I hate to break it to you, but your "understanding" of the security technologies is *way* off.
First, DEP is trivial to bypass. Go research "return-oriented programming" and you'll find not only working exploits but even entire toolchains that can compile an arbitrary C program into a return-oriented stack that executes by controlling the program counter and stack frame (including local variables) to make a binary execute completely different instructions. (The mitigation here is ASLR, which has its own counters although the easiest so far is finding a binary that is loaded without ASLR enabled and its address is therefore known.) The most common purpose of a return-oriented program is to mark a section of memory executable (turn off the NX flag for that page, which essentially says "I want this piece of memory to prevent DEP is disabled" and has many legit purposes, so it can't be blocked).
Second, there are attacks that work even when DEP is enabled. Ever heard of "JIT spraying"? It's a pretty simple technique, actually - you use any program that has a JIT compiler, like Safari (or any other modern browser, or Flash, or a Java applet, or...) and have it load a script or bytecode containing a whole bunch of instructions like this that do things like add two 64-bit integers together. With each of these, you write 17 bytes of memory into the instruction stream. You have full control over 16 of them and you know what the other one is. Now, if the instruction pointer jumps to the start of the first instruction, it'll do a bunch of meaningless arithmatic on really big numbers. If it jumps into the stream in the middle of one of those huge instructions, though, it's now exeuting attacker controlled code, and can do pretty much anything at all (you can fit a lot of x86 instructions wholly within a 64-bit number, much less a bunch of them). You have to work around the actual arithmetic opcodes, but since you know what they are and you control the bits around them, you can make them be interpreted as part of the alternate instruction sequence.
Seriously, that's just two approaches off the top of my head that both completely defeat DEP. There are others, too. In general, if the attacker can write even a few bytes of arbitrary memory (sometimes as little as changing one bit is sufficient), you assume they can take over the program. If they've already got control of the instruction pointer (which is the point where DEP even becomes relevant) you *KNOW* you're hosed.
Also, the kernel-mode crash is certainly due to to a kernel bug. Hypothetically you can have a bug that doesn't involve memory corruption, like a syscall that takes a pair of parameters and divides them without checking whether the denominator is zero. However, any kernel entry point (be it in a driver or otherwise) is supposed to validate its input when the input is coming across the user/kernel boundary. If it's not doing that, or not doing it correctly is is a bug. Since we're discussing kernel-mode code here, it is specifically a kernel-mode bug. The fact that the bug is triggered by compromising a user-mode program doesn't change that at all; I could just as easily write a user-mode program that intentionally triggered the kernel bug, and get arbitrary privileges on the system.
It's been audited, multiple times. The problem is that it's both truly immense (hundreds of public entry points, to say nothing of its internal functions) and a mishmash of code dating back to the early days of NT (NT 4 at least, maybe the 3.x versions too) up through new code for Win8. I have no idea how many source files compile into it. I got a (legit and very nearly complete) copy of the Win2K source for a university project, and even in that version (now 4 releases old), Win32k.sys was a terrifying thing to behold.
I once heard a Microsoft employee talking about the Stuxnet malware. He joked that it goet in through "this vulnerability called Win32k.sys - I mean, this vulnerability *in* win32k.sys..." They're quite aware of its problems. However, even when a bug is found, it's extremely difficult to fix it safely (I'm told that the average number of regressions during fixing a bug they find is greater than two, and each of those may cause more regressions when you try to fix them).
Save you a bit of searching:
EasyList Ad Blocking List - http://easylist-msie.adblockplus.org/easylist.tpl
EasyPrivacy Tracking Protection List - http://easylist-msie.adblockplus.org/easyprivacy.tpl
Well, I don't think they can get married. Of course, something approaching 10% of people can't either, at least not to the partners they would want to (not in any way that is recognized by the federal government).
Chrome (and IE and, I think, Firefox) have "private browsing" modes. Quite handy for those "other websites", unless you need to persist data between sessions.
Yep. IE9 with the tracking protection / privacy filter lists from AdBlockPlus, and it works nearly as well as on Firefox (a little harder to configure, though still easy to turn on or off for a given site).
The fact that people are willing to put up with severely ad-laden sites always amazes me.
There are some dual-mode phones that use CDMA on Verizon or Sprint (in the US) but have n unlocked GSM SIM slot as well (for use overseas). I'd be willing to do business with Sprint (not a fan of Verizon) with one of those phones, but so long as a tolerably non-evil pure GSM provider exists, why bother?
I once hit a case where I was glad my browser was a single 32-bit process, because that meant when it started leaking RAM like crazy, it only managed to use up 2GB before it couldn't allocate more working set, and therefore didn't burn up all my physical RAM. This is not a good thing to ever be happy about...
Windows is still the most widely used desktop OS (by a large margin). I suspect that lots of Windows devs only recently discovered open-source (lots of other devs too, there's new ones made all the time) and discovered that there is a "Microsoft-blessed" open-source license. You must remember, the vast majority of people do not intrinsically hate Microsoft. To most folks, Microsoft is "the big company that makes the software on my computer" and is no more good or evil that "The big company that helps me find stuff online" Google or "the big company that helps me connect with my friends" Facebook or "the big company that makes TVs and PlayStations" Sony, to name some other companies that those who follow tech news typically have a dim opinion of (or at least of some subset of).
It's entirely possible to be a developer, even an open-source developer, without sharing the opiniions, prejudices, and bias, be they valid or otherwise, common to the GNU/FSF community of coders. It's also possible that some people really like having a open-source permissive license which is basically the BSD license with patent protection built in (automatically grants a license for patent use, provided the recipient isn't suing the developer over patent use, is my reading - but IANAL). Pretending software patents don't exist (at least in the US and a number of other significant countries) isn't going to make them go away. Either strip out that clause or invalidate software patents world-wide, and the MS-PL is basically just the BSD license.
Apple actually got sued over that once: they claimed in an ad to show how blaing fast browsing was on the iPhone, then cut out that boring part of mobile browsing where you wait for the page to load. Amazingly enough, it was deemed misleading to advertise something's speed and responsiveness by purportedly showing a demo of its use, but edit out the slow and unresponsive bits.
Oh please, close your BS hole. IE4 through IE6 were pretty well integrated into the OS. There was a lot of code sharing between Explorer (nominally shell and file browser) and IE (nominally web browser). You could browse the filesystem from within IE, browse the web from within Windows Explorer, and the desktop used IE to render its background (assuming you used a JPEG wallpaper) and to display dynamic content (remember "Active Desktop"? I sure wish I didn't).
Now, was any of this a particularly good idea? No, certainly not. Starting with Vista/IE7, the line between IE and [Windows] Explorer started becoming a lot more distinct. With Win7/IE8 (and IE9), the browser has become an optional component of the OS again, just like it was back in the late 16-bit and very early 32-bit days. Mind you, MSHTML.DLL (implements Trident) is still needed in a few places (relatedly, this is why you should upgrade to IE8 or IE9 - whichever you can - even if you don't use IE) but try removing Webkit from OS X or Android and see how much stuff breaks there too.
Was it techncally possible to excise IE from Win98? Yes, it was and it was done. It's also possible to install Vista on a machine with 384MB of RAM (not even very hard, I did it just out of curiosity), block execution of explorer.exe (responsible for an awful lot of what people think of as "Windows") and use another shell/file browser, and run IE6 on Linux. In all cases, though, it's an incredibly bad user experience, at which point you're arguably (and this is what MS argued) not using Microsoft's product anymore - you're using something derived from it. MS has no need nor desire to support that behavior.
Got any alternatives you'd like to suggest?
Most other toolchains don't even offer PGO. Even without PGO, binaries compiled with MSVC outperform binaries compiled with GCC (on Windows, of course, that being what MSVC typically targets). PGO is part of what keeps Firefox competitive, speed-wise, on Windows. Chrome has apparently already abandoned it, but they are built ona faster base to begine with.