It's funny you switch to Arch Linux, because Arch Linux is exactly the worst example of broken userland that Linus is talking about in the post. Arch Linux values "bleeding edge" over all things including basic usability, and they willfully break compatibility with all other distros even when there is no conceivable benefit.
The best example of this is the Arch mishandling of Python 3. Remember when they decided that "python" was now Python 3? If you are a Python dev, then alarm bells should already be ringing in your head. This is a BAD decision with no excuses.
Python is wonderful because it is very portable. I can write Python scripts on my Mac and run them on Linux or even Windows without significant changes. Python 2 and Python 3 are incompatible, and I usually target Python 2 for anything I want to be portable, since Python 2 ships default on OS X and on lots of Linux distros. This is reality.
My Python 2 scripts begin with a shebang, "#!/usr/bin/env python" which launches the Python 2 executable, wherever it is installed, on OS X or Linux. Unless you are running Arch Linux, in which case you need to go in and manually change the script to point to "python2" instead of "python". Except "python2" is essentially unique to Arch, it doesn't exist on Debian or Fedora or OS X or whatever. So no portable script is EVER going to point to "python2".
But there's no real benefit to making "python" into Python 3. Anyone targeting Python 3 will write "python3", which works wherever Python 3 is installed, including Arch Linux. This is the decision the upstream made, and it's a good decision. Anyone targeting Python 2 writes "python", which works everywhere except Arch, and on Arch you have to edit your scripts. Who wants to keep a separate copy of your scripts for Arch? What if they're not your scripts? Do you write a shell script that runs "sed" to fix them? What if you keep your Python scripts in Git or SVN, and don't want to change them every damn time you check out a fresh copy on Arch?
Worse yet, lots of Python devs want to install and test with specific versions of Python -- say, the Python version that their servers run. Arch sabotages this, because as soon as you put "python" in your $PATH, a ton of Arch programs break if they target Python 3. And they wouldn't have broken if they just said "python3" in the shebang to begin with.
The result is that Arch has to maintain a fork of EVERY Python script in their repository. For what? No real reason. The only conceivable benefit of this terrible change is that a user can type "python" in the terminal and get Python 3 instead of Python 2. I've been doing this for years with an alias in my .bashrc, and it doesn't break every Python package in the repository.
So in short, the Arch Linux developers promise a new world in which not only is binary compatibility impossible, but source compatibility for SCRIPTING LANGUAGES is impossible as well. They have taken a bad idea and stuck to it, dismissing anyone who disagrees with them by suggesting that they use "sed" to fix the user's "broken" scripts, in such a way that it would break compatibility with every distribution besides Arch.
And I have further rants about Arch with respect to (1) their dismissal of bug reports of serious security vulnerabilities in default configurations (2) the dismal performance and general usability of their package manager (3) the inability of their maintainers to create a correct package for something as simple as a font (4) the terrible average quality of advice on their wiki, which is often gives advice that simply doesn't work for well-documented and easy-to-discover reasons.
Gawd, use anything else. Gentoo, even.
Okay, I want to rant more.
(1) Security vulnerabilities are dismissed with the kind of reasoning like "users who run this package know what they are doing, and don't run the application on untrusted networks." Considering any (non-virtual) network secure is almost certainly a sign of incompetence in your sysop.
(3) Install "terminus-font", it won't work. You have to manually "xset fp" the path to it.
(4) See #3, and then look up the Wiki advice for it. It just doesn't work if you run e.g. GDM, which doesn't run ~/.xinit.
I don't really understand the fuss about the Python thing. `#!/usr/bin/python2` should work on pretty much any system, not just an Arch Linux system. Whatever happened to "explicit is better than implicit"?
If the Python community eventually wants Python 3 to become the default, they will all have to deal with this issue sooner or later; Arch is just opting for "sooner", as that's in line with the way Arch approaches all changes. The real problem is that there are two incompatible versions of Python, and most Python developers give too little thought to forward compatibility to include an extra '2' in their shebang lines in order to disambiguate their intentions. Just because python == python2 on most systems today does not mean the status quo will forever be the same, nor that it ought to be.
In any case, there is no problem making Python scripts work on Arch, even if they use the ambiguous shebang. All of the official packages work out of the box with no problem, of course, and anything unofficial (i.e. AUR packages) just needs a single, trivial sed command added to the PKGBUILD. Arch is not "maintaining a separate fork of each Python package". This is the opposite of true; in fact Arch packages are, on the whole, far closer to their upstream counterparts than the same packages from other distros, where it is common for huge divergences to be made from the upstream defaults. Hardly worth ranting about.
You come across as if the Arch developers viciously attacked your family or something. Maybe it's just a distro with different values than yours, man! Relax, there are lots of other choices! It's not supposed to appeal to everyone, but for those of us who align well with the Arch "philosophy", it's fantastic.
There is a serious problem when "pretty much any system" excludes both Debian and Mac OS X, and I don't know which others. The "python2" symlink is frighteningly recent in the Python world, and some of us like to support systems other than the bleeding edge. It makes me kind of skeptical that you read my post, because this was the main point of my complaint.
My point is not that it's hard to get Python scripts to run on Arch, my point is that I shouldn't have to do any work at all.
"Until the conventions described in this PEP are more widely adopted, having python invoke python2 will remain the recommended option."
"This feature [python2 symlink] will first appear in the default installation process in CPython 2.7.3."
Python 2.7.3 was released in August 9, 2012, slightly over one month ago. That means that if you are running a Python 2 that is more than one month old, you won't have the symlink unless you make it yourself, or your distribution provides one for you.
I'm using Archlinux for years now and I'm perfectly happy with it. And yes, I'm a Python dev, but I think that Archlinux' naming approach is the right one. Main reason why I love Arch is because I like bleeding edge - and I don't really care if it breaks compatibility with other distros (what does this even mean? except for the Python example most other software doesn't require any modifications at all).
At work I'm using OS X machines and "administrating" them is way more effort than for Archlinux. With Arch I run a full upgrade every once in a while and if something breaks it's always trivial to fix (if you understand the system). With OS X you have to choose one of multiple broken package management systems (macports, brew, ...). A third of the packages I'd like are missing, the next third is outdated, and the last third doesn't build at all.
It may be perfectly possible that Arch doesn't work for you. But stop assuming that everyone is like you. I don't need someone telling me what to use and what not to use. If you like Gentoo (or OS X or whatever) better than just use it.
Arch does not maintain a complete copy of all python scripts, the packages just include a post install step that uses sed to replace python with python2 in the shebang lines. For example see the PKGBUILD for Django:
https://projects.archlinux.org/svntogit/packages.git/tree/tr...
As for 3. adding /usr/share/fonts/local to the xserver's font path in /etc/X11/xorg.conf.d/20-fonts.conf does the trick. It's too bad there are no recursive search for font files.
this is so lame, do a ps -e | grep python to find any python running apps that you normally use(when idling) I found out on my Arch its using python2 not just python, so why don't you remove python and add a sym link to python2 as python, wont hurt would it? I've used Arch for about 6 months, I only got to break the system by my mistake, it was never broken as per for its own fault(I actually do read the new on updates when they recommend it). The thing with computers is that they aren't toys that are easy to use, stop trying to make them: you'll either loose security or performance or space. If something like chmod +x was there on Windows virus propagation might be alot less, but who the hell cares to chmod +x an executable downloaded from the net? Or who has the "time"? so they make big and bloaty anti viruses to do that stuff and its not even doing it right!
The best example of this is the Arch mishandling of Python 3. Remember when they decided that "python" was now Python 3? If you are a Python dev, then alarm bells should already be ringing in your head. This is a BAD decision with no excuses.
Python is wonderful because it is very portable. I can write Python scripts on my Mac and run them on Linux or even Windows without significant changes. Python 2 and Python 3 are incompatible, and I usually target Python 2 for anything I want to be portable, since Python 2 ships default on OS X and on lots of Linux distros. This is reality.
My Python 2 scripts begin with a shebang, "#!/usr/bin/env python" which launches the Python 2 executable, wherever it is installed, on OS X or Linux. Unless you are running Arch Linux, in which case you need to go in and manually change the script to point to "python2" instead of "python". Except "python2" is essentially unique to Arch, it doesn't exist on Debian or Fedora or OS X or whatever. So no portable script is EVER going to point to "python2".
But there's no real benefit to making "python" into Python 3. Anyone targeting Python 3 will write "python3", which works wherever Python 3 is installed, including Arch Linux. This is the decision the upstream made, and it's a good decision. Anyone targeting Python 2 writes "python", which works everywhere except Arch, and on Arch you have to edit your scripts. Who wants to keep a separate copy of your scripts for Arch? What if they're not your scripts? Do you write a shell script that runs "sed" to fix them? What if you keep your Python scripts in Git or SVN, and don't want to change them every damn time you check out a fresh copy on Arch?
Worse yet, lots of Python devs want to install and test with specific versions of Python -- say, the Python version that their servers run. Arch sabotages this, because as soon as you put "python" in your $PATH, a ton of Arch programs break if they target Python 3. And they wouldn't have broken if they just said "python3" in the shebang to begin with.
The result is that Arch has to maintain a fork of EVERY Python script in their repository. For what? No real reason. The only conceivable benefit of this terrible change is that a user can type "python" in the terminal and get Python 3 instead of Python 2. I've been doing this for years with an alias in my .bashrc, and it doesn't break every Python package in the repository.
So in short, the Arch Linux developers promise a new world in which not only is binary compatibility impossible, but source compatibility for SCRIPTING LANGUAGES is impossible as well. They have taken a bad idea and stuck to it, dismissing anyone who disagrees with them by suggesting that they use "sed" to fix the user's "broken" scripts, in such a way that it would break compatibility with every distribution besides Arch.
And I have further rants about Arch with respect to (1) their dismissal of bug reports of serious security vulnerabilities in default configurations (2) the dismal performance and general usability of their package manager (3) the inability of their maintainers to create a correct package for something as simple as a font (4) the terrible average quality of advice on their wiki, which is often gives advice that simply doesn't work for well-documented and easy-to-discover reasons.
Gawd, use anything else. Gentoo, even.
Okay, I want to rant more.
(1) Security vulnerabilities are dismissed with the kind of reasoning like "users who run this package know what they are doing, and don't run the application on untrusted networks." Considering any (non-virtual) network secure is almost certainly a sign of incompetence in your sysop.
(3) Install "terminus-font", it won't work. You have to manually "xset fp" the path to it.
(4) See #3, and then look up the Wiki advice for it. It just doesn't work if you run e.g. GDM, which doesn't run ~/.xinit.