[HN Gopher] Perl, the first postmodern computer language (1999)
       ___________________________________________________________________
        
       Perl, the first postmodern computer language (1999)
        
       Author : takiwatanga
       Score  : 136 points
       Date   : 2022-05-04 12:05 UTC (10 hours ago)
        
 (HTM) web link (www.wall.org)
 (TXT) w3m dump (www.wall.org)
        
       | dc-programmer wrote:
       | Meta-modernism was a mistake
        
       | 40acres wrote:
       | The first code base I worked on professionally was Perl. While I
       | admire it's power I never got used to it. It was very difficult
       | for me to read and our code base was pretty large and I didn't
       | feel like Perl handled OOP well at all. When we switched to
       | Python it was like a breath of fresh air.
        
       | sigmonsays wrote:
       | anyone remember scaling servers with POE?
       | 
       | Ah the good ol days....
        
       | kerblang wrote:
       | For years Mr Wall attempted to justify Perl as the manifestation
       | of 90's neohippie culture, as this mashup of weirdness that was
       | cool because it didn't worry about being particularly consistent
       | with itself. I think the worst of it is when he draws parallels
       | with the Dave Matthews Band. Ugh. Nothing screams "I'm soooo
       | dated" like fixating on short-lived youth trends. Perhaps he
       | should've described Perl as "hip hop" but... hmmm...
        
         | kerblang wrote:
         | I take it there are a lot of rabid Dave Matthews fans on here.
        
       | hzhou321 wrote:
       | Perl is really cursed by the past glory. People still trying to
       | revive Perl against modern fad, for example, Python. Fad are
       | powered by steam of live Eco-systems, which Perl once had, but no
       | longer have. There is no real reason why Perl couldn't succeed
       | where Python does other than the path of history. And there is no
       | real reason to chase history today.
       | 
       | Rather than looking for killer app or adding modern features,
       | such as the effort of Perl 6, now Raku, Perl should shed features
       | and focus on stability (which it is fighting hard to retain), on
       | ubiquity (which it had and are losing ground), and core
       | performance (which it is slowly degrading due to features). I
       | think it should try to get a core set into POSIX standard. The
       | core Perl can be like POSIX shell, while a distribution always
       | can distribute a fancier, but always compatible Perl.
       | 
       | Perl should replace shell scripting, period. If there is any
       | reason shell scripts is still preferred, then that should be the
       | TOP focus for Perl steering council to address.
       | 
       | It really frustrates me to see people today, me included, are
       | still trying to manage basic software engineering in shell
       | scripts. It really amuses me today to listen to pastors on how to
       | write good shell scripts. It really saddens me today to watch
       | efforts of inventing a better shell for scripting.
        
       | andai wrote:
       | >Whatever the verb you choose, I've done it over the course of
       | the years from C, sh, csh, grep, sed, awk, Fortran, COBOL, PL/I,
       | BASIC-PLUS, SNOBOL, Lisp, Ada, C++, and Python. To name a few. To
       | the extent that Perl rules rather than sucks, it's because the
       | various features of these languages ruled rather than sucked.
       | 
       | "I have stolen ideas from every book I have ever read. My
       | principle in researching a novel is 'Read like a butterfly, write
       | like a bee', and if this story contains any honey, it is entirely
       | because of the quality of the nectar I found in the work of
       | better writers."
       | 
       | Philip Pullman
        
       | catchclose8919 wrote:
       | ...to this day, I still can't wrap my head on _how PHP even got
       | to exist_ in a world where Perl was already filling the web niche
       | just fine.
       | 
       | Also, if they wouldn't have made it too-weird-for-math-and-
       | physics people, Perl would've probably filled Python's niche too.
       | 
       | And with that kind of resources focused on it, Perl 6 could've
       | actually turned up into a clean nice new language that would've
       | unified us all by also supporting nice compile-to-wasm.
       | 
       | </alternative-reality>
        
         | mekster wrote:
         | Everyone was just starting out at pre 2000. Perl was scripting
         | first but PHP was HTML first, as in plain HTML is still a valid
         | PHP and it was easy for people to pick up without having have
         | to see some weird error without the content-type "magic" line
         | and setting the file to "777" to get it working.
         | 
         | But I do like its Unix feeling. Too bad no one uses it anymore
         | and have to move on.
        
         | tombert wrote:
         | I'm speaking completely out of my ass here, but my suspicion
         | for why PHP took over the web is largely because it was "web-
         | first". It was free, open source, and you wrote directly on
         | HTML pages, instead of Perl spitting out HTML via CGI.
         | 
         | I think ColdFusion was briefly popular for the same reason
         | (though I think that one fell out of favor largely because it
         | cost a ton of money).
        
         | Arathorn wrote:
         | It's easy; PHP is/was:                 <html><body>       <?php
         | echo 'Hello World'; ?>        </body></html>
         | 
         | Whilst the equivalent Perl at the time would be:
         | #!/usr/local/bin/perl       print "Content-Type:
         | text/html\r\n\r\n";       print "<html><body>";       print
         | "Hello world";       print "</body></html>";
         | 
         | or possibly...                 #!/usr/local/bin/perl       use
         | strict;       use warnings;        use CGI;       my $q =
         | CGI->new;       print $q->header('text/html');       print
         | $q->start_html();       print "Hello world";       print
         | $q->end_html();
         | 
         | ...if you were being a bit more more fancy.
         | 
         | In other words, there was no standard templating; Template
         | Toolkit eventually became a relatively defacto standard, but
         | PHP had already won - and even then, TT had to be manually
         | invoked rather than just going and freestyling <?php> tags
         | everywhere in your HTML and "it just working".
         | 
         | In every other respect Perl is & was superior to PHP, and it's
         | really sad to see Perl fade, despite (or because of?) its crazy
         | flexibility and power.
        
           | ff317 wrote:
           | +1 to that. I'll add the other thing that gave PHP an edge at
           | the time:
           | 
           | Installing any major work built in Perl back then was a
           | nightmare of installing all the underlying dependency
           | modules, often into the system directories. It didn't have a
           | clean, standardized way to package up a script + dependencies
           | easily, and dependency management was hellish, especially
           | with many key modules needing platform-specific C
           | compilation.
           | 
           | At that time commercial "shared" hosting was still common:
           | many customers sharing one linux webhosting box and uploading
           | scripts to via FTP, with no access to or control over the
           | underlying system. If the webhost supported PHP, you could
           | upload a php script and it Just Worked. Not so with Perl!
           | 
           | Perl was by far the superior language, but it just wasn't the
           | superior experience for a beginning web developer who mostly
           | just wanted to embed a tiny amount of CGI functionality in a
           | static HTML page, and then upload and run it pretty much
           | anywhere with no fuss.
        
             | anthk wrote:
             | No CPAN and local::lib?
        
           | hedora wrote:
           | With your first example, there was no easy path to compatibly
           | handling form requests. Web browsers really sucked back then.
           | 
           | As I understand it, PHP became popular before CGI.pm was
           | ready.
        
             | thatwasunusual wrote:
             | > As I understand it, PHP became popular before CGI.pm was
             | ready.
             | 
             | CGI.pm was created long (...) before PHP was released.
        
           | thesuperbigfrog wrote:
           | >> In other words, there was no standard templating.
           | 
           | I am not sure how much of a standard it was, but Perl Mason
           | was a superb web site templating system.
           | 
           | Amazon and many other websites used it for years because it
           | was flexible, high performance, and had fewer security
           | problems compared to PHP.
           | 
           | http://www.masonhq.com/sites
           | 
           | https://masonbook.houseabsolute.com/book/
        
             | thatwasunusual wrote:
             | I was about to mention HTML::Mason, which was superior to
             | many other templating solutions back then.
             | 
             | The biggest problem for Perl was that PHP was almost built
             | for the web, while Perl was "just a normal programming
             | language."
             | 
             | I wonder where Perl would have been if there had been a
             | packaged and easy to install version of Apache with Perl,
             | mod_perl, HTML::Mason etc. pre-installed in some way in
             | late 90s.
        
           | tomc1985 wrote:
           | Pretty sure there's a way to load perl as a webserver module
           | like PHP, then you can do that embedded stuff too
        
             | jerf wrote:
             | Yes, but that stuff came later. It's actually the first way
             | I used Perl on the web, but by then PHP was off to the
             | races.
             | 
             | You could even get modules that would allow you to inline
             | Python just like PHP, although the interaction between that
             | and mandatory indentation could get a bit "interesting".
             | 
             | Also perhaps ironically, this style of mixing code and HTML
             | has generally come to be regarded as an antipattern. PHP
             | may still be able to do that, but woe unto the project that
             | wants to write tons of code that way. But it's still the
             | foothold PHP used to wedge its way into at least the B tier
             | of languages.
        
               | tomc1985 wrote:
               | > Also perhaps ironically, this style of mixing code and
               | HTML has generally come to be regarded as an antipattern.
               | 
               | Tell that to the React world :P
        
           | xorcist wrote:
           | That was certainly part of the convenience out of the box.
           | But you could have done something similar with mod_perl since
           | it had filters that could act on every page. Then embperl
           | started to gain popularity some time in 1996, which was
           | decidedly even more like a templating engine, and after that
           | came Mason.
           | 
           | PHP really exploded in popularity when web hosting took off.
           | It had a safe mode that made it possible to for several
           | customers to co-exist in the same web server, without having
           | the ability to read each other's files.
        
         | incanus77 wrote:
         | I'll tell you why it appealed to me.
         | 
         | I started programming web systems in '96, with Perl because it
         | was on every machine and every web host. Apache mod_perl was a
         | thing, and it was a bad thing, because it had to be restarted
         | all the time because of memory leaks.
         | 
         | On the other hand, mod_php was much more solid, and
         | additionally, at the time, MySQL was the main thing for many
         | websites. The Perl database bindings were wordy and obtuse, but
         | PHP was a breath of fresh air. I was able to start using it in
         | environments in '99 and honestly, I've never looked back at
         | Perl as a web application language, just a systems one.
         | 
         | That simple difference was enough to make me fully switch over,
         | and it set me on the path of a career programmer, so I look
         | back on that time very fondly.
         | 
         | One other thing: I don't recall Perl scripts allowing C-style
         | pre-processing inclusion the way PHP did. I worked at Linux.com
         | around then and we used all sorts of templating and other
         | library reuse via this inclusion.
        
         | dunefox wrote:
         | If we're speaking alternative realities, I'd like to live in
         | the one where Lisp took over instead of Java/C++...
        
         | toast0 wrote:
         | mod_perl was stateful and mod_php was stateless.
         | 
         | By that I mean, a mod_perl program was expected to change the
         | execution state for future executions, global variables would
         | remain, etc. There are ways to make that happen in mod_php, but
         | it isn't the default and I don't know if they were available
         | initially. This made it easier to share a mod_php server with
         | many users... A mod_perl really should be suexeced per user (or
         | something) and that's hard. Really, you want to do per user php
         | servers too, but it wasn't obvious back then.
        
         | 0xbadcafebee wrote:
         | People see a tool designed for one specific purpose, assume
         | that must be the best tool for the job, adopt it, then more
         | people do, then it gets popular, then people adopt it just
         | because it's popular.
        
         | influx wrote:
         | As I recall, PHP just seemed blazing fast compared to Perl, and
         | most web hosts already had it installed in Apache. Further,
         | many web hosts didn't even allow CGI due to security issues.
        
         | [deleted]
        
       | MichaelMoser123 wrote:
       | maybe perl code is a bit unreadable at times, but its
       | documentation is very readable. Just look at:
       | 
       | https://perldoc.perl.org/perlfunc#Perl-Functions-by-Category
       | 
       | All the standard library ordered as links, by categories that
       | actually make sense!
       | 
       | Also perl5 used to be very accessible, even the parser error
       | message made actual sense. I think that a lot of care has been
       | put into these details, and that this attention to details did
       | have a role in the success of the language.
        
       | a4isms wrote:
       | Modernism:
       | 
       | "Less is more"--Mies van der Rohe
       | 
       | Postmodernism:
       | 
       | "Less is a bore"--Robert Venturi
       | 
       | ----------
       | 
       | Guided by these famous quotes, if I were to call a programming
       | language a "Modernist" language, I'd think of something that
       | prizes elegance. It can't just be a small language, it has to be
       | a small language with a few features powerful enough to actually
       | do more.
       | 
       | I would think of languages like Scheme or Smalltalk or C as
       | fitting that label. But not JavaScript or Java or C++.
       | 
       | And if I were to call a language "Postmodernist," I'd expect a
       | language to incorporate historical motifs, whimsey/surprise, and
       | arresting/attention-grabbing features.
       | 
       | Perl might fit that bill. C++ manages to be "more" without being
       | postmodernist, IMO.
        
         | a4isms wrote:
         | I'm adding SNOBOL to my list of modernist languages.
         | "Everything is pattern-matching" fits the modernist ethos.
         | 
         | On the other hand, what about APL? Although the syntax looks
         | just as much like line noise as Perl's syntax, it is actually a
         | very elegant language. Is APL also a modernist language?
         | 
         | https://www.youtube.com/watch?v=a9xAKttWgP4
        
           | anthk wrote:
           | If you think about it... Smalltalk.
        
         | a4isms wrote:
         | p.s. This is fun. So what constitutes a _Brutalist_ programming
         | language?
         | 
         | It should be something that:
         | 
         | - Exposes the construction materials
         | 
         | - Implies mass and permanence
         | 
         | - Is usually institutional, e.g. libraries, government
         | buildings, public housing. Only rarely shopping centres or
         | company head offices (which were usually done in the
         | "International" style when Brutalism was a thing).
         | 
         | What fits that bill? How about SQL?
        
           | anthk wrote:
           | Forth. It was in OpenBIOS, it exposes the internals, you can
           | define all its standard words by itself.
        
           | the_only_law wrote:
           | COBOL, ABAP
        
           | munificent wrote:
           | C++ is absolutely the world's foremost brutalist language.
        
             | anthk wrote:
             | What? Not even close. C++ is Baroque.
        
               | munificent wrote:
               | None of its monumental complexity is ornamental. It's all
               | there to expose some inner working of its underlying
               | semantics for the user that needs to access it. It's hard
               | for me to imagine something more brutalist than operator
               | new or partial template specialization.
        
               | a4isms wrote:
               | There's always protected inheritance, a/k/a "was_a," or,
               | "is implemented in terms of."
               | 
               | That's like postmodern furniture design. "This couch
               | was_a giant pair of lips," meaning that although it is
               | implemented as a pair of lips, we'll treat it as type
               | couch.
               | 
               | Same for, "This chair was_a giant baseball glove."
        
           | pram wrote:
           | MUMPS
        
           | lifefeed wrote:
           | Ada.
        
       | tokai wrote:
       | The author misunderstood what postmodern is. It is not the next
       | epoch after modernism.
        
         | anthk wrote:
         | Saying that to a linguist it's... interesting.
         | 
         | On Perl, CPAN was and it's still amazing, and lots of stuff
         | came from that. For example, Mojolicious for the web, BioPerl
         | for bioinformatics and Rivescript to write silly chatbots,
         | among others. Oh, and pkg_* under OpenBSD.
         | 
         | INB4 gen-z's rant on "PeRl It'S UnRead@ble", check the intro
         | from "perldoc perlintro".
         | 
         | EDIT: Unless I'm sure the deleted link it's right, I'd avoid
         | posting it.
        
           | fps_doug wrote:
           | I'm more than two decades away from being gen-z, and I still
           | agree with that sentiment. There might be that theoretical
           | wise and disciplined Perl programmer writing well structured
           | and readable code, but wherever I interfaced with people
           | writing/maintaining Perl code, it was the most hastily thrown
           | together crap that once was a small tool that "just worked"
           | and then slowly grew completely out of hands over the years.
           | You can have that in any language, but for some reason Perl
           | always excelled at that discipline.
           | 
           | Also, https://www.youtube.com/watch?v=0jK0ytvjv-E
        
             | cestith wrote:
             | Be sure to blame the saw and the hammer, as it can't be the
             | fault of the carpenter.
        
             | chasd00 wrote:
             | iirc Perl was always described as the "duct tape of the
             | internet" which encompasses the good and bad sides of Perl.
        
             | the_only_law wrote:
             | > I'm more than two decades away from being gen-z, and I
             | still agree with that sentiment.
             | 
             | Can't really be a comment without a aside-from-the-point
             | slurring
        
           | [deleted]
        
           | cestith wrote:
           | Please don't post links to pirated content.
        
             | anthk wrote:
             | I think Orelly themselves put these for free back in the
             | day in its own domain. I have to seek archive.org in order
             | to be sure.
             | 
             | I tought that because most of the books are outdated (15
             | years on IT it's an epoch), albeit the sed/awk/perl/*sh and
             | Sendmail books are still godly useful.
        
               | cestith wrote:
               | I actually received a free book from O'Reilly once for
               | pointing out the exact site you mentioned, so their
               | lawyers could address it.
               | 
               | If you want these books very cheaply, the Perl CD
               | Bookshelf usually sells for about $5 used. You get Perl
               | in a Nutshell in print and a bunch of the other books on
               | CD.
               | 
               | A better introduction to Perl these days is Modern Perl,
               | which is available to read online for free or you can pay
               | for a print book. http://modernperlbooks.com/
        
         | cestith wrote:
         | https://www.wordnik.com/words/postmodern
         | 
         | Postmodern in this instance means rejecting modernism by
         | remixing eclectic elements from various periods.
        
       | forgotmypw17 wrote:
       | I love Perl. I use almost none of its more esoteric features, and
       | just write "classic procedural" code, mostly using command-line
       | utilities instead of third-party modules for anything I don't
       | want to write myself (mainly cryptography), and I am so fucking
       | happy not having to deal with breaking changes in my language, a
       | rare quality these days.
       | 
       | I used a machine with a 9-year-old distro on it for a few months,
       | and all my scripts ran without issue, and I have high confidence
       | that they will continue to run for years down the road without my
       | having to adjust them for breaking changes in the language
       | runtime, which is more than I can say for most other stacks I've
       | used.
       | 
       | Furthermore, ALL the code examples I can google up will work
       | without me having to check if they're for the right version of
       | Perl, because it has near-perfect backwards compatibility going
       | back all the way to 5.000 from 1994.
       | 
       | About the only other thing with a comparable level of stability
       | has been HTML/JS/CSS, which gets a lot of new features all the
       | time, but, for the most part, if I use only minimal features,
       | remains usable for years without modification.
        
         | richard_todd wrote:
         | Yeah, I agree with you. For fun I built Perl 1 a couple years
         | ago and was amazed at how similar it was to Perl 5. In fact
         | most of the test suite from Perl 1 runs unmodified on Perl 5.
         | The subroutine calling syntax was different (it used `do
         | xxx();` I think) so those tests fail.
         | 
         | But unfortunately, some Perl devs in recent years keep thinking
         | that what they need to do is break stuff to "modernize". They
         | keep eyeing goals like turning `strict` on by default, and
         | eliminating lesser-used features, which will surely break
         | untold numbers of 20-year-old scripts.
         | 
         | I think there is some low-level anxiety among some of their
         | developers that interest in their language has basically
         | evaporated and they keep reaching for a silver bullet that
         | doesn't exist. I think they are crazy ("perl 7... now 10% more
         | like python!") but it's open-source so in the worst case I'm
         | sure someone will keep a traditional perl from bit-rotting.
         | 
         | edit: I had made a short blog post about playing with perl 1:
         | https://rwtodd.org/2020/Jun/building-perl-1
        
           | mfontani wrote:
           | > They keep eyeing goals like turning `strict` on by default
           | 
           | Not unless you declare a version. Old style perl will
           | continue to work as before.
           | 
           | If you declare something like:                   use v5.40;
           | 
           | ... then, and only then, you'll get strict/warnings/whatever
           | turned on.
           | 
           | Your 20 year old script can continue to run just fine.
        
             | richard_todd wrote:
             | That doesn't really capture what's been happening. If
             | feature bundles are still today's plan, it's only because
             | the multiple attempts to get strict on by default have so
             | far all been defeated. They are still pushing forward
             | adding options to disable features like indirect calls,
             | multidimensional hashes, bareword filehandles, etc. And you
             | can bet that at some point they will revive the idea of
             | moving to Perl7/8/9 and permanently remove those things as
             | they go.
             | 
             | Some--not all--of the people working on perl really want
             | so-called "cruft" to disappear. I'm not a fan of that
             | attitude for such an old language with such a rich history
             | of backwards-compatibility, and I definitely don't think
             | it's going to accomplish some kind of perl renaissance. I
             | think it would be better to double down on what makes perl
             | unique. When I watch Signes giving a talk like
             | https://www.youtube.com/watch?v=FlGpiS39NMY where he shakes
             | his head at variables like `$;` or `$,` (29:20 in the
             | video) ... it looks like the leaders of perl hate how
             | strange it is. That worries people like me, who love perl
             | _because_ of its quirkiness, not in spite of it. Surely
             | people who want something more consistent have moved to
             | Ruby long ago.
        
               | mfontani wrote:
               | > They are still pushing forward adding options to
               | disable features like indirect calls, multidimensional
               | hashes, bareword filehandles, etc.
               | 
               | Personally, so long as all that stuff's behind a feature
               | bundle I'm all in favour of it.
               | 
               | A little nitpick: it's not about "multidimensional
               | hashes", but rather "multidimensional array emulation".
               | Steer clear of it, if you can.
               | 
               | I personally don't mind using variables like $; or
               | whatever. Some prefer to "use English" and use longer
               | variables name for the same effect. More power to them.
               | 
               | I just wrap the call with the proper "## no critic (...)"
               | and off I go.
        
         | taeric wrote:
         | TeX has stability to compare. But, stability is seen as a goal
         | for that project.
        
         | petdance wrote:
         | > I use almost none of its more esoteric features
         | 
         | Which features do you see as esoteric?
        
         | giraffe_lady wrote:
         | I don't know if its backwards compatibility reaches into the
         | 90s but I've been using ruby for this for like a decade now.
         | Most envs that ship with anything ship with ruby and I've only
         | very rarely run into version problems.
         | 
         | I think people tend to associate it only with a certain era of
         | web dev, but it has remained a good scripting language with a
         | large, consistent, well-documented standard library for a long
         | time now.
         | 
         | Not worth switching off perl since you're very used to that,
         | but iirc ruby was initially conceived as a successor to perl
         | and for me at least it has landed in that role.
        
           | jrumbut wrote:
           | Ruby is a fantastic scripting language and I generally use it
           | instead of Perl but for the ugliest corner cases, character
           | encoding gotchas, *nix system oddities, etc I frequently find
           | someone from the Perl community has had my problem and solved
           | it with a regex.
           | 
           | I think it's the sysadmin culture. If your scripts are used
           | by thousands of different servers hosting custom web apps and
           | strange databases you'll run into every possible bug fast.
        
           | forgotmypw17 wrote:
           | Ruby is great, and I know people who swear by it, but I've
           | yet to come across a GNU/Linux distro which didn't come with
           | Perl installed, while Ruby is not a given in the default,
           | e.g. my current Manjaro.
           | 
           | The compatibility really does stretch back all the way to
           | '94.
        
             | pseudostem wrote:
             | On OpenBSD, some of the scripts or utils (mandoc) are
             | written in Perl because the developers prefer it. There
             | have been some email chains on the mailing lists about
             | having Perl in base. Most of them are interesting to read.
        
               | anthk wrote:
               | The pkg_* suite it's written in Perl.
        
         | SOLAR_FIELDS wrote:
         | Curious - is there a reason to use Perl (Wall's latest version,
         | 5 or whatever) in 2022 if one has no familiarity with the
         | language? What would be the major advantage of using Perl over
         | its closest analogues, some bastardization of Bash and Python?
        
         | scruple wrote:
         | I only touched Perl a little bit, at the start of my career in
         | the mid-to-late 00s. I didn't hate it. For our specific use
         | case, which was generating reports from large groups of text-
         | based log files, it was wonderful.
         | 
         | I'm curious, though, do you have any Perl programs you've
         | worked on recently that are public? I'd love to take a look at
         | how people are writing Perl these days...
        
           | forgotmypw17 wrote:
           | check my profile :)
           | 
           | template default perl
        
       | snorkel wrote:
       | Perl rose to popularity because early web development was all
       | about text processing (reading web forms and outputting HTML) and
       | Perl made that easier (regex deluxe) than other choices on unix
       | at the time. It became the lingua franca of web developers. Perl
       | 5 made heavy use of symbols so it was visually noisy, and then
       | Perl 6 came along and added even more magic meanings to other
       | symbols, and that was a tipping point of perl's decline.
       | Readability of code is paramount. Code is for machines to execute
       | and for humans to understand. Perl code became both modernist
       | abstract art, and Baroque in its intricacies.
        
         | daneel_w wrote:
         | > _Readability of code is paramount._
         | 
         | For almost all languages, Perl included, this onus is mainly on
         | the programmer. You can churn out gritty spaghetti in almost
         | any language. Perl code doesn't have to look like what Perl
         | programmers put out in the 90s. It's an old misconception that
         | people refuse to let go of.
        
           | ninkendo wrote:
           | > You can churn out gritty spaghetti in almost any language.
           | 
           | I hate this argument because it doesn't allow for _any_
           | variation in the intrinsic readability of languages, or the
           | style those languages encourage. Yes, you can write shitty
           | code in any languages, but some languages _encourage_ it,
           | while other languages _discourage_ it. I would say that Perl
           | encourages unreadableness more than any of its peer
           | languages, and the corpus of actual code out there is _much_
           | more likely to be terse, unreadable noise than what you 're
           | likely to find in most python or ruby projects.
        
             | daneel_w wrote:
             | > _" I hate this argument because it doesn't allow for any
             | variation in the intrinsic readability of languages, or the
             | style those languages encourage"_
             | 
             | I don't understand what you mean by this. How ever does
             | that argument mute Perl's dynamic expressiveness - which
             | lends equally to unreadable syntax as much as clean syntax
             | - or the commonly encouraged patterns in Python?
             | 
             | > _" and the corpus of actual code out there is much more
             | likely to be terse, unreadable noise than what you're
             | likely to find in most python or ruby projects"_
             | 
             | Because Perl saw in its infancy back in the 90s _much
             | higher use_ than Python and Ruby did. It 's the same with
             | PHP, which looked like shit in the 90s even if it didn't
             | need to. Incidentally, PHP, too, suffers from stubbornly
             | outdated criticism.
             | 
             | I think you're too hung-up on the languages themselves, and
             | forgetting that programmers, and software development and
             | engineering as a process and as an art, evolved _a lot_ the
             | past 20 years - much has happened also with how people
             | write C today compared to the 80s and 90s.
        
             | kstrauser wrote:
             | I'm there with you. Taken to the extreme, this is why we
             | don't use assembler for everything. I mean, it's Turing
             | complete, right? And you can write readable assembler,
             | true? And yet, we don't, largely because it's much easier
             | to express large systems in other languages that are easier
             | to write, read, and reason about.
             | 
             | OK, so Perl isn't assembler. Still, it's a lot easier to
             | write unreadable code in Perl than it is in some of its
             | contemporary languages. You don't _have_ to, sure. You
             | _could_ write clean, pretty Perl code. I know, because I
             | 've seen it. But in my experience, that definitely wasn't
             | the common case.
        
           | TremendousJudge wrote:
           | >You can churn out gritty spaghetti in almost any language
           | 
           | But some languages make this much easier than others
        
           | snorkel wrote:
           | True you can write readable Perl code, but developers tend to
           | adopt the predominant style of the community of each
           | language, and the community was showcasing more brevity and
           | cleverness than clarity
        
         | peelle wrote:
         | If I understand right you are saying that the # of symbols Perl
         | employs makes it hard to understand or read, correct?
         | 
         | TL;DR; I would say that you assertion is context sensitive. -
         | For a junior Perl programmer or an outside expert those symbols
         | are stumbling blocks. - For an intermediate Perl programmer and
         | up, those symbols are tools that make the code more readable
         | and expressive.
         | 
         | I got two ways of looking at that. First, I would look at Perl
         | in the context of language. It is a more context sensitive
         | language than some of it's close competitors. When you
         | understand those \ $ % @ & sigils you gain the ability to know
         | at a glance the context in which data is being used.
         | Understanding @_, $_, allows you to write shorter code without
         | sacrificing meaning. Part of the Perl philosophy is TIMTOWTDI.
         | Most of those special variables also have an English
         | equivalent. Instead of using $) which I never remember I can
         | use $EGID, or if I think that's not explicit enough then I can
         | use $EFFECTIVE_GROUP_ID to really spell it out.
         | 
         | The second way is that Perl has a steeper learning curve than
         | it's close competitors. I see this like comparing Vim to
         | Notepad++ and Emacs, or Haskell to well most other functional
         | programming languages. Just because it took longer to learn,
         | that doesn't mean it's better or worse at creating good code.
         | It does mean that armchair pundits are less likely to be
         | correct in their hot takes. They lack experience and
         | understanding.
        
           | G3rn0ti wrote:
           | While ultimately everything is a matter of taste, the kind of
           | people that hate sigils also tend to hate parentheses in
           | Lisp. Both syntax elements are there for a reason.
           | 
           | I believe sigils make string interpolations easy to support
           | in a language. Consider JS that had to introduce an adhoc
           | ,,${}" expression to support those eventually.
        
         | scelerat wrote:
         | I feel like PHP was the first big blow to Perl's king-of-the-
         | web status. Python and especially Ruby+Rails knocked Perl off
         | many people's radars for good.
        
         | tootie wrote:
         | As someone who spent many years loving Perl, I counter that
         | literally every programming language is obtuse and overloaded
         | with meaningless symbols.
         | 
         | And I'd also credit Perl's rise to Lincoln Stein who wrote
         | CGI.pm which was at the time the absolute state of the art for
         | managing web applications with Apache and mod_cgi.
        
           | mistrial9 wrote:
           | yes and, one of Perl's design goals was literally "report
           | generation" .. which it turns out, might be in HTML format
        
             | hedora wrote:
             | It can't do reports. It's a rubbish lister.
             | 
             | It's also clearly not an anagram of REPL. I wonder if
             | anyone ever figured out how to write REPL with a keyboard.
             | I'd like to learn it some day.
             | 
             | (REPL was written in a crazy character set and relied on
             | custom printed punch cards. I think it was the perl of its
             | day.)
        
           | bmn__ wrote:
           | CGI.pm is a port of Perl 4 cgi-lib.pl. Credit: http://cgi-
           | lib.berkeley.edu/#credit
        
         | cafard wrote:
         | I first encountered Perl as Perl 4, which certainly had the @
         | and $ sigils. I had been using Perl 5 for a while before using
         | it in any web development. I think that Perl 6 contributed to
         | Perl's decline much more by the long delay and certainly than
         | by anything it had when it appeared.
         | 
         | Edit: and Perl 4 had the % sigil.
        
         | anthk wrote:
         | What? Perl it's far more than a regex machine looking like line
         | noise. If you think that about Perl, you'll get mad with AWK.
         | 
         | To me Perl it's a better tool for anything better than shell
         | scripting without needing to get dirty with C or Go.
        
       | leoc wrote:
       | Reposting my old comment
       | https://news.ycombinator.com/item?id=10774245 :
       | 
       | > People seem to have forgotten that when Perl evolved from being
       | a better AWK to the paradigm example of the modern "scripting
       | language", Larry Wall explicitly described this as a rejection of
       | the Unix small-tools philosophy. http://www.linux-mag.com/id/322/
       | ("But Perl was actually much more countercultural than you might
       | think. It was intended to subvert the Unix philosophy. More
       | specifically, it was intended to subvert that part of Unix
       | philosophy that said that every tool should do only one thing and
       | do that one thing well.") http://www.wall.org/~larry/pm.html The
       | fact that getting things done with a Perlesque scripting language
       | is now seen as the height of purist Unix propriety only shows how
       | far gone the original Unix ideal now is. But moving to the
       | scripting-glue model doesn't really get rid of small tools that
       | endeavour to do one thing well, it just reimplements them inside
       | the scripting-language universe as functions/objects, though with
       | a more expressive and less burdensome common language that makes
       | it easier for them to stay small while being correct and
       | effective. The more expressive their shared language, the smaller
       | [the individual tools in] a set of tools can be.
       | 
       | >> Text just isn't a great medium for IPC.
       | 
       | > Yes, in retrospect Unix's determination to know about nothing
       | but binary or plaintext blobs and streams looks like an
       | adolescent rebellion against the (apparently - I haven't used
       | them) clunky record structures of '60s operating systems.
       | 
       | [Extra text] added for clarification.
        
         | dhosek wrote:
         | Having dealt with the clunky record structures of 60s operating
         | systems, they did have their advantages, but the spread of
         | cross-platform tools in the 80s and 90s killed them since Unix
         | only knew byte streams. There are, I think some vestiges of it
         | in the distinction between text and binary files on Windows
         | (assuming that this still exists), but otherwise Unix's
         | everything is a stream of bytes has won. I kind of miss knowing
         | that I had a file consisting of, e.g., 256-byte blocks.
        
           | hedora wrote:
           | The CODASYL vs relational calculus thing certainly had an
           | impact too.
           | 
           | Navigational databases had gotten incredibly complicated,
           | allowing the relational people to lap them.
        
           | tenebrisalietum wrote:
           | I'd have to look into it, but I think the whole reason for
           | text vs. binary demarcation is the fact that ASCII text (not
           | Unicode, old-school ASCII with valid characters 0x01-0x7F)
           | could be sent over a 7-bit serial interface and binary needed
           | that extra bit so you had to introduce overhead to make sure
           | everything reached the other side. Because you might have had
           | actual 7-bit serial (or less) teletypewriters connected in
           | the 60's.
        
             | dhosek wrote:
             | On DOS it also came into play in how line endings were
             | handled.
        
           | chasil wrote:
           | It went further down than the OS. COBOL implements ISAM
           | databases right in the language as part of the standard.
           | GnuCOBOL has a few DBM options for this when building the
           | compiler.
        
         | andi999 wrote:
         | Sounds like powershell.
        
           | melling wrote:
           | Perl: 1988
           | 
           | Powershell: 2006
        
             | joeberon wrote:
        
           | thesuperbigfrog wrote:
           | Powershell takes heavy inspiration and some syntax from Perl.
        
             | tenebrisalietum wrote:
             | Only because Perl takes heavy inspiration and syntax from
             | Unix shells.
        
               | thesuperbigfrog wrote:
               | It's actually a bit more than that.
               | 
               | In "Windows Powershell in Action", Bruce Payette (one of
               | the co-designers of Powershell) states:
               | 
               | "NOTE PowerShell uses the at symbol (@) in a few places,
               | has $_ as a default variable, and uses & as the function
               | call operator. These elements lead people to say that
               | PowerShell looks like Perl."
               | 
               | "In practice, at one point, we did use Perl as a root
               | language, and these elements stem from that period. Later
               | on, the syntax was changed to align more with C#, but we
               | kept these elements because they worked well. In Perl
               | terminology, they contributed significantly to the
               | 'whipupitude quotient' of the language."
        
               | bmn__ wrote:
               | > whipupitude quotient
               | 
               | That's an axis, not a quotient. See page 2/slide 3&4:
               | <https://www.shlomifish.org/lecture/Perl/Newbies/vhll-
               | slides....>
        
               | anthk wrote:
               | Perl had an amazing Win32 support back in the day, and
               | still does.
               | 
               | https://perldoc.perl.org/Win32
               | 
               | https://metacpan.org/search?size=20&q=win32
               | 
               | RAS, OLE, COM, ODBC. Perl did magick on NT/2K/XP.
        
               | HeckFeck wrote:
               | And it was (may still be) used in the Windows build
               | environment!
        
             | pmoriarty wrote:
             | Incidentally, so does Ruby.
        
         | simonh wrote:
         | I think Unix's refusal to impose arbitrary structure on data is
         | what has enabled a lot of the innovation and experimentation
         | with alternative ways of organising and accessing data. Binary
         | blob, SQL, NoSQL, key/value, column oriented, etc, etc Unix
         | doesn't care. It just gets out of your way and lets you do your
         | thing.
         | 
         | A lot of projects tried to implement opinionated OSes to the
         | point that the OS was really an application. I'm thinking of
         | Sprite and Amoeba, which attempted to abstract out the network
         | and present a unified interface to accessing resources, and
         | fancy storage systems, but in doing so impose opinionated
         | interfaces on that access.
         | 
         | That's half way between an OS and an application like Hadoop,
         | or Kafka, but you couldn't effectively develop something like
         | Hadoop or Kafka, with your own optimisations and implementation
         | tradeoffs on one of these things because the implementations or
         | access models would clash.
        
         | twic wrote:
         | > Perl evolved from being a better AWK
         | 
         | awk has named parameters! Perl was a step backwards!
        
           | [deleted]
        
           | ecef9-8c0f-4374 wrote:
           | Well it's your lucky day. Named parameters are perl since
           | 5.20 ... as an "experimental" feature ...
           | 
           | Now you can write.
           | 
           | use v5.20; use feature 'signatures';
           | 
           | sub print_text( $param1 , $language = "perl", $years = 10 ) {
           | say "I would have loved this $language $param1 more then
           | $years years ago"; }
           | 
           | print_text "feature"
        
             | bmn__ wrote:
             | This already was available more than ten years ago, you
             | simply had to install a module.
        
               | ecef9-8c0f-4374 wrote:
               | I used to use perl5i for scripting, which had func().
               | 
               | Point is. As soon as I tell someone "you have to use
               | tarball/cpan/cpanplus/cpanminus to install the feature
               | "named parameters" they leave.
               | 
               | But now it's here
        
         | nmfisher wrote:
         | Interesting take, but as someone who still works regularly with
         | the shell, I'd say there is still a place for small core utils
         | connected together with pipes/textual streams.
         | 
         | If we're talking parsing and chopping up text files, I can
         | usually whip up something with awk/jq/cut/whatever in far less
         | time than writing an equivalent Python script. There's a
         | threshold where you prefer to switch to the scripting language
         | for maintainability/testing, but the shell won't be going
         | anywhere any time soon.
        
           | hedora wrote:
           | Most awk/cut/whatever commands can be done with perl -ne in
           | about 2x the keystrokes, but you don't need to learn the
           | other tools.
           | 
           | In Python, the multiplier is much higher, and I could never
           | get the oneliner stuff to work.
        
             | cutler wrote:
             | I don't understand why Python is touted as some kind of
             | replacement for Perl when there are many things Perl does
             | better and faster. Python isn't even optimised for one-
             | liners so how can it be compared with Perl?
        
             | biomcgary wrote:
             | I use cut, grep, uniq, etc. a lot for processing largish
             | files (multiple GB), but also use perl oneliners
             | generously. Never took to awk for some reason. These days I
             | write Go for anything larger than a oneliner, but I've
             | added a lot of smallish Go CLI commands to use in pipes,
             | too.
        
           | peelle wrote:
           | I agree with this threshold idea, and I would argue that Perl
           | and probably Ruby also have a lower threshold for switching
           | than Python. Nothing against Python.
        
       | cosmiccatnap wrote:
       | A developer has a problem they cannot solve and so they decide to
       | use perl. The developer now has two problems.
        
         | mistrial9 wrote:
         | hah - "peak idiom" for that was when Mr Marketing and Sales
         | from Hawaii, Guy Kawasaki, said that on stage to a bunch of
         | developers. I heard it. It was because the Marketing and Sales-
         | turned "software leaders" couldn't read a regex.
        
           | giraffe_lady wrote:
           | I write regex all the time and I can't read a regex. It's a
           | powerful tool and that's a very valid complaint about it.
        
             | nocman wrote:
             | A regex can be difficult to parse, especially if it is very
             | involved, but in Perl at least, there are ways to make it
             | much easier ( using the /x modifier, for example :
             | https://perldoc.perl.org/perlre#%2Fx-and-%2Fxx ). Comments
             | and and having the regex itself be multiline can make
             | things better, especially if you are creating a
             | particularly complicated one.
             | 
             | Damian Conway highly recommends using the combo of 'xms'
             | his Perl Best Practices Book (
             | https://www.oreilly.com/library/view/perl-best-
             | practices/059... ).
             | 
             | The revised and considerably newer "Modern Perl Best
             | Practices" video series on O'Reilly's learning platform is
             | particularly good also (
             | https://www.oreilly.com/library/view/modern-perl-
             | best/978149... ) - with lots of discussion of regexes.
        
             | mistrial9 wrote:
             | if my companion says "I am cold" on a warm day in the
             | shade, then it is a valid complaint, since they probably do
             | feel cold. You express empathy for the readers with "valid
             | complaint" and from an educational, empathy point of view,
             | sure, agree. Are regex's used by more people, or less
             | people, than in 1999? Do people read, write and use them in
             | code? for editing HTML pages? of course it is trivially
             | true. That guy was saying to software developers "don't use
             | regex it is a problem not a solution" .. I was there!
        
             | tomc1985 wrote:
             | Part of the fun of regex is learning to make sense of what
             | looks like black magic
             | 
             | I imagine asm programmers feel the same way
             | 
             | fwiw I think this world needs less "it's too hard for me"
             | and more "let me roll up my sleeves and dig into this"
        
               | the_only_law wrote:
               | > fwiw I think this world needs less "it's too hard for
               | me" and more "let me roll up my sleeves and dig into
               | this"
               | 
               | I'm gonna need a hell of a lot more of my time back for
               | that.
        
         | daneel_w wrote:
         | In my experience, Larry Wall's old comment holds true: Perl
         | makes easy things easy, and hard things possible.
        
       | newaccount2021 wrote:
        
       | lvl102 wrote:
       | I wrote my first web scraper in Perl. It was a great experience.
       | I miss the community mostly.
        
         | [deleted]
        
       | dmux wrote:
       | Perl was the first dynamic language I learned after taking most
       | of my college courses in Java. It was an eye opening experience
       | in many regards: ease of standing up a web app via CGI.pm,
       | dynamic dispatch tables using anonymous sub procedures, an OOP
       | system based on "blessed" data structures, access to the symbol
       | table, etc. In the last couple of years I've gotten into learning
       | Common Lisp and it's surprising how many similarities there
       | appear to be. I'm actually kind of surprised that given Perl's
       | ability to change packages in an ad-hoc fashion that some type of
       | live programming system was never developed for it.
        
       | [deleted]
        
       | jkh1 wrote:
       | Perl was the first language I used professionally and I used it
       | almost exclusively for years. I don't understand all the negative
       | comments about its use of sigils, I find them useful and I never
       | got the impression that they made the code less readable but
       | maybe that's because I was never taught the gospel of computer
       | science :) I also appreciate the extended backwards
       | compatibility. I still occasionally run decade-old code and it's
       | still doing its job which means that writing code in perl was
       | time well invested.
        
         | hedora wrote:
         | One thing I like about the sigils is that they make bad ideas
         | hard to type.
         | 
         | Want to pass me a hashtable of lambdas that return arrays of
         | alternating functions and regexps?
         | 
         | Go ahead. Show me how to invoke it. I'm waitng.
         | 
         | Python (which has all of the type safety and expressivity of
         | perl) allows such abominations to hide behind clean looking
         | syntax.
         | 
         | Sigils also improve readability. Bad Perl looks like serial
         | port noise. Bad Python looks like good python.
         | 
         | (In Python's defense, it has a nice ffi.)
        
           | leadingthenet wrote:
           | > Bad Python looks like good python.
           | 
           | Never used Perl, so I can't really make an honest comparison.
           | I do use Python at work, though, and I can assure you that is
           | FAR from being true.
           | 
           | In fact, I think this is so untrue that I urge you to check
           | out essentially any code written in academia (especially
           | projects involving numeric computation and data science). If
           | you come back and make that same statement with a straight
           | face, I'll eat my hat.
        
           | SideburnsOfDoom wrote:
           | > arrays of alternating functions and regexps
           | 
           | many languages will allow you to succinctly express the
           | concept of "the type of this element is a or b"
           | 
           | e.g. typescript:
           | 
           | https://www.typescriptlang.org/docs/handbook/2/everyday-
           | type...
           | 
           | Rust:
           | 
           | https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html
           | 
           | F# :
           | 
           | https://docs.microsoft.com/en-us/dotnet/fsharp/language-
           | refe...
           | 
           | IDK, allowing that kind of type to be declared seems like a
           | good thing to me? Those links have good examples of where
           | it's useful. You'd need a good reason to use actually
           | "function or regexp" in actual code though.
        
             | bmn__ wrote:
             | You have misunderstood GP.
             | 
             | Alternating functions and regexps looks like this:
             | [\&some_function, qr/some_regex/, \&another_function,
             | qr/another_regex/]
             | 
             | This is distinct from the idea of sum types.
        
         | tenebrisalietum wrote:
         | Here's one reason why sigils could be considered to suck.
         | 
         | `@array` - array of values.
         | 
         | `$array[1]` - get element 1 of the array.
         | 
         | `$array` - What do you think this does? Why can't we just
         | `@array[1]`?
        
           | hedora wrote:
           | The last one produces a helpful error message at script
           | interpretation time. @array[1] is probably also an error, or
           | you're doing something very strange / wrong, and it'll stick
           | out like a sore thumb during code reviews.
        
           | csdvrx wrote:
           | > `$array` - What do you think this does?
           | 
           | I think it will throw an error if you declared my @array
           | 
           | > Why can't we just `@array[1]`?
           | 
           | Because that could return an array or a hash if you are
           | dealing with structures likes arrays-of-arrays (AoA) or
           | arrays-of-hashes (AoH).
           | 
           | To my naive take, it makes much more sense to only identify
           | high level objects to put them under one category (arrays,
           | AoA, AoH -> @) then consider everything else as "uncertain"
           | and default to $.
           | 
           | Otherwise, you would have to declare AoA and AoH differently
           | (ex: my @@AoA; my @%AoH;) and then the interpreter could see
           | @AoA[1] and %AoH[1] as valid but %AoA[1] and @AoH[1] as
           | invalid.
           | 
           | I could see that as potentially having value to know at a
           | glance what you are dealing with, but it might break many
           | things, and casting to a new object with my %aoh_1 = %{
           | $AoH[1] } makes more sense.
        
             | [deleted]
        
             | jwilk wrote:
             | > Because that could return an array or a hash
             | 
             | @array[1] returns a single-element list-like thing. It
             | mostly works, but you get a warning:
             | 
             | https://perldoc.perl.org/perldiag#Scalar-
             | value-@%25s%5B%25s%...
        
           | G3rn0ti wrote:
           | Raku actually adopted that latter syntax. Although, it's
           | optional as everything really becomes a reference anyway. So
           | you don't need the ,,@" and ,,%" sigils any more.
        
           | xorcist wrote:
           | Perl has "contexts" as its type system. Sigils are a part of
           | that.
           | 
           | There's a lesson here somewhere that most people don't
           | generally want to understand stuff. So stuff that's the least
           | bit different don't tend to go mainstream, things like
           | Haskell have a hard time. Perl was a bit different but just
           | happened to go mainstream anyway, and that probably coloured
           | people's feelings for it, for better and for worse.
        
           | bmn__ wrote:
           | > Why can't we just `@array[1]`?
           | 
           | Because of slices. If you look at the complete table, you
           | will never get confused again.
           | 
           | https://news.ycombinator.com/item?id=26578855
        
           | gnubison wrote:
           | Sigils indicate what an operation evaluates to, not what the
           | input type is. You get used to it.
        
         | zzo38computer wrote:
         | Other programming languages also have sigils, such as LLVM,
         | etc.
         | 
         | I think that it does not make it less readable.
         | 
         | In some programming languages they will be used to avoid
         | clashes with reserved words, which I think is a good idea.
         | 
         | Some programming languages (such as BASIC) have suffix sigils
         | to indicate data type; some (such as OAA) have both prefix and
         | suffix sigils.
         | 
         | Some programming language may allow multiple sigils together in
         | some cases (e.g. Raku and Free Hero Mesh) (in Raku they called
         | the secondary sigils as "twigils").
         | 
         | The meaning seems to vary depending on programming languages;
         | some are used for similar purposes and sometimes they are used
         | for different purposes.
         | 
         | In Perl, the sigil can indicate scalar vs array (but not
         | numbers vs strings), and in BASIC it can indicate numbers vs
         | strings (but not scalar vs array, which is differently).
        
         | lifefeed wrote:
         | Larry Wall said once that he added sigils in Perl so he could
         | freely add features to the language without conflicting with
         | other's peoples variable names. It's a language design choice
         | that makes sense for Perl's maximalism approach to features.
         | 
         | Perl is very well thought out, in a way that I don't think gets
         | enough credit. For example, the three loop controls (next,
         | last, redo) are four letters long, which makes remembering them
         | easier. In a world where I sometimes have to jump between
         | languages I haven't used in a while, and I'm always forgetting
         | what arbitrary word choice this particular language used for a
         | feature, it's nice to come back to Perl and have a language
         | where the grammar is a little bit less arbitrary.
        
       | simonh wrote:
       | I looked up postmodernism.
       | 
       | >opposition to epistemic certainty and the stability of meaning
       | 
       | Yep, that's Perl.
        
         | rurban wrote:
         | But don't forget the anti-movement "Modern Perl".
         | 
         | > Minimalism describes movements in various forms of art and
         | design, especially visual art and music, wherein artists intend
         | to expose the essence or identity of a subject through
         | eliminating all nonessential forms, features, or concepts.
         | Minimalism is any design or style wherein the simplest and
         | fewest elements are used to create the maximum effect. -
         | wikipedia on Modernism
        
       | iamalnewkirk wrote:
       | http://wiki.c2.com/?WhyHatePerl
        
       | mproud wrote:
       | Perl is the sexiest programming language because "there's more
       | than one way to do it."
        
         | Aperocky wrote:
         | Just reading this sentence give me horrors.
        
           | kergonath wrote:
           | It's a blessing because once you are comfortable with a Perl
           | dialect, writing code is very efficient and fun. Perl is very
           | expressive and can also be very concise. It's a curse,
           | because reading other people's dialects can be quite
           | difficult.
        
             | Aperocky wrote:
             | > reading other people's dialects can be quite difficult.
             | 
             | That is why we send any code that cannot be read by a fresh
             | CS grad back for rework. It turns out you can solve
             | everything with very basic and straightforward syntax.
             | 
             | But then we also don't use perl.
        
               | jerf wrote:
               | By the time I was done writing Perl, my Perl looked a lot
               | like Python.
               | 
               | It's also why I'm not really all that sympathetic to "but
               | $NEWLANG doesn't let me write something that extracts
               | from a hash and then map all the elements with an inline
               | anonymous function, filter the results, and then invoke
               | them all and put the results in a single array all in one
               | line!". I worked for decades, plural, in languages that
               | _did_ permit that, and what I learned is that the more
               | professional the code gets, the less you should be doing
               | that. By the time you 've broken it out in a way that
               | won't confuse everyone, giving all the intermediate
               | values professional-quality names and adding a few
               | comments, it turns out the delta between Perl and things
               | like Java or Go or other such "stodgy" languages has
               | closed a lot. Not 100%, by any means, but closer, and in
               | the meantime those stodgier languages have been steadily
               | closing the gap from their end too. In the meantime I get
               | a lot of value from the static guarantees those languages
               | have.
        
               | the_only_law wrote:
               | > but $NEWLANG doesn't let me write something that
               | extracts from a hash and then map all the elements with
               | an inline anonymous function, filter the results, and
               | then invoke them all and put the results in a single
               | array all in one line!
               | 
               | Isn't this what APL/J/Q are for?
        
           | [deleted]
        
         | DonHopkins wrote:
         | At first glance I thought you wrote "Perl is the sexist
         | programming language because..."
         | 
         | https://geekfeminism.fandom.com/wiki/Perl_is_my_bitch
         | 
         | >Perl is my bitch was a slogan used by the London Perl Mongers
         | (a Perl user group) and printed on t-shirts ca. 2000.
         | 
         | https://geekfeminism.fandom.com/wiki/Acme::Playmate_talk
         | 
         | >At the Open Source Developers Conference in Melbourne in
         | December 2006, Perl community member Adam Kennedy gave a
         | lightning talk (a short (5 minute) talk for which he didn't
         | have to submit an abstract) on the CPAN Acme::Playmate module,
         | a joke Perl module designed to download the measurements of
         | Playboy magazine Playmates from the Playboy website. (The
         | 'Acme' namespace in Perl is the joke namespace.) During his
         | talk Kennedy showed (twice) a single still photo of a Playboy
         | model.
         | 
         | https://geekfeminism.fandom.com/wiki/Randal_Schwartz
         | 
         | >Schwartz often comes up in discussions of sexism in open
         | source because of his open enthusiasm for Hooters restaurants,
         | which he mentions frequently in professional contexts.
         | 
         | >[...] In 2001, Randal's company, Stonehenge Consulting, ran a
         | Hooters Wings Promotion at LISA, a sysadmin conference (an
         | example of booth babes).
         | 
         | >"Stonehenge ran a Hooters Wings promotion at the booth at LISA
         | 2001. We gave away 1000 wings in about 45 minutes, with the aid
         | of two Hooters girls Sarah and Lacey."
         | 
         | https://web.archive.org/web/20080212061647/https://www.oblom...
         | 
         | >notes on: perl lightning talks, impressionistically rendered>>
         | Stumbling into the Perl Lightning Talks now. Randal Schwartz
         | (looks like Randal. Certainly wearing Randal-like clothes. He's
         | the Hooter's guy, right? I always get him and Tom Phoenix
         | confused. Okay, definitely Randal.)
         | 
         | https://geekfeminism.fandom.com/wiki/Stonehenge_OSCON_partie...
         | 
         | >At OSCON, between 2001 and 2009 (several reports during this
         | period, not necessarily every year), Stonehenge Consulting has
         | held parties on one evening of the conference. At these
         | parties, there are usually women present who are not otherwise
         | connected to the conference. They have variously been reported
         | as scantily clad, present to "entertain" the guests, etc. It is
         | unclear whether these women are connected to the venues in
         | which the events are held or are friends of OSCON attendees.
         | 
         | https://geekfeminism.fandom.com/wiki/Michael_Schwern_v._Noir...
         | 
         | >Michael Schwern, prominent Perl developer and keynote speaker
         | at the National Center for Women & Information Technology's
         | 2013 summit, was arrested in Portland, Oregon on Sept 19, 2013
         | on two counts of misdemeanor domestic violence charges against
         | his then-spouse Noirin Plunkett -- specifically, harassment and
         | strangulation.
         | 
         | https://arstechnica.com/gadgets/2021/08/the-perl-foundation-...
         | 
         | >The Perl Foundation is fragmenting over Code of Conduct
         | enforcement. "I'm fresh out of ideas with regards to handling
         | toxicity in the Perl community."
         | 
         | >[...] I have personally used and enjoyed the Perl language for
         | nearly 30 years, and it's distressing to see the bigotry and
         | edgelording coming from prominent elements of the community--
         | not to mention the board's failures to respond decisively. The
         | Perl community is not the first to struggle with "culture wars"
         | revolving around a code of conduct, either, which makes it all
         | the more puzzling why its board seems incapable of formulating
         | one.
         | 
         | http://blogs.perl.org/users/sawyer_x/2012/08/this-is-not-tol...
         | 
         | >This is not tolerated. By Sawyer X on August 31, 2012 10:46 PM
         | under Rant.
         | 
         | >There had been several posts recently about disgusting sexist
         | idiotic behavior on PerlMonks. Most people know my opinion on
         | these issues very well, but I don't think that's good enough. I
         | think we need to actually bring it up and discuss it. I want to
         | thank all the people who wrote about it and specifically Joe
         | McMahon who both spoke of it on blogs.perl.org and on Perlmonks
         | here. No, this is not to be taken lightly. And no, I will not
         | shut up about this. And yes, my post is probably gonna be long.
         | I'm sorry, but I need to put it out there.
         | 
         | http://blogs.perl.org/users/joe_mcmahon1/2012/08/why-im-cons...
         | 
         | http://www.modernperlbooks.com/mt/2012/08/you-dont-get-to-ch...
         | 
         | http://blogs.perl.org/users/tinita/2012/08/to-be-or-not-to-b...
         | 
         | http://blogs.perl.org/users/lichtkind/2012/08/to-say-schwern...
         | 
         | http://www.perlmonks.org/?node_id=989181
         | 
         | http://blogs.perl.org/users/joe_mcmahon1/2012/08/why-im-cons...
         | 
         | https://perlmonks.org/?node_id=989879
        
       ___________________________________________________________________
       (page generated 2022-05-04 23:02 UTC)