Hello @lpil this isn’t answering your question but is more of a bit of feedback, hopefully helpful. I got interested and went to the link you provided, which is the github page, which in turn links to https://gleam.run/
Scouring through that I was trying to answer the question “is this a pure functional language” and I cannot really do that (quickly) from either of those two places. I was really interested to see how you were going to do, for example, database access. I ended up taking a look at the example-url-shorterner, which has the following:
fn get_link(id) {
case db.get(id) {
Ok(link) ->
Response(200, [], link)
Error(_) ->
Response(404, [], html.not_found())
}
}
So that seems to me as if there are side-effects in the language so it isn’t pure. In addition I looked at the ‘Try’ section of the language tour (https://gleam.run/tour/try.html) and it shows:
case parse_int("123") {
Error(e) -> io.println("That wasn't an Int")
Ok(i) -> io.println("We parsed the Int")
}
That looks like it’s definitely an impure language. So I guess I’m suggesting that this information up-front would be handy, perhaps in the ‘Gleam principles’, or even if the ‘Hello Gleam’ program actually printed “hello world” to the screen, that’s what I was expecting when I went to that section, and the fact that it didn’t do that, made me think “oh, maybe it’s a pure language”. I guess I also thought that because you were posting on the Elm discourse and saying “very much inspired by Elm”.
So obviously that’s a pretty minor point, and you cannot have all the language design choices up-front in the main blurb. However, and I mean this as wholly constructive feedback, I’m still kind of lacking the whole point of the language. From the blurb, the whole raison d’etre for the language is simply that you wanted a statically typed language that targets the erlang BEAM. Is that correct? If not, that’s the impression I got. All of the other design choices, are basically “just” your personal preference (again, that’s they way it comes across, I’m not saying that’s the reality). So I suppose in summary, what I’m saying is the website is lacking a ‘vision’. In particular, if that was your goal, explaining why you didn’t re-target an existing functional language would go a long way to explaining the why of Gleam.
Note, I’m specifically saying the ‘website’, I’m not saying your project lacks a vision, just that it isn’t conveyed well on your webpage. At the moment, I’m having a hard time figuring out why I might be interested in Gleam, in particular why might I be interested in Gleam over more mature, funded, supported languages such as F#, Kotlin, or O’Caml which (from what I have understood) are similar in that they are impure strictly evaluated functional languages with static type systems and type inference.
In very marketing terms, what is the unique selling point?