7 ms·
I'm curious about this quote on page 21: "Administrators really hate Python. Really. HATE." I hadn't heard anything like this before, what is the reasoning her
by Jonanin 12y ago
I'm curious about this quote on page 21: "Administrators really hate Python. Really. HATE."
I hadn't heard anything like this before, what is the reasoning here?
- digitalsushi 12y agoImagine me explaining this with my eyes closed and my hands hidden in each sleeve. This is not an excuse, only a subjective observation: Python has properties that are not congruent with the expectations of an inexperienced administrator. Its scent is unlike the other creatures that exist in our fold and it makes us feel inadequate that we cannot control it with the skills we use to control the rest.
- nasalgoat 12y agoAs an experienced administrator, I can tell you most hate change. So, a lot of admins are still using Perl and Bash scripts. Python doesn't really bring anything to an admin's life that isn't covered by those other two workhorses from the 90's toolbelt, except irritating change.
- blutgens 12y agoNailed it. 100% I'm a believer in python, and even ruby. The problem is that most of my colleagues have no interest in learning a new language. So deploying stuff with it, when there's not enough benefit is really impractical at best, and unnecessarily annoying at worst.
- e12e 12y agoI get where you're coming from, but I will still claim that maintaining other admin's python is preferable to maintaining their perl (or even bash) scripts. So I wouldn't say it doesn't bring anything but change.
- mprovost 12y agoPerl is fine. Your distro comes with it, you download some script off the internet, maybe you have to install something from CPAN, but it generally works. What version of bash are you running? Does anyone care? It's just a default that comes with your system. It's not that sysadmins are objecting to writing python, it's the pain involved in running other people's python that is the source of their complaints. And it is handy to grab a script from your home directory that you haven't run in years but you wrote for that one situation that has cropped up again, and have it still run. That is far from guaranteed with Python unfortunately, but probably works with Perl or Bash.
- yourapostasy 12y agoI would refine that to say administrators hate change when they have to bear the brunt of adverse effects of change. When a lot of organizations demand administrators keep a production net stable, with a staging net that bears only a faint resemblance to the production net, and a development net that is a caricature, is it any wonder the administrators despise change? I've been in some shops where the poor bastard administrators only have production to work with, and they are the ones yelled at and the quarterly reviews dinged when a change forced upon them, surprise, surprise, breaks a critical LOB process.
- barkingcat 12y agoOff the top of my head, the only way I can find to hate python is if an application was made to not be able to run under virtualenv or any of the really great environmental separation tools that a modern python setup uses. If "using python" means intertwining the app into the system python / requiring sudo, etc then I would hate it too.
- stonogo 12y agovirtualenv being described as 'really great' is... interesting. on a production system, it is a workaround to prevent truly horrible implementation from stopping work. I'm sure it's really great on a developer's laptop... but the standards are and should be different. virtualenv is, to sysadmins, the symptom of a disease.
- wtbob 12y agoAs a onetime sysadmin, the problem with deploying into virtualenvs is that suddenly I need to maintain loads of security patches again, rather than rely on my distribution's patch management. At a large enough place, that might be alright, since we might need to front-run or lag the distro anyway. But now I have to worry about n different Python versions and security patch versions, and it's a headache. Give me a package of known-goodish stuff, not something which relies on lots of other fiddly stuff which I might need to build by hand, or maintain by hand.
- mprovost 12y agoOne reason is that versioning is really hard. Now that Python comes standard with Linux distros, and in fact some of the built in tools are written in Python, it becomes really hard to upgrade. So you can never touch the version that your OS ships with or you'll break some part of the OS. But those are usually years behind and developers generally want the new hotness so you end up installing newer versions elsewhere. There are tools built around this like virtualenv but you end up with a bunch of different versions of Python installed in different places, and then installing modules becomes something that happens outside of your system's package management software so you can't track dependencies etc. And python itself has really weak package management, or rather several competing and incompatible systems but you'll download modules that use each of them so you end up with all of them. At least Ruby and Perl were able to standardise on one each.
- kbenson 12y agoAnd lo, Python became Perl, and the cycle was complete.
- Aqwis 12y agoWhat are the "several competing and incompatible systems"? I haven't used anything other than pip, ever. I know of easy_install, but as far as I know pip is an outright total replacement for it.
- crististm 12y agoThe tools installed by pip won't usually work with the old versions of Python found by default on some systems. They break because they want a new Python feature, and that makes you want to upgrade and that... you can't do that because it will break dependencies at system level. And then you want to install a new Python side by side and you sort of do that but /usr/bin/python still points to the old version and you have to be explicit with /usr/bin/python2.6 in your scripts. But then some scripts will work and some still don't and you make /usr/bin/python point to /usr/bin/python2.6 and now you really broke yum. And all you can do now is hate python because it gave you all these problems.
- crististm 12y agoWhen you can't 'yum upgrade python' because it breaks half of your system, the threshold for hating drops really fast. What kind of idiots tied their system to Python 2.4?
- ciupicri 12y agoThe same "idiots" who guarantee API (version) stability for many, many years.
- crististm 12y agoI won't debate this more than necessary. Nobody stops you for shipping system tools with Python 2.2 if that is what you want. But don't step on my toes and tell me that I can't install 2.6 and set it as the default one. If you do that you give me a license to call you names.
- ciupicri 12y agoPython 2.6 is available in EPEL5 [1]. It runs in parallel, so the default remains the same, but it's better than nothing. [1]: http://fedoraproject.org/wiki/Python26#Available_Packages_for_EPEL5 http://fedoraproject.org/wiki/Python26#Available_Packages_fo...
- noselasd 12y agoThe people that developed/administered stuff when Python 2.4 was brand new.
- crististm 12y agoYou missed my point. The stupidity is not in using a particular version of a software you have at a time. But in the limitations you get when you can't upgrade or install another default version without breaking the system. Of course you know how easy it is to make your scrips use python2.4. Just make the shebang #!/usr/bin/python24 instead of #!/usr/bin/python. Then you can install another default version and if you keep the old version around you don't break anything. Since other distributions are doing a pretty decent job at it (see gentoo), they don't have any excuse not to do it right.
- toast0 12y agoThe biggest thing is that adding Python doesn't mean you get to remove anything else. If I now need python, I still need a bourne shell, I still need perl, I still need c/c++. And frankly significant whitespace still pisses me off: as a sysadmin, I have to make a lot of very small tweaks to random code work in various languages, and most of them have the decency to let me see where the blocks are with my eyes, instead of with my cursor counting tabs and spaces. I presume people who spend a lot of time with Python use editors that show spaces, but since everything else doesn't care (other than Makefiles, but Makefile whitespace is very simple), I don't know how to turn those options on, if they even exist in my editor. And I say this as someone who writes in erlang, with it's shitty line endings, when I get to take off my sysadmin hat.
- fenollp 12y agoAbout Erlang, what if those ;,. weren't needed after all? I'm working on this: https://github.com/fenollp/kju/blob/master/examples/snippets.kju https://github.com/fenollp/kju/blob/master/examples/snippets...