Programming Microsoft Dynamics NAV(Fifth Edition)
上QQ阅读APP看书,第一时间看更新

C/AL's Roots

One of the first questions asked by people new to C/AL is often "what other programming language is it like?" The best response is "Pascal". If the questioner is not familiar 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 Unpersity (DTU), Pascal was in wide use as a preferred language not only in computer courses, but in 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 served to make it a good model for Navision's business applications development.

Perhaps coincidentally (perhaps not) at DTU in this same time period, 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 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#. So, the Pascal-C/AL-DTU connection has come full circle, only now it appears to be C#-C/AL. Keeping it in the family, Anders' brother, Thomas Hejlsberg also works at Microsoft on NAV as a software architect. Each in their own way, Anders and Thomas continue to make significant contributions to Dynamics NAV.

In a discussion about C/AL and C/SIDE, Michael Nielsen of Navision and Microsoft, who developed the original C/AL compiler, runtime, and IDE, said that the design criteria were to provide an environment that could be used without the following:

  • 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, goals of the language and IDE designs were to :

  • Allowing the developer to focus on design, not coding, but still allow 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 NAV with the goal of making working with reports easy. Another example of how, once part of the NAV community, most of us want to stay part of that community.