Join the Dark Side, We have DX and Bad Puns (The Gleam Community)
Recently, I've been skulking around the Gleam programming language's Discord channel. Before I continue, here's some links.
** You might need to follow that Discord link in a new tab
In this article I want to encourage you to engage with the Gleam community. I won't try and convince you it's an excellent language here (although it is, go check it out). Instead I just want to give you a glimpse of what participating in the community is like.
Here's the first thing you probably ought to know: I spend more time hanging out in the Gleam Discord than I do writing Gleam... and that's really okay :) In terms of actually writing Gleam, I've made one teeny (400 line) library which I spent approx. 4-5 hours on, and published this morning. But I have had loads of interesting conversation in the Discord. Contribution is not a prerequisite to participation. If you just wanna come talk about software development (or coffee or your pets or UK politics or whatever), you are encouraged to do so!
When you arrive in the Discord, you will discover that basically everyone is friendly, accepting, knowledgeable, and curious. It's Ted Lasso levels of wholesome, and you will almost immediately get into discussion with people who have very different software backgrounds (PHDs, self taught, OO, functional, data analysts, web developers, etc.).
It will be insurmountably difficult for you to spend a significant portion of time there without learning something or laughing out loud by yourself.
Once you catch the Gleam bug, and start contributing to projects or working on projects on your own, you will find that people want to collaborate with you. Simply mention your project and you will likely get advice, questions, and maybe even pull requests. Most of all you will get encouragement (but genuine encouragement, not like posting on social media).
Okay enough about community. What is sitting down and writing Gleam like?
It's fantastic. The developer experience is insanely impressive considering the age of the language. There is a combined build tool and package manager called gleam
which is very similar to cargo (rust build tool and package manager) in terms of feel and usage. Also, projects are configured with a TOML file. There's a packages site:
which is built on top of Hex (the package manager and site for Erlang and Elixir). Publishing is one command, and documentation is automatically hosted.
The LSP is considered as part of the language work, with the same priority as the stdlib or the language itself. Considerations are being made in the compiler for better supporting the LSP. Syntax highlighting, inline errors, and autocompletion are all in place already.
For learning the language, there are loads of good resources, and the language surface is intentionally small. There should be one way to do a thing. For most software engineers, just the language tour
should be enough to get started. There is also a great exercism track (with a syllabus launching any day now), and the creator of the language is an active mentor! I cannot oversell how cool it is to learn a programming language from the person who made it. Here's that track:
I'm gonna stop talking now because by this point you should already be in the discord. I will see you there. Thanks for reading :)