4 ms·
Thanks for sharing. I would reach for Golang or even Rust if I was you. I work with Elixir for 9 years now (& love it) and I agree what you describe is not a g
by pdimitar 1y ago
Thanks for sharing. I would reach for Golang or even Rust if I was you.
I work with Elixir for 9 years now (& love it) and I agree what you describe is not a good fit for it.
Elixir is a general-purpose language in the meaning of Turing-completeness. I never once felt tempted to write a CLI tool with it though.
- bryanrasmussen 1y agocss is Turing complete, XSL-T is Turing complete, so I don't think Turing completeness is a good measure of if something is a general purpose programming language. I would argue for environmental completeness - does the language have the possibility of accessing everything in the operating system it runs in? If so, it is environmentally complete and usable as a general purpose programming language. Despite something being a general purpose programming language there are some tasks it may be better at than others. Visual Basic is a general purpose programming language but really you would most often use it for a particular subset of purposes. Elixir it seems is not good for writing a CLI.
- pdimitar 1y agoI was mostly clarifying what most people I've met believe is a "general-purpose language". I agree with your take on telling it like it is for the practical needs of the commercial programmers / users of a language. And again, as a guy who loves Elixir, it absolutely is not suited for writing CLI tools. Many would say it can be easily done, the community even has a few really good libraries for it as well, but the BEAM VM startup time absolutely kills its utility for tooling for me. And, as others also said, Erlang / Elixir simply excel at orchestrating a lot of runtime micro-agents, each with their own small responsibility. And they do this better than any other language I've seen. But, for one-offs / scripts / CLI tools, Golang / Rust are very difficult to dethrone. We could also add Zig / D / V and others, I suppose, but I am not familiar with them.
- bryanrasmussen 1y agoyeah sorry, I've just got some trauma from people claiming that languages can be used for stuff they can't really be used for just because of Turing completeness.
- pdimitar 1y agoI agree and completely sympathize. [rant] What irked me many times: people around here idolizing a certain PL they learned as kids and giving it much more credit than it ever deserved. [/rant] I completely understand the almost PTSD levels of reactions when people say "you actually can do ${obviously_difficult_thing} in ${obviusly_niche_language}!". I have the same reactions towards these statements myself. I mean sure, if you're a good enough physicist you probably can make a lounge chair out of toothpicks, toilet paper tubes, rubberbands and glue. Doesn't mean that it's sustainable or viable to do so for everyone else. It's just your hobby; go wild and have fun! Don't pretend that's how lounge chairs should be mass-produced, however. Same goes for PLs. A lot of PLs should have remained niche curiosities and research ideas -- and nothing beyond that. Sadly we both know how people are. They easily fall in love and lose all scientific objectivity. So yeah, I quite get your frustration.
- dnautics 1y agoI wrote a custom bioinformatics pipeline (CLI) in Elixir the other week. Not a terrible experience. Being able to save annotations to a binary and unpickle using term_to_binary was amazing.
- pdimitar 1y agoIf that CLI tool integrates with a bigger ecosystem (like connect to a cluster and reuse data / services) that's already written in Elixir, then that would make it an even bigger no-brainer to use. Also hi, haven't seen you active in ElixirForum in a long time.