TNS
VOXPOP
Will JavaScript type annotations kill TypeScript?
The creators of Svelte and Turbo 8 both dropped TS recently saying that "it's not worth it".
Yes: If JavaScript gets type annotations then there's no reason for TypeScript to exist.
0%
No: TypeScript remains the best language for structuring large enterprise applications.
0%
TBD: The existing user base and its corpensource owner means that TypeScript isn’t likely to reach EOL without a putting up a fight.
0%
I hope they both die. I mean, if you really need strong types in the browser then you could leverage WASM and use a real programming language.
0%
I don’t know and I don’t care.
0%
Tech Life

Computer Science Professor Stages a Play to Teach his Family Perl 6

Feb 12th, 2017 9:00am by
Featued image for: Computer Science Professor Stages a Play to Teach his Family Perl 6

By day JJ Merelo is a computer architecture professor at the University of Granada. But now he’s reporting on a radical experiment in education with his own teenaged daughters. He taught all three of them about computer programming — and the joys of Unicode — using the new language Perl 6.

And to make it all fun, they also collaborated on a Perl 6 stage play.

“Some time ago, I found I did not like the way the way programming was taught,” Merelo wrote in January. “I also had a few ideas on how to reboot the way programming was taught.”

Last week he offered more specifics on his philosophy. “Why not teach Perl 6 in such a way that even people that are not going to deploy Perl 6 in a microservices architecture to the cloud can use and profit from it?” he asked. But even back in January, what came through was his commitment to making it all real.

“Ideas are ideas and belong to the wind. You have to actually put them in practice.”

Merelo had resolved to teach his own humble family how to code specifically, his three teenaged daughters (ages 17, 18, and 18). And as an incentive, he promised them they could accompany their father to his next tech conference to share their results.

“[W]ith the enticement of travel to exotic places to present the experience once it was completed, my three daughters signed in,” he wrote. When the experiment was finally over, he analyzed what he’d discovered. It included some predictable lessons: “It is easier to learn than to unlearn” and “You can learn a lot of programming without touching a program. You first have to wish to program.”

But most of all, the experience of learning how to write code just had to be fun. “Why else should you waste one perfectly serviceable hour from your holidays to do it?”

 Teaching Perl 6

And that’s what had led them to the idea of writing a play together. It gave them all a shared goal — something to demo at the Perl dev-room at the upcoming FOSDEM conference for free and open source developers. They’d present “a little play to talk about Perl 6 and teaching programming to a new generation of non-programmers.”

Merelo can even document their collaboration, sharing a link to all of the pull requests from the rest of his family. Using the Fountain markup language for scripts (which he says has great support for Emacs text editor), they all helped write a simple two-person play, then released it under a Creative Commons license.

“It needs t-shirts and a few props,” Merelo wrote, though the script itself suggests “no props except what is going to be projected on the screen.” In fact, the script also describes the play as “Truly minimalistic, and intended for trade conferences and somesuch.”

There’s already a long-standing tradition of some very clever presentations at Perl conferences. “I remember someone dressing as a Starfleet cadet, people presenting in Klingon, real shows,” Merelo wrote at one point. But he also said he was serious about wanting to expand the language’s community. “Perl 6 is being preached mainly to the choir. It is a new language, with great features, but mainly presented to people as their third or fourth language. My point was that it could and should be used as a first language, as in the first language you learn.”

Perl 6 logo Camelia

The official Perl 6 logo by Larry Wall, cc Artistic 2.0

This actually fits in with some of Perl creator Larry Wall‘s own aspirations for the language. “Up until now, the Python community has done a much better job of getting into the lower levels of education than we have,” he told Linux Voice. “We’d like to do something in that space too, and that’s partly why we have the butterfly logo because it’s going to be appealing to seven-year-old girls!”

So what exactly is in this play by the Merelo family? It begins with a Perl 5 programmer, despairing over the Perl 6 advent calendar‘s description of all the available string type choices (on Day 7). All he’d wanted to do was write a script (using Fountain), but now he has to decide whether or not he needs to use something called graphemes.

