5 ms·
I actually find Erlangs syntax a breath of fresh air. Coming from Python, this may sound odd, but there's something soothing about it. I much prefer Erlangs sy
by callamdelaney 7y ago
I actually find Erlangs syntax a breath of fresh air. Coming from Python, this may sound odd, but there's something soothing about it.
I much prefer Erlangs syntax to Go, for example. I also much prefer Erlangs syntax to Elixir; I never liked ruby either, so there's perhaps no surprise there.
- thijsvandien 7y agoIt's unfortunate how Elixir splits the ecosystem in a way, simultaneously drawing attention to and away from Erlang. While it should be possible to use (compiled) Elixir code from Erlang—as once demonstrated by Joe Armstrong himself—it's far from pleasant compared to the inverse. At this point, I would be hesitant to use BEAM if I didn't like Elixir (still have to really try, though I can totally see the appeal of Erlang), because it's becoming harder and harder to ignore. To those of you that prefer Erlang, what's your opinion on this?
- waynesonfire 7y agoi completely agree.
- dudul 7y agoAgree. I like that it's very logical and consistent. The way periods and semi-colons sometimes seem a little like anarchy, but there is actually a strong reasoning behind it, very well explained in Joe's book. Elixir brings a lot to the ecosystem, but I personally find the syntax not as pleasant because of all the syntactic sugar that hides a lot of the "real" syntax.
- pjmlp 7y agoMe too, as former Prolog fanboy, I really don't get Elixir hype, other that it provided an escape route for those not wanting to deal with Rails, or its lack of performance due to MRI Ruby not having a solid JIT story and the alternative implementations not being as good running Rails.
- dnautics 7y agoI think this illustrates the power of elixir; You can't do this so easily (and certainly not as featurefully) in erlang: https://hexdocs.pm/zigler/Zigler.html https://hexdocs.pm/zigler/Zigler.html Other things I've done in Elixir that are way easier: implemented a multiverse registry that tracks supervised transient gen_statems in segregated test contexts (so a test only sees gen_statems that have been started in their caller context). Elixir has an opinionated way of tracking caller and ancestors in the supervision and temporal history that are crazy powerful. Thanks to erlang term format, it's also easy to send that information out of the vm (for example into chromedriver and back into the vm via http headers). It's become an accepted standard in the community, and the web drivers, database adapters, and dependency injection/mocking libraries consistently use them. Implemented a virtualization library that seamlessly launches virtual machines with a unified abstraction between locally launched vms and remotely launched vms (there's things that elixir has that make this easier and compile-time checked). It's also got 100% code coverage thanks to Elixir's powerful dependency injection and abstraction capabilities. Implemented compile-time checking of configuration settings that makes 100% sure I don't deploy broken configs to prod; they get stopped at the release stage. But also they get actively code highlighted at the TOML level in vscode, so I don't even have to wait to generate a release. It's dead easy to emit custom file/line information in Elixir's CompileError exception.
- dudul 7y agoElixir does provide a few nice things over Erlang I'll admit. The way it deals with behaviors is a little nicer to type, macros are definitely easier (but now the issue is that everybody wants to use macros for everything). A lot of effort is put in the documentation and tooling.