Choosing an Implementation ========================== The best implementation depends on what you want to do first. The Makrell family shares a common foundation, but the current tracks have different host languages, tooling, and maturity. Use this page as a practical starting guide rather than a strict ranking. Choose MakrellPy ---------------- Choose MakrellPy if you want: * a broad practical language experience * strong macro and pattern-matching examples * direct Python interop * a good place to learn family-wide Makrell ideas through one implementation MakrellPy is often the easiest starting point when your goal is to understand the language model itself. Choose MakrellTS ---------------- Choose MakrellTS if you want: * TypeScript or JavaScript alignment * browser and Node.js workflows * access to the JavaScript ecosystem * a path that fits frontend or web tooling better MakrellTS is a natural choice when your host environment is already centered on TypeScript, Node.js, or the browser. Choose Makrell# --------------- Choose Makrell# if you want: * CLR and `.NET` interop * compiled assemblies and dynamic loading * the `.NET` CLI-oriented workflow * MRON and MRML support from the `.NET` track Makrell# is the right fit when your main interest is the `.NET` ecosystem and its libraries. Choose MRON or MRML ------------------- Choose MRON or MRML first if you mainly want: * structured data * structured markup * a Makrell-shaped format without adopting a full host language first These are also useful when you are exploring the family through configuration, content, or markup rather than general programming. A simple rule of thumb ---------------------- If you are still undecided: * start with MakrellPy for language learning * start with MakrellTS for JavaScript or browser work * start with Makrell# for `.NET` work * start with MRON or MRML for data and markup tasks For a broader side-by-side comparison, continue with :doc:`../reference/implementation-matrix`.