Gleam: Past, Present, Future! • Louis Pilfold @ FOSDEM 2024

Gleam: Past, Present, Future! • Louis Pilfold @ FOSDEM 2024

Louis Pilfold

1 год назад

27,256 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@coder_one
@coder_one - 08.02.2024 03:12

Louis - great speech! Can We count on a dark-theme at the Gleam Language Tour?

Ответить
@coder_one
@coder_one - 08.02.2024 03:13

Where to look for an introduction on compiling Gleam into JavaScript for writing frontend?

Ответить
@coder_one
@coder_one - 08.02.2024 03:17

In the Gleam Language Tour, the section on unqualified imports mentions that it is good practice to use qualified imports instead of unqualified imports. This begs the question - for what purpose does the compiler allow unqualified imports if we know that using them degrades code readability and is not a good practice?

Ответить
@0e0
@0e0 - 08.02.2024 05:44

big it up

Ответить
@JosephTLyons90
@JosephTLyons90 - 08.02.2024 06:59

Louis is such a great speaker.

Ответить
@fdg-rt2rk
@fdg-rt2rk - 08.02.2024 16:26

Patiently waiting for stable Gleam release...

Ответить
@gotoastal
@gotoastal - 08.02.2024 19:34

Too much focus on GitHub & Discord… proprietary platforms that don’t fit the goals of free software

Ответить
@_simoncurtis
@_simoncurtis - 09.02.2024 01:25

I think this is the language im looking for! Great work, will be following closely!

Ответить
@brentrowland
@brentrowland - 09.02.2024 01:56

His voice reminds me of Davy Knowles. Is he Manx?

Ответить
@taylorallred6208
@taylorallred6208 - 09.02.2024 02:49

Gleam is a well designed language with great branding. I hope it does well!

Ответить
@af2b
@af2b - 10.02.2024 11:04

Amazing! <3

Ответить
@joshuathomasbird
@joshuathomasbird - 13.02.2024 05:31

very cool talk! I really wanna get back into that project where i embedded a js interpreter inside beam i want to use that as like a FaaS like lambda or Deno Deploy something to run sandboxed functions because BEAM is so awesome for scaling

Ответить
@isfiyiywafibc6qaiiiiiiiiii570
@isfiyiywafibc6qaiiiiiiiiii570 - 15.02.2024 14:53

I was wondering if you've ever considered switching from Discord to something a little bit more open and maybe a little bit better?

I have had experience with Discord for open source project communities and the key take-aways are:
- You need a discord account to even read the contents of a "server". Discord is ban happy, sometimes forcing you to give them your mobile number just to keep your account active. It seems very user-hostile, probably there's reasons for this but I imagine the vast majority of communities wouldn't benefit from most of these features. If you get banned from discord, or heck, even maybe from the community, you instantly lose access to even read any support material.
- Searchability is bad, trying to search for things on discord is a miserable experience, it likes to secretly "translate" what you search for into what it thinks you want to search for and you end up being unable to search for certain especially technical terms.
- A proprietary platform discourages interaction with people who dislike proprietary platforms. For me, personally, I can just about tolerate running it in my web browser, but I prefer to avoid it as much as possible. If Discord dropped browser support tomorrow, I wouldn't install a "native" client, I would just stop using it. Unless I was personally deeply invested in Gleam and found no way to continue working with it except to join the discord community, I might join it. That being said, while gleam sounds like an amazing language which has been on my radar for a while, one of the main concerns I came away with when I saw this presentation (in person) was that Discord would be a potential liability.

While I would personally prefer an IRC channel and a forum, I understand that if you want to attract the most people, this may not be the way. That being said, there are surely better platforms than Discord which are not necessarily as primitive or require the same level of maintenance as an IRC channel or private forum.

Ответить
@DeathSugar
@DeathSugar - 15.02.2024 22:58

their tour font for it sucks and use light mode

Ответить
@GV14982
@GV14982 - 16.02.2024 00:41

I'm super happy to hear about the improved tooling for editors besides VSCode!

