3 ms·
Lead developer here. I think it’s a little misleading that the title of this post is «Gren - an Elm fork». While technically correct, I think there are many w
by Skinney 3y ago
Lead developer here.
I think it’s a little misleading that the title of this post is «Gren - an Elm fork».
While technically correct, I think there are many who will be dissapointed to find that Gren and Elm are incompatible languages.
In addition to some syntax changes and improvements, Gren adds the support of a NodeJS target. It’s still early, so we don’t support all of the builtin APIs yet, but we’ll slowly get there.
AMA
- rapind 3y agoAs someone who uses and is generally pleased with Elm (a large part of my product's UI is Elm) I could use more detail on what is different and especially why it is different. I did find a news post listing some differences, but it didn't really go into "why". A dedicated page outlining the differences / opinions on the changes would help me determine if this is a language I might use. Having a NodeJS (server) target is definitely interesting.
- Skinney 3y agoNo tuples: I found this to trade some convinience (no need to name anything)for worse refactoring (adding a value to a tuple or reordering the fields breaks everything, doing the same to a record doesn’t). I also improved pattern matching on records to make them more ergonomic. No automatic record constructors: same as the above, but in my experience it also confused beginners. I know of several that actively avoids it in their projects, even enforcing it with a linter rule. No GLSL: never used it, and don’t know how it works. It also broke when I upgraded the version of the Haskell compiler (Gren’s compiler is written in Haskell). For those reasons, it was removed. No reactor: never used it
- scns 3y ago> No tuples: I found this to trade some convinience (no need to name anything)for worse refactoring (adding a value to a tuple or reordering the fields breaks everything, doing the same to a record doesn’t). Did you mean better refactoring?
- christophilus 3y agoHe means the tuple feature is convenient but makes refactoring harder than if you instead used a record.
- sli 3y agoI've long moved beyond Elm, but I'd be surprised is anyone really used reactor. It seemed so completely unfit for purpose and was almost immediately useless if your project was more than a single file. elm-live was simply a requirement no matter how much I tried to avoid adding in extra tooling.
- nrabulinski 3y agoUnrelated to Gren, but what happened to Stabel? It seemed like a very cool and interesting project yet when I wanted to read more about it, all the resources were down
- Skinney 3y agoNice to see that people were interested in Stabel :D I got a bit too ambitious with the type system, I think. At the very least, I got to a point where I got discouraged because the type system I wanted was difficult to implement, and I started to realize that there were a few problems with the design. At the same time, I was starting to feel that this may not actually be something I'd want to use in production. On the flip side, I learned a whole lot about web assembly that I hope to put into Gren. I also felt a lot of pain with the lack of FileSystem APIs in Elm (which Stabel was implemented in). In a way, my work on Stabel triggered the work on Gren.
- toastal 3y agoUnlike Elm, does Gren allow community packages hosted outside of Microsoft GitHub or is that same lock-in retained?
- Skinney 3y agoThere’s no technical reason for it to be bound to github, it just haven’t been a priority. Contributions welcome.