Интервью /

Interview with Renée Bäcker

How and when did you learn to program?

My first program was a simple calculator written in QBasic in the mid-1990's. A command reference for QBasic was printed in the manual of the PC my father had at the time. So I sat down and tried what I can do with that thing called QBasic. It was very easy to get some basic stuff done. But I wasn't very excited then.

A few years later I learned Pascal in school. Very basic stuff, and still I wasn't very fascinated by programming. After school - in 2001 - I started a training as a qualified IT specialist where we learned Java in the company and C++ in training school. I did the training in a small bioinformatics company and I did a lot of stuff in Java. Half a year later I changed the company and came to a bioinformatics department of a big pharmaceuticals company. The people there where mathematics, chemists, biologists but not programmers. And they used Perl...

That was the time when I learned to program. I always learned by trial and error and with the help of Google ;-) I'm not very good in reading IT books, because I want to do something and read less. When I want to do something, I think about how to do it and try it. When anything doesn't work, I read manuals, forum threads and blogposts about this specific thing and try to understand what (and why it) happens.

This way I learn things better and get a deeper knowledge compared to just reading books.

What editor do you use?

I'm not addicted to a specific editor. I use what's available... When I'm in Windows land, I often use Kephra or Padre, but at my current project I use Notepad++ and Komodo. When I'm in *NIX land I use vi/vim.

So I'm the wrong person for a editor-flamewar.

When and how have you been introduced to Perl?

I already mentioned it in the answer to the first question that my first contact with Perl was in a bioinformatics department. That was back in 2002. The people there did some programming without being real programmers. They only wrote (very) small Perl scripts.

They couldn't teach me Perl, but they wanted me to do the programming in Perl so that they can - at least - read the stuff I do. So I had to teach Perl myself. But that wasn't very hard as Perl's documentation is very good and there were Perl forums like http://perl.de (the community behind that forum started http://perl-community.de a few years later) and Perlmonks.

So it was JDIWP (Just do it - with Perl) without any guidance. Maybe this was one of the reason that I still use Perl as I saw how fast one can get things done even without any Perl knowledge. Sure the scripts had lots of global variables, the first script had no "strict" and no "warnings" (but I learned about that a week later) and I didn't knew all the idioms, but the scripts worked.

I still learn new things every day...

What are other programming languages you enjoy working with?

I rarely do some programming in C/C++ and PHP and I do not really like it. I have to do a lot of JavaScript and recently I started to look at Rust. With frameworks like jQuery JavaScript is ok. You can do a lot of stuff really fast. And Rust looks nice...

What do you think is the strongest Perl advantage?

The community, CPAN and backwards compatibility.

The community might not be an advantage for everyone. I know a lot of programmers who do not participate in a community (no matter what programming language). They use the programming language as a tool and nothing more. In my opinion the community is important especially for tools that do not have a big company that develops the tool.

Without CPAN I couldn't have done all the stuff that I've done. I want to say "Thank you" to all the authors of the great distributions on CPAN.

And backwards compatibility is a thing that I hear very often from my customers. They are happy with Perl and use Perl since many years and upgrades were a no-op.

What do you think is the most important feature of the languages of the future?

That's a hard question - I don't know what will be important in 10 years, but at the moment applications hosted in the cloud is an important topic. And the amount of data that have to be handled gets bigger and bigger. I don't believe that one language must fit both areas, but a language should be good in one of those areas.

What are you thoughts on Perl 6?

I didn't follow the Perl 6 development in detail until recently and I use Perl 6 only for some small scripts, I think it has some great features. In my dayjob Perl 6 won't replace Perl 5 for the next years, but for my own stuff I use Perl 6 more and more.

We should stop worrying about the impact of Perl 6 on Perl 5 (e.g. was the decision to name the thing Perl 6 when the language is a sister language of Perl 5; Did the start of the Perl 6 project slow down the development of Perl 5; ...). Now we should start enjoying Perl 6 and its features.

How and when did you start $foo magazine? Why did you decide to stop?

In 2005 I talked with a friend of mine at the German Perl Workshop about a German speaking Perl magazine. We agreed that such a magazine is missing and that it would be nice if one can do it. But nothing happened.

In 2006 we talked about the very same topic at the German Perl Workshop, but nothing happened.

Around November 2006 I thought if no one starts a magazine, I have to do it. I created a list of possible topics and started to write the articles. I downloaded Scribus to layout the first issue... I knew nothing about publishing and even less about "designing" a magazine. Nevertheless I did it. I didn't want to spend a lot of money for an experiment like this. So I did everything myself.

And in February 2007 the first issue of $foo magazine was printed. I sent it to some Perl programmers I knew and one of them worked for a company that does a lot of design/layout stuff and they told me all the things I've done wrong. Creating a magazine layout is hard work! In the end they created a layout and I paid by doing some programming for them.

I created a small website and sold the magazine over this website.

I've published the magazine for eight years and I stopped as it was too time consuming. Publishing a magazine is not that easy. You need authors and as a very small magazine you can't pay royalties, so you need volunteers. You have to contact the authors, ask for articles. Sometimes it happened that authors said a week before we sent the magazine to the printer that they couldn't make it. It's ok, because they do it for fun. But that means that I have to get an article within a week.

I have to say "Thanks" to Herbert Breunung who was a regular contributor and wrote a lot of articles.

After you get the articles, you have to proofread them. Then you have to compose the magazine, send it to the printer, get it from the printer and send it to the readers.

Since 2007 when the first issue came out, a lot in my life changed. I married and I have two sons. In the beginning it was very easy to write articles as my projects covered a broad range of topics. But the last years it became more difficult. I had to think about new topics, read about that topics, test the code and write the article. And I had my day-to-day job. That didn't fit.

