Communication at the 36c3 Perl and Raku Assembly
The Chaos Communication Congress is the hugest convention and festival for hackers on the continent. Its part 5-9 track lecture conference, part massive parallel soldering and other workshops, part dance party and part carneval. I liked especially the one guy, just walking around while making music on it's novation circuit - but there was so much going on - he was hardly noticeable. Because it was gigantismic. When even a small self made booth for baking dough (one of several dozens food stands) sells over a ton (literally > 1000 kg), serving > 13000 people, it earned its name: waffle operation center (WAP). But that's the spirit and humor around here.
To me personally 36C3 was my first and I think not my last CCC. Half of my time I spent at the Perl and Raku booth, programming current projects and answering questions. Here is what I learned from that. Most Questions where about Perl 6 and the recent Raku rename. but other than that:
- Don't apologize. You like/love Perl that's about it. Details people didn't knew before are far more interesting.
- Be honest with weaknesses and strengths and try to be up date.
- Have an answer for the big questions. It sucks repeating sentences but you have to have well thought out reason why you prefer Perl for instance (this came frequently). Many people are curious and an enlightening answer tailored to the asking person achieves a lot more than best PR-material. That includes have even some knowledge about areas you normally do not cover.
- Explain motivation. Perl has weaknesses but all for reasons.Reasonable people know that you in life always weigh pros vs cons and if you give them realistic hints, they appreciate it. And even the strengths shine even more if one understands the motivation behind them. So you have to at least looked into the classic books or know some perldoc by heart. Most of the technical info is on the net and can be read. Use the opportunity to also talk about the bits you usually don't read about. Tread the audiences like potential Perl mongers.
As a general communication strategy I found three points I want to share here, because there were understood and accepted by most people I talked to.
- Perl is for people who love programming. Even this sounds like PR Jiu Jitsu Steve Jobs adopted to make it sound cool that most people didn't used a mac, this is true and realistic. People who take programming as a craft and love what they do tend do be more appreciative of Perls flexibility. You don't have to sugar coat realsitic syntactical, semantical and pragmatical issues with the language. But this point weighs heavier than lot of them and it is a positive message that sound way better that the negative and defensive (Perl is just a write only language). You can easily win that battle if you stay firm positive and truthful.
- Perl is for experts. This is related to the first item. I had there also the discussion why there are as many operators in Perl (to be precise). Is has to communicated properly that Perl is a big language but for a very good reason. It lets you to get away with writing baby Perl but the real goal is to become an expert which ties into doing what you love. unlike java and especially unlike Python. Even this might sound mean on the surface its just true. Guido gave interviews how he was inspired by school languages like ABC. It is a language optimized for beginners. Which honestly can include scientist, which are often not the greatest and most experienced programmer either.
And I don't want to make it into a screamfest. When Joe pythonguy says its very readable, even for beginner, we can say: yes but what you do when you're not a beginner anymore? Than having syntax rules limiting your expression is hindering your productivity.
Even I despise all the usual PR BS'ery as the next person, I think we would be well off to cultivate the ethos as programming experts, which would go well hand in hand with the fact we are not the youngest community. (Even I find it lame to call myself as an expert, but I know a lot of others I would point to.)
- Camelia works as told by Larry. Lots of little girls stopped and looked at her with bright eyes.
These are basically my talking points too. I'd recommend that anyone who wants to do similar advocacy also come up with a good answer to five things you hate about your language: you don't really know something that you only love.
The point about scientists is where I usually rant about how we structure scientific teams. I think it would be much better to include programmers directly instead of making scientists do it all on their own. Tested, replicable, and maintainable code is important for science (not just scien-tists), and those don't come from beginning coders. Notably, "efficient" or "perfomant" isn't in that list because that comes later.
The Python point is curious. The syntax is readable. I can tell what the syntax is doing. But so what? Is the code doing what you wanted it to? Can I figure out your intent? It's not a Python thing because Perl and any other language can be the same way. Syntax is a red herring. Architecture and organization is more important.
Personally, I find Perl gives me an easier way to organize code. A namespace translates directly into a file and that's that. It still takes me awhile to find things in a python package (although I'm capable of doing it eventually). But then, I'm thoroughly unixified: if it's not in a single text file I don't want it. That leads to talking about the environment in which someone first experienced programming—that leads to ingrained preferences about how we want to interact with things and which levers and knobs we want.