9 ms·
Programmers aren’t so humble anymore, maybe because nobody codes in Perl
- test1072 1y agoPaywall
- devonnull 1y agoNot no more: https://archive.is/ddaZh https://archive.is/ddaZh
- niccl 1y agoHmm. and PERL is not one of the most popular languages these days. In contrast with Python and its There should be one-- and preferably only one --obvious way to do it. It does not seem coincidence to me
- SoftTalker 1y agoYeah I think TIMTOWTDI ended up being a net negative. Of course with experience and learning the idioms (perl is very idiomatic) it's not so bad but it really adds to the cognitive load for a beginner. There is still a lot of perl around but I'd be a little surprised if any new projects would use it at least where it doesn't already have a big presence.
- rossant 1y agoIn case anyone asks: there is more than one way to do it.
- aynyc 1y agoThere is almost nothing in today’s Python world that follow that axiom. There is a new package manager every year. Language features are introduced every major release.
- fch42 1y agoBut there are 500 linters to help you with idio(to)matic python coding. Honi soit qui mal y pense ...
- Natsu 1y agoThere are still a few of us Perl programmers around, though it's far less popular than it was a few decades ago.
- drewcoo 1y agoPerl is not an acronym.
- _kst_ 1y agoNot officially, but there are a couple of retronyms. Larry Wall originally wanted to call it "Pearl", but found there was already a language by that name, so he shortened it to "Perl". The name is sometimes expanded as "Practical Extraction and Report Language", or as "Pathologically Eclectic Rubbish Lister" (Larry Wall's own phrase, mentioned in the Perl man page). But yes, "Perl", not "PERL", is the correct name for the language. (Ada, which was named after a person, has had the same problem, though as far as I know there isn't even a retronym for Ada.)
- DonHopkins 1y agoAt least Ada has a song: https://www.youtube.com/watch?v=1kFnHPHBcb4 https://www.youtube.com/watch?v=1kFnHPHBcb4 Did you know Ada and Linda were both named after unrelated people with the same last name? https://en.wikipedia.org/wiki/Linda_(coordination_language) https://en.wikipedia.org/wiki/Linda_(coordination_language) https://en.wikipedia.org/wiki/Linda_Lovelace https://en.wikipedia.org/wiki/Linda_Lovelace
- mrweasel 1y agoWell, I mean there's frequently the obvious way to do something, then there's a large number of less obvious ways, then there's the obvious way of doing it if you're mostly programming using Pandas, or NumPy, and Python is more of an implementation detail. I agree with the intention of the quote, sadly it didn't work out like that.
- ddellacosta 1y agoI can't read this article due to the paywall, but here's my lukewarm take based on the title at least: "nobody" codes in Perl any more because the language lost a lot of mindshare in the transition from Perl 5 to Perl 6, a.k.a. Raku. And regardless it's always been a fairly idiosyncratic language in a lot of ways. Stuff like Ruby (which inherits DNA from Perl along with Lisp and Smalltalk), PHP (also takes some notes from Perl, perhaps more superficially), and Python ate a lot of its lunch. It was the first language I wrote professionally and I always thought it was a lot of fun, but if I want to be humbled these days I reach for Haskell (like a lot of the Perl community it sounds like...). EDIT: okay I read the article, thanks to welpo for the archive link. Yeah this is kind of a nostalgic piece so I think my original comment is still relevant. I do like Perl still, I will always have a spot in my heart for it. I appreciate especially how seriously Larry Wall tried to think about approaching things vis-a-vis linguistics even if I don't necessarily think that's the best approach for a language used by an engineering team these days. I hope it sticks around in any case. It is truly unique.
- stouset 1y agoI agree it was a combination of Raku and Ruby. As far as I'm concerned, Ruby deprecates Perl 5. It fills the same niche while avoiding a lot of the absolutely crazier parts of Perl (no shade; Perl was designed in a far different time and place). If you know Ruby, there is essentially zero reason to learn Perl. I have fond memories of the language, it was the first one I wrote professionally, but never again. Raku being in such an indeterminate state for so long was an eternity for it to lose mindshare to Ruby.
- ddellacosta 1y ago> If you know Ruby, there is essentially zero reason to learn Perl. I don't think I ever thought about it but I think I have implicitly taken this to heart since I last was using Perl seriously. Almost every engineering org I've worked for in the last decade has had Ruby as a part of its stack for e.g. scripting or lambdas and it's what I reach for when I need to script something. And I've done Rails work in a few orgs too, which has few parallels in its niche even without considering Perl. Although I suspect for most people Python is where they land if we're just talking about scripting or hacking something together...or anything (I hate it but it is what it is lol).
- welpo 1y agohttps://archive.is/ddaZh https://archive.is/ddaZh
- finaard 1y ago> If I had to choose a language that is furthest from Perl, it might be Lisp. The two languages I enjoy the most are Perl and Lisp - and the majority of my non-work related coding is split between those two.
- ddellacosta 1y agoGiven that Matz considers both Perl and Lisp an influence, what's your take on Ruby? If homoiconicity is something you care about it's probably dissatisfying, but it's got a lot of very functional aspects at the same time.
- lambdaba 1y ago"Ruby is the love child of Lisp and Smalltalk, raised by Perl the eccentric nanny" - Josh Susser
- cestith 1y agoIndeed Perl has true lambdas and full closures and has for many many years. There’s no GIL. It supports multi-process programming, event-driven programming, and multithreading. It has optional objects. Code can be, but doesn’t have to be, written in prefix with surrounding parentheses. It can feel very natural for people coming from some form of Lisp. Unfortunately it doesn’t do automatic tail call elimination but that’s a tooling limitation more than a language limitation.
- altacc 1y ago> But perhaps the lesson of Perl is timeless. It asks us to be less precious—and more human—when it comes to programming languages and their design. Only then might we be able to bridge the gap between us and the machines. I'm not clear which way the author thinks this works but having started coding in the 90s I feel that with Perl you had to try to understand the quirks of language and the language didn't try to reach out to programmers to make things easy. Whereas other coding languages aim to be intuitive, with clearer syntax, more logical naming and frameworks to obscure complexity, which to my mind is a better way to bridge the gap between us and "the machines".
- paxys 1y agoNo it's because we are getting paid too much.
- slt2021 1y agothis one, once money trickled in, tech attracted people who are doing it for the money only, not for the love of tech. big tech sort of replaced wall street as main career choice for some people and naturally attracted "wallstreet bros" type into the tech, who are now known as "tech bros"
- npteljes 1y agoOr, one could argue that the influx of money and the ever-increasing hardware capability enabled saner, more human languages. Human both in design, as in, easier to learn, more accommodating to human mental models, and human in a way that they account more for human fallacies. Something that old languages, and lower levels of abstractions cannot do, because it's expensive to double-check, or to defend against the human.
- alexpotato 1y agoAs both a long time Perl and long time Python user who has seen both used in production, here are some of my thoughts: Perl - Was an easy jump from bash to Perl - Perl never felt like it "got in the way" - was WAY too easy to write "write only code" - that being said, I learned Java first and most people found MY Perl code to be very legible - regexes as first class citizen were amazing - backwards compatible is GREAT for older systems still running Perl (looking at you banks and some hedge funds) Python - Forced indentation made it MUCH easier to read other people's code - everything is an object from day one was much better than "bless" in Perl - no standard way of setting up an environment for MANY years hurt - sklearn and being taught in universities were real game changers
- j45 1y agoArticles that poopoo on one language kind of have a dated all/nothing perspective. Most languages have a decent enough framework or two that the differences between using them for different use cases may be closer than many folks realize vs whatever we hear about as the new hotness through the grapevine. A mess can be made in a lot of languages, and a long time ago, it was even easier, except some of that code worked and it didn't get touched for a long time.
- burnt-resistor 1y agoToolbox vs. religious zealotry. Sometimes, one has to maintain .bat files, Tcl, F77, or COBOL. Professionals don't whine or wince, but do the job.
- j45 1y agoAbsolutely. Bytecode doesn't care what compiled it to bytecode. Customers also do not really care what something is or isn't built in, except if the product is made for developers. The vast majority of products are made for non-developers.
- shermantanktop 1y ago> no standard way of setting up an environment for MANY years hurt Serious question: is that solved? I still see a forest of options, some of which depend on each other, and at last count my laptop has 38 python binaries. What's the standard way?
- throwanem 1y agoI believe Perl was first called "the duct tape of the Internet" about 20 years ago. Ever tried to deal with 20-year-old duct tape?
- andrewstuart 1y agoPerl was later called “executable line noise”.
- alexpotato 1y ago"Perl is a write only language"
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- masklinn 1y agoI’ve seen Julian when he gets pieces which have been duct taped. He’s not a happy camper.
- throwanem 1y agoI don't understand.
- masklinn 1y agoJulian Baumgartner is a professional fine art conservator with a fairly popular youtube channel. Duct tape shows up from time to time in the pieces he's tasked with conserving, and it's always a terrible thing. In fact it's a pretty big feature in the latest video (a drum) where he calls it > a horrible material, because when it's fresh and young the adhesive's really goey and hard to get off, and then, when it gets old, the adhesive dries and it's... hard to get off and he has to deal with both on the same drum.
- 18172828286177 1y ago> If I had to choose a language that is furthest from Perl, it might be Lisp. Rust
- forinti 1y agoBut Perl has list-in-list-out functions, just like Lisp. Sure, they don't look alike, but they have this important characteristic in common. I'd say Perl is the fruit of the marriage between shell and Lisp.
- johnisgood 1y agoHe said furthest. That might be Lisp or Haskell or anything along these lines.
- layer8 1y agoThey are similarly punctuation-heavy, and both use C-derived syntax, and both are imperative languages, so I would disagree.
- cozzyd 1y agoOur experiments use some web services written in Perl (DocDB). The great thing compared to python is they they work for years untouched, through many system updates. Stuff written in Python bitrots fast (using MoinMoin for a wiki was a terrible idea, in retrospect...)
- elashri 1y agoI am not old enough to have learned perl but not young enough to not know some perl and its problems. But the article or at least the title would be much more suitable if perl is replaced by "CUDA". You can't be working with that and be arrogant, because even self centric people would suffer enough pain not to change. And if perl makes you feel it is made by humans. Then "CUDA" sure would feel like something that came straight from the hell. Note: I understand that the article is more about talking about perl and remind people that it existed and was famous language one day. But I couldn't resist the temptation of the title.
- shermantanktop 1y agoInteresting - one of the most single-mindedly arrogant engineers I ever worked with was an absolute zealot about CUDA. Could not stop talking about CUDA, and why everything else was terrible, and how nobody listened to him, and how that was because they couldn't handle the truth, and how he could solve everyone's problems if they would only let him, on and on. He didn't last that long at my company. Maybe he was taking his CUDA pain and pushing it onto other people.
- drewcoo 1y agoThe three virtues of a Perl programmer are impatience, hubris, and laziness. There's no humility in the list.
- dooglius 1y agoFor the downvoters: that's a quote from Larry Wall, not an insult.
- fuzztester 1y agoAnd there is a talk by him in which he expands upon those words too, in connection with Perl programmers. I don't have a link, but it may have been in one of his State of the Onion talks. https://www.google.com/search?q=larry+wall+state+of+the+onion https://www.google.com/search?q=larry+wall+state+of+the+onio...
- kwoff 1y agoIt's kinda ironic, since one of the three "virtues" of a Perl programmer is hubris, heh. (re nobody codes in Perl: I still do professionally, and I'll probably never understand why it draws so much hate)
- johnisgood 1y agoI write Perl, too, and I love it. I have comments, especially next to the regexes, but honestly, I think my code is readable and maintainable because I went back to it a year later and I still understand everything.
- aaronbaugher 1y agoI still use it in my job every day too. It's just become a meme, the whole "write-only language" thing. No one says that about shell scripting, despite the sigils and plenty of stuff that becomes incomprehensible to almost anyone if you do anything very complicated. I'd much rather diagnose some newbie's Perl script than some of the commercially-distributed bash installers I've had to deal with.
- KaiserPro 1y agoI took great pride in making readable, maintainable perl. I worked at a VFX place that was held together by loads of perl, written over a good 15 years. Some of it was clever, but most of it was plain readable scripts. The key to keeping it readable was decent code reviews and someone ripping the piss out of you for making unreadable soup. Its all python nowadays, I do miss CPAN, but I don't miss perls halfarsed function args. However for the longest time, the documentation for perl was >> than python. At the time python doc were written almost exclusively for people who knew how to python. Perl docs assumed you were in a hurry and needed an answer now, and if you were still reading by the end assumed you either cared or were lost and needed more info. With the rise of datascience, python has lost its "oh you should be able to just guess, look how _logical_ the syntax is" to "do it like this."
- AtlasBarfed 1y agoMaybe what we need as programmers for collective professional defense is to only LLM-code in Perl. At some point when the LLM fails, you'll need a real programmer to figure it out. But IMO, LLMs are code generation, and code generation always fails at some point when the pile of generated code topples, no matter the language. The amount of bad enterprise LLM code that will be cranked out in the next few years is going to be fascinating to watch.
- m463 1y ago> I took great pride in making readable, maintainable perl. In the past when I used perl, I did the same thing. But I came to learn one thing about perl - its good point is its bad point. When I used it, perl was the highest level language I ever used. It was expressive, meaning I could take an idea in my head, and implement it in perl with the least friction of any language. When I worked with other people's perl, I found they were mindful and cared about what they were doing. But the way they thought was sometimes almost alien to me, so the expression of their thinking was a completely different type of perl, and it was lots less readable to me. And frequently the philosophy of what they wrote was backwards or inside out from what I would do. Now I have replaced perl with python day to day and although implementation of code seems a few steps removed from my thinking, it seems that other people's code is more easily read and understood. (this is just my opinion)
- corytheboyd 1y agoMention of Perl will always reminds me of that time I put Perl in a PR at a Ruby shop. It was a beautiful, portable little piece of code that they made me take outside and shoot in the back of the head. Fair enough, but I will never get over it lol. I don’t even write Perl scripts for personal work anymore, I use python (only because uv makes it not awful), but it’s not about that!
- jbullock35 1y agoLeaving aside issues of language design and the emergence of other languages, it's interesting to think about other reasons why Perl lost popularity. Some of you know this history better than I do, but I think that it's now unknown to most HN readers. The enormous reason that I see is the insistence, from Larry Wall and others, on a bottom-up "community" transition from Perl 5 to Perl 6. The design process for Perl 6 was announced at a Perl conference in 2000 [1]; 15 years later, almost every Perl user was still using Perl 5. The inability of the Perl community to push forward collectively in a timely way should be taken by every other language community as a cautionary tale. Tim O'Reilly made a secondary point that may also be important. For a long time, Perl books were O'Reilly's biggest sellers. But the authors of those titles didn't act on his suggestion that they write a "Perl for the Web" book (really a Perl-for-CGI book). Books like that eventually came, but the refusal of leading authors to write such a book may have made it easier for PHP to get a foothold. [1] https://en.wikipedia.org/wiki/Raku_(programming_language)#History https://en.wikipedia.org/wiki/Raku_(programming_language)#Hi...
- jasongill 1y agoI just had to check if it even existed because I was sure that I had a CGI book that focused on Perl from O'Reilly in the late 90's, and sure enough, the book I had was published in 1996 (with a second edition released in 2000). Not saying your anecdote is inaccurate, but my perception around that time was that "Learn PHP in 24 Hours" was a lot hotter than O'Reilly's Perl books - so it may have just been luck, marketing, a flashier title, or even just that PHP was better suited for what people wanted to learn and do.
- jbullock35 1y agoYes, that's what I had in mind. 1996 was still early—but perhaps the delay allowed PHP to get more of a foothold than it would otherwise have had, especially at such an early stage in the web's development.
- lubujackson 1y agoSlapping PHP tags inside an HTML file was a more natural "outside-in" sort of introduction to programming for the web than Perl's approach. If you already knew some HTML and wanted to add a widget to a page, PHP made that dead simple.
- deleted 1y ago[deleted]
- CaliforniaKarl 1y agoOne thing I wish other languages had was Perl's taint mode: Once enabled, input coming from the outside was "tainted", along with anything you explicitly marked as tainted. If a tainted variable was used to populate another tainted variable (such as by concatenation), the result itself was tainted. If a tainted variable was used in certain ways (such as with the `open` call), the program crashed. The primary way to remove a taint was by running the variable through a regular expression, and using the captured matches (which would not be tainted).
- burnt-resistor 1y agoRuby does. Normalization of untrusted input isn't taught or discussed enough. Or each platform's regex security. Honestly, I think all CS/EE programs should require an OWASP course and that coding should require regular continuing education that includes defensive coding practices for correctness, defined behavior, and security.
- stouset 1y agoThis was removed in Ruby 2.7. It was neat, but a bit of a blunt instrument.
- burnt-resistor 1y agoTrue, it had it for a while. Some folks consider Ruby to be Perl's spiritual successor while Python is oft considered the anti-Perl. Ruby's special global variables are pretty Perl like.
- stouset 1y agoI consider Ruby to be Perl 6 :)
- bornfreddy 1y agoNice idea, thank you! I think it should be possible to make a Python object behave in a similar way (crashing when converted to string / ...), need to see if I can make it work. In PHP, you can construct objects directly from $_GET/POST (and erase everything from these vars to make sure they are not used directly), then lean on data types to make sure that these values are not used in a wrong place.
- superkuh 1y agoI write some new Perl/Gtk application a couple times a year. And I use it for automating basic things almost daily. I bet lots of people chose to write in perl for personal projects. It just isn't very visible. But not that many. And that's why Perl is still Perl. Popularity brings change which means old code stops working. Perl code from the year 2000 still works in a perl interpreter+libs today. And perl code written today still works on perl interpreter+libs from the year 2000. That incredible stability and reliability is what makes it great. Write something then use it 20 years later and everything just works anywhere you try to run it. That's why I chose Perl.
- shawn_w 1y agoThe perl I write today is very unlikely to run on a perl version from 2000, aside maybe from trivial one-liners.
- kkylin 1y agohttps://xkcd.com/224/ https://xkcd.com/224/
- karel-3d 1y agoPerl sigils are horrible; perl magical variables are horrible, perl lack of sane object and argument passing is horrible. (Moose was improvement but slow, if I remember well.) It's a language of cludges on top of other cludges. I guess it became popular because it existed and there was nothing better (nobody will write in awk if not pressed to). We don't need badly designed tools to stay humble. There is enough cognitive load from all the bad programmers (and now LLMs spewing slop), no need to add another nonsense. I admit though that writing perl makes you feel "clever" - "huh that's a funny shortcut I didn't know! Writing $\<>^^ will give me name of last used file on blue moon on thursday!" but... uh.
- WesolyKubeczek 1y ago> I admit though that writing perl makes you feel "clever" - "huh that's a funny shortcut I didn't know! Writing $\<>^^ will give me name of last used file on blue moon on thursday!" but... uh. I write Perl and I hate this mindset a lot. A LOT. Some people get excited and feel like they are megawizards of the White Council because they can line up all their sigils and make them dance, and thus feel just that little bit superior. There's nothing superior about maintaining a program where to change it, you need to solve puzzles three, make the change, and wrap it in another puzzle for the next guy. I know that feeling of being a wizard, and I used to have that smug expression on my face, too. But now I'm over 40, and I'm jumping from one place to another in a magical codebase to debug it, and I can't help but feel like if it was just that little bit less magical, I could have fixed it and be done with it quite a while ago already.
- kqr 1y agoA lot of people in this thread speculate that Raku (formerly "Perl 6") killed Perl. But I have yet to see convincing first hand accounts confirming that. I certainly don't believe it. Everyone I talked to at the time who worked with Perl knew it would not go away: humanity had chained too much of the infrastructure of the internet to it. Someone would have to maintain it for many years to come, even if Larry's new experiment became a wild success. (Already back then people seemed skeptical of the experiment and hung back with Perl 5 waiting to see what came out of it before paying too much attention.) I still struggle to understand why Perl went out of favour[1] but I think what another commenter wrote here might come close: for Unixy folks who know shell, C, awk, sed, Vim, etc. Perl is a natural extension. Then came a generation of programmers brought up on ... I don't know, Visual Basic and Java? and these were more attracted to something like Python, which then became popular enough to become the next generation's first language. [1]: As someone who knows me might understand: https://entropicthoughts.com/why-perl https://entropicthoughts.com/why-perl
- sirtaj 1y agoAs someone who shifted from a lot of perl to a lot of python in the early 2000s, it was because the same shortcuts that made perl really great for system "archaeo-devops" scripting made it difficult to read others' code and to write anything larger than a couple of files. I still use grep, awk, sed, cut etc etc a ton, just not perl. I wouldn't say I was brought up on Visual Basic though. It was not a language that taught structured programming at all.
- johnisgood 1y agoI agree with "for Unixy folks who know shell, C, awk, sed, Vim, etc. Perl is a natural extension. Then came a generation of programmers brought up on ... I don't know, Visual Basic and Java? and these were more attracted to something like Python.". I believe this, too. I do not use Python. I would rather use Perl (!), Tcl, Lua (!), Go (!), C (!), OCaml, Erlang / Elixir, and Factor / Forth, and very rarely Common Lisp (SBCL). I do not like Java / Kotlin and related languages. That said, I started with shell scripts, and then probably a little bit of Perl and Tcl, and very often C because back when I was a kid I was modding ioquake3 forks that are written in C.
- 1y ago
- blu3h4t 1y agoThe first thing I think of when thinking of Perl is anything but humble, not because Perl monks aren’t humble, they certainly are, they even inspired rubys we are humble cause hi is humble I suppose :D but like I said elsewhere Perl is like nineties music its simply the best, so in my eyes Perl programmers are (unix) greybeards and the most expert you can imagine, so don’t think they could be as humble cause the level of the competency could allow quite some hubris. :D Anyway this is the analogy I see with programming languages and Linux distros, Slackware was created for lisp and its KISS principle later manifested in clojure. Early Debian was released with same Perl versions as the learning Perl book. And both have heavy emphasis on reproducibility and testing. And redhats and ibms other business is Java and redhats ceo even went to work on unity a mono fork or something. So you Perl came from Unix but it shaped Linux and by extension floss world pretty much. It’s like an elder who knows all the answers but nobody asks. Edit: ah and yes Larry was right about timtoady indeed, it can be Perl or Python or whatever :D
- noisy_boy 1y agoI remember reading the Perl O'Reilly book (Introduction to Perl[0]) end-to-end and basically feeling that it all makes sense - ($)calar, (@)rray and % for dictionary (because we have a pair of "o"s representing key/value) and so on. Coming from only writing bash (which is all people around me wrote), it was like a becoming a superhero overnight. I rewrote all my bash scripts in Perl and got high level language features with blazing speed. I relished taking people's bash scripts that took an hour and rewriting them in Perl for them to take barely few minutes (which was objectively terrible performance but I was a novice programmer then and nobody else knew better). I was a hotshot. It was an awesome feeling. Later I got another role solely because they couldn't find Perl programmers and I wasn't half bad at it. But this was an actual application written by a bunch of people who wanted to write clever code and it was like handing over the keys to a missile depot to a bunch of arsonists. Many thousands LoC. By the end of it, I was told that we need to move to using Java and I could barely contain my relief. For one-off scripts, still nothing flows like Perl. It is the most interesting language I have coded in, bar none. [0] correction: Learning Perl, the llama book (thanks @ninkendo)
- raffael_de 1y agoThe Camel Book. There was something so wonderfully down-to-earth and humane about those O'Reilly books. But actually most IT books had something casually playful and creative about them. A quality you rarely find these days.
- noisy_boy 1y agoIt was the second book that I actually loved. I read it several times, in no particular order, like one just dives into chomping on a fond snack.
- ninkendo 1y agoThe camel book was “programming Perl” and was more geared towards existing programmers IIRC… there was also the llama book, “learning Perl”, which was maybe what GP was referring to? Learning Perl (the llama book) was my first programming book, and it taught me programming in general, not just Perl, and I still think it was an amazing book. Very approachable, helpful to beginners, I read it cover to cover. There’s also “learning Perl objects references and modules”, which is a bit of a sequel to Learning Perl. Those two books helped me land my first gig as a Perl programmer, and started my whole career.
- gortok 1y agoPerl was the first language I learned, because my local books-a-million, in the year 2000, had basically the entire O’Reilly Perl series deeply discounted ($5.99 to $9.99, a steal for a college freshman), and so I learned Perl. The writing of the O’Reilly Perl books had this micheviousness to them that is also reflected in the language itself. It espoused an apparent simplicity in doing simple things, like reading from a file or taking user input, that languages like C++ had much more ceremony around. Likewise, when I used it to create a compliance test generator for a company I worked for, it took me a few days to write something that would take their source questions and answers and generate an entire website that folks could use to give exams and certifications for regulatory compliance. To this day, I have not found any other language that makes text processing as easy as it was in Perl, and given how much of our work is processing text and strings, I’m still a little surprised other languages haven’t made it as easy as Perl did.
- lapsed_lisper 1y agoI worked in Perl for ~2.5 years in the mid-2000s. It wasn't the language for me, but I liked, respected, and am still friends with colleagues who loved it. However, I was always dumbfounded by the experience that none of them could or even professed to be sure of what most code fragments did at a glance, even fragments that only used constructs in the base language. When they worked on existing code, they'd run it, tweak it, run it again, maybe isolate some into a small file to see what it did, look at perldoc, ask questions on IRC, etc. As a Lisp guy, I'm all for interactive & iterative development, but I also like learning tools so as to use them more effectively over time. I didn't find that learning Perl made me more productive with it over time (on a modestly sized, pre-existing code base that needed both maintenance and new feature development), and the Perl lovers I knew didn't seem to mind not having this as part of their work. Anyhow, toward the end of my time there, I had to interview candidates. Because I came to believe that the above is how one had to work with Perl, I took to asking the ones who said they knew Perl, "Can the reverse builtin reverse a list?" (I won't spoil the answer for you.) Most would answer with "Yes" or "No"; 75% of them were mistaken. Either way I'd ask them "Suppose you weren't confident about that answer. How would you determine the truth?" IIRC, 90% of them said "I'd write this one-liner..." and (I swear) 100% of the one liners would give any reasonable person an impression of an answer that turns out to be incorrect. The ones that said "I'd check the perldoc" were the only ones I'd approve for subsequent interviews.
- animal531 1y agoI hate when you have code that you can't simply read to understand what it does. I'd like to say that probably 99% of the code that I write embodies that, I refuse to use complicated language constructs wherever I can, even if that makes the code longer. When I was a kid and just started working I would still often code with whatever I came up with initially, but then you go back to that 3 months later and you have to throw the whole thing out because it's impossible to maintain or add to. On the other hand there are sometimes additions to a language that's just so useful that you have to expand your vocabulary, for example in C# that's happened a few times. One of the notable additions there was LINQ that made manipulating data so much easier. It can become dangerous though, the same as for example with a complicated DB stored procedure.
- inoffensivename 1y agoI was a young teen when the world wide web became a thing, my Dad to gave me a copy of the camel book. I used Perl to write everything... A message board, a stats website for a MUD I was playing on, basically anything I could think of to drop in that cgi-bin directory. All of my code was garbage of course, but it was an incredible amount of fun, a very valuable learning experience. I miss those days, but that probably has less to do than the programming language and more to do with the carefree days. :-)
- ben7799 1y agoTechnically I did my first programming in the 80s as a kid. I went to college in the 1990s. I definitely learned Perl and used it. However I would say an awful lot of the professionals I was around already thought Perl had a bad smell even in the 1990s. It was definitely looked down up on in academia by then. Maybe not in an IT department or Math department but in the CS department it was. It was used by IT guys, and QA guys, and somebody gluing some tools together. An awful lot of people thought it was unacceptable for it to be in serious production code or anything that had to be long term maintainable or be worked on by a team of people larger than size = 1. Your perception of it definitely came from where you were at the time and how you encountered it. If you were on a team producing software for sale that involved a bunch of people and you had version control and QA and everything Perl was already not your thing.
- agentultra 1y agoI enjoyed how witty and charming the community was back in the 90s when I was into Perl. I had a similar path to Perl as a lot of people here. I was making games and into C when I learned about Linux from a friend. From there I heard about Perl and started using it to automate making my websites… those halcyon days before someone started calling them “web logs,” and later, “blogs,” etc. Text munching and slinging around files was much easier in Perl than it was in C and I became a big fan. The community was awesome. And the books were great. I feel like Perl embodied that hipster-Socialist Bazaar style moment in programming/tech.
- boothby 1y agoKids these days aren't learning Malbolge as their first language and it really shows. I loved Basic, then VisualBasic, then C, and then Perl... and after Perl, I've never really found it challenging to learn a new language. After almost a year of working on some cgi script (gossamer threads, I think?) I had this alarming realization that I did not understand the context of a block of code I seemed to spend most of my time editing. It was a multi-page regular expression. I was (and am still) pretty naive to how the language is implemented or even parsed, and I find it most interesting how we can write in languages with the barest understanding of their underlying details. I'm at that point with a lisp, occasionally catching glimpses below the surface, but now with decades of diving deep and in other languages. Sometimes I think it might be fun to return to Perl, but when I read modern Perl, it seems to bear such little resemblance to the code of 25 years ago.
- Dove 1y agoI miss perl. I encountered it in school, in 1998, and fell head over heels in love. Used it professionally a lot longer than was probably justified, given the mores and availability of programmers. The Camel Book set my formative opinions on what software should be like, and I'll surely be a perl programmer at heart forever. I gave it up in 2020, perceiving that python had won. It was a sad day - working in python feels like typing while missing three fingers. I go to reach for an idiom and not only is it not there, I'm told the phantom limb syndrome is for everyone's good, including mine. I've never found the code of skilled perl programmers difficult to read. I think bad programmers will always write code that is difficult to work with, even in languages that are supposed to prevent it. The most miserable time I ever had understanding someone else's code came at the hands of a brilliant, overly clever, somewhat inexperienced python hacker. I will admit, though, that this feat of confusion required a prodigy, whereas perl makes it quite easy to shoot everyone in a thirty yard radius in the foot. Just the same, I've always thought the messiness of perl was a myth, a result of misuse, abuse, and inexperience. Well written perl conveys much at a glance where in visually cleaner languages, all shapes have the same outline. But it's also true that by the time I gave it up, I was already looking for a replacement. The language is bold and beautiful and opinionated, and in the fullness of time, some of those opinions proved to be wrong. The world moved forward and perl didn't, and I found myself wanting to do things with objects, and types, and tooling, and functions, and exceptions, that it just didn't do, or didn't do well. Some languages, like PHP and javascript, grew beyond their humble beginnings and bolted on the rigorous and increasingly mandatory machinery of the modern world. Perl didn't. So my leaving had two big factors: the language didn't grow up, and people didn't want to read my code. I'm still looking for a replacement. The serious contenders seem to be Go and Ruby, both of which I really like a lot. I dabble in Haskell and Lisp looking for pieces of what I've lost. I have negotiated an uneasy ceasefire with python and javascript out of professional obligation. We can work together, though admittedly neither one of us is entirely happy about it. Perl was a beautiful thing, a thing I appreciated like art and poetry. I'm glad to have been there for the years in which it flourished. But I also think the world has passed it by. Even looking past hacked in features, it had a more fundamental problem. The tug of war between standardization and expression is like the one between society and the individual. Neither side should ever really win, but perl favored expression more than we now think is wise. We didn't know it then. And the feeling was glorious. But in the decades since, we all - myself included - have decided the balance between those things is ... well we don't know exactly where it is, but we do know it involves less individual freedom than that. The language made a lot of gambles that turned out wrong, but that's the big one. I think lisp fell prey to that, too, by the way. So formless and expressive that by the time you got done writing your software, you'd essentially invented a language specific to it. Great, in the narrow scope of your project, language and domain fitting hand in glove. Not awesome if you need to hire help. Ads for people who speak Emacs Lisp or Autocad Lisp are telling. You can invent the most beautiful language in the world, but the fact that only three people speak it is surely a strong point against it. Perl is and was a beautiful thing. I miss it. I seek out its children when I can. I write jokes and references and eulogies where I can, tucking little utility functions stolen from perl into languages where they don't belong, places that never touched that unix heritage. Perl is humble enough to give you the space to do things your way, rather than its way, giving you permission to break all the rules and requesting that you use the freedom with wisdon and goodness and politeness. That sort of bold faith and generosity sparks in me a fierce love. I haven't found it anywhere else. I doubt I will, because as wonderful as it is, it's since been considered unwise. Programming is a social endeavor, and while a specialist language like GLSL can thrive in a little niche, a glue language spoken by only a few people isn't a glue language at all - it's another arcane system that needs to be glued. No, python won. Perhaps it even deserved to. So for me, perl is dead... but also long live perl.
- ProofHouse 1y agoVibe coders who I love that it exists and they exist, are what annoy me most. They don’t know what they don’t know and now they think they’re Snr devs when most don’t even know what SQL means. They others saying ‘I’m a programmer’ chest out, like have some humility jeez. Plunging a toilet doesn’t make me a plumber
- Western0 1y agoI use perl , still is fast and very intuit for writing small code (but not for reading it after a week)
- antithesizer 1y agoDiscovering Perl made me feel like a god.
- weare138 1y agoPerl is a messy, maddening programming language Only because people kept writing horrible code and using Perl as an excuse. Perl is like C, your code is as readable and maintainable as you choose to make it. It's like that old saying about blaming your tools. Just stop writing crap code.
- ubermonkey 1y agoThis. Perl won't stop you from doing insane things, true, but you can write garbage unmaintainable code in any language.
- cafard 1y agoAt some point around 2015, I looked around and noticed that the young (< 35) all seemed to know Python, and that only the middle-aged and older (> 45) seemed to know Perl. I decided that future work, where I had an option, would be in Python. There were a couple where I hesitated, but they are gone. At the beginning of the transition, I had to look up Python idioms for what I knew in my fingers in Perl. Over the last couple of years, when it made sense for a one-off in Perl, I would omit semicolons, omit braces, count on significant indentation. Can I still write Perl? Yes, and not badly, but not as fluently as before about 2018.
- ubermonkey 1y agoThe last time I wrote code every day as part of my job, it was in Perl as part of some site development using the Mason framework. I am unapologetic about my love for Perl. Something I learned in that role was how much more important transparency is than cleverness. Perl has a way of enticing you to do very "clever" things -- there's more than one way to do it, as the saying goes, and some of those ways are VERY NEAT! Unfortunately, a large number of the "neat" approaches also approach brainfuck-levels of oddness. Most languages don't have that rabbithole, or at least the hole isn't that deep. But with perl, man, you can do some ridiculous and awesome things that even YOU won't immediately understand six months from now. About the 2nd or 3rd time you get bit by that particular snake, though, you start to build your code much more conservatively, and with much more of a long-term intentionality built in. The code I wrote in that job after those lessons took root is still probably the best work I've done as a programmer -- neat, clean, consistent, and above-all understandable to whomever ended up needing to work on it later. And I put a lot of that down to just how easy it is to write HORRIBLE Perl.