I love my family life and I want to spend a lot of my time with my wife and my kids. So I decided to stop the magazine. It was a hard decision, because $foo magazine was my baby too.

Why did you build perlybook.org?

Since many years I use Pod as my main markup language. For the articles in the $foo magazine, for documentation, for training handouts etc. It's very simple and you can convert it to many other formats. And on business trips I want to use the time to prepare my trainings, read documentation and other stuff, but I do not want to read the texts on my laptop. Ebook readers are way better for that. So I needed to convert my texts and the documentation of CPAN modules to ebooks.

So I wrote a small commandline tool that did the conversion for me. When I showed that tool to some friends they asked me if I can put that tool online so they can create Ebooks from the documentation on CPAN.

Fortunately there is MetaCPAN with a great API, so I moved the commandline tool to a proper module that can have plugins to support different sources like local files, MetaCPAN, Github etc. and different target formats like text, PDF and EPub. Thats what the module EPublisher is for. Then a small webapplication around that module and perlybook was born.

So this website started as a small tool that helped me to scratch an itch...

What is perl-academy.de?

In the past many customers decided that I should not only do some programming for them but also teach their employees - covering a wide range of Perl topics (starting with basic stuff like the right usage of DBI and references to object oriented programming using Moose). And I gave several talks at Perl and non-Perl events. I really enjoyed both giving talks and teaching people.

I also held some courses in the university where I studied and gave some Perl courses for training companies. All these experiences led to the decision to start my own training business. At http://perl-academy.de you can find various courses about Perl that you can't find at other training companies (in Germany).

At the beginning, I offered the trainings on a subdomain of Perl-Services.de, but I recognized that the trainings were not as visible as I wished. So I registered the domain Perl-Academy.de. This helped a lot to make the trainings more visible.

Giving trainings is a nice change from the everyday programming life.

You have sponsored or helped organizing Perl booths during various computer events in Germany. What is a motivation behind that?

I like Perl and I like to talk about Perl. The thing with the booths started in 2010 when we organized a Perl booth at CeBIT, a big IT fair. I can't remember who had the idea to apply for a sponsored booth in the opensource project lounge, in the end we got the booth and we had a good time there talking to about 400 people about Perl.

We learned that lots of companies use Perl but they knew Perl as it was in 2000 or 1990. They didn't know how Perl and its ecosystem has evolved. So we told them about best practices and new modules and many other things.

Since then I have been at various events running a Perl booth and talking to many people.

In my opinion it's very important that the Perl community is open to talk to people outside its echo chamber. It helps to understand what other people think about Perl and what they need.

But to be honest there was not only this altruistic motivation. Running Perl booths were also marketing for the $foo magazine and my own business.

Sponsoring is a different topic. I sponsor the events to give something back to the community. In 2004 I attended my first German Perl Workshop and it helped to become part of the community. Those events really help to get to know the people behind the modules you use every day. So events like the German Perl Workshop should still be there in a few years. Sponsoring helps the organizers and keeps the prices low.

In my opinion, every company that uses OpenSource should give something back. And sponsoring is a very simple way for this. And again, it's marketing ;-)

What are you doing for Frankfurt.pm?

Currently too little... I'm a member of the board of directors. We established the club in 2011 when we started organizing YAPC::EU 2012. And in 2013 we took over the responsibility to help local groups to organize the German Perl Workshop.

As I can't make it to Frankfurt.pm's social events I only do the organizing stuff.

Where do you work right now, how much time do you spend writing Perl code?

I still run my own business doing only Perl (plus some HTML, SQL and JavaScript). I do Perl for 8 to 10 hours a day and I love it. Currently I have a long running project at Deutsche Bahn (German Railway), but I still do some OTRS customizations. OTRS is a request tracking system (a competitor to RT that most CPAN authors should know) written in Perl that is widely used especially in Germany.

Should we encourage young people to learn Perl nowadays?

Yes! We shouldn't force anyone to learn Perl, but we should encourage young people to look at Perl. They should decide what they want to use then.

Perl might be an old language, but it's not outdated. I gave some lessons in a school and I sponsored prizes for a competition called "Jugend forsicht" (A youth research program). Some of the teenagers showed a talent for Perl and they liked it.

And young people have new ideas, they don't have biased opinions. That can lead to great new developments. Having those new fresh ideas in the Perl community is great. And maybe once we get the next big application everyone wants to use and that application is written in Perl.

Questions from our readers

Will you publish $foo issues?

All $foo issues are available in PDF format at http://abo.perl-magazin.de. We plan to publish the articles in other formats, too. But that might take some time.

Why Mojolicious?

Short answer: It's a great webframework.

Long answer: I started web programming with plain old CGI scripts. Then I switched to CGI::Application and CGI::Application::Dispatch. Some of my programs still run using those modules. I have used Catalyst, too. But for one project - a very small webapplication - I wanted to use something more modern than just CGI or CGI::Application and Catalyst was too heavy.

I had three alternatives in mind: Dancer, Mojolicious and plain Plack. The customer isn't a programmer at all and I didn't want to leave him in the dependency hell. That's what I like with Mojolicious - no dependencies beside core Perl. And @vti it's your fault ;-) You wrote about Mojolicious in your blog and that looked interesting.

I really liked all the features that Mojolicious has in core like support for Websockets. I know that it can be a disadvantage to bundle everything in core. Only one person or a small group is responsible to fix bugs.

An other interesting thing was the Mojolicious and Mojolicious::Lite thing. I can stay with one framework for both "big" webapplications and small applications that fit on one screen. And I do not have to create a directory structure for a small app. Just do it and deliver that one file...

In the meantime the numbers of plugins increased steadily and it's very easy to develop webapplications of any size.

Interviewed by Viacheslav Tykhanovskyi (vti)

Чат