On Saturday, Sebastian Riedel* released version 1.1 of Mojolicious, the next generation web framework for Perl. We love Perl and web development here at ActiveState, so we contacted Sebastian for an interview.
Tara: Why did you create Mojolicious?
Sebastian: It actually happened mostly by accident, Mojolicious originally started in late 2008 as a framework for web framework developers called Mojo. Addressing many design issues of Catalyst and meant to become a replacement for its aging internals. But when the current Catalyst maintainers showed reluctant about the adoption of Mojo, I decided to just prove its value by building an example web framework.
Then the Mojolicious example web framework simply exceeded all expectations and I never looked back.
Tara: What were some of the lessons you learned from developing Catalyst that you found helpful in building Mojolicious?
Sebastian: I guess the most important lesson I learned was actually the art of community building. A vibrant community is the one most valuable asset for every framework and its major selling point. And even though Mojolicious is still a very young project, we already have the second biggest community of all Perl web frameworks, right after Catalyst.
Tara: What are some examples of Mojolicious in the wild? What kind of projects are being built with Mojolicious?
Sebastian: While I’m aware of a few bigger sites already running on Mojolicious or planning a switch, I’m afraid I don’t have the permission yet to reveal names. It’s sadly still a common phenomenon that companies are a bit shy about their use of Perl, even though they’ve been running Alexa Top 500 sites on it for years. We are really seeing all kinds of exciting new projects every day and I’ve not spotted a specific pattern yet.
Tara: What modules and/or tools are developers commonly using with Mojolicious?
Sebastian: The whole CPAN really, as it should be, because it’s surely the most important feature of Perl. When it comes to tools i think most of us use git, perltidy and one of Vim, Komodo IDE or TextMate.
Tara: What kind of developers is Mojolicious attracting? Who did you build Mojolicious for? Established perl devs, new web devs, other language devs?
Sebastian: While i was originally targeting established Perl developers with Mojo there is now something for everyone in Mojolicious.
Tara: Is Mojolicious attracting developers away from other frameworks?
Sebastian: I was actually a little surprised by the amount of people from outside the Perl community we’ve managed to attract. Modern Perl is a fantastic alternative to PHP and people are starting to see it.
Tara: The Mojolicious culture feels very different from the rest of Perl culture. What makes Mojolicious’ culture different from the established Perl culture?
Sebastian: When I first started Catalyst I simply wanted to build a web framework in the best Perl tradition. But this has evolved over time and now been taken to the extreme, a fresh installation can take hours to resolve hundreds of dependencies before you can even get started.
So for Mojolicious I’ve decided to experiment with the other extreme and optimize for user-friendliness and development speed without compromises.
One of the results is that you can install Mojolicious in under a minute with just a oneliner. I guess you could say that we are a bit of a rebel movement inside the Perl community, shaking up the status quo.
Tara: What kind of reaction have you been getting from the Perl community?
Sebastian: The reactions from the Perl community are actually quite interesting, they either love us for redefining user-friendliness or hate us for breaking with traditions. But only very few are apathetic, so we are definitely on to something.
Tara: How big is the Mojolicious community?
Sebastian: Surely one of the biggest sub-communities within the Perl community, just recently we were the first CPAN module to ever reach more than 300 followers on GitHub (https://github.com/kraih/mojo).
Tara: What features of Mojolicious are you most excited about?
Sebastian: If I had to pick a single feature it would surely be the growing workflow. Being able to easily grow single file prototypes into well structured web applications without switching the framework is really unique and will make for many happy developers.
Effortless zero downtime software upgrades out of the box and CSS3 selectors in unit tests are also pretty neat though.
Tara: What features do you want to see added to Mojolicious?
Sebastian: For now I’m rather happy with the current feature set of the core framework, but I’m very much looking forward to many new plugins from the community.
Tara: If someone wanted to contribute to Mojolicious, what would you most like someone to work on?
Sebastian: Thanks to a Perl Foundation Grant we have really great documentation now; more translations would be a very welcome contribution.
*Sebastian Riedel is a supervillain in the Perl universe and the creator of the Catalyst and Mojolicious web frameworks.