And then Camelia shows up.

Camelia, as all good Perl programmers know, is also the name of the butterfly in the official logo for Perl 6. She appears holding a magic wand and introduces herself as the FairyOps team leader. She finishes the developer’s project with six magic words — “git push dash dash force story.”

And then the shadow puppets come out.

Shadow puppets from Perl 6 non-musical play (from video)

One’s a camel, representing Perl 5, but the other shadow puppet is a butterfly. “Once upon a time, there was a Bedouin called Bab-el Larry-ben-Wall,” Camelia explained. Bedouin ben-Wall first created a camel for system administration and web programming — “the usual things that camels do” — but then along came things like the web (and web frameworks) and Unicode.

That camel grew — “it was fast, and widely used, and respected” — but though people were finding it helpful, Bedouin Larry wanted more, “in the spirit that later made people create JavaScript frameworks every Tuesday.”

So Bedouin Larry decided to create something new — “for biohacking and interstellar travel and brain dumps and many other things that did not exist yet but that when actually existing would break the camel’s back.

But the Perl 5 developer just isn’t convinced. And so, just like in “A Christmas Carol,” Camelia promises he’ll be visited by three spirits — the spirits of the beta release, the first release, and “the spirit of the Christmas when Perl 6 was eventually released.”

The script identifies the first ghost as Bill Murray — or at least, “someone with an appropriate Bill Murray t-shirt.” (The first thing the poor developer says to the ghost is “You’re not even dead!”) It’s not a particularly productive conversation, but when the second ghost shows up, things look more promising. The developer says “OK, I get it. This is where you are going to show me how I rejected beautiful and efficient languages like Python and C# in the past, how I said bad things about vi and Fedora, and how that way I lost all friends and consulting jobs and whatnot.”

The ghost disagrees, saying that Python is cool, but seems to suggest that it also belongs to the ghost of seasons past. True to the plot of the original Christmas Carol, this ghost also grants a peek at beleaguered people in the here and now — in this case, an unhappy teenager named Elena (named after Merelo’s real-life daughter).

“Programming was supposed to be cool and all it is now is another subject I have to study. Like geometry. Or, gasp, Physics.”

And then it’s that third, scary ghost who shows everybody a horrific future — people only programming in Python. Then the whole thing wraps up with Elena, who has learned to program, saying that it turns out that Perl is cool, easy to learn, and also very useful.

Then it’s time for the big closing number — or at least, a triumphant rap song:

MERELO: To hello world we say goodbye
DAUGHTER: And I’m programming, high as the sky
MERELO: She gits, and emacs, she didn’t even try
DAUGHTER: And map, and grep, and Z and X and Y

Merelo grew worried as the conference got closer. “Needless to say, I’m panicking from actually doing this kind of thing instead of your usual ‘look what I did last Christmas’ in bullet points and nice meme-dotted slides,” he wrote.

But he also added, “I’m happy too.”

Title page for Perl 6 non-musical play

Last week at FOSDEM, the big moment finally came when he took the stage with his daughter and premiered their play to the rest of the world. (It starts about 6 minutes into this video.)

 

It was a humble affair — at one point there’s a slide of a Princess Leia Lego mini-fig. And it’s not clear how educational the script itself if. (One of its original lines was “You’re my dad in a Bill Murray t-shirt and you want me to take this seriously?”) But in the end, the whole production clearly shows Merelo’s commitment to the importance of fun in attracting new programmers.

“Some emerging languages, just like this one, were usually marketed to people who already knew one or several languages,” he wrote in another essay, “preaching to the bleachers, so to say. This made the whole programming thing a zero-sum game: you win something, you lose something, and you do not attract new people to the community.”

And at the end of the day, he also felt proud that he’d empowered his daughters with a new tool — because as he sees it, first and foremost programming is a life hack.

Merelo teachers programming to his daughters


WebReduce

Images from JJ Merelo.

Group Created with Sketch.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.