I’m awake at 4 a.m and I need to know
I don’t know specifically about Elektron, but most embedded programming happen in C and C++. Possibly Rust in the future. Prototyping can happen with any language but I know @Ess talked about using some flavour of puredata and/or max for trying things.
Elektron is currently looking for a Rust developer with C and C++ experience. I guess having dabled in PureData, Max or Supercollider can’t hurt.
If I wasn’t trying to get better at making music, I’d learn some Rust.
Tried it, it made my eyes bleed. Also its competitive advantages are not clear in the field I currently work in. But I guess it’s relevant where performance matters. At least compared to c/c++ it’s got all the modern tooling (dependency management, building…) in standard.
I know they’ve used assembly for DSP
makes sense… optimizing hot paths…
What!? Assembly doesn’t make your eyes bleed ?
Shift this, move that… 100 lines of code later and you’ve accomplish 1 tiny objective
(I’m only a code dabbler over the years FYI)
I’ve seen this ad a few times and I always want to apply as I have some relevant experience but assuming I even have what it takes moving to Sweden is kind of a non starter for my personal situation.
I don’t practice assembly and I doubt I will ever have to in my career, so no, it doesn’t make my eyes bleed Rust on the other hand… I’m pretty sure I’ll encounter some of it in the future. Rust has symbols all over the place. I’m sure it’s justified and useful and one gets used to it… but boy how I hate to read rust source…
this.
also, assembly is not much used these days, since it’s too hard to maintain, and we’ve got significantly more processing power than back in 90s / early 00s.
Plus most compilers now have such good optimization you get very small improvements by going to assembly. Coldfire compilers are probably great. You still need to write efficient code when it matters.
But there are exceptions still, with high level assembly instruction processors.
<3 Rust. If you come from a ML/OCaml background, Rust actually makes a lot of sense.
(And you should)
Rust looks, to me, like most C family languages. Seemed pretty readable to me, but I do JS/TypeScript full time.
Perhaps you’re a python user?
I’ve written significant amounts of production code in C, C++, and Java.
I can confirm that C does in fact offer all of the power of assembly and all of the ease of use of assembly. C++ is a lot like C, except that you have an automatic shotgun pointed at your feet. The safety has been removed since it just stops the shotgun from doing what it does best.
Java is awful, but Perl is much, much, much worse when thousands of other engineers need to interact with your code.
Modern CPU architectures are crazy with branch prediction and other stochastic features. If you are writing for a small CPU or DSP then it can make sense to carefully pack your data structures, optimize memory access, etc. Audio is a great case for this. But if you are building normal code on desktop/server CPUs, a good compiler will be able to optimize your code in ways that no human ever could.
What gets lost in the assembly discussion is that a better algorithm is almost always much much better than hand-tuned assembly. Hand tuning is the final step after every other step has been taken because that code is nearly impossible for others - or your future self - to modify and maintain.
Edit:
To put this in perspective, a $35 Raspberry Pi 3 has more compute power than any publicly known supercomputer installed in the 1990s.
Edit2:
Check out APL.
Off-topic
I’m slightly sad I didn’t get the job I went for a couple of years ago that was gonna pay me to learn K.
Love the names of these old programming languages that were adopted as industry standards.
-
BASIC
-
A Programming Language
Still write Perl every day. Bracing for the incoming flame wars