Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Are Perl programmers generally more morally flexible than others?


sort by: page size:

This article talks about an interesting observation, that the behavior of people exposed to Perl (or any programming language for that matter) tends to be affected by it. I think there might be something to it.

I'm sure there are people who see it that way; I can only speak for myself and for every other Perl developer I ever worked with.

Perl coders are truly a different breed

I would appreciate it if you would describe the stereotype that you think that the text of my comment somehow cast upon Perl programmers, other than the intended tautology.

Perl is a beautiful language. It’s fast. It’s stable. It’s expressive. What I really miss working with other languages is Perl’s documentation.

Bigots gonna bigot. Perl is an unorthodox language; Larry would probably prefer eclectic. It’s tough being the different kid. As paulg wrote, “The superficial demands of orthodoxy make it an inexpensive substitute for virtue. And that in turn is one of the reasons orthodoxy is so attractive to bad people. You could be a horrible person, and yet as long as you’re orthodox, you’re better than everyone who isn’t.”


Great find - Larry Wall writes:

> Three great virtues of programming are laziness, impatience, and hubris. Great Perl programmers embrace those virtues. So do Open Source developers.

> But here I’m going to talk about some other virtues: diligence, patience, and humility.

> If you think these sound like the opposite, you’re right. If you think a single community can’t embrace opposing values, then you should spend more time with Perl. After all, there’s more than one way to do it.


I would say that the character arc of Perl, and the profession generally, leads me to this observation: laziness and impatience are virtues. Be careful with hubris.

Ah, a perl user ;)

For those who don't know :

"The three principal virtues of a programmer are Laziness, Impatience and Hubris." - Perl man page


An anecdote of my career is that some programming languages attract different kinds of programmers. I've dealt with Delphi in the beginning of my career and while there was nothing wrong with the language, it seemed to attract a lot of bad programmers writing really poor code.

And Perl was the opposite of this anecdote: the most brilliant engineers I've met in my career were Perl monks, as they would call themselves. I respect Perl for that :)


Programming Perl is definitely guilty of this.

I think this is the real point about Perl code readability: it gives you enough flexibility to do things however you like, and as a result many programmers are faced with a mirror that reflects their own bad practices back at them.

Oh definitely the attitude exists. I just never saw it directed at Perl. Maybe since, in my experience, Perl has mostly be used as a system language and not a application development language.

Actually, Perl is many different Satans, depending on the particular stylistic quirks of the programmer in question.

I think my comment kinda agrees with this, maybe I didn't make it clear enough though. You can write good or bad code in any language. But because of this, a low barrier to entry is both a blessing and a curse. And as time passes, and the more people touch the code, the higher the chances you end up with something cursed.

So my aversion to Perl could be considered a pragmatic solution to that problem. :-)


Forgive me as I use similarly extreme language. I 100% disagree. Imo Guido's throwaway comment uses the same rhetorical form as hate speech. Your use of "100% agree" and "I actually really like Perl" are mutually contradictory.

Now let me unpack that. I'm curious to see if you reply and whether we arrive at middle ground.

=================================================

> in practice [Perl's use of operators] makes Perl programs more difficult to maintain than they should be

This is an old saw but do you agree that it is a misstatement of what's actually going on:

* Some Perl programmers, especially experienced ones, have made and continue to make Perl programs, including large ones, EASIER to maintain than they could be and would be if written by a similarly strong programmer using the deliberately dumbed down language Python.

* Some Perl programmers, especially beginners, have made and/or continue to make Perl programs, mostly small ones, more difficult to maintain than they should be and would be if written by a similarly weak programmer using a deliberately dumbed down language like Python.

Perhaps your response to that is something like "Oh sure, I just meant most programs I see because they're mostly small and written by inexperienced programmers."

If not, how modern are the Perl programs of which you speak? Much has changed since 2000 and especially in the 2010s: Perl 5 has stabilized around a wise view of the language, interpreter, and how to be respectful of each others' failings; Perl 6 has radically dialed back the complicated built in availability of terribly cryptic symbol aliases as part of a complete rethink of what it means to be a Perl language.

================================================

As for the "hate speech" aspect:

>> Of course, it's definitely possible to overdo this -- then you get Perl.

> That's the Guido we know and love.

The above was the entirety of by far the highest voted comment in the python reddit post about this article.

I posted the following in sardonic response, which also got upvoted:

Guido:

> Once you've internalized the simple properties which operators tend to have, using + for string or list concatenation becomes more readable than a pure OO notation, and (2) and (3) above explain (in part) why that is.

Larry:

> But it contradicts property (1). That's (in part) why I did not use + for string and list concatenation in Perls. Then again I used it for adding floats, even though that contradicts property (1) too. And changed my mind about what symbol to use between Perl 5 and Perl 6. Heck, who cares about consistency?

Guido:

> I care. I consistently hate on Perl and Python users consistently love me doing so.

I generally find Guido's and the Python community's intolerant attitude consistent with the above and with this exchange about the same article on twitter:

> Random nit: you've got a "font-size: 85%" in the CSS for your posts. Mind removing that, so those of us with our default font-size set deliberately don't have to squint?

Guido:

> I'm sorry, I have no interest in CSS hacking. The template is what it is. Deal with it.

Guido's riposte also got lots of hearts (presumably to soothe or applaud their beloved ex-BDFL).

I note the follow up got nothing from Guido:

> It's a single-line deletion, and would improve the accessibility of your blog, but sure ok.

There's zero chance Larry would have thought and spoken as Guido did and he absolutely would have made that single line deletion out of respect for the person whose eyesight wasn't as good as others'. The same attitude applies to improving the language and culture.

==================================================

How familiar are you with current Perl activity?

I see a new Perl emerging, one that will unfold throughout the 2020s. I see a well entrenched self-reinforcing tolerant attitude in Perl culture, even of those who like to use too many operators for my liking.


Quite a few sysadmins around here have a different point of view regarding Perl.

Sure! In the end, there's not much that could really be said to definitively settle this besides a survey of a sizable amount of the Perl community. All we're left with is what our own preference is, and what's stuck out to us from books, blog posts, comments and meetings, which is very prone to confirmation bias. In the end, even if the consensus is it's better not done, I don't doubt it would be on the lighter side of ways you could disappoint coworkers. It's only really confusing to the Perl amateur. That's sort of what I meant by coworkers and dirty looks, rather than suggest your coworker will forcibly change your code for their own sanity. ;)

I'm not sure I agree with you. You do have a point though:

1) Any programmer who writes this line of code as anything other than a lesson in obfuscation should be taken out and shot.

2) Speaking as a Perl programmer who has maintained others' code, _many_ Perl programmers should be taken out and shot.

How about: "Except for pathological constructs that should probably be avoided anyway, the Perl that most people write can be parsed just fine." As I see it, the Perl attitude is that these constructs should be forbidden by social contract rather than by the language itself. Sort of like the farmer who refuses to put a lock on his fuel pumps in case someone really needs to fill a tank in an emergency.


Gross generalisation though any such attempt at a single word summary is, I'd say that's nonetheless pretty true at least from the Perl side of things - the 21st century landscape of both the perl5 and perl6 communities is very much about people who consider themselves "Just Another Perl Hacker" - in that while we might be proud of our achievements, there's very little arrogance about our code itself. Of course the lack of "wow hey this is awesome look at me" is one of the key things leading us to need to learn more marketing as a community, but I'll take quiet pragmatism over loud arrogance any day as the primary mindset of the authors of the things I'm depending on in production.
next

Legal | privacy