"I have to say, these language designers can be such a tease sometimes"
October 6, 2015 6:10 PM   Subscribe

28 years after the first version, and 20 years after perl 5, Larry Wall unveiled perl 6 at a meeting on Monday night in San Francisco.

Features include:
  • Object-oriented programming including generics, roles and multiple dispatch
  • Functional programming primitives, lazy and eager list evaluation, junctions, autothreading and hyperoperators (vector operators)
  • Parallelism, concurrency, and asynchrony including multi-core support
  • Definable grammars for pattern matching and generalized string processing
  • Optional and gradual typing
Perl 6 is expected to be released by christmas.
posted by jenkinsEar (74 comments total) 31 users marked this as a favorite
 
Which Xmas?
posted by a lungful of dragon at 6:21 PM on October 6, 2015 [38 favorites]


I was far less excited by the announcement of perl 6 than I was by the fact that the annoucement of it on Hacker News right now is via a link to http://www.pigdog.org/auto/software_jihad/link/3138.html

Which says something about perl 6 and the power of nostalgia. Also, I kept waiting for the punch line that it was haskell, but the punch line never came.

(Tip o' the hat to Rum Soaked Space Hobo)
posted by joeyh at 6:23 PM on October 6, 2015 [6 favorites]


I'm not a Perl sort of person in really any sense of the word, but the fact that Perl 6's lowest-level class is called Mu is one of the most weirdly delightful things I've seen in a while. ("One can also say that there are many undefined values in Perl 6, and Mu is the most undefined value." <3)
posted by dorque at 6:25 PM on October 6, 2015 [10 favorites]


I honestly expected the return of Christ, Resurrected, before the arrival of Perl 6.
posted by wenestvedt at 6:30 PM on October 6, 2015 [16 favorites]


I was pretty excited by this, though I feel like I won't really know whether this is good till I have it in my hands. I don't use Perl a lot these days, but I still have a soft spot for it. I end up using it maybe a half dozen times a year just because I'm doing something where it seems like it's still the fastest way. It'd be neat if Perl 6 can make it something that I'd want to use even more often.
posted by tocts at 6:36 PM on October 6, 2015


dorque, you might get a kick out of Void, the uninhabited data type, with a function absurd :: Void -> a documented "ex falso quodlibet".

It's apparently the most downloaded haskell library; I've never been able to work out why exactly.
posted by joeyh at 6:41 PM on October 6, 2015 [6 favorites]


This is the platonic ideal for domestic terrorism.
posted by blue_beetle at 6:41 PM on October 6, 2015 [7 favorites]


Well that's almost as abstract and complicated as Scala's type system, which includes Any, Nothing, Null, Nil, and Unit; and that doesn't even get you to the supertype of all classes (which is AnyRef, and not the same thing as the supertype of all Scala classes, which is ScalaObject).
posted by traveler_ at 6:41 PM on October 6, 2015 [7 favorites]


I'd have been really psyched for this 15 years ago.
posted by Lame_username at 6:47 PM on October 6, 2015 [17 favorites]


Yeah... not to be a hipster-nerd, but what's Perl still used for, other than legacy applications from 20 years ago?

These days, even Python is starting to feel like old-people code. Not that I've decided how I feel about that just yet.
posted by rokusan at 6:51 PM on October 6, 2015 [3 favorites]


what's Perl still used for, other than legacy applications from 20 years ago?

Amazon's still well-known as being largely built on Perl. (The main webpage, I mean. Subsites and mobile apps are different, of course, but *.amazon.com is Perl) Mason as the templating framework, to be specific.

Mind you, I'm not sure how much of that's not wanting to do another major codebase switch and how much is developer lock-in (where does one go after 5 years working in Perl?).
posted by CrystalDave at 6:57 PM on October 6, 2015 [2 favorites]


Well that's almost as abstract and complicated as Scala's type system, which includes Any, Nothing, Null, Nil, and Unit

Objective-C has 4 different values for none (NULL, NSNull, nil, and Nil - yes, those last two are two different things). Mixing them up will ruin your shit.
posted by Itaxpica at 7:02 PM on October 6, 2015 [4 favorites]


AFAIK, even Amazon's main interface has largely left Perl behind. Last I heard it was mostly C++ with some various bits of Java, Perl, etc., in support.
posted by introp at 7:04 PM on October 6, 2015


I cut my bioinformatics teeth on Perl, but I get the sense that Python has largely (and sadly) left it behind, which is a shame given how much slower it is. I doubt Perl can get its mindshare back in my field, regretfully.
posted by a lungful of dragon at 7:11 PM on October 6, 2015 [4 favorites]


A colleague last year went to PyCon in Montreal. I told him to bring his wife and have her walk around wearing a t-shirt reading "I'm saving myself for Perl 6".
posted by fatbird at 7:11 PM on October 6, 2015 [4 favorites]


I honestly expected the return of Christ, Resurrected, before the arrival of Perl 6.

There's still time.
posted by pwnguin at 7:14 PM on October 6, 2015 [7 favorites]


I've used perl at my last ... all of the jobs. It's common among data mongers and systems people.

It is not at all the new scala hotness but it's on every machine and can do very fast large server log analysis, often in a one-liner.
posted by zippy at 7:15 PM on October 6, 2015 [7 favorites]


Seems like there's a lot of perl in the Asterisk (VOIP) world.
posted by snuffleupagus at 7:33 PM on October 6, 2015


jenkinsEar: “Perl 6 is expected to be released by christmas.”
At first I snarked, "At least a decade too late to be any good to anybody except hardcore Perl devotees." I was going to leave it at that. It was only a few weeks ago that I told a new acquaintance that if I were specifying requirements for a new database-driven web app of the kind I've written for most of my career I'd pick Django hands down.

Then I read the article. I thought about all the good I did for people using Perl. How it gave me a living for years. I remember reading the Exegeses and how they helped form my thinking right along side The Art of Computer Programming and A Discipline of Programming. I thought about how much I actually miss working in Perl. And all of a sudden, I got a little excited that Perl 6 will be released by Christmas.
posted by ob1quixote at 7:40 PM on October 6, 2015 [24 favorites]


...the supertype of all Scala classes, which is ScalaObject

Not in 2.11

(Sorry, I'll get my hat)
posted by 43rdAnd9th at 7:42 PM on October 6, 2015 [2 favorites]


I can't wait to get my free Dr. Pepper.
posted by Wolfdog at 7:47 PM on October 6, 2015 [1 favorite]


The hard-copy release package will include a copy of the KLF's The Black Room and the director's cut of Prozac Nation.
posted by 1adam12 at 7:51 PM on October 6, 2015 [6 favorites]


It's been sorta officially this christmas since this summer's Yet Another Perl Conference rounds. I don't remember which it was announced at first. At YAPC::Asia the title of his keynote was メリークリスマス! (Merry Christmas!) and he gave mostly the same keynote at YAPC::EU making a nice comparison of Perl 5 / Perl 6 vs The Hobbit / Lord of the Rings.

Here's a bit of the latest words on the Concurrency / Async stuff, also from YAPC::Asia.

Really, for the most part, I think the biggest part of the long delay was because of Parrot. See, they split Perl 6 into the Spec, the Implementation (Rakudo at the moment), and the Virtual Machine backent (was Parrot). Parrot was a total disaster, it was terribly slow at best, and a PITA in general. They wanted Parrot to be a VM that was super-capable of being a generic VM able to support any sort of Dynamic Language. The idea being you could write a Python or Ruby or TCL or Lua or Perl 6 or whatever and Parrot would be an ideal VM to run them on. That failed miserably and (I think) wasted a lot of the development energy.

Luckily things were designed to be Perl 6 - Not Quite Perl - Parrot (NQP being like a very high level intermediate glue language). Then the magic happened, a couple of years ago a sort of Skunkworks project started to ditch Parrot and replace it with a VM that was specifically built to support what Perl 6 needed. That VM is know as 'moar'. moar quickly surpassed and eclipsed Parrot. It's way faster, easier to work on (so I understand) and once it replaced Parrot as the VM of choice Perl 6 development started really gaining a lot of steam. All in all, I think Parrot sucked 7 years of development time...

I'm probably a bit biased, but Perl 6 (the Spec / Language) is pretty awesome. It's like it has almost every good feature from almost any language you can think of baked in somewhere (and it's had the 15-ish years to get it all stuffed in quite nicely). The moar backend keeps getting faster and better (they've got some JIT going on now).

This christmas release is a 'mostly done' sort of thing, some things are put on hold (relatively minor/esoteric things)... The things that aren't making it into the 'christmas' release

Some of the better things in Perl 6 that don't often get mentioned...
Normal Form Grapheme (PDF) Not bytes, not code-points, not NFC or NFD, but graphemes are the basic string elements.
Native Shaped Arrays - my num @a[3;3;3]; - for fast math. Native Call (FFI) - with all of the Type information the interface to native libraries is pretty easy.

Want a taste?

A recent-ish tutorial. (PDF)

Larry doing a Perl5 to Perl 6 program conversion.

Some Perl5 to Perl 6 tips.
posted by zengargoyle at 7:58 PM on October 6, 2015 [14 favorites]


say 1, 2, 4 ... 2**32

This correctly produced a nice tidy list of just 32 values

Some other lists that can be generated: "2, 4, 6 ... 32" produces a list just with 5 values - every number whose English expansion doesn't contain the letter E. "3, 4, 6 ... 11" produces a list of the numbers whose expression in Roman numerals takes precisely three lines. And "2, 10, 18 ... 86" returns a list of the noble gases, expressed by atomic number.

Incidentally, the technical term for "a code element that saves literal seconds at the expense of future maintenance" is "a smug expression".
posted by Joe in Australia at 8:01 PM on October 6, 2015 [26 favorites]


Joe in Australia, I posted that same bit to facebook with the caption "F U, Wittgenstein".
posted by kenko at 8:04 PM on October 6, 2015 [2 favorites]


I am actually very fond of Perl, but I don't yet know what to think of Perl 6 except that I really dislike the butterfly logo. I wish I could be more insightful.
posted by Wolfdog at 8:05 PM on October 6, 2015


I still occasionally use Perl for one-off text processing tasks. For most everything else I end up using Python unless it's JavaScript to run in a browser or I'm patching someone else's software.

I actually wrote some pretty serious shit in Perl, including an app for wholesale delivery route drivers to sell their shit (basically a replacement for Norand/Intermec SDM), but Python is just so much easier to maintain I would never even consider writing something like that in Perl 5 today. Perl was great for one thing in that app, though: text templating for the receipt printing. It's essentially what Perl was originally designed for, so it would be more complex in straight Python.

For anything related to that original use case, Perl is fairly difficult to beat. Time was that CPAN was the main reason to do other stuff with it, but these days other languages are getting to the point of also having a similarly broad library of libraries.
posted by wierdo at 8:11 PM on October 6, 2015 [2 favorites]


say 1, 2, 4 ... 2**32

I wouldn't trust this feature for anything serious. A sequence starting with 1, 2, 4, ... could continue:

• 8, 16, 32, 64, 128, ... (ni+1 = 2ni)
• 7, 11, 16, 22, 29, ... (ni+1 = ni + i)
• 1, 2, 4, 1, 2, ... (repeat the same values forever)
• 6, 9, 12, 16, 20, ... (OEIS A002620)
• and many more
posted by Rangi at 8:19 PM on October 6, 2015 [1 favorite]


Parrot started off as an April Fool's joke and ended up back there.
posted by benzenedream at 8:23 PM on October 6, 2015 [2 favorites]


Yeah, this is coming about 10-15 years too late to be relevant to much of anything. I got my start on perl 4, and spent many years with perl 5, but I've mostly used python as my scripting (and semi-serious development) language of choice for the past 6 or 7 years. These days, even being a python guy makes me a crusty old greybeard to the kids at the web-focused shop where I'm working now.

("zomg dude, why don't you learn ruby?!?" ... I know enough Ruby to hack it up when I need to, because that's the sort of shit a good Unix admin needs to be willing to learn, and to know that I don't care to learn any more, because it's just trying to be python for folks who didn't learn from all the shit perl got wrong.)

These days the only people I know who use perl for much of anything are those who let their technical skills ossify in 2004, and have not felt the need to learn anything new since there. A working knowledge of perl 5 is still a mandatory tool in a sysadmin's toolset, but I doubt perl 6 will ever be there.

Is perl 6 a better language than perl 5? Undoubtedly. Will anyone use it who wasn't already turning their nose up at more modern tools that have been around for 10-15 years now? No, probably not. That ship sailed long ago.

$_
posted by jammer at 8:24 PM on October 6, 2015 [3 favorites]


even Amazon's main interface has largely left Perl behind. Last I heard it was mostly C++ with some various bits of Java, Perl, etc., in support.

Not as of 2014, I know that much. I've *been* elbow-deep in that codebase.
Full-stack/frontend, so my time was about 70%Perl/30% JavaScript.

That said, it does some things well. I wouldn't want to template my HTML in it (Even PHP's gotten better on that front with Twig), but soon you learn to love spaceship operators and sigils (or go mad in the process). It'll be interesting to see if anyone ends up picking up Perl6.
posted by CrystalDave at 8:42 PM on October 6, 2015


It took Python and Ruby longer than their first decade to really catch on. With all the fundamental improvements over the same-old-way-of-doing-things in Perl 6, I wouldn't be too surprised if a long bet on its success 10 years from now over the current popular scripting languages turned out to be a good one.
posted by Space Coyote at 8:43 PM on October 6, 2015


First Esperanto starts making a comeback, and now this.

like joeyh, I find it hysterical that there's a post on pigdog about this but am waiting for NTK to report it before I believe it
posted by phooky at 8:50 PM on October 6, 2015 [7 favorites]


"it's just trying to be python for folks who didn't learn from all the shit perl got run."

Ok, dude, as someone who enjoys Ruby and uses it often when I have a chance, them's fighting words. I mean, if someone already knows Python and has no reason to switch I wouldn't bother; they're both fine languages. But they're also almost equally old—if Ruby's trying to be anything it's trying to be Smalltalk wearing a Perl mask. The major source of the resemblance is that they're both scripting languages, both filling the void left when Perl went off to that monastery to "find itself" and stayed gone so long, used by similar people to do similar things so they get similar updates with similar features.

Like Emacs, the actual reason I chose Ruby was more of "meh, that one looks interesting" + sunk cost advantage of specializing in only one. But I do like the taste of syntactic sugar sprinkled on top of an OO-heavy type system and closures everywhere.
posted by traveler_ at 8:55 PM on October 6, 2015 [3 favorites]


Too bad it still has sigils :(
posted by invitapriore at 9:05 PM on October 6, 2015


These days the only people I know who use perl for much of anything are those who let their technical skills ossify in 2004

This is so different from what I've observed. Most of the people I've been acquainted with who use Perl are polyglots who feel like it still offers them some particular advantage over other options rather than people who stopped learning. And when I periodically check out what's going on in the Perl world, the people who are working on it or participating in discussion are not only obvious technical polyglots but they also seem to be some of the most thoughtful practitioners that I encounter anywhere in the industry.

I'm haven't been among Perl practitioners myself in well over a decade, but sometimes I wish I were. Perl 5 seems one of the few places where industry's reflexive treadmill dash towards the newly-formed but isocapable turned into a careful reflection on using the existing power at hand wisely and the best marginal gains from key additional features. Perl 6 seems to be one of the few places where practical yet mind/capability-expanding PL work is being explored.

Will hordes of people abandon Ruby, node, Golang, whatever for either Perl? Probably not, given Perl's reputation and the endemic social proof dynamics at work in the industry.

Not sure I care. I'd be pretty willing to bet that learning Perl 6 would be a better education than picking up Ruby, and if you placed two jobs in front of me, one of them working on a new Go project, the other on a new Perl 5 project, I might even be willing to bet the latter would be part of a more satisfying overall experience.
posted by weston at 9:08 PM on October 6, 2015 [11 favorites]


Damnit jammer, now you've got me rereading every line above your $_ in the thread to see which ones might have silently mutated that variable in some unexpected way.

Perl still has its hooks in me at a deep level.

s/.*//
posted by joeyh at 9:34 PM on October 6, 2015 [8 favorites]




Fwiw, the contemporary app that I support for my day job is Perl/Catalyst/TempateToolkit, but testing happens with Selenium/Webdriver/Java/Eclipse.

My weight management app is perl/Mojolicious.

Rather do Perl than Java any day.
posted by mikelieman at 11:15 PM on October 6, 2015 [2 favorites]


Gosh there's some strange thinking exhibited in this thread!

"This is 15 years too late" Too late for what? We don't need any new languages? We don't need any new languages with "perl" in their names? I don't get this at all.

"You can't write maintainable code in perl" I can write unmaintanable code in any language and maintainable code in most, especially perl which has the flexibility to allow me to express intent clearly without being constrained by the language.

"Nobody users perl any more" So what? This isn't perl 5, it's perl 6. What did you say when ruby was announced? Nobody uses it? Also, this is wrong. Amazon isn't a good example because it's been there for years but plenty of big new projects use perl. Ziprecruiter springs to mind.

I haven't looked at perl 6 in much detail but what I've seen looks good, largely because it looks like I can throw away the redundant boilerplate that so many other languages seem to want and it doesn't impose pointless constraints. Like perl 5, it has a lot of features I wouldn't normally touch because I want others to understand my code easily, but might still find very useful for one-off one-liners to get some transient job done, or rapid prototyping or whatever (those "cleverly" filled lists spring to mind - eek!).

The problem I see with many languages is that they try to make it difficult for you to make basic errors in your code or try to make it possible for non-programmers to write code. These languages are good for people that make basic errors in their code or are non-programmers. You shouldn't have to try to write commercial code with them. Languages like perl let people who know what they're doing just get on with it with a minimum of fuss, while still providing the tools for everyday hacking that shouldn't make it into production.
posted by merlynkline at 11:23 PM on October 6, 2015 [10 favorites]


Not sure I care. I'd be pretty willing to bet that learning Perl 6 would be a better education than picking up Ruby, and if you placed two jobs in front of me, one of them working on a new Go project, the other on a new Perl 5 project, I might even be willing to bet the latter would be part of a more satisfying overall experience.

For sure, if only because it seems like Go's general philosophy of simplification involves choosing the most brutishly stupid option wherever possible. Package versions? THEY DON'T EXIST! Parametric polymorphism? interface{}! Immutable data structures for safe shared memory logic between goroutines? ¯\_(ツ)_/¯

But, anyway. I've always experienced a pretty profound aesthetic disconnect with Perl that has largely deterred me from ever really getting to know it, but I certainly respect it as a language, and I've noticed over the years that Perl devotees tend to be among the most thoughtful and levelheaded programmers out there. I probably still won't ever use it, but I think the programming world would be better off for more people absorbing that culture. If only for that reason, I hope Perl 6 really takes off.
posted by invitapriore at 11:38 PM on October 6, 2015 [4 favorites]


I wish I'd had the foresight and patience to pick up a book and learn Perl properly back when I was tangling with it from time to time. In hindsight, a mastery of Perl would be a real feather in my cap.

But I could just never get past how much it made my eyeballs bleed.
posted by slagheap at 11:41 PM on October 6, 2015


Good for them for finally marking a release. I've felt bad for the Perl community for the past, oh, 10 years. As their language slowly became a punchline and this futuristic optimistic plan for a new version of the language foundered. I'm impressed they've found their way out of the weeds.

Perl 6 is basically a whole new language. I mean it retains the fondness for the $@% line-noise syntax, but now those characters have different meanings. And everything else changed too. Perl 6 will live or die based on whether it creates a new ecosystem, entices new developers.

I hate Perl 5. It is a disgusting, awful language, and was ever from its inception. Its one strength in its time, the mid-90s, was that it was really great at processing text and then had some early web development abilities. It's an odd foundation to start from to build a new language.

Meantime, Python 3 is now a real thing you can really use. They're having their own upheavals though, specifically around asynchronous programming. But it's coming to a good place.
posted by Nelson at 11:41 PM on October 6, 2015 [1 favorite]


These days the only people I know who use perl for much of anything are those who let their technical skills ossify in 2004

It's funny you should say that because 2004 is about the time i was first *introduced* to perl, and it seems that i've been updating my technical skills ever since even though the bulk of the code i write is perl.

Just this weekend we released our new site which, apart from the frontend js bits, is pure perl: Mojolicious, Template::Toolkit, Moose, DBIx::Class, a recent version of perl (there have been yearly perl5 releases since 2009). And of course it's fully hipster-dev compatible with our dev environments being built by vagrant, versioned by git, continuously integrated, and continuously deployed to AWS.

So take a look, make a donation, and let me know if you find any bugs.
posted by lawrencium at 11:48 PM on October 6, 2015 [6 favorites]


>>> from __future__ import actual_fucking_anonymous_functions_and_not_this_one_line_lambda_shit
SyntaxError: not a chance

posted by invitapriore at 11:50 PM on October 6, 2015 [17 favorites]


$your_favourite_language sucks...
posted by mikelieman at 11:52 PM on October 6, 2015 [5 favorites]


merlynkline: ""This is 15 years too late" Too late for what? We don't need any new languages? We don't need any new languages with "perl" in their names? I don't get this at all."

We specifically don't need any new languages designed by Larry Wall, because Larry Wall has the world's worst track record as a language designer, with the possible exception of the guy who created Malbolge.
posted by Joakim Ziegler at 12:41 AM on October 7, 2015 [1 favorite]


It's 15 years too late to leverage the perl branding into anyone thinking this is a good idea, since there are probably at least three grad students who've come out with homebrewed languages this week which are "as good as" perl 6 (howeverso defined).

It's the computation equivalent of of McDonalds announcing all-day breakfast except that 15 years ago Chiptole didn't meaningfully exist and python did.
posted by 7segment at 2:30 AM on October 7, 2015


Great comment, weston: I probably fit your template perfectly. The perl community that I've experienced (since about 1998) has always been a fascinating, annoying, crotchety, insanely interesting collection of folk from a wide spectrum of backgrounds, most of whom seem to have bumped into perl as the right tool to get a particular job done, and found a resonance with the language that led to long-term love. For me it was data munging in all of its many facets: trying to solve some large (but not enormous) data reshaping problems with Java and C had proven immensely frustrating (as had a protracted war with the devil itself: Applescript!). I eventually ended up writing perl programs to do the conversion and (re)representation of the data simply, enjoyably, and rapidly, within a few days of having picked up "Programming Perl" (which is still the best programming-related book I've ever read), and never really looked back. For me, as for many others, Perl's expressiveness, quirky but effective defaults, and overall freedom quickly elevated it above other languages. For the same reasons it seems to drive others, aaah, "up the Wall".

Anyway: perl 5 probably earnt me a good chunk of my salary for about 15 years, so I have nothing but fondness for the language and utter admiration for the language designer. I don't mind programming in ruby or python (or R or C), and each of those languages has certain real benefits over perl in specific domains, but I almost always thoroughly *enjoy* programming in perl. I'm hoping that perl 6 maintains that, at least. First impressions --having lost contact with the language redesign around 2007 or so-- are distinctly promising!
posted by pjm at 2:57 AM on October 7, 2015 [5 favorites]


Parallelism, concurrency, and asynchrony including multi-core support

God I love it when you talk dirty ...
posted by oheso at 3:11 AM on October 7, 2015 [1 favorite]


"But with Perl 6, we now have street cred to design things the way they ought to be. The hardest thing is waiting for the right person to come along, who understands how to implement it."

Larry Wall said it, but I can easily imagine George Lucas thinking it. There are some cool features in Perl 6. But there's also a lot of syntactic sugar in there that looks, at first glance, like the language equivalent of Gungans.
posted by penguinicity at 3:19 AM on October 7, 2015


often in a one-liner

THIS IS NOT A FEATURE.
posted by schmod at 4:51 AM on October 7, 2015 [6 favorites]


Is there still more than one way to do it?
posted by Obscure Reference at 5:05 AM on October 7, 2015


The problem I see with many languages is that they try to make it difficult for you to make basic errors in your code or try to make it possible for non-programmers to write code.

So, a few thoughts on this....

Code is often maintained by a large and diverse group of people over a long period of time. Many language features that look like "training wheels for new developers" tend to be incredibly useful in large codebases. [Similarly, I'd hesitate to write "excessively concise" code, because it's more likely to introduce VCS conflicts]

There are many languages that have "seemed like a good idea at the time" features that tend to cause immense pain and suffering down the road (eg. goto). It's no coincidence that these features were absent from subsequent languages.

Not every language is designed with the same set of goals in mind (and that's okay!). Sometimes a language deliberately sacrifices flexibility for the sake of discouraging or encouraging specific patterns in the name of maintainability.
posted by schmod at 5:09 AM on October 7, 2015 [1 favorite]


  I really dislike the butterfly logo

It's okay, you're not in the target demographic.

I am, frankly, stoked about this announcement.
posted by scruss at 5:14 AM on October 7, 2015


Yeah, I mean, again: I like Perl, and have used it forever. That said, its reputation of often looking like line noise or being totally un-maintainable are well-earned, and as much as I am kinda excited by Perl 6, I'm tempering my optimism. The fact that they're highlighting that pattern recognition sequence generation "feature" as much as they are is mildy concerning, because beyond it seeming like a thing that can't possibly be so frequently required that it needed built-in support, it seems almost like something purpose-designed to cause future maintenance nightmares if you do use it.

"Hey, what if we made it possible to generate sequences of numbers in a pretty obtuse way such that most people would have to run the program and look at the output to understand it?" is ... well ... I mean, it's a very Perl thing to do, I guess, but not in the good sense.
posted by tocts at 5:18 AM on October 7, 2015 [3 favorites]


MetaFilter: a very Perl thing to do, I guess, but not in the good sense.
posted by oheso at 5:22 AM on October 7, 2015 [2 favorites]


> often in a one-liner
THIS IS NOT A FEATURE.


See, that's where I differ. Sometimes I want to write a one liner, e.g. to quickly extract something from my log files or check a simple algorithm idea or something. I just wouldn't let that get into production.

If I go build a wardrobe and put it in my bedroom, there's a good chance that it will quickly collapse and be unrepairable. If the guy next door spends about the same amount of effort building a wardrobe he produces an heirloom piece that can be economically maintained for years (and that he can make a living from). I don't blame my failure on the wood, nor on my tools (I can use his if I ask nicely). But the really important thing to me here is that when the guy next door wants to knock up something quickly for a single use or to try out an idea, he can use the same wood and the same tools to do exactly that, and he can still love doing it and still love producing heirloom pieces. It's all about properly understanding your medium and applying appropriate self-discipline to each task.

That's how I use perl.
posted by merlynkline at 6:27 AM on October 7, 2015 [3 favorites]


Hey. Neat.

I miss Mason. Who still uses it besides Amazon?
posted by uberchet at 7:07 AM on October 7, 2015


Bah you kids, build anything in a few thousand lines of /bin/sh with the occasional call out to an APL one liner for the stiff compute cycles.
posted by sammyo at 7:48 AM on October 7, 2015 [2 favorites]


I think all the stuff people use Perl one-liners for I still use awk for.

Also this kinda bugs me: "So the new butterfly logo for Perl 6 "is specifically designed, among other things, to appeal to 7-year-old girls."
posted by Matt Oneiros at 8:03 AM on October 7, 2015


Appealing to seven year old girls is preferable to appealing to people who think quoting Monty Python out of context is funny.
posted by Space Coyote at 9:00 AM on October 7, 2015 [8 favorites]


My Little Perl
posted by Wolfdog at 9:02 AM on October 7, 2015 [2 favorites]


I still use livejournal. I think the codebase for that is still perl, but who knows.
posted by symbioid at 9:27 AM on October 7, 2015


I got no problem appealing to girls I just don't like the assumption that butterflies are girly or that's going to be enough to draw young women in to perl 6.

I fear its the extension of pink/blue babywear dichotomies to programming languages.
posted by Matt Oneiros at 9:35 AM on October 7, 2015 [1 favorite]


These days, even Python is starting to feel like old-people code.

I just realized we are doomed! Anything in software engineering that actually manages to reach a stage of robust maturity will be rejected as "for the olds" by identity-group maximizing youth culture.
posted by thelonius at 9:36 AM on October 7, 2015 [8 favorites]


That said I saw this on /r/programming yesterday (the pigdog link) and based on the way pigdog was talking about it and lack of much other information I wasn't even sure if it was true or one of those "Duke Nukem Forever" jokes. I went to Perl6 and wasn't sure if it was official or what the deal was. It wasn't particularly clear on the homepage. Didn't seem to be much fanfare about the release itself.

Anyways, cool, but yeah, color me ... meh. Never a perl fan, but I respect it for what it did. I'm sure it's got some cool nifty features, but ... I'd take Python or Ruby over Perl any day.

What about the ParrotVM or whatever? That thing still happening? Is that what Perl6 runs on, now?
posted by symbioid at 9:37 AM on October 7, 2015


Oh, and uh...


$your_favourite_language sucks...
posted by mikelieman at 1:52 AM


I made This shirt a few years ago... (There's also a black one, but CafePress doesn't let you print on the back on a black shirt (or didn't when I created it), so... the cool one with the code on the back is in white).
posted by symbioid at 9:54 AM on October 7, 2015 [1 favorite]


Ah, my old days on Pigdog Journal...Webzines face tough times!

I've told this story before, but Perl saved my mental state. I'd grown up tinkering with computers and was just finally making breakthroughs in learning how programming was done just as dark clouds gathered in the form of C++.

All of a sudden I had this vast set of FEATURES and STANDARDS and SERIOUS PROGRAMMERS telling me all these WEIRD ABSTRACTIONS that I NEEDED TO USE OR ELSE. And I started to worry I'd never understand any of it and this whole business just wasn't for me. I had kind of an identity crisis. I mean, why can't I hack this? It's the universally-acknowledged Best Thing, right?

Then I found Perl 4, and all the expressive power of Unix was compressed into one language. I originally wrote programs on DOS floppies, and uploaded them to the Unix servers to test further. It was like all of a sudden someone took the keyboard out of my hands and turned it right-side up!

Of course, Perl was famous for combining shell/awk/sed into one language for greater expressive power. I branched out and found that I love awk dearly, and that Python was more my style for larger coding projects.

But Python 3 hasn't made me care. It just gives me hurdles with nothing exciting on the other side. And I left Perl behind in the 5.005 days or thereabouts. So yeah, maybe some day I'll get back into fun new languages, but I feel like I'm no longer at an age where I can devote myself to that.
posted by rum-soaked space hobo at 10:09 AM on October 7, 2015 [2 favorites]


While I don't remember it being in the movie, I'm still convinced this is a Back to the Future II tie-in, like the Pepsi Perfect collector's bottles or that Jaws 19 trailer.
posted by ckape at 10:22 AM on October 7, 2015 [2 favorites]


re one-liners and "THIS IS NOT A FEATURE" I don't mean one-liners in production, I mean one liners of the "I want to do this task now, and we will never speak of it again" sort, where one might otherwise chain three or four sed/awk/grep calls together on the command line, except with perl you can include cpan methods and calls to your production code in perl modules. Really handy for quick prototyping, combining log data with item titles from a db for quick debugging, etc.
posted by zippy at 12:26 PM on October 7, 2015 [2 favorites]


  • Chinese Democracy
  • Duke Nukem Forever
  • Perl 6
  • The Man Who Killed Don Quixote
  • Half-Life 3
  • Detox
posted by mhum at 6:07 PM on October 7, 2015 [5 favorites]


OK, yes. I agree with that sentiment.

Still skeptical about Scala, because it seems to encourage that in enterprise production code.
posted by schmod at 10:43 AM on October 8, 2015


I have no idea what distinguishing attributes a language could possibly have that encourage complicated one-liners in production code.
posted by invitapriore at 3:43 PM on October 9, 2015


« Older Novel geography   |   Lucidibeet hubcar Newer »


This thread has been archived and is closed to new comments