Ответить
@nyahhbinghi
@nyahhbinghi - 17.02.2024 23:37

Big ups English King!!!!

Ответить
@nyahhbinghi
@nyahhbinghi - 17.02.2024 23:50

incremental compiler that's as good as TypeScript? TELL ME!

Ответить
@_slier
@_slier - 05.03.2024 09:42

can gleam compile to native? that would be seriously taking golang market share

Ответить
@nyahhbinghi
@nyahhbinghi - 05.03.2024 10:36

big ups King!

Ответить
@webspaceadam
@webspaceadam - 10.03.2024 23:05

i just started to learn elixir and stumbled upon the missing types. i still like elixir and will continue learning it, but this talk and the philosophy behind the language seem so nice. it looks like the language for me. def gonna give it a try!

Ответить
@user-eg6nq7qt8c
@user-eg6nq7qt8c - 12.03.2024 22:26

I've been learning Elixir and can't believe how incredible BEAM is. I was excited about elixir + Rust NIFs and now there's Gleam! I haven't been this excited in a long time!

Ответить
@nomadtrails
@nomadtrails - 14.03.2024 06:38

I would love to see work into compile time / macros / metaprogramming, as this won't be nearly as useful for front-end compiled to javascript unless you can have templating syntax embedded (like how Rust is able to have jsx-like templating in Yew / Leptos, which is only possible since the entire rust language is available in macros)

Ответить
@lyubenpetrov9288
@lyubenpetrov9288 - 15.03.2024 20:00

dang it I didn't see this talk in the schedule otherwise I would've made sure to pop in... hope you come next year as well!

Ответить
@draakisback
@draakisback - 16.03.2024 05:46

I've been playing with gleam. I took it for a test drive and I tried to implement a distributed cache system. The reason I picked this project is because it's something that is somewhat trivial in elixir / erlang because you can leverage a lot of the tools that you get from the BEAM and from OTP. I was able to make the cache but I needed to make a lot of wrappers for the OTP libraries that I wanted. For example the ETS wrapper that showed up on the gleam package manager was really deprecated. It was a bit rough, because you're calling into a dynamic language from a static language which means you're either going to be using the dynamic type or the generic types which might as well be dynamic (that being said, the type inferences pretty good). You have to provide a lot of checks to make sure that you're not pulling in the wrong types or polluting you code with nil/error atoms.

I do wish the interrop mechanism was a little bit better in this regard. I also wish there was a code generation tool which could take some of those libraries and create wrappers automatically. From what I can tell there's no metaprogramming in the language as of yet, and I don't think there's a plan to add any kind of macro system. It would be nice to at least have some kind of reflection but I suppose they want to keep things simple. Also, wrapping elixir and especially elixir macros is really difficult. With gleam, the struct types are records, whereas structures in elixir are named maps. I found it easier to interop with erlang then with elixir as a result of this, especially if there is any kind of bi-directional communication between the two languages.

