The issue is that schools are not a place to learn, they're not the right place for people to actually develop skills.
Because schools suck at teaching (because they feel like glorified prisons and lack resources due to ignorance and bureaucracy) we must fix/replace schools before “teaching” kids to code, otherwise we will fail.
Also, this illusion that low-level languages like C are any less suitable for introduction than other languages is yet another barrier, I learned in assembly, and I would probably prefer to learn in C, since it's very simple, clear-cut, and consistent. No namespacing, very little context, very little syntax.
The best way to teach any skill, is to provide resources and motivation for the completion of real, practical tasks. In software we have the unique opportunity not to break anything real when we build something equally-so.
PulseAudio doesn't depend on GDM, you just need to create a config for it; What I do (on fedora) is move the default.pa from /var/lib/gdm/.pulse/default.pa to ~/.pulse...
You can't expect everything to work when you tear out components then fail to configure things properly...
I wasn't tearing out components. I was doing everything exactly the way I'd been doing forever, and it no longer worked. Which is bad in itself, but maybe it's understandable that niche usecases break every now and then. It's just that it's happened so often and for so many parts of the system that it's hard for at least me to think it's isolated incidents rather than a cultural issue.
The truly toxic part is that every single transition adds complexity and reduces transparency, making it harder and harder to understand the system. It's just not the breakage alone, or the complexity alone, or even the lack of transparency. It's the combination of all of those.
In the start of this thread jrockway proudly says that all you need is deep understanding all the components and the system as a whole. Back in the day this was not actually an unreasonable thing. But it's been getting less and less reasonable for a long time.
(Incidentally the audio example in my original message wasn't even directly related to pulseaudio. It was a few years back, but IIRC it was some daemon tweaking the device permissions, and something else adding users to a special group in the GDM login path but not the console one.)
Well, GDM tends to handle a lot of initialization that it shouldn't be the one doing, using a distribution that doesn't assume you're using GNOME may help with this.
About the transitions supposedly adding complexity; I don't know about you, but systemd, for example, has greatly simplified configuration and management of services, mountpoints, timers, and all sorts of things.
I use awesome in Fedora 17 on some early-2010 entry-level consumer intel hardware, everything is zippy, easy to configure, and doesn't break on me all the time; I feel bad for you man.
Because schools suck at teaching (because they feel like glorified prisons and lack resources due to ignorance and bureaucracy) we must fix/replace schools before “teaching” kids to code, otherwise we will fail.
Also, this illusion that low-level languages like C are any less suitable for introduction than other languages is yet another barrier, I learned in assembly, and I would probably prefer to learn in C, since it's very simple, clear-cut, and consistent. No namespacing, very little context, very little syntax.
The best way to teach any skill, is to provide resources and motivation for the completion of real, practical tasks. In software we have the unique opportunity not to break anything real when we build something equally-so.