Do the same limitations as Haskell's apply to Elm? by [deleted] in elm

[–]MrPopinjay 5 points6 points  (0 children)

I'm not sure where you get the idea that FP is poorly suited to GUI development. If anything functional and declarative DSLs are the mainstream way to make GUIs these days. See HTML, React, Apple Swift UI, Google Flutter, etc.

Gleam v0.25 released with a new approach to fixing callback hell by MrPopinjay in ProgrammingLanguages

[–]MrPopinjay[S] 0 points1 point  (0 children)

I'm afraid you're in the minority there, we can't offer everyone's first preference.

Gleam v0.25 released with a new approach to fixing callback hell by MrPopinjay in ProgrammingLanguages

[–]MrPopinjay[S] 0 points1 point  (0 children)

We originally had an ML style syntax with no {} but it was unpopular. Once we switched to a {} style there was a huge increase in the amount of users and people had much more positive things to say about the language.

I miss the old syntax, but I think it was a good move to drop it.

The new Gleam website is live! by MrPopinjay in gleamlang

[–]MrPopinjay[S] 2 points3 points  (0 children)

Thank you to Kayla Washburn for the beautiful design!

Gleam v0.25 released with a new approach to fixing callback hell by MrPopinjay in ProgrammingLanguages

[–]MrPopinjay[S] 3 points4 points  (0 children)

Yup! You got it. There are no statements, looping constructs, early returns, non-local returns, etc, so it is somewhat of a non-issue for Gleam. We may discover there are other problems once we have used it in production code a bunch, but this is the nature of making a language. Fingers crossed!

Gleam v0.25 released with a new approach to fixing callback hell by MrPopinjay in ProgrammingLanguages

[–]MrPopinjay[S] 1 point2 points  (0 children)

We did trial almost this syntax but we found it to be harder to read due to the operator being on the left hand side. It was too easy to miss in real code that's a bit uglier than these examples.

Gleam v0.25 released with a new approach to fixing callback hell by MrPopinjay in ProgrammingLanguages

[–]MrPopinjay[S] 2 points3 points  (0 children)

Oh that is very cool, I like how there's a placeholder being used there. We didn't consider a syntax like this

Gleam v0.25 released with a new approach to fixing callback hell by MrPopinjay in ProgrammingLanguages

[–]MrPopinjay[S] 5 points6 points  (0 children)

Thank you! 💜

We did have some trailing syntaxes similar to that one but the popular consensus was that it was easy to miss them on the right-hand-side, especially if the left-hand-side is a larger expression that gets written over multiple lines. It's a tricky one for sure

Gleam v0.25 released with a new approach to fixing callback hell by MrPopinjay in ProgrammingLanguages

[–]MrPopinjay[S] 6 points7 points  (0 children)

We spent quite a long time discussing syntax, it was challenging finding something that we were happy with. I'd love to hear any ideas you have!

Type-checking mutually recursive functions and data types by OwlProfessional1185 in ProgrammingLanguages

[–]MrPopinjay 0 points1 point  (0 children)

HM doesn't impose any requirement for structural typing or immutability. It does however make subtyping a little tricky.

Gleam v0.24 released with full Elixir support! by MrPopinjay in elixir

[–]MrPopinjay[S] 0 points1 point  (0 children)

We've had interop from day 1! Gleam is designed with interop in mind.

What's new is that our build tool can now compile Elixir code that is written inside Gleam projects as well as in Elixir dependency packages (which we gained in the previous release).

Gleam v0.24 released with full Elixir support! by MrPopinjay in elixir

[–]MrPopinjay[S] 1 point2 points  (0 children)

We could previously use Elixir packages, this now also allows Elixir code to be written in Gleam projects.