Some of these issues will likely fall away as the community becomes more mature but it's definitely early days. I'm kind of surprised that OTP is not included in the stdlib, it makes sense I guess because gleam also targets JavaScript but it would be nice if at the very least there was a package to gain access to the greater beam ecosystem (there is one but it's not complete by a long shot).

The other gripe I had revolved around the actor abstraction. I understand why it was different than genserver given there's no function overloading or module level pattern matching, but it didn't feel intuitive at all and at least for now it doesn't have a registry system which is definitely sorely needed. I ended up writing my own wrapper around Genserver and I found that easier to work with.

I really like some of the ideas of play in gleam but for now I don't see a reason to switch from elixir or erlang. That being said, I don't think this language is really made for somebody like me who already has a number of years working with the beam, it feels more like gleam is a means of getting more people into the ecosystem which is always a good thing. Anyway, great talk and great language. I'm probably going to contribute to the project in the future because I really think it has a lot of potential to build up our ecosystem and there are some things that I would love to see in the language.

Right now, my favorite way of working with the beam is by using elixir and rust together. I find that wrapping rust with elixir is extremely nice because it gets rid of a lot of the downsides of native interface functions via the result and option monads and its built in safety. The biggest downside of NIFs is that they can take down the entire node if they hit undefined behavior, but with rust you can bypass any situation that would give rise to undefined behavior and return a result which maps extremely well on to an ok/error atom set. It would be kind of interesting to be able to do something similar with gleam because it has type safety itself.

Ответить
@harrynair1811
@harrynair1811 - 17.03.2024 05:56

I was always intrigued by Erlang … this seems to be the perfect language For people to start with .. I’m hooked .. how would I convert the typescript /java people to Gleam is the million dollar question

Ответить
@lancemarchetti
@lancemarchetti - 17.03.2024 11:08

This was brilliant!

Ответить
@studiousllama4776
@studiousllama4776 - 19.03.2024 11:50

Man, Gleam is such a cool language. Congrats on the v1 release

Ответить
@Thundechile
@Thundechile - 28.03.2024 17:06

Louis I love how you get that less is often actually better in programming languages! I think Gleam is maybe the most promising language there is currently.

Ответить
@strangnet
@strangnet - 28.03.2024 23:35

I still find the design choice of not having any date/time functionality in a standard library a bit odd.

Ответить
@jleahr
@jleahr - 01.04.2024 09:24

I love this language
great talk explaining it

Ответить
@guilhermenunes3130
@guilhermenunes3130 - 04.04.2024 15:14

I just wish Gleam had function overloading ;__;

Ответить
@flibbertigibbet-at-arms
@flibbertigibbet-at-arms - 23.04.2024 11:05

if only they didn't have political statements on the main page of their website

Ответить
@AbdolaMike
@AbdolaMike - 05.05.2024 07:31

congrats Louis!

Ответить
@zyx32111
@zyx32111 - 08.05.2024 23:18

Very promising language!

Ответить
@Nellak2011
@Nellak2011 - 13.05.2024 22:08

Gleam is the closest to perfection out of all the languages I have seen. It combines the best ideas of many languages I like and importantly adds static types to the BEAM. ❤

Ответить
@kishanbsh
@kishanbsh - 19.06.2024 20:00

Creating a gleamy language with all the modern tooling is an incredible undertaking. Great job!

Ответить
@ashiqnuaiman
@ashiqnuaiman - 04.07.2024 12:16

Hi, what are the resources to go from 0 to 100 in Gleam. My main focus is building backend systems, never did anything other than dart and go. Best regards.

Ответить
@vitaliikocherga3954
@vitaliikocherga3954 - 05.07.2024 14:29

I never thought I would be interested in Gleam or any FP language at all being Java dev myself but here i am

Ответить
@ASDFCH
@ASDFCH - 06.07.2024 01:29

"No nazi bullsh*it" on the website. Yikes. Codified language for, "if you disagree with my progressive views, you're a nazi". Shame. It's a great language syntax. I removed my github star. I like the language, but I don't want to endorse communists and wokeness.

Ответить
@anotherelvis
@anotherelvis - 28.07.2024 00:35

Great talk

Ответить
@PaulSebastianManole
@PaulSebastianManole - 27.08.2024 01:45

This is basically F# from all I can see, plus built-in actors and Erlang tools. Too bad Microsoft doesn't value it nearly as much as C# to hire more devs and improve its tooling.

Ответить
@crab-cake
@crab-cake - 27.08.2024 06:27

may i ask why it compiles to javascript? it seems like something that wouldn't be very straightforward and wasm is an option. also, does this limit the language? as far as i understand, you would have to build the language around javascript compatibility. i don't know anything though which is why i'm asking.

Ответить
@simas-45
@simas-45 - 29.08.2024 10:26

why the aggressive political statements on the website? it won't stop me from using the language but it's going to push a lot of potential users away. i could understand in a discord server or something but it's too much on the front page of the website. i'm not against any of that but it just seems unnecessary and provocative.

Ответить