3 ms·
The fact that it's a dynamic language make problems similar to Node / Python, can't dev serious backend services without a strongly type language. Not saying yo
by Thaxll 6y ago
The fact that it's a dynamic language make problems similar to Node / Python, can't dev serious backend services without a strongly type language. Not saying you can't, but you will have a lot of issues overtime that would have been catch at compile time.
- Ndymium 6y agoElixir is a relatively strongly typed language, but it's not statically typed.
- yesco 6y agoHaving used all three in backend systems, I definitely disagree that they have the same problems. Elixir is strongly typed but lacks static typing, in exchange it has a powerful pattern matching system that more than makes up for this problem in my experience. But fundamentally the issues caused by lacking static typing is different from the problems caused by being weakly typed like python and node systems are.
- throwaway894345 6y agoPython is strongly typed. I fully believe that Elixir lacks the same problems, but not because of strong vs weak. If I had to guess, I would put think that it's because Python code is more likely to be mutable than Elixir, but that's just a guess.
- jjnoakes 6y agoIn my experience python is strongly typed as well - unless you meant something more nuanced?
- acrispino 6y agoThe BEAM VM, whether using Elixir, Erlang, or another languages, has been successfully used to implement telecommunication switches, chat services (WhatsApp), and plenty of other "serious backend services."
- throwaway894345 6y agoI don't endorse the parent's perspective, but he was very clear that he wasn't saying it was impossible to build serious backend services, only that you will run into problems that you wouldn't with statically typed languages.
- karatestomp 6y agoAs long as you've got some kind of strong sanity checks at I/O boundaries and your language & related library ecosystem's not batshit insane (ahem) it can be fine. It's when you have JavaScript (not even TypeScipt) sending and receiving JSON (not even bothering with JSON-Schema) to/from Node/Ruby/whatever, saving everything to a permissive document store or to some poorly-normalized RDBMS schema that's missing half the constraints it ought to have and has a few columns that aren't the most correct reasonable type, that you end up with a brittle and slowly-advancing pile of shit pretty reliably. "Let's do a Rails REST API with Mongo and a Javascript SPA & React Native clients!" = run far, far away.
- brightball 6y agoCompilers aren’t a panacea of avoiding problems in production. You just experience different types of problems. There’s entire classes of short term and long term issues that you get to avoid by working within the BEAM.