Programming in Mathematica is weird. I&#x27;ve done a whole course in machine learning using only mathematica (as opposed to more obvious choices, like matlab or python) and while writing small functions was very easy (and functional programming fun), compounding those functions without using global variables was very hard. I kept using the Module construct where each local variable has to be declared, and it ended up being a mess. I always have a running session of Mathematica running for quick calculation or plotting (easier imo than matlab+nupy &#x2F; matlab), but I would never consider it for larger projects. But I&#x27;ve never seen a larger codebase so maybe there&#x27;s some kind of design pattern essential for this language.