Tuesday 10 November 2015

Interview: Alexis Sukrieh - Inventor of the Perl Dancer web framework

In this article I track down the elusive creator of Perl’s Dancer web framework, Alexis Sukrieh. He reveals how Dancer came out of his work as a Ruby CTO and gives an insight into the driving force behind Dancer’s community.

Almost 5 years ago I discovered Perl's Dancer framework – a domain specific language for web development – and it convinced me that Perl newbies could be taught web development in Perl.

All this time I’ve been in touch with Dancer's core team, but the originator – Alexis Sukrieh – was an enigma who I never found at conferences, mailing lists or even git commits. So when he cropped up as a speaker at October's Dancer conference in Vienna I pounced on the opportunity to find out more about Alexis and the motivation behind my favourite web framework.

A theme which kept coming up in our discussion was community. In his words
“Dancer is a great source of satisfaction for me, not only because it’s a successful piece of software but mostly because of the amazing community we have built around it.”
Dancer has a community where creativity and rule breaking can take place through the respectful exchange of ideas across cultures and programming languages. What sort of person was able to put this engine together?

As a college graduate, Alexis started his career as a junior Perl developer in 2000 at Weborama in Paris. By 2014 he was their CTO. Impressive as this is, it was the path which took him there which is more intriguing.

His first career upheaval was in 2002 when the dot-com bubble collapsed and his job at Weborama evolved into a piecemeal programming consultancy for large clients. Realising he wasn’t a good fit for that kind of work, he left on good terms to take on Perl jobs at other companies specialising over time as a Perl web developer. He was contacted again by Weborama in 2007 who proposed an interesting project - an intranet (in-house) social networking engine for companies. The project specification was that it should be developed in Ruby on Rails. Weborama’s CTO at the time believed that
“… because RoR’s learning curve is much quicker than Catalyst’s, we would be very productive with it and would be able to move from prototype to production very quickly. That was true - up to a point. However, when going into production it was a real pain to maintain a good and solid base of dependencies. We had to freeze all the gems we used in our vendor directory to gain some stability.”
Even so, Yoolink successfully launched and split off from Weborama as a business with Alexis as its CTO.

In 2009 with Yoolink a successful company without major technical hurdles, he took on a new project in his spare time - Dancer. Becoming R&D manager then CTO at Weborama meant he didn’t have enough spare time to manage Dancer, but by 2011 he had nurtured a team of six developers to look after it - including Sawyer X. That core team is now lead by Sawyer and has 12 developers from 10 countries spanning 4 continents.


To have a community, there needs to be common ground - in this case it’s a shared world view of what makes a good web framework. How did Alexis acquire the skill to create something so popular? I asked him what spawned his interest in writing code.
“When I got my first computer, an ‘Atari ST’ when I was 13 or 14, I spent many hours trying to copy BASIC programs I found in magazines. I didn’t understand what I was doing at that time but for me, writing software was the creation of something magical.”
After studying programming at school and college, with a clearer view of how it
“It’s a way to build something without matter, out of the blue. It’s the closest thing to the concept of God. Don’t take me the wrong way - I’m not speaking about religion here. I’m speaking about the concept of an entity able to create things with nothing but words.”
Alexis then expands this into his view on life:
“When life sets you a challenge, it is through this struggle that you grow as a person.  Without problems to solve, one would die a desperate bore.  Our brains have to remain engaged and creative for us to be happy in our life.”
But back to my question which set all this off, how did this worldview morph into the design of Dancer? His explanation was accompanied by this quote

“When I first saw Sinatra, I was amazed by the clarity it gave about web programming concepts.  The concept was so simple, so clear, so ... obvious it didn’t need a long explanation. And that’s exactly the kind of software I like.  It was like throwing a stone in a window and saying: ‘Hey, we’re gonna do it this way, and it will rock.’"
You may wonder about the rock and window metaphor in the case of Perl:
“I did my best to drop the $self in Dancer's API. That shocked many Perl developers, and I even got insulted for that (I'm always amazed by how strong the feelings can be about code!). But I dropped the $self, because I wanted a syntax as clear as possible for the end user, and I'm sure my time working with Ruby can take some of the credit for that.”
Overthrowing a cultural norm can be fun, but respect for the users of Dancer was paramount. The Dancer team has supported a slow and careful migration from Dancer to Dancer2 with both versions being supported and maintained.


In the end I just had to ask. After all these years, why had Alexis turned up at a Dancer conference?
“Yeah. Cycles. It’s all about cycles. In Arabic - my father is from Syria - we say 'Mektoub' to mean 'what needs to happen happens'.”
It turns out that it was just another seed - this time sewn by Sawyer X after Alexis invited him as keynote speaker to Weborama’s biannual tech-day conference. Over lunch while updating him on the progress of Dancer Sawyer blurted out “Man, there’s the Perl Dancer conference next month, you have to come!”
“I really appreciated Sawyer's gesture that day. It meant to me ‘you’re not here in the code anymore, but you still count, we’d like to have you, you’re still part of the community.’"

His talk “Perl Dancer, a Brief History of Code” was well received and subsequently on a panel forum of the core Dancer developers, the question came up of whether there would be a Perl Dancer book. Many on the panel (including Alexis) had commenced writing a book, and at this point realised that if they joined forces it might actually happen. As such, there is now a Kickstarter campaign to cover some the editorial and printing costs https://www.kickstarter.com/projects/1856511822/perldancer-book

If this book gets off the ground it will indeed be another virtuous cycle in Perl Dancer’s dance.

No comments:

Post a Comment