In this video, I discuss (with myself?) about Open Source and Business Central AL – Trying to explain some of the confusing that exist around AL.

This video explores a deceptively simple question posed by Steve Endow on Twitter: “Is the Business Central AL language open source?” The answer, as Erik explains, is more nuanced than you might expect. It touches on the definitions of open source, the different Microsoft repositories on GitHub related to AL, and the real purpose behind the licensing choices Microsoft has made.
What Does “Open Source” Actually Mean?
Before diving into the AL-specific answer, it’s important to define what “open source” really means. Microsoft has a significant open source presence — you can explore it at opensource.microsoft.com — with many projects that are truly free software.
Free software means you can take the source code and do your own thing with it. Depending on the license applied, there may be rules about what you can and can’t do. Generally, open source licenses fall into two camps:
- BSD/MIT licenses: As long as you attribute where you got the code from, you can do essentially whatever you want — sell it, give it away, modify it, redistribute it.
- GPL licenses: No matter what you do with the code, you must make your source code available as well. The Linux kernel is a prominent example of GPL-licensed software.
There is no GPL code involved in anything related to Business Central, as far as Erik is aware.
A great example of a truly open source Microsoft project is the Windows Terminal — the modern terminal application that can run PowerShell, command prompts, Linux shells, and Azure Cloud Shell. Its source code sits on GitHub under the Microsoft account and is fully open source.
The AL Repository on GitHub
This is where the confusion starts. If you go to Microsoft’s GitHub and search for “AL,” you’ll find the AL repository. It’s sitting right there alongside truly open source projects. But what does it actually contain?
The AL repository consists of only a couple of files — primarily the grammar file for the AL language syntax. These files are indeed under the MIT license. For example, Erik once used this grammar file to build a language module for the Sublime text editor to support AL syntax highlighting. That’s a perfectly valid use of this open source artifact.
However, the actual AL compiler, the runtime environment, and all the core infrastructure — none of that source code is here. It is closely guarded and not publicly available. That code is definitively not open source.
The repository itself states this clearly: “The main purpose of this repository is to track issues.” If you have an issue with the AL compiler, the language, or the code analyzers (code cops), you go to the Issues tab. There are over 700 open issues and 5,000 closed ones, so there’s significant activity — but it’s an issue tracker, not a source code repository for the compiler.
The AL App Extensions Repository
There’s a second related repository: AL App Extensions. This contains the source code for the System Application — modules like Base64 conversion, Camera integration, and other non-accounting functionality. There is nothing accounting-related here.
This code is also under the MIT license. But here’s where things get, as Erik puts it, “a bit funky.”
Normally, the purpose of assigning an MIT license to code is so that others can use it elsewhere. But where would you use this AL code? The only place it works is inside Business Central — which is certainly not an open source platform.
The Real Purpose: Reverse Open Source
This is the key insight of the entire discussion. The purpose of the MIT license on this code is not primarily for you to take Microsoft’s code and use it elsewhere. It’s so that you can give your source code to Microsoft.
When you want to contribute to the AL App Extensions repository, you must sign the Contributor License Agreement (CLA). The essence of this agreement is that you grant Microsoft (and those who receive submissions from Microsoft) a perpetual, worldwide, non-exclusive, royalty-free license to use, reproduce, prepare derivative works of, and publicly display your contributions.
In reality, this is a kind of “reverse open source”: Microsoft uses your open source contributions in their closed-source Business Central application. The MIT license on the existing code creates a consistent licensing framework that makes it legally clean for them to accept your contributions.
Historical Context: The C/AL Open Library
This approach has roots going back to the pre-AL era. Microsoft created the C/AL Open Library as baby steps toward this model. Back in those early days of the transition, there were significant issues with .NET interop not being available, and developers had a lot of .NET code they couldn’t access in the new environment.
Microsoft created a way for the community to contribute C/AL objects to fill those gaps. For example, Erik submitted an object to provide access to MemoryStream functionality. This was also MIT-licensed, for the same reason — it needed to be open source in order for Microsoft to legally receive it.
What About the Full Base Application Source?
You may also be aware of Stefan Maron’s GitHub repository, which — with Microsoft’s blessing — contains the source code for all Business Central apps across all languages. This is opened source (the code is visible), but it is not open source in the licensing sense.
This code is under some sort of internal Microsoft license. You cannot take it and build your own competing accounting application without getting a friendly call from Microsoft Legal suggesting you stop what you’re doing.
Conclusion: Visible Source, Not Open Source
So, to answer Steve Endow’s original question directly: No, AL code is not open source. Here’s the breakdown:
- The AL language grammar files are open source (MIT license) — but this is just syntax definitions, not the compiler or runtime.
- The System Application source code is MIT-licensed, but the license exists primarily to enable community contributions back to Microsoft, not for you to take and use elsewhere (since it only runs on Business Central anyway).
- The AL compiler, runtime, and Business Central platform are closed source.
- The full base application source is visible but not open source — it’s under Microsoft’s internal licensing.
You can certainly view and copy functions from the base application code — developers have been doing this since the Navision days, copying from sales posting or purchase posting routines to customize behavior. But that has nothing to do with open source. It’s best described as “visible source” — you can see it and learn from it, but the open source licensing that exists is really about enabling you to contribute your code to Microsoft, not the other way around.