The Julia programming language is a horrible suit for a no-frills microcontroller like the ATMega328p that lies inside of the classic Arduino, but that didn’t stop [Sukera] from striving, and succeeding.
All of the attributes that make Julia a neat programming language for your large laptop or computer make it an dreadful preference for the Arduino. It’s built for interactivity, is dynamically typed, and leans greatly on its garbage selection every single of these attributes alone would tax the Mega to the breaking stage. But in its favor, it is a compiled language that is primarily based on LLVM, and LLVM has an AVR backend for C. Really should just be a uncomplicated make a difference of stubbing out some of the overhead, recompiling LLVM to include an AVR focus on for Julia, and then correcting up all the other loose ends, correct?
Very well, it turns out it just about was. Leaning intensely on the adaptability of LLVM, [Sukera] manages to switch off all the language options that are not desired, and soon after some small hurdles like the usual challenges with risky and atomic variables, manages to blink an LED gradually. Huzzah. We really like [Sukera’s] wry “Now THAT is what I phone two times properly put in!” right after it is all done, but severely, this is the first time we’ve each and every noticed even super-rudimentary Julia code operating on an 8-bit microcontroller, so there are surely some kudos thanks in this article.
By the time that Julia is wedged into the AVR, a large amount of what helps make it attractive on the major computers is lacking on the micro, so we don’t seriously see people today picking it in excess of straight C, which has a considerably more made ecosystem. But however, it is terrific to see what it can take to get a language made all-around a runtime and rubbish selection up and running on our beloved mini micro.
Many thanks [Joel] for the idea!