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

Other questions