4 ms·
It is. I'm working on a distributed IOT project (think 40 raspberries talking to each other). From my superficial understanding, this would be an ideal use cas
by zeroc8 5y ago
It is. I'm working on a distributed IOT project (think 40 raspberries talking to each other).
From my superficial understanding, this would be an ideal use case for Erlang. I guess an Erlang environment would naturally lead to a much more elegant solution.
The problem is, that nobody really speaks it here or has any experience with it. That's why we chickened out and used Go and C++ instead.
I guess a lot of developers have the same problem. Erlang is intriguing, but other languages are the safe choice.
- zem 5y agoin a previous job, back around 2007, we had a rather crappy homegrown distributed system with python nodes talking over rabbitmq. gave us constant headaches, partly because no one in the company had any distributed computing experience at all and we had just sort of hacked something together. four of us decided to see if erlang would suit us better, and within three months we had learnt enough of the language to set up an mvp that was both outperforming and out-uptiming the python cluster, with significantly less code, and all in basically 10-15% of our time, since we had to do our actual work. sadly management decided that erlang was too risky to bet on, but my takeaway from that experience is that it is a remarkably easy language to learn/train even junior developers on, and that if your problem fits its sweet spot the language/platform will practically guide you towards a nice clean solution for it, and more than pay for the time taken to learn it in reduced maintenance complexity.
- _448 5y agoWhatsApp has Erlang backend. If Erlang is uncomfortable, then use Elixir. Here is an IoT project using Elixir: https://www.nerves-project.org https://www.nerves-project.org
- lawik 5y agoThis sounds like a great fit for the Nerves project. It focuses on Elixir, which runs the same as Erlang. It builds firmware for Pis and other IoT on top of a thin Buildroot Linux layer, starts the Erlang VM and then that's practically your OS for building your device. Plenty of escape hatches for special needs. I've done a bunch of streams recently with clustering Pi devices using Nerves, especially fun on local network with mDNS. They are on my blog: https://underjord.io/blog.html https://underjord.io/blog.html Feel free to reach out if you have questions about Nerves. I'm an enthusiast of it, contributing mostly by using it for fun in public. Also write the newsletter so I'm fairly up to date :) A lot of devs find Elixir more approachable/familiar than Erlang so it might help in your case there as well.
- zeroc8 5y agoSounds good. I'll take a look. I'm actually still waiting for the GRISP 2 board, if that ever gets done. The problem is that I think that I need to spend time on Erlang/Exlir full time, otherwise I keep forgetting what I've learned. I guess I'm getting old :(
- e_proxus 5y agoI work on GRiSP. It’s really close to being done. We’re wrapping up the software (e.g. updating drivers for the new platform) and are doing a lot of testing at the moment. We are using the first boards from the final batch for this, and I really hope we can start shipping soon.
- lawik 5y agoWe all forget. Hope you do try Nerves and hope it treats you well. The nerves_livebook project is a wild fun way of trying it out.
- AlchemistCamp 5y agoThere are many ways I could describe writing a distributed project in C++ (or even Golang) instead of Erlang, but "chickening out" is not one of them!
- zeroc8 5y agoHehe, yes that's true. But in our case it was the safe choice. None of our team members has any real world functional programming experience.
- Tanjreeve 5y agoI think the point is that it's simpler to write a functional distributed system in Erlang/Elixir that have this all baked in than to do it in the others. But the others are simpler to round up some coders and out something out with even though there are a lot of traps for the unwary and no guide rails like the ones Actor models give you. Basically enterprise IT sometimes mistakes something being easier to finish with it actually being simpler to run long term. Hence people who write themselves into corners with Python websites etc