The Julia programming language is a terrible fit for a no-frills microcontroller like the ATMega328p that lies within the classic Arduino, but that didn’t stop [Sukera] from making an attempt, and succeeding.
All of the capabilities that make Julia a great programming language for your huge laptop or computer make it an awful preference for the Arduino. It is created for interactivity, is dynamically typed, and leans seriously on its rubbish collection just about every of these functions alone would tax the Mega to the breaking place. But in its favor, it is a compiled language that is based on LLVM, and LLVM has an AVR backend for C. Ought to just be a straightforward subject of stubbing out some of the overhead, recompiling LLVM to increase an AVR goal for Julia, and then repairing up all the other unfastened ends, proper?
Nicely, it turns out it just about was. Leaning heavily on the flexibility of LLVM, [Sukera] manages to flip off all the language functions that are not wanted, and soon after some smaller hurdles like the usual problems with risky and atomic variables, manages to blink an LED gradually. Huzzah. We adore [Sukera’s] wry “Now THAT is what I phone two times very well used!” soon after it’s all accomplished, but significantly, this is the 1st time we have every single seen even super-rudimentary Julia code managing on an 8-bit microcontroller, so there are certainly some kudos because of right here.
By the time that Julia is wedged into the AVR, a lot of what helps make it desirable on the massive desktops is lacking on the micro, so we really don’t actually see persons buying it about straight C, which has a a great deal more formulated ecosystem. But still, it is wonderful to see what it takes to get a language developed all-around a runtime and garbage selection up and jogging on our favourite mini micro.
Many thanks [Joel] for the idea!