http://qs321.pair.com?node_id=11131023

Hi, folks.

Recently I've found (here in PerlMonks) a link to one of Donald Knuth's great talks: Computer Programming as an Art. Knowing it was Knuth's sutff, I knew it would be worth my time.

One of the (often overlooked) benefits of computer programming is that it can be fun. But Knuth goes beyond that stating that it should be fun and that a program should be beautiful. Fun and beauty add a lot of value to the program and to programming.

Now, at the same time, observing the IT industry as whole, we can see how much the fun and beauty of programming are being overlooked. More and more "magic tools" are making way to sysadmin jobs, and they're focused on people who don't want to program. IT managers often see them as a means "not to depend too much on programmers". It's laughable, but I've seen it a lot.

One example of such tools are the configuration management tools, such as Ansible, Puppet, Chef and similar tools, which take a more declarative approach to systems management. I'm not saying these tools aren't useful (or even that they are necessarily bad), but I feel like they've taken a lot of the fun away from systems management.

This is not to mention GUI-only tools, which are mostly closed-source. Fortunately I've been far from them. But currently at my job, I help maintain some Ansible routines, and sometimes it's a daunting task. I can't remember how many times I had to grep a repository to find out when some variable was being set. If a declarative approach should be friendly, then I must say it has failed in my case, because the repository I work with has grown into a messy beast (I'm sure my co-workers agree).

Yet, I remember once I've put a perl one-line command in a playbook and was critized precisely for this action. I was told it would bring complexity and that other people would have difficulty maintaining perl code. Can you believe it? A one-line! I'd say it's a joke if someone else told me.

Of course, I wouldn't give up on Perl because of that. But it makes me wonder why must we always prove something that exists for decades is worthy a try, while something created a few years ago is promptly accepted. Of course, it's just my point of view, which not necessarily happens everywhere. Other points of view would be much appreciated.

Replies are listed 'Best First'.
Re: "Magic tools" that take the fun away (Releng/DevOps/Cloud/Server References)
by eyepopslikeamosquito (Archbishop) on Apr 10, 2021 at 09:29 UTC

      Interesting story. Enlightening, actually. Reminds me of how much I have yet to learn, as I learned to program in 2009 and got involved with Perl ten years later, so I missed many cases like this one you tell.

      Thanks for mentioning Rex, BTW. I didn't know it. It seems to have a saner approach to configuration management, though I could only guess until actually using it for real cases. Not that I expect to use it in my current job. As you mention in Conflict in Teams, we need to disagree and commit, and I missed the "disagree part", as Ansible was already in place when I got there, so I got the "commit part" only (actually, it's funny to say "commit", as it's git-versioned, so "commit" takes more than one sense here).

      Again, Ansible is not bad, just not my first choice for the kind of automation my team performs. It works very well for "standard tasks", and I'm sure that's why it was chosen in the first place. But as business rules get complex, it begins to show its shortcomings.

      So, I'll put Rex "in my pockets", just in case I start something new.

Re: "Magic tools" that take the fun away
by eyepopslikeamosquito (Archbishop) on Apr 09, 2021 at 00:03 UTC

      Thank you, eyepopslikeamosquito, you got the point. This other post you mention translates very well what I mean.

Re: "Magic tools" that take the fun away
by Discipulus (Canon) on Apr 09, 2021 at 10:34 UTC
    Hello hrcerq and welcome to the monastery and to the wonderful world of perl!

    > Recently I've found ..

    Glad of someone profit of my messy bibliotheca!

    You mention: art, beauty and fun. These are all terms related to the the human being as central point of view. I have the same idea and I consider programming, in the way we like it, as an humanistic art, not only an art. When the human is in the center of our perspective there is room for creativity and happiness.

    Starting from Knuth's article you mentioned, I've written a mini serie (unfinished): Antiquitates - liber I - In memoriam Robert M. Pirsig and Antiquitates - liber II - De trivio atque quadrivio are available atm.

    You can profit also the reading of a recent thread: Why Perl in 2020.

    > IT managers often see them ("magic tools") as a means "not to depend too much on programmers". It's laughable...

    I found this not laughable at all :)

    While we can still have an humanistic approach to IT and programming, the business and therfore managers have a moneycentric approach and to not depend too much (and one day to not depend at all) on programmers is a key point in their strategy.

    "Magic Tools" must be run by an idiot formed to accomplish boring tasks. If this worker is unpleasant or costs too much, they can replace them with another one with easy. In another corner of the world where salaries are risible? Even better!

    In this way I also see the declining of Perl: is too humanistic. Not a suitable tool for robot-workers.

    Higher the complexity of tools, the abstraction, harder to see the whole picture. If someone still has a vague idea of the whole picture they will be seen as wizards in some years.

    My hope is that the above schema will collapse on itself oneday, all togheter. Then a good old sysadmin, perl outfitted, will be valuable as gold.

    L*

    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

      Thank you, Discipulus. I don't think your bibliotheca to be messy, but even if it is, it's a great resource, and as my spare time allows me, I'll dive deeper there.

      Also, these other meditations you point out are very much related to the subject. Really appreciated.

      > I found this not laughable at all :)

      My point here is that even if you use a "no-code" solution, you depend on the programmers who maintain the magic tool behind that. So, in the of the day, you'd be just transferring your dependance to a programmer that is more distant and less accessible.

        "Magic tools" are great for streamlining repetitive, error-prone work. And there's no doubt that "configuration management" across a big stable of servers is near the top of that list. But, you'd better be sure that you know at all times what is really going on. It is very, very easy to make an "innocent" mistake with these power-tools that instantly has far-flung implications. For instance, it's absolutely necessary that you put the configuration files under git version-control, and that you very-carefully track them in your change management system.
Re: "Magic tools" that take the fun away
by jmlynesjr (Deacon) on Apr 09, 2021 at 03:25 UTC

    Vendors sell tools to IT managers, not programmers. Lost an ethernet vs. Token Ring battle in the 80s...No One Ever Got Fired by Choosing IBM...

    James

    There's never enough time to do it right, but always enough time to do it over...

A reply falls below the community's threshold of quality. You may see it by logging in.