Remix.run Logo
keithnz 2 hours ago

seems ironic that critics were saying, it needs typing, and all the elixir fans were saying you don't need typing, you don't get bugs related to typing because elixir is somehow magic, now they get typing and it finds bugs for them.... but you said you didn't need that to prevent bugs? But good to see! I spent a bunch of time trying out Elixir a while back, I enjoyed it, but just didn't agree with the lack of types.

pdpi an hour ago | parent | next [-]

> you don't get bugs related to typing because elixir is somehow magic,

I've never followed Elixir particularly closely, but what I saw in some Erlang discussions was different. Discourse there was that you need to gracefully handle failure anyhow, so type errors can (should?) just get handled by the failure recovery machinery you're supposed to have anyhow. I disagree with that point of view, but it's much more defensible than "$LANGUAGE is magic".

bad_haircut72 6 minutes ago | parent [-]

you succumb to the fallacy that because the compiler let it through, the code wont have any error - the erlang mentality says that the compiler/CPU/everything has errors, how do you handle errors in the general sense

munificent 39 minutes ago | parent | prev | next [-]

This is the Goomba fallacy.

https://en.wiktionary.org/wiki/Goomba_fallacy

chabska 12 minutes ago | parent [-]

The way to see if it's actually a fallacy, look for in-fighting between the two supposedly opposing camps of goombas.

I've seen internet commenters say China is overstating its economic numbers to look more intimidating, and that China is understating its economic numbers to receive more favourable WTO trading terms, but somehow these two camps never called each other out, which makes me think they're the same people believing that China is both overstating and understating.

jeremyjh an hour ago | parent | prev | next [-]

I can’t swear I’ve never seen that claim - but I can’t remember seeing it if I ever did and certainly it would be a tiny minority position. The actual con arguments are basically “it is nice but has costs, maybe those don’t all get a good return”.

It’s possible that position was correct before set-theoretic type theory was developed.

Xeronate an hour ago | parent | prev | next [-]

It was the same thing with javascript/typescript and python. Sometimes you just have to let people think what they want.

pjmlp an hour ago | parent [-]

The irony is that dynamic languages that predated them had optional typing.

BASIC, Smalltalk vs Strongtalk, Common Lisp, Dylan

It is the eternal September.

jeremyjh an hour ago | parent [-]

Elixir predates set-theoretic types. Simon Marlow took a solid crack at typed Erlang 30+ years ago and couldn’t make it work and preserve what Erlang is. 9 years later Success Typings was published and Dialyzer happened. Not the best, but far better than what any other dynamic language had at that time, and Elixir had that available from the beginning.

So it is possible new theory was actually needed to preserve everything that was judged more valuable than types.

IshKebab an hour ago | parent | prev | next [-]

It's the circle of life. Dynamically typed language has fans. Other people correctly say that it would be a lot more useful with static types. Fans take this personally and say it doesn't need static types because (they aren't useful anyway/it goes against the spirit of the language/it's only a scripting language anyway/you can just use a debugger/static types hurt productivity/etc. etc.)

Then eventually they add static types. Happened to Python, JavaScript, Ruby... I'm sure there are more.

awesome_dude 42 minutes ago | parent [-]

For my $0.02 - it depends where you want to put the onus

Statically typed languages put the onus on the caller to transform the data into the shape(s) required.

Dynamically typed languages put the onus on the called to handle anything.

That is, in a dynamically typed environment your function has to defensively code for every possible type it could be handed.

zuzululu an hour ago | parent | prev | next [-]

I think Elixir is interesting and there is real value but some stuff being sold as "all these libs/packages that haven't had any updates for over a year is fine because Elixir" I just don't buy it

and to that point around typing feels like the same wish-washy hand waving from the community that is very off putting

BEAM has genuine use cases but its not as wide as its made to believe. There are very good places where that is a perfect fit but it simply cannot upend Typescript.

Elixir feels very similar to how Clojure started getting traction and then ultimately forgotten apart from its die hard fans, I'm not saying Elixir will go the same way but seems very hard for something new and bold to replace what is popular and boring.

I do want Elixir to succeed (also Clojure as well and I advocated for it for a bit) but the low number of jobs still puts it in similar proximity to Clojure but BEAM I think would still provide uplift where Clojure simply could not

josevalim an hour ago | parent | next [-]

> some stuff being sold as "all these libs/packages that haven't had any updates for over a year is fine because Elixir" I just don't buy it

I maintain more than 20 packages and, except for the major ones, like Phoenix and Ecto, they haven't been updated in more than a year and yes, they are all fine.

The language has been extremely stable. There has been almost no breaking changes in over a decade. Case in point: we introduced a whole gradual type system without making any changes to the language surface! The language is still on v1.x!

jeremyjh an hour ago | parent | prev | next [-]

So you prefer language communities where libraries have a constant stream of fixes, new breaking change releases every six months and entirely new framework ecosystems ascending every three years?

hosh 11 minutes ago | parent [-]

Not to mention language communities with constant supply chain attacks because its standard library story is poor, and everyone keeps reinventing new, often half-baked solutions?

Or even that, the very same ecosystem congratulates themselves on the typing system but still relies on linters because the language and runtime themselves allow whole categories of dumb ideas to be written?

NuclearPM 6 minutes ago | parent | prev [-]

Why would packages need to be updated?

mrcwinn an hour ago | parent | prev | next [-]

Please share that conversation you reference where the community said Elixir doesn’t need types because it is magic.

ramchip an hour ago | parent | prev | next [-]

> you don't get bugs related to typing because elixir is somehow magic

Really? All the Elixir fans were saying that?

globular-toast an hour ago | parent | prev [-]

Not really a contradiction. You don't need typing, but it can help.