Emmanuel Briot

Emmanuel Briot has been with AdaCore since 1998. He has been involved in a variety of projects, in particular oriented towards graphical user interfaces, including GtkAda, GPS, XML/Ada, GnatTracker and our internal CRM. He holds an engineering degree from the Ecole Nationale des Telecommunications (Brest, France).

What does Frontline Support mean to you?

To me, support is at the heart of our business. As in most companies, we develop new features based on what we think customers will want to see. Contrary to most companies, however, we as developers have direct access to our customers, and very often even to their code. That really helps in knowing what features are frequently requested or might help such and such customer.

In fact, we very often end up adding new features after several customers have requested something similar. We very often end up with something more general than any of them requested, but that can be used by even more customers.

Of course, frontline support also means that developers are directly responsible for what they develop, since they will have to maintain it themselves, and possibly explain it directly to the customers. We cannot hide behind a different support team that would take all the blame (and fortunately we also get part of the fame as a result!).

The support/development team is strongly encouraged to think in terms of work-arounds when a customer reports an issue with one of our tools. This means our first priority is to ensure that our customers are not blocked. Once again, this encourages developing very flexible tools. To give a specific example here, we have added a python interface in GPS so that it is easy for anyone to develop new features in GPS. Very often this also provides an entry point to easily solve or implement a customer request. If we were developing in isolation, the interface would probably not be as flexible as it is today.

What drew you to Ada?

I was really drawn to Ada by chance to start with. I began as an intern at AdaCore, where I was working with lisp (Emacs support for Ada), perl (gnathtml and our own internal testsuite) and some C. But of course, Ada is really at the heart of the company, so I became more and more involved in Ada specific projects, like the gnat runtime, and also on brand new projects that later became GtkAda and GPS.

Since then, I have continued to use various languages in the course of my work (these days that involves Ada of course, C, python, perl and javascript). So I get to see quite a lot of programming paradigms. There is nothing that can’t be done in any of these languages, and I do appreciate the flexibility and ease of development in some of them. But, in the end, I almost always end up developing things in Ada, since that’s by far the easiest language to maintain, especially when the amount of code becomes significant.

This last point has led us to develop several packages to provide high-level features that were missing in Ada but that other languages had (web development, regular expressions, file manipulation, et.) and which we are now making available to our customers as part of the GNAT Reusable Components.

And since we are working on so many systems at AdaCore (more than 50 at the last count I believe), portability is really where Ada shines for us.

What’s your favorite feature of GNAT Pro Technology?

A specific feature of the compiler – its error messages. No other language is as precise in pointing to the specific location of the error and in providing a meaningful message

A specific tool in the technology – GPS. I have been involved in it since the beginning, and it really fulfills almost all of my daily needs when programming in Ada, even though we of course have a very long list of enhancements we’d like to see.