Live data from Hacker News

Elixir v1.20: Now a gradually typed language

elixir-lang.org

31–40 of 426 posts

Re: Elixir v1.20: Now a gradually typed language

#31
post #20

Found elixir intriguing and so Phoenix. Two reasons I put it aside again are: You need Beam and the Elixir. I find that really weird, because I'm used to just the language like in Python, Java, C, Rust. Not something underneath it, too. There is no debugger. The way to debug Elixir is to print stuff to the console, like 40 years ago. No thanks.

I genuinely needed that laugh. Thank you

Re: Elixir v1.20: Now a gradually typed language

#32
post #20

Found elixir intriguing and so Phoenix. Two reasons I put it aside again are: You need Beam and the Elixir. I find that really weird, because I'm used to just the language like in Python, Java, C, Rust. Not something underneath it, too. There is no debugger. The way to debug Elixir is to print stuff to the console, like 40 years ago. No thanks.

To be fair, there is more than just print debugging. You have access to tools like red(x)bug https://github.com/nietaki/rexbug, the Elixir-LS project has Debug Adapter Protocol support. And in my opinion, the REPL (and decent software architecture) makes it easy to investigate your code by just running the functions as needed (even if your live production system if you want).

Re: Elixir v1.20: Now a gradually typed language

#33

Oh shit here I go (and learn Elixir for a whole year (again)) again. I love everything about Elixir, but Elixir constantly makes me doubt myself like no other language. My brain isnt made for functional stuff, but this makes me want to try again. Sucks that it's not really a beginner friendly ecosystem and usually, when having questions answered, people assume you already know a lot about the language.

Comments like this always confuse me as object oriented programs riddled with state are much harder to reason about to me.

I'm working on a game engine right now (written in object oriented language, of course) and I keep itching to design a compiled functional language for games, because state spread in thousand of objects, eldritch class hierarchies, are complete hell.

Once you taste Elixir/Erlang, there is no going back to the madness.

Re: Elixir v1.20: Now a gradually typed language

#34

Oh shit here I go (and learn Elixir for a whole year (again)) again. I love everything about Elixir, but Elixir constantly makes me doubt myself like no other language. My brain isnt made for functional stuff, but this makes me want to try again. Sucks that it's not really a beginner friendly ecosystem and usually, when having questions answered, people assume you already know a lot about the language.

Comments like this always confuse me as object oriented programs riddled with state are much harder to reason about to me.

The confusing state riddling here happens in the background as your whole app basically is a state. The thing that really throws me off with Elixir is having to handle (possibly) hundreds of thousands of processes. Doing this correctly seemed impossible to learn for me.

Re: Elixir v1.20: Now a gradually typed language

#35
post #20

Found elixir intriguing and so Phoenix. Two reasons I put it aside again are: You need Beam and the Elixir. I find that really weird, because I'm used to just the language like in Python, Java, C, Rust. Not something underneath it, too. There is no debugger. The way to debug Elixir is to print stuff to the console, like 40 years ago. No thanks.

That is just wrong. > You need Beam and the Elixir. I find that really weird, because I'm used to just the language like in Python, Java, C, Rust. Not something underneath it, too The beam is a VM. You get that Java requires a VM too right? It’s called JVM for a reason. And Python requires an interpreter. > There is no debugger. The way to debug Elixir is to print stuff to the console, like 40 years ago. That is fals…

Almost nobody uses it though, which is too bad, especially since multi-head functions sometimes make it difficult to follow the execution path.

I'd like to do step by step but I cannot plug the debugger to VScode from inside a docker container.

Re: Elixir v1.20: Now a gradually typed language

#36

Earlier quoted context omitted.

With Elixir specifically it was the learning experience I had with Phoenix. I didn't understand how a Phoenix app booted, didn't know where to edit my config. Syntax like: ``` socket "/ws/:user_id", MyApp.UserSocket, websocket: [path: "/project/:project_id"] ``` Elixir gives you too much freedom on how to write something on a syntax level which really annoyed me.

I love Elixir and Phoenix, but Phoenix especially uses a lot of compile-time macros and it can be a steep learning curve when you need to pull apart the skeleton framework to figure out how things are actually wired. I pretty frequently find myself needing to open up the source to understand what's actually going on, the docs aren't bad but it often feels like they assume a lot of existing familiarity with phoenix. I…

I think the lack of parentheses is whats throwing me off regularly with Elixir.

Re: Elixir v1.20: Now a gradually typed language

#37
post #26
post #22

Earlier quoted context omitted.

Java has the JVM the same way that Elixir has Beam/OTP/...

Read again... Here's what you need to do for elixir: Download and run the Erlang installer Download and run the Elixir installer Here for Java: Download and run the Java SDK And for Python: Download and run the Python installer

Here's what you need for Java:

Download SDKMan/Jenv

Install the version(s) of Java you need for your projects

Make sure your JAVA_HOME environment variable is set

Ensure your IDEs locate the correct Java home

Compared to all that, Elixir's two installers are trivial.

And if you have a competent package manager, you can just tell it to get Elixir and it'll handle Erlang for free.

Re: Elixir v1.20: Now a gradually typed language

#38

Earlier quoted context omitted.

Comments like this always confuse me as object oriented programs riddled with state are much harder to reason about to me.

The confusing state riddling here happens in the background as your whole app basically is a state. The thing that really throws me off with Elixir is having to handle (possibly) hundreds of thousands of processes. Doing this correctly seemed impossible to learn for me.

It's not like you're dealing with hundreds of thousands of ad-hoc processes. If you're writing a web server, for example, each of these processes might simply be a client connection and they all operate the same. The fact that there are 2 or 100,000 is only a problem for the BEAM scheduler.

Sounds like there is some foundational knowledge of Elixir that you miss and everything seems more confusing than it should be. To me writing a 'server' in Elixir is orders of magnitude easier than doing it in Python, Rust or C++.

As someone else suggested, bring your concerns to the Elixir Forum and surely someone will clarify them for you

Re: Elixir v1.20: Now a gradually typed language

#39
post #26
post #22

Earlier quoted context omitted.

Java has the JVM the same way that Elixir has Beam/OTP/...

Read again... Here's what you need to do for elixir: Download and run the Erlang installer Download and run the Elixir installer Here for Java: Download and run the Java SDK And for Python: Download and run the Python installer

Is your issue something with the runtime itself, or just the difficulty of installing it?

Re: Elixir v1.20: Now a gradually typed language

#40
post #10

Earlier quoted context omitted.

https://pragprog.com/titles/lhelph/functional-web-developmen... don't let the title fool you - the first half of the book is just elixir over the past 8 years this is the book i've used to ramp back up on elixir and it works like a charm every time - i've never finished it for me, a mark of a good programming book in this tutorial-project style is that I have started it half a dozen times and never finished it becaus…

Yea I've worked through Elixir in Action and appreciate all book recommendations. My issue is, tutorial style books rarely cover security related concerns.

what do you mean by 'security related concerns'?
Post reply on HN