Have you ever been supporting a large C++ code base to be compiled both by MS VC++ and gcc (or clang)? It's not too bad, but you are constantly working around minor incompatibilities and different levels of language support, time that could be productively spent elsewhere.
I agree that competition is good, I'd much rather prefer compilers competing on the speed, quality of their optimization, static analysis, supported platforms - something that does not give me much of a headache.
Having said that, I acknowledge that MS compiler team made great progress in the recent year catching up on C++ standards, compatibility, and compilation speed.
Can't speak for the parent, but all code I work on professionally or for personal projects compiles cleanly on GCC, clang and VC (all in all about 2 million lines of code). I think it is good for code quality to compile on different compilers, since they all catch different bugs through their warnings and static code analyzers. For this I can forgive minor inconviniences like that VC doesn't fully support C++11, or that clang on iOS doesn't support std::thread_local, or (as a random example that I stumbled upon) that the GCC version I am locked to doesn't have full support for variadic templates as lambda arguments, etc... all compilers have their little problems and corner cases, it would be worse to lose one of the big three compilers.
> Have you ever been supporting a large C++ code base to be compiled both by MS VC++ and gcc (or clang)? It's not too bad, but you are constantly working around minor incompatibilities and different levels of language support, time that could be productively spent elsewhere.
That is what happens to any technology based on standards instead of gold implementation.
>>the speed, quality of their optimization, static analysis, supported platforms
if the C++ committee wasn't that "prolific" about adding yet new ways to do the same thing to the language. It sucks a lot of resources to implement that monstrosity and every 3 years or so there is a new set of toys to play with.
> * Microsoft's Unity is a great IOC framework, although most people seem to use NInject
Autofac is my favorite. Once built, containers are immutable, there is deterministic disposal of components in 'lifetime scopes', and delegate factories make it much easier to instantiate classes with a mixture of services and data.
Heh. Last time I installed the "driver" for my Logitech mouse on Windows, I think it was 150 MB. 150 MB! For a mouse driver!? I remember when we got REAL WORK done with DOS 6.22, Windows 3.11, and Office 4.0, and it all fit on a 10 MB hard drive, with room left over for Doom.
There is probably 10MB worth of driver, and 220MB worth of crapware. If you install a fresh copy of Windows those hardware vendors are going to try their damned hardest to get their crapware back on to your machine.
That 220MB includes some app with a not native UI (likely ugly and unintuitive) to enable unnecessary features.
I have it even worse: every time I plug my Razer mouse into a different port, the driver installer comes up. I've NEVER downloaded the thing, and it came to me through Windows Update. I always say "Never Install" but it always comes back, but the mouse functions fine without.
I have just opened support.lenovo.com and checked for the drivers of Yoga models, randomly chosen 4 of those, and all the official WiFi drivers are worth: 64MB. I am not sure what the author was downloading then.
BCM WIFI driver for Windows 8.1 (32-bit)
exe 64 MB Windows 8.1 (32-bit) Wifi-BCM-220.127.116.11 2/12/2015
The issue is not about the WiFi driver, i can live with that but when my wp8 phone is getting in my way of downloading the driver, its just wrong, really wrong. Its like it is saying to me "You don't know what you are doing, let me fix this for you".
So what you're saying is, if my computer never had Windows installed on it, I'm not supposed to be able to install it ?
As a linux user, I expect the leading commercial products to be at least on par with what a relatively standard linux distribution gives you. But no, apparently a vanilla ISO of the OS is not enough, you need more.
I didn't say that and that wasn't what we were talking about.
The guy in the post said that he didn't want to install the crappy Lenovo software from the restore partition. If he had he could have saved the drivers and then re-installed.
If I wiped the machine and didn't have drivers on hand I would expect something not to work...with any OS.
You are clearly a Linux "advocate" and you don't really care about this except to the extent that you can denigrate Windows to make your "side" seem superior.
I don't use computers that way. I try to learn how things actually work. When they don't work like how I would assume they work, I make a note for next time, and move on. I don't see the failings of some nameless developer somewhere in the bowels of a company or an open source project as indicative of , or representative of, some larger plot or plan that impinges my freedoms, rights, or prerogative. It's just another thing in a sea of things to remember about working with imperfect man-made tools to perform other tasks that I'm actually interested in. The software that manages my disk access and video card doesn't convey a sense of righteousness to me and I don't identify myself by or through it.
- In order to (re-)install Windows you need your drivers
- If you have a previous install, then you need to copy the drivers and keep them
- If you don't, you're screwed and it's your fault
I don't think it is normal for a consumer OS to require this step, especially since Linux which is not a consumer-oriented OS does it. I'm not saying it's some part of a plan to impeach freedom/my rights/whatever, actually I just think it's completely in line with the expectation that consumers will not install their OS, only OEMs will, and no extra effort is made for those who want to tweak their computer; it is expected that computers are sold with Windows and that people don't change that. Fair enough, it's totally aligned with their strategy.
Now I'm not saying you don't need any external drivers in Linux (looking at you, NVidia), but in my experience (same for many people, including the guy from the post) you can get to work with a bare ISO. I'd expect every commercial OS to be at least as good as that.
> You are clearly a Linux "advocate" and you don't really care about this except to the extent that you can denigrate Windows to make your "side" seem superior.
Can we grow up ? For everything I'm personally interested in, yes, Linux clearly is better. But for the wider world, no one can seriously believe Linux is able to replace Windows, and for a good reason. It is not superior nor is it inferior (and clearly the ease with which you can install it is irrelevant compared to how you actually use it)
In short: don't look for a "Us vs Them" when there is none. I'm pointing what I think is a weakness in Windows, that doesn't make it weak or inferior.
> I'd expect every commercial OS to be at least as good...
You can expect whatever you want. That doesn't make it likely or even reasonable. That's kind of my point. You say that it's not set up for people that tweak their computer...I build systems and don't have that problem because I learned how it actually works and don't really get hung up on how I wish it worked.
Anecdotal, as is this whole thread, but I have off and on experience with Linux, starting with Red Hat around 2001, several different distros, laptops and PCI wifi cards, and I don't remember ever having to separately download a NIC driver. In Windows, however, I have had to do this several times. I fully feel the author's frustration that in 8.1 Windows doesn't include their OEM's drivers. That's not to say the driver world of Linux is just peachy, far from it, but at least I can start connected to the internet to begin troubleshooting my issues.