Later kernels have (somewhat) cleaned up the wireless driver interface so these days I don't have problems with day-to-day usage of Network Manager.
Add any external sound hardware, use a optical or SPDIF port instead, add some speakers. It'll break sooner-or-later, and in my own experiences it tends to be whenever my personal computer gets away from the 'typical' desktop profile.
Pulse audio + reconnecting bluetooth speaker after it powers off = bad day
The OS is great when it works, but then those little things are always around the corner, turning weekend actions into weeks.
Also, the people who manage Linux distributions seem to absolutely love suddenly getting rid of things that work and replacing them with incomplete alternatives, without any kind of migration of user data and settings. Those alternatives should be pushed out as developer previews until they either
(1) match each and every feature of whatever they are replacing AND capable of importing all settings
OR
(2) warn the user months ahead of time with a list of features that are going to disappear in the replacement
OR
(3) provide an easy, 1-click option to let the user continue using whatever they were using as their default, with continued support and updates
But it is still my main OS everywhere, I refuse to bow to proprietary overlords. Despite these downsides.
I too perform work for enterprises, getting payed to work with and in all things Linux, Java and Python.
Just because its freedom software doesnt mean there is no money to be made or make.
Maybe the local computer club or some rich guys that could pay for BBS connections exchanging stuff.
Everything from hardware, text processing, drawing, music, compilers, editors,..., was provided by proprietary overlords.
I had luck, started around 1999 when RedHat 6.2 existed, with gcc, all from a free book and CD from the public library.
What would have been preferable would be for the HTPC to advertise itself as a audio source, and the laptop to be able to list sources, and let the use select one.
It's hit-or-miss.
"Ah why don't you open a bug", because people are not interested in making it work (like a lot of "modern" Linux stuff)
If it works manually (dhcp, wpa_supplicant, etc), I don't see what's the problem. Or better, I see: NM doesn't work.
Yeah, unfortunately you're right about WiFi chips. It's about making the bare minimum hardware and shoving everything onto the drivers.
Whereas I could never get all the mess working to get things working well without NetworkManager.
My experience is, spend hours messing with configuration shit or just let NetworkManager do all that automatically for you, which in my case, it does well.
Not that I don't use wpa_supplicant directly anyway, but when I have used NM, it seems to do the same job.
ip link should also show the information of link-speed from mii-tool, ip addr should take an dhcp argument instead of requiring a separate dhcpcd. Then merge wpa_supplicant into ip, perhaps make a ip-wlink which requires some SSID/keyphrase to set it to "up" state.
So wpa_supplicant dhcpcd iwconfig/iwlist/scan-tools should be merged to net-tools and have same syntax as the rest of the net-tools package.
But yeah, even then you need to learn the layers and set them up. In my opinion Windows got it wrong, its user interface is horrible and people often complain about networking problems which are really UI problems or bugs in Windows/drivers there too.
This problem is classic - networking is a stack and thats a fact, and the best tools/UI is one which allows you to dig through that stack layer by layer. On windows its all or nothing.
iface wlan0 inet dhcp
wireless-essi DE:C0:D1:F1:ED
wireless-mode managed
wpa-ssid "Your SSID"
wpa-psk "YourPassword123"https://pypi.python.org/pypi/wifi/0.3.1
It works ok and just wraps ifup and iwlist. It also reads and writes /etc/network/interface style config, so you can see what's going on under the hood.
But I agree. Getting it all work the first time (or when I encounter a new type of network) is just ridiculous.
Yes it would be great if NetworkManager did the right things automatically, but the task might be impossible due to hardware and driver quirks. WiFi chips are among the buggiest chips in computers today. Really, the chip. I've seen ridiculous workaround in drivers for multiple vendors' chips. Also, the drivers are complicated and buggy. And the linux drivers don't get quite enough full-time attention from the chip vendor to work solidly. Those windows and mac wifi driver teams are pretty big.