5 ms·
Things I like about Elixir: - concurrency is intuitive! - Elixir is a two-for-one language. You can reach into Erlang std library as easily as you can that o
by Dowwie 3y ago
Things I like about Elixir:
- concurrency is intuitive!
- Elixir is a two-for-one language. You can reach into Erlang std library as easily as you can that of Elixir. So, depending on your work, you get a chance to discover a wide range of goodies that come for "free". Examples include gen_tcp, gb_tree, etc.
- You can remote into a running virtual machine in production, pod or whatever, and have access to a repl that let's you inspect state, manage "processes", and manually invoke commands to troubleshoot issues. The observer, and tui counterpart, are quite useful too.
- everyone in the community writing libraries uses the standard approach to emitting telemetry, saving time and effort for users to take what is available
- fast compile times
- hardest working BDFL (although this presents risks, too), who also has a pleasant, respectful disposition
- the community is respectful
Things I don't like:
- dynamic language leads to pattern matching or type mismatch errors at runtime that could have been caught at compile time
- Elixir Phoenix doesn't have a large community, nor much up to date reference material, or literature. If you're not experienced with Front-end dev, it's easier to onboard with a modern SPA framework like React.
- supply of Elixir talent exceeds demand, although this isn't unique to Elixir (e.g Rust)
- slowly growing ecosystem, relatively speaking
- OkayPhysicist 3y agoWhat the documentation for Elixir and its big libraries (Ecto and Phoenix) lack in quantity of documentation, they exceedingly make up for in quality of documentation. Who needs a bunch of garbage blog posts about how to do xyz, when the official docs painstakingly lay out not only what you need to know, but also present it in a readable and discoverable way?
- lolinder 3y agoI generally agree, but to play devil's advocate: some people learn better by example, and having thousands of (admittedly low quality) blog posts out there makes it more likely that someone will have done something very similar to what you're trying to do.
- pythonaut_16 3y agoIn my experience, the documentation is great for most of the major libraries and the common path. Once you get away from those things get sparse. Several really common libraries have glaring omissions (or entirely missing) module docs, and others just barely cover the common web use case. It’s not uncommon for me to have to open the source code to try and understand what some function actually does. Elixir is still my language of choice and has a better docs ecosystem than most languages but the community demonstrates a bit of a blind spot also.
- melvinroest 3y agoThe changing code in production with a REPL reminds me of Pharo. Though, with Pharo you get a whole IDE :D I also feel that Pharo has too small if a community. The ESUG conference is coming up soon though. It’s good to see they’re coming together Why is concurrency intuitive?
- Dowwie 3y agoThere's no function color. The concurrency patterns are well defined, documented and discussed. You don't need to sit in a chat room asking for help from a benevolent core team of maintainers. Granted, I did learn the hard way about introducing cycles but the error messaging lead me to the root of the problem quickly.
- beeburrt 3y ago> supply of Elixir talent exceeds demand, although this isn't unique to Elixir (e.g Rust) Is this true?
- sarchertech 3y agoAt my current company we’ve many times had to hire and train people who had no elixir experience. If anything I’d say the demand for experienced people exceeds supply.
- esclerofilo 3y agoTalent and experience are not the same thing, and I would say experience is a lot more correlated to demand of talent than to supply of it. More demand means more opportunities to get experience.
- di4na 3y agoAs a counter point, nearly all the good senior engineer with experience in elixir i know have all accepted non elixir jobs in the past few years and are still in them. Every time they go on the market for an elixir one, they cannot find good jobs and the few good one reject them. As I regularly point out, i have hired whole elixir teams in 2 months multiple time in the past. If you cannot find us, the problem is that your hiring process and work practices are pushing us out. Not that we do not exist.
- Dowwie 3y agoNo, I am lying. The most jobs out there are for elixir engineers and managers are struggling to fill vacancies.
- RadiozRadioz 3y agoWhy be so unnecessarily subversive?
- jpbastyr 3y agoIf you're a fan of the ecosystem, but not of dynamic types, there are statically typed languages on BEAM, eg Gleam (https://gleam.run/ https://gleam.run/)
- nithinbekal 3y ago> type mismatch errors at runtime that could have been caught at compile time It's still early, but there are plans to introduce a type system for Elixir: https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/ https://elixir-lang.org/blog/2023/06/22/type-system-updates-...
- jrobn 3y agoI'm eagerly looking forward to and hoping the research project to add `Set Theoretic Types` to the language will work. It will help replace tooling like dialyzer in many cases (which many people love/hate). It will also have benefits for LSP feedback. It could also lead to more information being passed to the new BeamAsm JIT compiler for more compile time optimizations and faster execution.