Hace un par de semanas lanzamos una interesante propuesta en la newsletter de Greach: propusimos a todos los suscriptores que enviarán las preguntas que quisieran a cualquiera de nuestros speakers. Cuando tuvimos un buen grupo, se las hemos ido enviando en formato entrevista digital. El primero que ha respondido ha sido Guillaume Laforge, que ha tenido que lidiar con toda clase de preguntas personales y profesionales, y ha quedado bastante interesante. ¡Allá va!
Hi Guillaume, first thank you for answer this set of question from our attendees. I know there are a lot of them, so relax and enjoy.
First talk about you. How many languages do you know/speak/write?
French, English, and a bit of German but not enough to hold a proper conversation.
And how many computer languages do you know?
I started with Basic, then went on with Turbo Pascal, a bit of C/C++, and studied Prolog, OCaml during my studies. But it’s really essentially in Java and Groovy that I’m the most proficient. Of course, like everybody, I know a bit of JavaScript as well. I’m also looking at alternative languages for the JVM, of course.
How many conferences do you attend yearly as a speaker?
I never really counted, but certainly over a dozen. Sometimes there are also things like JUG appearances, or Groovy user group meetings, etc.
Could you give us the name of a programmer, partner or friend who has marked you professionally?
Well, there are a few persons and colleagues who marked me professionally, who said some interesting things to me or gave me encouragements that led me to where I am today, but those persons are not really well known, so I’m not sure I can really give their name and quote them here.
Do you have any other personal-pet projects (apart from Gaelyk)?
At the moment no, but I always have some ideas in the back of my mind. But for the moment, no time to work on those ideas
What did you do before being the Groovy project leader?
I was simply a programmer, consultant, architect, working for various customers, in France.
About Groovy, which is the hardest decision you have taken regarding Groovy?
Well, when leading the project there are always many decisions, from little ones to bigger ones. Some have an impact, some not. It’s difficult to really outline one in particular that was really hard to make, because often common sense give the right answer. For example, some decisions like moving from CVS to SVN, or these days from SVN to Git had an impact on our workflows, as Groovy developers. Or deciding what features to work on, given our limited resources, is not always easy. But in the end, the project has been healthy, and has had great adoption, so the decisions must have been good enough!
Some people are interested in being part of the Groovy developer team. Is that possible? Do they need to have a high command of the Java language?
There are many contributions that people can make to the project. Helping users on the mailing-list, promoting Groovy, improving the documentation are all great contributions, without necessarily becoming a developer team member. Now, for really joining the committer team, it usually takes some time: you work on some issues that you’ve encountered or that you found on JIRA, and submit patches or pull requests. Then, if your work is of quality and that you contribute often, we definitely notice that, and at some point, we might very well ask you to become a committer. That’s more or less how all of the Groovy committers got to become part of the team!
How many commiters are on the Groovy team?
Not everybody’s active at the same time. So sometimes just some core committers are involved, sometimes we receive some great contributions from developers that later on vanish away. But the main active committers can definitely be counted on the fingers of one hand.
When you design a new computer language like Groovy, how much of it is copied from existing languages, and how much of it is new?
For Groovy especially, it was very much inspired from Java since we used the grammar of Java itself as a start! And of course, we’re living on top of the JDK, which also transpires through what Groovy’s able to do. So I would say a lot was copied from Java! For other languages, however, that might be an entirely different story. Groovy then was inspired by other languages like Smalltalk, Ruby, Python, etc. So we take some ideas here and there, and try to make them fit the philosophy and feeling of Groovy.
Groovy seems to be plagued by bugs. The 1.7 version had alredy 10 bugfix releases. What steps do you plan to undertake to improve the release quality?
I don’t think it’s more plagued by bugs than any other software. So it’s a bit harsh to say that. We release regular minor versions because we do fix bugs, of course, but also because we introduce incremental improvements as well. I think it’s much healthier to have regular minor releases than to wait years before getting updates! I believe the quality of Groovy is quite good on the contrary, and is on a continuous improvement trend.
What is the reason of no including GPars in the Groovy core?
Groovy provides support for a wide range of aspects, like templating, ant scripting, swing gui building, etc. It was natural that it would tackle the concurrency / parallelism aspects at some point, as we all use multi-core / multi-CPUs system these days. GPars progressed nicely in every respect (features, performance, ability to be used from Java even!), and we initially wanted to integrate it back into Groovy itself. But GPars has a life of its own, its own pace and lifecycle, and we thought it was simpler to just bundle it alongside Groovy itself. Groovy had to have a story to tell about concurrency and parallelism, and GPars is its answer.
How is a normal working day in Groovy?
I have the chance to work from home, which is nice for your family, and allows me to spend even more time on the keyboard than in the transportations 
But it’s not necessarily a 9am-6pm kind of job, because sometimes we could finish a release late at night, or implementing a feature at 4am because you didn’t want to stop halfway! There are also highs and lows where you manage to be very productive on certain aspects, and other moments where you don’t progress much on a particular topic.
How do you coordinate the work of creating Groovy, when some of the team members live in different countries? Do you use Skype meetings or other platforms? – Do you check the code of your team, everybody checks the code of everybody, or everybody trusts the code of other developers?
Paul, Jochen and myself are chatting everyday on Skype together to discuss pretty much anything related to Groovy. And of course, we exchange a lot on the Groovy developer list, etc. We like to have a look at others’ changes, of course, because it’s always nice to have others’ opinions on our work, to see how we can improve it, find simpler solutions, etc. But there’s definitely a great level of trust between the Groovy developers: someone who was granted commit rights is someone we can trust, and who’s usually writing quality contributions.
Who decides the roadmap and the new features/bug-fixing priorities?
There’s a core team of Groovy developers (Jochen, Paul and me) who are in constant contact, and who discuss those things on a daily basis. So although I’m supposed to be the one with the last say, I prefer collectively deciding together the features we should be working on, or the bugs that need an urgent fix.
About the future of your projects: are you going to continue working on Gaelyk, after the new pricing policy of Google App Engine?
Gaelyk is still my pet side project, and I have some personal applications on App Engine. I’ll definitely continue having fun with Gaelyk, despite the pricing policy changes.
Google App Engine is still a competitive and innovative platform in my eyes. That said, I’m also interested in Cloud Foundry, and would love to find the time to create a Cloud Foundry variant of Gaelyk!
Do you think Groovy will become the dominant language of the JVM?
No, I think neither Groovy nor any other language will ever become the dominant language for the JVM: Java will stay the dominant language. That said, in terms of alternative language, Groovy still seems to be the most popular option, despite the hype on other languages like Scala or Clojure.
That’s all Guillaume, thank you very much for your time.
Preguntas enviadas por Arturo Herrero, Alberto Vilches, Marcin Gryzsko, David Bonilla, Álvaro Sánchez-Mariscal y Jerónimo López. Traducción: Isabel Escolar Saval