You know the "Windows/DOS" stuff in NT is an emulation layer, right? It's known as WoW, Windows on Windows. The NT kernel is the work of Dave Cutler, of DEC VMS fame, and it is actually very, very good (form your own opinion about what has been layered on top of it).
Way back in the day, Microsoft had their own Unix, Xenix. However they did a deal with AT&T to get out of the Unix market - they probably still can't sell a Unix even if they wanted to.
Microsoft needs to stop trying to lock me in to their stack at every point and turn. Currently, if I want to use some Microsoft technology i'm forced in to the rest of the ecosystem and that's a hurdle that i'll likely never jump unless there is simply no other option.
In some respects, Microsoft is already at a disadvantage over Free and Open Source technology when starting new projects without legacy issues, just from the simplification of licensing and the supplier diversification. To add extra barriers, such as having to take on larger and larger parts of the Microsoft ecosystem to get the best out of one component just makes things worse.
Positive first step would be once and for all unequivocally clear up any IP issues surrounding both Mono and their library reimplementations to silence any critics. Second would be bringing Mono in to the .NET ecosystem as a first class citizen. I like C# and .NET but i'm highly unlikely to use it unless I have some real choices for deploying it. From what i've seen from Mono, it's an impressive project but not yet on par with Hotspot and the CLR.
On a site note, there have been some positive steps. The move to Apache 2.0 licensing on several recent contributions is a positive step and helps prevent more license proliferation.
Essentially, I want Microsoft to compete for my business with technology that I can deploy without the worry that i'm perennially locked in to one ecosystem and one vendor.
You are missing the point. While you won't be persuaded to lock yourself in, countless businesses are already locked in and won't be able to switch from Microsoft precisely because of the way the whole stack is dependent on all of its pieces.
> I want Microsoft to compete for my business with technology that I can deploy without the worry that i'm perennially locked in to one ecosystem and one vendor.
They want the exact opposite.
Some of us have the audacity to believe that NT OS might actually be superior to UNIX-like OSes. Sorry, it's true. And this coming from a "UNIX-like OS guy". I'm all for stripping away the DOSification of NT, like drive letters, instead of native (and UNIX-like) paths, etc though.
Edited slightly due to formatting errors on my part
Consider: the command line is a major drawback of Windows, and that's the most obvious manifestation of the Windows/DOS heritage. In addition to its lack of power, the Window doesn't even resize properly.
Plenty of tools that port easily to OSX or Haiku are difficult to port to Windows. Look at the situation with git.
The situation is poor. Technically, NT (and NTFS, etc) might be great, but aspects of the user experience is awful.
CMD.EXE is still included, but it is the red-headed stepchild.
> the Window doesn't even resize properly.
And the PowerShell window still does not resize horizontally by dragging, which is silly. You can do it by adjusting the window's settings, but this is insufficient. Win32 Console apps need to die.
> Plenty of tools that port easily to OSX or Haiku are difficult to port to Windows. Look at the situation with git.
Of course it is, it was originally written targeting a completely different OS. The same could be said the other way, that's why stuff like WINE and Mono exist.
> but aspects of the user experience is awful.
I concur totally. Getting Windows 7 to what I consider usable (in a power user sense) is a 30-45 minute job with a fresh install (as opposed to ~ 20 minutes on Mac OS X).
Thanks for your unofficial input throughout the threads. They've been great nuggets of info and insight from the inside, so to speak.
When you build a system that has to work for everybody, from your grandma who just wants simplicity, all the way to the Federal Gov't who has complex requirements and restrictions, all while making 100% sure that everyone's programs work flawlessly even if they happen to be horribly written, sometimes you have to make lousy compromise choices, I think that's our biggest challenge by-far, is balancing the n-degrees of concerns through smart, disciplined engineering.
http://blog.paulbetts.org/index.php/2010/07/20/the-case-of-t...
I don't see this as a problem; I like the stability of MS vs. Linux (having watched the rise and fall of devfs and hal now, along with the death of gnome-mount, gconf, gdm theming and xdmcp serving, etc.)
OTOH, I think IE6's 10+ year support guarantee was a bit extreme. But, comparing developing something on IE vs. Mozilla, IE would be the clear winner. I mean, Firefox extensions, which you would expect to be developer-friendly, aren't necessarily compatible between 3.5.x and 3.6.x of the product! Do I really want to be constantly fixing things that used to work every few months? Does the business want to pay for it?
The problem that I see is that "stability" in the Microsoft world is entirely conditional on your willingness to upgrade everything all of the time since the whole toolkit is in a constant state of flux. Sure, you get working and officially-supported frameworks, but the goalposts are always shifting further down the field, and I think that's intentional on Microsoft's part.
FYI, you probably want to use the FreeTDS driver on Unix/Linux. It's not an ODBC driver and it is production quality.
Windows devs can test their web apps on Safari for free, from right inside Windows. Why should I have to drop $200 to make my web app work for most Windows users? That's the point he's making.
I work in VoIP and have several customers who insist on storing all of their production data from open-source Linux telephony app servers in SQL Server because they are otherwise a Microsoft stack shop, and have not had an issue once all the DSNs were correctly set up.
Of course, said organisations are all using relatively old versions of SQL Server and intensely disinterested in upgrading, so who knows what awaits when they finally do and the FreeTDS v8.3 protocol implementation may not work properly anymore.
I do not know whether or not they have overcome issues preparing Virtual PC images to run on the Mac yet...
Especially for their mobile offerings. It makes economic sense to push windows, but it's not best for the customer.
To be honest, Apple is much much worse in this sense. I can buy Windows X and install it in a VM of my choice. Try this with OS X. And the only reason I need it is to port my app to their platform, potentially enhancing their ecosystem.
- It's annoying in this day and age to be forced into using the entire MS Stack when I need to work with one specific technology. For example: if I want to test a web app on various versions of IE, I have to run Windows. OK fine, even though IE is the only browser that is tied to one OS, I'll let that go. However, if I want to use the Microsoft-provided free MS Virtual Machine images, I have to run them on Virtual PC despite the fact that I have a perfectly good VMWare installation. On my Mac, this means running windows on VMWare, and then Virtual PC inside that virtual machine. This is insanity. I'm trying to support your product, you should be making it as easy as possible for me. Even Apple ported Safari to Windows. As a developer, this just makes me feel hostile to MS. Another case: MS SQL Server. It's a real bear to connect to it from unix since (last I checked) there are no official drivers. You have to use some unix ODBC open source stuff and it's just not suitable for production work. My organization has a huge SQLServer instance I can't use because the Linux support is brittle. Contrast that with Oracle who has official drivers for practically every OS under the sun. The Windows for everything attitude has got to change. MS is a software company, not a Windows company. I know MS doesn't have a strong history of "playing nice with others", but it's sorely needed.
- Figure out a way to get corporate IT departments into regular upgrade cycles. The fact that lots of stubborn companies refuse to upgrade because the costs (perceived or real) are high is madness. It's a drag on the whole Microsoft ecosystem and heavily rate-limits the cycle time for new products.
- The segmentation of different Windows versions is just silly. There should be one version of Windows and that's it. It's simple for people to understand and it makes licensing a breeze. Artificially creating different versions doesn't really help anyone. Having a server and a desktop version is plenty (since they are genuninely different).
- MS needs to really decide how much longer they want to push an OS that is based on Windows/DOS heritage and not unix. I know this is tantamount to heresy inside MS. But if you look objectively at how Apple has used open source and unix, you see they are able to get incredible leverage for their size. Not having do to everything in-house and relying on the broader community is pretty good business for them. It lets them focus on the places where they can add value. At some point, it's not efficient for MS to maintain a parallel universe of "invented here" stuff. A proprietary Windows GUI/userspace on top of a unix core (like Mac OS) could really revitalize the whole Windows brand if done properly. It might even draw some geeks back from Mac OS. I became a Mac user because I was tired of dual booting Linux and Windows. I like having first-class email, word processing, photo sharing, etc... but I also want the unix underpinnings for my software development and scientific computing needs. Geeks aren't a big market by themselves, but they really make an impact on the decisions of others.