News for hackers. Stuff that matters.
Re:Phoenix 1.7 is View-less by Jcampuzano2 on Friday December 30, 2022 @06:16PM (#34191288)
I used to think this, but nowadays I avoid any language that doesn't have static typing.

The difference in tooling support/IDE completions I get on practically any language that has types vs those that don't is just too drastic for me.

It's also so much less mental load to have to always remember the types in my head.

Another issue I've seen in dynamic languages is when people do try to document the types via comments or otherwise, but then this drifts from reality due to not being updated.

I actually tried elixir and this is one of the main things that turned me off it.

Re:Phoenix 1.7 is View-less by ch4s3 on Friday December 30, 2022 @06:35PM (#34191456)
Completions in Elixir in VSCode are as good as anything if seen in intellij for Java, through that may be a low bar.

As for the burden of the mental model, I can’t really speak to that. In Elixir I usually try to think in data shapes or structures which can be matched on by function heads. I only think of types at the edges of the system.

Re:Phoenix 1.7 is View-less by lukasz_samson on Saturday December 31, 2022 @11:44AM (#34198133)
ElixirLS developer here. Nice to hear that people like the autocompletion but comming from .net/java I think it still can do much better. It’s not very context aware and poorly handles code with parse errors
Re:Phoenix 1.7 is View-less by ch4s3 on Monday January 02, 2023 @11:33PM (#34227705)
It always works well enough for my purposes.
Re:Phoenix 1.7 is View-less by throwawaymaths on Saturday December 31, 2022 @12:01AM (#34193744)
It's way less of an issue due to vscode/elixir-ls auto running dialyzer in the background
Re:Phoenix 1.7 is View-less by realusername on Saturday December 31, 2022 @01:16AM (#34194146)
Elixir does have a very good autocomplete despite the dynamic typing, it's probably the best autocomplete I've ever seen for a non typed language.

The reason for that is simple, the language works with modules and data pipes, not objects which means there's way less magic to parse