Is Embedded Systems development ripe for a jump in productivity? 30' with Nerves Project
In a chat on the refactoring community somebody mentioned Nerves Project as an alternative to the reigning programming language (C) in embedded systems.
I was at the airport with 30' to kill and decided to check it out and see how I could go in just half an hour.
Turns out I managed to fully compile the hello_nerves project and stopped short of flashing the image to a rpi3 which I did not have with me.
I find this pretty impressive, considering it's a fully-fleshed Linux-based system for half hour of work on a flaky internet connection.
Installation is pretty straightforward and I love that they support asdf (which has been my go-to tool for managing environments and tools for the past 6 years). Once I got Erlang and Elixir installed I just had to create the project:
mix nerves.new hello_nerves
mix archive.install hex nerves_bootstrap
cd hello_nerves
export MIX_TARGET=rpi3
realizing that I needed an extra command or two to fetch the dependencies took a couple of wrong turns, but I was bale to figure it out eventually:
mix deps.get
and then I was able to finally compile and build the firmware image:
mix firmware
mix firmware.image
Not having an rpi3, I thought that maybe I could create a VM that emulates it. For some reason that did not work out. The VM booted but did not show anything on the console, the qemu processes qemu-system-aarch64 were just running at 100% which suggests a lockup.