Is it me or this guy is trying hard the SteveJobs look in that picture?
Simple solution to all of microsoft's woes: Drop the WINNT kernel and replace it by a unix based variant. Is there any value in keeping the kernel closed source ? Hasn't that fight been lost a long time ago?
Windows is going byzantine fast; there's no value in compilers and in os kernels anymore, the open source ones are better but MS still thinks that they have these as a competing advantage while they are a R&D money pit.
What's wrong with the NT kernel? How does its closed-source nature affect how useful it is? I note that the closed-source iOS kernel seems to also be quite effective, as does the Mach kernel for Mac OSX (despite the existence of and generally not very useful OpenDarwin availability). The history of NT is quite interesting, as is the NT article on Wikipedia.
And despite Mac OSX and iOS being BSD-based, my mum doesn't shout "I love my UNIX OS!" every time she uses her iPad - she doesn't care.
I don't think Microsoft's woes relate to their kernel. I doubt that you could argue that Linux's UNIX-style kernel is the single reason for its success in the server market; userland is what has made it massively useful.
And although varied forms of Linux (read Android) have widespread use, the avalanche of Linux on the desktop hasn't happened (and likely won't!). Businesses still use PCs for their work, despite the occasional Mac you see. You don't see people using mobile devices for work (other than replying to emails whilst on the move), despite Satya's "mobile-first" new motto.
I would also argue that compilers are not going out of fashion or use and there is no value in them; do you REALLY believe that? How do you run any software on your device without a compiler to build the software in the first place? Given the exciting developments in compiled languages (C++11, C++14) recently (and half compiled ones like C#) I would argue that they are more relevant than ever, despite their obvious unpopularity with web developers who irritatingly eternally proclaim how irrelevant they are, and how out of date the languages they don't know are.
What makes MS' compilers bad, by the way?
I just thought I'd reply as your comment seemed a little ill-thought-out? It isn't meant nastily BTW, more of a conversation!
Thanks for the reply! (I also assume you are not my downvoter:-)
I see the value of replacing the NT kernel by a bsd variant as this: you free ride on a lot of work done by other people. Us software heads have decided we wanted the hard core kernel and compiler engineering to be open source, circa 1990. We've won philosophically, albeit we've lost economically, as the 18000 layoffs and the death of SUN, and transformation of IBM into a services company, etc. The best compilers out there are open source. The best language innovations are open source.
I've nothing against C# and VS, which I consider a very good well documented and better alternative to Java (which is itself loosing ground to javascript in terms of a glue language), and a wonderful IDE respectively; but I wont pay for either, as I will not pay or lock myself in MSSQL when postgres is superior and free. Dont get me wrong, I love MS, I've written code on their tools since MS VC++ 5. (circa 1995)
Besides that time when they did not stick to the C++ standard with the STL (was it in VSC++6 or the first .net edition? that one was painful for a while) I've always respected their compilers -- bug free and fast, and producing fast code. It's just that there is not value in keeping that closed source anymore, it's a cost, when the alternatives are all copying each other easily because the underlying kernels are close cousins.
So in my view MS is basically keeping this huge maintenance burden on it's own, with a shrinking overall install base percentage based of computing devices (combination of tablets phones pcs etc)
no I'm very well aware of npgsql, in fact I have fixed bugs and contributed to that project. But I seem to be stupid enough to keep commenting here and loosing karma! (I lost over 15 karma points over this post since the morning, I guess MS's windows NT kernel is still going strong in the hearts and minds of the folks hanging out at hacker news.
:-)
cheers! WINNT is a cool piece of technology, I just think it's redundant and expensive for MS; I want MS to prevail, I have friends that work there, I hope they won't be affected by the cuts, please give me my karma back! :-))
No I am not your downvoter! I do not have downvoting powers yet, sadly! Probably because nobody agrees with me either haha
I can understand some of your arguments. But I would not be too hasty in believing that everyone wants open source or would agree that open source kernels are better. I don't dispute it! But, a lot of Windows developers wouldn't touch Linux with a barge pole, nor would they even know about any of the BSDs. And there isn't a push in Apple land for open-sourcing the vast swathes of kernel code or supporting APIs like Cocoa or Carbon from developers. They just want the APIs to be available, and to work. Not many people really care about the open source nature of it, I don't think? They do care about the price, but not the open source nature of it. Besides, most developers accept that there is a cost to developing and likely factor in the cost of the IDE and hardware, such as an iPad. The massive success of the iPad and the App Store would indicate that people accept that they need to pay for something (although Xcode is free); the fee to be on the app store and to develop on your own device is real enough.
The massive popularity of C# and the continued sales of Visual Studio (or is everyone using the Express versions???) would also indicate that not that many people care about the new features of languages elsewhere, even if they are really interesting and in open source languages. C# implements enough of their own interesting features to keep them happy, and surely you'd agree that old languages have been around long enough and enough code written in them that has been useful to not mean we should chuck them in the bin? Does that really old bit of C code looking after that telephone exchange really need to be rewritten because the language and program is old? Do we definitely need language innovations? They're interesting and make nerds happy but some would argue that the old languages don't have that many "problems" that need fixing with (yet another) language.
I myself have enough of a job trying to keep up with new language features and innovations and would welcome a slow down in some respects! I want to be able to write code, not necessarily use latest whizz-bang features. (In fact, I'd welcome opportunity to use C++11 features but the Windows compiler at work is VS2010; I have xcode too but obviously can't share code between the two)
I am not sure Microsoft's install base is shrinking as drastically as everyone likes to make out. Sure, non-Windows smart phones are widespread and iPads are popular (sometimes even where BYOD is implemented in an organisation) but in the business world, Exchange + Office still rule, as does Windows Server (despite us opting to use Linux or BSD where we can).
I really think you're in the minority if you think there will be a sudden migration to open source platforms using open source tools and new languages. A lot of developers wouldn't use open source because they consider it "unfinished".
Look at the disdain you'll receive for installing LibreOffice instead of Office from someone used to Office.
And in any case, if Microsoft were suddenly to chuck 30 years of their work in the bin and go all open-source, wouldn't that just transform them into a services company? How could they make money from their fully open-source software other than consultancy on it? Apple certainly hasn't done that; they've made money from building on top of BSD. The BSD licensing means you don't need to give the code back after you've built on top of it, so even if it was BSD code Microsoft suddenly used, they'd be in the same "it's ours! you can't have it" position they are in now, and so would we as external developers (no access to their code). So why would Microsoft do that? How would it benefit them or us?
I'm sorry I didn't really mean to frame this as open vs close source; but more on the bsd vs nt plane.
Compiling/porting C or C++ code on any bsd-derived or unix inspired platform is a lot easier than crossing over to windows IMHO, because of the WINNT kernel and the legacy of the prior oses.
I think MS's force is precisely in Office Exchange etc -- business user facing stuff. The rest is a cost. XBox Zune etc. They should have embraced and extended(forked) the android kernel, (the boot to gecko firefox os approach) for these; it would have been a lot less expensive to have a foothold in those markets.
And in any case, if Microsoft were suddenly to chuck 30 years of their work in the bin and go all open-source, wouldn't that just transform them into a services company?
Isn't that exactly what they have said they are trying to do? Become a "Devices and Services" company instead of a software company?
They could just as easily run their cloud services on a Linux or BSD based OS. Nothing about a "Devices and Services" company requires a proprietary OS.
I think it really just shows that they aren't that serious about actually pivoting their business model. Their leadership aspires to be a devices and services company because they look at their competitors and see that Apple is making money from devices, and Google and Amazon are making money from services, so they think they need to compete in those fields. But they're not going to truly pivot because that would require spinning off or killing their core, cash cow business model, which is a PC operating system and a suite of productivity software products.
That's a good analysis. Interestingly, Apple also seems to be a services company (with their iTunes system and iCloud) but their iCloud system in particular seems to be a service that only exists to help their devices. Pretty clever.
I will wait to see what Microsoft does. As you say, for them to be truly "devices and services" only, that would be a massive change. And not what people expect from Microsoft..?
Thanks for pointing this out! But would you think think that in this post pc era, devices per se that require drivers and dont have their own os that can communicate via standards are kind of going the way of the dodo?
As an aside, I'm wondering why every time I try to post something on YC's news forum I seem get downvoted. Is it groupthink that I just cant join in on? Is this community averse to opinions or ideas that run against the current grain?
I wrote a small driver for the NT kernel, a mini filter driver ( for a project named SyncDisk a thing that did the same thing as dropbox but windows only, in 2007), I was not a device driver per se but I do understand the concepts.
What I'm implying is that the architecture of new computing devices such as the surface or ipad, imacs etc, is changing the nature of the interfacing with expansion ports; devices are getting connected via standard connections like usb which is now very fast (5Gb in v3 IIRC?), and now sport their own system on chip with built in drivers to the hardware.
At the same time, standards are solidifying, and as such, standard drivers built into the os are getting to be good enough for all the features. For example, my midi usb keyboard connects to the ipad without any drivers. My camera connects to the surface and shows up as a usb drive without any drivers.
The last time I manually downloaded a third party driver (not part of a vetted distribution) was to use up the last ounce of performance for a video game on a pc rig, in 2011.
So if device drivers are now part of the OS burden, they are at the cost of the os provider; and as such, how are the abundance of unmaintained- semi-maintained pieces of code derived from winDDK samples floating around an advantage?
Thanks for reading this far, I'm really interested in this discussion! And I won myself another down vote!
What you describe is exactly what i am talking about. What you seem to fail to understand is that "without any driver" is nonsense and means "using the existing driver architecture".
You obviously dont understand the concept of a device driver or you would know that they dont "Live in a SoC in the device itself". What you experience with mass storage for example is a standardized abstraction layer for a very specific use case. Computers are used in broad circumstances with a multitude of devices which all require interfacing.
Let me try to simplify this for you: If you randomly draw a computer interfacable hardware device from a bag conainting one of each kind of these and plug it into either a Linux, OSX or Windows machine (3 of the most used home computers) the windows machine will get them working remarkably more often.
Can you provide a sample of what would be contained in that bag that an average computing device user in 2014 would have a chance of owning?
My TV has it's own OS. My fridge as well. My house thermostat too. The drivers for the toy I bought for kids (sphero) are inside the thing, it also has it's own os and interfaces via tcp/ip to an userland app on the ios device. Same does the parrot drone. There are drivers for the subsystems, you are 100 correct. But they are part of the distro, ie they are not 3rd party maintained plug ins.
What I'm pointing out is that the OS model seems to have changed. There's less and less third party code in drivers kernel side; the plug in stuff is getting smarter and interfaces via client-server approaches to other userland processes. There's less and less standalone HW that needs to be driven directly kernel side.
And I earned another downvote! Maybe I should go post elsewhere as my comments are clearly not hacker news- valued? Would any downvoters be kind enough to let me in on why these comments are not valid discussion?
Is there any value in keeping the kernel closed source ?
It prevents forking. MS doesn't want to compete against its own kernel. Even Android doesn't want to compete against itself, hence the manufacturer agreement(s) that make it effectively closed.
yes I agree, as a corporate entity this has value. But by being closer to the unix based variants they would be closer to everyone else to port cool things over and to use innovations via osmosis. Android is effectively a unix variant. OSX etc. They all benefit from the unix/linux/bsd ecosystem.
Simple solution to all of microsoft's woes: Drop the WINNT kernel and replace it by a unix based variant. Is there any value in keeping the kernel closed source ? Hasn't that fight been lost a long time ago?
Windows is going byzantine fast; there's no value in compilers and in os kernels anymore, the open source ones are better but MS still thinks that they have these as a competing advantage while they are a R&D money pit.