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 University (DTU), Pascal was in wide use as a preferred language not only in computer courses, but also 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 the 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, the goals of the language and IDE design were to do the following:

  • Allow the developer to focus on design, not coding, but still allow flexibility
  • Provide a syntax based on Pascal, stripped of complexities, especially relating to memory management
  • Provide a limited set of predefined object types, reduce the complexity and learning curve
  • Implement database versioning for a consistent and reliable view of the database
  • Make 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 still working as part of the Microsoft team in Denmark on new capabilities for NAV. This is another example of how, once part of the NAV community, most of us want to stay part of this community.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset