4 ms·
I think there's many reasons for this, but the top couple are imo: - Linux trusts their users to know what they are doing. They do not build layers of abstract
by 234dd57d2c8db 10y ago
I think there's many reasons for this, but the top couple are imo:
- Linux trusts their users to know what they are doing. They do not build layers of abstractions to make things "easy". These abstractions create complexity and just get in the way, especially if you know what you're doing technically.
- There is significant influence on the technical decisions by nontechnical people for business, personal, and political goals. Quarterly profits are the main motivator for Windows development. If it turned out that abandoning Windows would make Microsoft more money, they would do it. With Linux, the incentive is to have a "good" operating system. Money is important in the sense that it keeps Linux dev healthy, but making money is not the primary objective of the project.
- Because money is the main motivator, Windows is beholden to the people with the most cash. Often this is large enterprise organizations which make poor technical decisions. Microsoft in turn, must provide support for these technical decisions, forcing Microsoft itself to make poor technical decisions. I'm sure Windows developers would love if everyone stopped using old crufty tech from 2001, but since there's a lot of money riding on that tech, the show must go on.
- allemagne 10y agoYour explanation makes a lot of sense. Thanks for sharing. I'd assume the situation would probably be roughly the same with comparable open source and commercial operating systems i.e. macOS/OS X, FreeBSD, iOS, Android(???) and implies the same for any piece of software...
- arximboldi 10y agoI don't think that money is the problem here. Most Linux development is also money driven and most kernel developers nowadays are doing it to pay their bills. In a way, money can be a confirmation, to some degree, that you are actually providing value to someone. In my opinion, the key is that Linux is libre software. Windows has to deal with lots of old drivers and userland software that are arcane binary blobs. In the Linux world, most software running on it is libre and the community can evolve it to work with newer systems. This is specially true for drivers, since most drivers are GPL and kept in the kernel source tree. This promotes a healthier relationship between the companies and individuals involved where, through shared ownership, everybody is on the same boat.
- 234dd57d2c8db 10y agoYes, but why does windows have to deal with old drivers and userland software? Because they are paid to do so! It is a business, if they didn't make money on it, they wouldn't do it. On Linux, if no one wants to maintain the old driver, it doesn't get maintained and the manufacturer does it or people stop using it and use something else. Poof no more old driver! Agreed on libre software, wouldn't be possible without that of course. But I think money has had a large impact as well.
- moosingin3space 10y agoDisagree with your first point -- Linux (and POSIX, and UNIX) itself is a gigantic layer of abstraction on top of your hardware, allowing you to develop userspace software in much the same way as you would on a PC 25 years ago. Additionally, many applications do use large abstraction layers to simplify their architecture.
- 234dd57d2c8db 10y agoI'm talking about the design philosophy. Windows is a GUI-centric experience. Adding a GUI instantly adds an order of magnitude more code to a project. This hides complexity from the user, but increases the amount of code. Much of the budget for coding this stack has to be spent on maintaining this easy to use GUI instead of things like developing package managers, filesystems like ZFS, powerful software raid, etc. Because GNU/Linux assumes the user will have some coding skill and technical knowledge, it can spend less time building easy to use stuff and focus on overcoming technical challenges. I guess my point should have said GNU/Linux stack overall vs Windows stack.