Build Date: Tue Oct 22 17:50:13 2024 UTC
"Pussyfoot" is a really weird word, if you think about it too long.
-- Mr. Bad
Larry Wall Unveils Perl 6.0.0
2015-10-06 11:32:33
The first thing he did was thank Craigslist "for sponsoring me these last few years". On October 5th, 2015 Larry Wall addressed a crowd of geeks at San Francisco's Exploratorium, saying he couldn't properly express his gratitude to Craigslist. Then he acknowledged how long the development arc had been for Perl 6. "As the old joke goes, Perl 6 is coming out this Christmas." Only this time, he meant it.
Larry has a soft, cheerful voice, and an unflaggingly positive attitude. "To the nay-sayers: thank you for saying nay. It was a tremendous motivator. We couldn't have done it without you." And then for the rest of the audience, the former linguist said, "We did it. For some definition of 'we', and 'did', and 'it'." To underscore the point, he put up a slide that said "Here."
"Any questions?"
Someone from the audience jokingly alluded to The Lord of the Rings. ("Does one simply build Perl 6? It's not like Mordor?") But Larry was more interested in demonstrating how the new language would "carry forward the high ideals of the Perl community." He joked that a top priority now was fixing bugs that could be mistaken for features. And then we saw a lot of things that were exotic and new.
$++; | # An anonymous state variable, # for very fast loops |
gather and take | # A control structure for creating lists # without an intermediate temp variable |
loop {} | # Looks like an alternate syntax # for creating a loop |
react { whenever } | # Code runs when a condition is met. # Larry actually demonstrated this by # triggering the react block just by # typing an echo command |
One of the most impressive things Larry demonstrated was the sequence operator, and Perl 6's ability to intuit sequences.
say 1, 2, 4 ... 2**32
This correctly produced a nice tidy list of just 32 values -- rather than the 4,294,967,296 you might expect. (Larry later told an audience member that he "really liked" this capability, and when someone asked how it's implemented, he said "Go read the code!")
And he also dazzled the audience by calling methods on integers. "Everything is an object. But only if you want it to be..."
say Int.^methods
say Array.HOW.^name
With a nod to Douglas Adams, Larry said "42 is a very important number," then showed the audience what would happen if you called integer methods on the number 42.
say 42.WHAT
say 42.^methods
"Pretty much everything is a reference, if you scratch it," he said later. (One web site notes that in Perl 6, "everything that can be held in a variable is an object, and objects are passed by reference everywhere....")
Larry talked quite a bit about meta-programming -- the ability to write your own grammar, defining bits of syntax and extending the language on your own. "We really make no distinctions between built-in and user-defined," he said at one point. Defining a new "infix" operator has an eminently reasonable syntax -- something like:
sub infix:
And any op in square brackets becomes a list operator.
say [+] <3, 1, 4> x ** 2
It took me a second to process Larry's statement that "Any infix operator can be replaced by itself in square brackets..." Later someone asked, "In a world of user-defined operators everywhere, how do you define precedence?" And Larry pulled out is tighter() and is looser(), noting that Perl 6 even has customizable precedence levels. "You can add an infinite number..."
But Larry was especially proud of Perl's ability to drop down into other languages. ("This is why we say all languages are really just dialects of Perl 6...") Python and Lua are even included in the Inline library. And Larry pointed out a new library that adds Ruby-esque rules, so exclamation points and question marks can be used at the end of identifiers. ("If that's what it takes to make Ruby programmers happy...")
He touted many other cool features of Perl 6. (Concurrency. Roles. "Lazy lists," which don't calculate their values until required...) There's even an improved handling of smart quotes. And he promised that soon we'd see something called native shift arrays. "But things you can feed into a high-speed processor to do matrix manipulations is already built in." There's also a new syntax in Perl 6 which lets you perform smart matching. (Finally, there's a way to stop non-identical strings from matching just because they have the same numerical value.)
say "+123.0" ~~ 123 ;
By comparison, a regular expression is just "a degenerated way" of doing a smart match -- doing character-by-character analysis instead of checking for actual equivalence.
There was a moment in the presentation when it seemed like Perl 6 may be the language that Larry had always wanted to write. "My wife observes that when we did Perl 5, we had to incorporate a lot of recognizable culture," he told the audience. "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. If we'd shipped any time in the last 15 years, we might thoroughly regret it now."
Larry concluded by taking questions from the audience, which drew out some more interesting comments on the same theme. ("We've been trying very hard for the last 10 years to underpromise and over perform.") But my favorite part was when he alluded to the old joke about development -- that you can choose any two of the follow three attributes: fast, good, and cheap.
"We're an open source project. By definition, we're cheap. We chose good over fast."
T O P S T O R I E S
Another Nobel Prize-Winning Author Describes Drunkenness
This book won a Pulitzer Prize. Here's its famous paragraph on getting drunk... (More...)
'Why I'm pretty sure JD Vance had sex with a couch'
True or false? The answers await us in that magical land where all truths are revealed -- the internet. (More...)
In 2010 Dr. Cheng-Huai Ruan discovered a way to cause a patient with an abnormal heartbeat to get back into a normal rhythm by sticking a finger up the patient's ass. (More...)
WKRP in Cincinnati aired from 1978 through 1982. Howard Hesseman played Dr. Johnny Fever, a DJ from Los Angeles who was fired from his previous job for saying the word "booger" on the air. In the show Hesseman would do some dialogue, introduce a song, and start the song. You'd hear a few notes, but never the whole song. (More...)
SF Hippies Can't Get Their Act Together
The annual 420 Hippie Hill event in Golden Gate Park, where large crowds of hippies, wannabe hippies, and hippie poseurs drape themselves in tie dye t-shirts and gather on a hill on 4/20 to smoke weed, was cancelled this year because the organizers couldn't get their act together. (More...)
Mozart to be inducted into the Rock 'n Roll Hall of Fame
Joining such hard-rocking inductees as Abba, Chet Atkins, Nat King Cole, and Neil Diamond, the Rock 'n Roll Hall of Fame is proud to induct Wolfgang Amadeus Mozart. (More...)
C L A S S I C P I G D O G
The Deep Dark Underbelly of the Star Wars Myth, or Ramayana Remembered
It's a fact: Star Wars is a blatant plagiarism of an ancient Asian legend, and the long lines of devout Star Wars freaks are really unscrupulous Asian copyright busters. From Indonesia to Thailand to Nepal, videos are available for sale or rent before they're even released in the US and UK due to this nerdy camcorder-clutching bunch. (More...)
During a magnificent sunny day in a fast receding autumn, the Spock Science Monitor reporters once again blew the playa dust off of their computers and covered the 2002 Burning Man Decompression – held every year just east of Portola Hill in beautiful San Francisco. Both an afternoon and evening issues were released to the unsuspecting crowd of freaks attempting to in some small way experience the euphoria of the playa – if but for a brief afternoon far from the desolation of Northern Nevada. (More...)
Patient Joab's scientifick editorial discusses aspect of the space-time-beer continuum never before processed by sub-bush-robot minds!!! Too fabulantastic to contempulate! (More...)
Johnnie Royale's Guide to Wakes
Wakes can present problems for Bad People of the Future. (If you don't know what a BPotF is, you need to read more of the PDJ.) Sure, your friend is gone and you miss him and that really sucks; it does, I know. But all Bad People of the Future are gonna die, and they have all accepted that fact. They do deserve, however, to have one final kickass party to celebrate all the bad things they've done in the past, present and future. And you, as a friend, have to make sure that their desire for a final send off is well executed (sorry for the pun). That's just the way of BPotFdom. (More...)
A Blast from the Past! Pao Tzu goes over and under the crucial variables in the production and consumption of Salvia Divinorum. A must read for psychonauts of all stripes. (More...)
40 Acres, a Mule, and a Crummy 90-Second Spot on Weekend Update
Consider the plight of the Black Man. The Black Man on "Saturday Night Live," I mean. Has there ever been a more pathetic thing than a token unredeemed for 28 years? Where is the NAACP when you really need them? (More...)