One of the first questions asked by people new to AL is often, "What other programming language is it like?". The best response is Pascal. To those unfamiliar with Pascal, the next best response would be C or C#.
At the time the three founders of Navision were attending classes at Denmark Technical University (DTU), Pascal was widely used as a preferred language not only on computer courses, but on other courses where computers were tools and software had to be written for data analyses. Some of the strengths of Pascal as a tool in an educational environment also made it an ideal model for Navision's business applications development.
Perhaps coincidentally (or perhaps not), at the same time at DTU, a Pascal compiler called Blue Label Pascal was developed by Anders Hejlsberg. That compiler became the basis for what was Borland's Turbo Pascal, which was considered the everyman's compiler of the 1980s because of its low price. Anders went with his Pascal compiler to Borland. While he was there, Turbo Pascal morphed into the Delphi language and IDE tool set under his guidance.
Anders later left Borland and joined Microsoft, where he led the C# design team. Much of the NAV-related development at Microsoft is now being done in C#. Keeping it in the family, Anders' brother, Thomas Hejlsberg, also works at Microsoft as a software architect on Business Central. Each in their own way, Anders and Thomas continue to make significant contributions to Dynamics NAV.
In a discussion about AL and Visual Studio Code, Michael Nielsen of Navision and Microsoft, who developed the original AL compiler, runtime, and IDE, said that the design criteria provides an environment that can be used without the following tasks:
- Dealing with memory and other resource handling
- Thinking about exception handling and state
- Thinking about database transactions and rollbacks
- Knowing about set operations (SQL)
- Knowing about OLAP (SIFT)
Paraphrasing some of Michael's additional comments, the goals of the language and IDE designs included:
- Allowing the developer to focus on design rather than coding, but still allowing flexibility
- Providing a syntax based on Pascal stripped of complexities, especially relating to memory management
- Providing a limited set of predefined object types and reducing the complexity and learning curve
- Implementing database versioning for a consistent and reliable view of the database
- Making the developer and end user more at home by borrowing a large number of concepts from Office, Windows, Access, and other Microsoft products
Michael is now a co-founder and partner at ForNAV. Michael and his fellow team members are all about developing high-quality reporting enhancements for Dynamics Business Central, with the goal of making working with reports easy. This is another example of how, once we're part of the Business Central community, most of us want to stay part of that community.