What is the difference between AL and X++?
By Emil Björk · Microsoft business apps consultant, Gothenburg
AL is the language for Business Central extensions; X++ is the language for Finance and Supply Chain Management (F&O) customisation. They look similar (both Pascal-flavoured, event-and-extension oriented) but are separate languages for separate products with no code portability between them.
AL replaced Business Central's older C/AL and works entirely through the extension model — an AL app can't modify Microsoft's base objects, only extend them via events and table/page extensions, which is what keeps Business Central upgrades non-breaking twice a year.
X++ is F&O's own object-oriented language, closer in spirit to Java or C#, and also relies on chain-of-command extensions rather than direct modification of Microsoft's classes for the same upgrade-safety reason. Both languages compile into managed .NET assemblies under the hood, but the object models, tooling, and standard-library conventions are entirely product-specific.
A developer fluent in one does not automatically transfer to the other — the underlying platform concepts (extensibility, events, upgrade safety) carry over, but the syntax, object types, and standard APIs are learned separately.
Go deeper
- Writing your first AL extensionA first-walkthrough of building, publishing, and running a basic AL extension for Business Central — toolchain, project structure, and deployment.
- X++ — the language behind Finance and OperationsWhat X++ is, where it came from, and how it's used in F&O — language features, the application object tree.
- The AL test frameworkWriting automated tests in AL — test codeunits, test runners, TestPage, mocking, test isolation, and CI with AL-Go.