Live data from Hacker News

Elixir 1.19

elixir-lang.org

111–120 of 152 posts

Re: Elixir 1.19

#111
post #105

Earlier quoted context omitted.

> C VLAs got dropped in C11, function prototypes changed meaning in C23, and K&R declarations were dropped from the standard. Not so sure I'd call these huge breaking changes. They're breaking, sure, but I'd expect them to be trivial to fix in any existing codebase. Maybe VLAs are a huge breaking change? Most code never used it due to no way at all to use them safely, so while it is a pain to replace all occurrences…

It was breaking enough for the Linux kernel, and the money Google sponsored to the effort remove them, https://www.phoronix.com/news/Linux-Kills-The-VLA Breaking changes are breaking changes, even if it is only fixing a comma, someone has to spend part of their time making it compile again, which many times maps to actual money for people working at a company, their salary mapped into hours.

> Breaking changes are breaking changes,

No disagreement there, but the context ITT was specifically about huge breaking changes. I consider those breaking changes, but not necessarily huge ones.

Re: Elixir 1.19

#112

Earlier quoted context omitted.

> So many examples of programming languages have huge breaking changes between versions I can only think of 2: python 3 and perl 6. Those two were very traumatic so it's not surprising it feels like more.

NodeJS with its commonjs vs modules, it's a huge mess IMO. Add typescript and build systems for bonus clusterf*cks.

the whole commonjs vs modules is there precisely because they chose not to introduce a breaking change.

Typescript has introduced breaking changes but they're not that bad

Re: Elixir 1.19

#113
post #105

Earlier quoted context omitted.

> C VLAs got dropped in C11, function prototypes changed meaning in C23, and K&R declarations were dropped from the standard. Not so sure I'd call these huge breaking changes. They're breaking, sure, but I'd expect them to be trivial to fix in any existing codebase. Maybe VLAs are a huge breaking change? Most code never used it due to no way at all to use them safely, so while it is a pain to replace all occurrences…

It was breaking enough for the Linux kernel, and the money Google sponsored to the effort remove them, https://www.phoronix.com/news/Linux-Kills-The-VLA Breaking changes are breaking changes, even if it is only fixing a comma, someone has to spend part of their time making it compile again, which many times maps to actual money for people working at a company, their salary mapped into hours.

[deleted]

Re: Elixir 1.19

#114

Earlier quoted context omitted.

LiveView was still before v1.0, hence the churn, but Phoenix itself did not introduce breaking changes since v1.0, released more than a decade ago. Our skeleton for new applications change, as best practices around web apps are still evolving, but it is completely up to you to migrate. As a reference point, most other web frameworks have gone through several major versions in the same time, changing how new apps are…

> The idea that Phoenix is also mostly macros does not hold in practice no, but the Framework does push you into using them. A good example is the `use MyAppWeb` pattern. That's a macro that nests other macros. the good news is that you can pretty much excise that and everything works fine, and LLMs have no problem even! (i think they slightly prefer it) a few cognitive pain points with phoenix macros: plug: (love it…

What do you mean, "creates a Conn variable out of whole cloth"?

Conn is just a pipeline of functions, the initial Conn struct is created at request time and passed through to each function in the pipeline.

Re: Elixir 1.19

#115
Very cool! As a professional Elixir developer who loves types, I'm so happy to see them coming more and more to the language.

I have a question about how the type inference works. Dialyzer, which also attempts to do type inference, uses "success" typing which means it will not flag something if it could work. It tries to minimize false positives. In practice, this means it hardly ever catches anything for me (and even when it does warn about something, it's usually not real anyway!), so I don't find it that useful.

Does this approach use "success" typing as well? I found the `String.Chars` protocol example interesting, since I've had my fair share of crashes from bad string interpolations. But in the example, it's _clearly_ wrong, and will fail every time. That's not that useful to me because any time that code is exercised (e.g. in a simple test) it would be caught. What's more useful is if some particular code path results in trying to interpolate something wrong.

I know under the hood, the Elixir type system has something to do with unions of possible values, so it is tracking all the things that "could" be passed to a function. Will it warn only if all of them fail, or if any of them fail?

Re: Elixir 1.19

#116
post #23

Elixir just keeps chugging along steadily releasing great features and improvements. It's an astoundingly well designed language and the creators have a solid approach to its development. It's a shame I don't get to use Elixir day to day.

I quit my job and started a company just so I can use Elixir.

Me too. No regrets.

Re: Elixir 1.19

#117
post #22

Earlier quoted context omitted.

> So many examples of programming languages have huge breaking changes between versions I can only think of 2: python 3 and perl 6. Those two were very traumatic so it's not surprising it feels like more.

C++11 fucking with strings also comes to mind.

C++20 too but luckily basically every compiler has added a switch to turn that insanity off, saving the language.

Re: Elixir 1.19

#118

Earlier quoted context omitted.

How's that going for you?

Not the person you're responding to, but I also quit my job and started a company that uses Elixir for internal stuff. It's overkill for some of our problems but it's working fine! We make mistakes, but they're mistakes we'd have made with most other languages. I did have to buy Pragstudio licenses for anyone using Elixir on the team. I'd prefer a few books, but most Elixir/Phoenix books don't seem like they're keepi…

Pragmaticstudio is just an awesome starting point for Elixir + Phoenix. I delayed signing up for a long time - wondering if it would be worth the money - but I need not have

Re: Elixir 1.19

#119
post #57

Earlier quoted context omitted.

> So many examples of programming languages have huge breaking changes between versions I can only think of 2: python 3 and perl 6. Those two were very traumatic so it's not surprising it feels like more.

.NET Framework => .NET While C#, F#, VB and C++/CLI were kept compatible, it doesn't help when the library stuff you want to call isnt' there any longer. C++ removal of exception specifiers, GC API, C VLAs got dropped in C11, function prototypes changed meaning in C23, and K&R declarations were dropped from the standard. Java, already someone else mentioned. D, the whole D1 => D2 transition, and Tango vs Phobos drama…

I recall a lot of grumbling about VB.Net. I think most of us are happy never to hear people bitch about VB again. .Net was feared to be a bait and switch to get people off of it and that definitely seems to have been the case.

Re: Elixir 1.19

#120

Earlier quoted context omitted.

> So many examples of programming languages have huge breaking changes between versions I can only think of 2: python 3 and perl 6. Those two were very traumatic so it's not surprising it feels like more.

Scala 3 has failed to be widely adopted, and now the language as a whole is more or less dead. Not that that’s due to the 2-to-3 transition entirely.

I was part of a book club of tech books and there was a ton of grumbling when we went through the Scala book. The consensus was this language was designed by nerds instead of language designers. Which either sounds like not a big deal or an insult worth dueling over depending on how much you pay attention to language designers and DX.

Full of Least Surprise violations, and just far too goddamned big. Did 3 try to pare that back into something reasonable?

Post reply on HN