What does “Frontline Support” mean to you?
Frontline Support is a unique way to communicate with customers, to better understand their needs and the way they work. It’s more than just answering questions; it actually helps me to orient the day to day development of our software. It’s also an extraordinary opportunity to find out how the work I am doing is helping our customers and learn what can be improved.
What drew you to Ada?
I started to play with programming languages with things such as Quick Basic, Visual Basic, C++ or Java. Right before joining a computer engineering school, I remember very clearly asking myself why this weird language “only used in some old space rockets” was on the cursus. From the first lesson, I went from skeptic to a passionate defender of the Ada language. Of all the languages that I’ve worked with, Ada is the one that allows the programmer to express most things in the actual program – not in comments – and hence allows the compiler to enforce high-level descriptions. With that high-level of programming comes a surprising number of benefits. Attributes is the first one that springs to mind. Here’s something that you have to do guesswork with in most languages (C is a very good example of that). How to translate a value back and forth to a string? What are the constraints of a type? Ada incorporates many functionalities through attributes, whereas many other languages do not and force the developer either to rely on libraries, or to write their own.
What’s your favorite feature of GNAT Pro Technology?
The code analysis toolset is amazing. Combining static analysis tools (e.g. code metrics, vulnerabilities analysis, coding standard checks) with dynamic analysis (unit testing, coverage, stack usage measurement) is a major asset to producing better code quality. What’s particularly interesting is that, although these tools are available for all major languages, with Ada, they rely on much more powerful semantic foundations and can achieve results that go way beyond what is possible with e.g. Java, C or C++.