For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | bbkane's commentsregister

You should publish your "Elm-inspired tool" list- I bet it's pretty large. Off the top of my head: iced, react redux, bubble tea (Go lib), Roc lang.

I'm sure there are lots more. I'm still waiting for someone to write an "Elm retrospective" and examine its rise and stagnation


I left this comment a while back https://news.ycombinator.com/item?id=45752905 when someone asked what was up with Elm at the current moment. I left a bunch off.

- Evan entered hermit mode to create Acadia, a language for an Elm-like experience querying the database. He's given conference talks about it but none have been recorded. https://acadia.engineering/ This seems to have the same goals as Lamdera.

- Evan hinted that 0.19.2 is coming and has asked for help profiling it https://discourse.elm-lang.org/t/help-me-profile-elm-0-19-2-....

In the meantime the ecosystem is getting crazy evolved. Turns out not changing the language under your feet for a few years leads to lots of development with what's currently there. Frameworks like elm-pages allowed for command line utils in Elm like elm-codegen. Elm-review lets you write linting rules with autofixes unlike anything I've used in other languages. A few people are writing forks and non-forks that target more than the browser or self-host the compiler. Every backend language I've used with decent types has a package to generate Elm types (and their decoders, and a nice way to interact with the JSON API, and deal with glue code generally).

Literal forks of Elm compiler

- Gren (general purpose lang targeting browser, CLI, servers) https://gren-lang.org/

- Zokka (fixes a few compiler bugs and allows for custom package repos) https://discourse.elm-lang.org/t/a-new-zokka-version-bringin...

- Guida (self-hosted compiler) https://guida-lang.org/

Forks that do not ever seek to change the syntax of the language and thus compile .elm files

- Lamdera ("non-fork" fullstack with evergreen migrations) https://dashboard.lamdera.app/docs/starting

- Eco (written in Elm targeting x86 binaries via MLIR and LLVM) https://github.com/eco-lang/eco-runtime

- Elm-run (targeting CLI and servers, self hosted) https://elm-run.dev/roadmap

Languages inspired by it whose creators are big Elm users:

- Roc (general purpose): https://www.roc-lang.org/faq

- Gleam (targets Erlang VM and browser) https://gleam.run/cheatsheets/gleam-for-elm-users/

- Cara https://cara-lang.com/

Things that use the Elm architecture in other languages (linking to pages that mention the connection where possible):

- Foldkit (Typescript) https://discourse.elm-lang.org/t/foldkit-the-elm-architectur...

- Iced (Rust): https://book.iced.rs/

- Bubble Tea (Go): https://github.com/charmbracelet/bubbletea

- Lustre (Gleam): https://github.com/lustre-labs/lustre

- A list of TEA-in-Swift and React in Swift: https://gist.github.com/inamiy/bd257c60e670de8a144b1f97a07ba...

- Redux (Javascript/Typescript): https://redux-toolkit.js.org/rtk-query/comparison

If you read this far and are wondering which to check out, I cannot endorse Lamdera enough. Use the same types from your DB to your frontend and write zero glue code. Migrations required to update the running frontend/backend whenever you change anything. Really changes the way you write code.


You're missing Derw from that list: https://www.derw-lang.com/. Predates all the others, and is from a former core team member (me). I'm also the author of server-side Elm experiment known as [take-home](https://github.com/eeue56/take-home) from 11 years ago. I can see a lot of patterns in Sky's codebase which seem trained on Derw's codebase.

Also authored the first Elm-in-Elm compiler for a limited subset for json-to-elm, then leading to a pure Elm virtual-dom implementation used for elm-html-test!


I KNEW I forgot one. I'm really sorry. This list was off the dome and I was hoping to hit a Cunningham's law situation (which I did) without making anyone feel left out (which I failed).

No worries at all! I didn't take offense, it's very easy to forget one or two projects when quite frankly, Elm has managed to spawn or inspire so many!

Check out polars- I find it much more intuitive than pandas as it looks closer to SQL (and I learned SQL first). Maybe you'll feel the same way!

I've looked at Polars. My sense is that Pandas is an interactive data analysis library poorly suited to production uses, and Polars is the other way around. Seemed quite verbose for example. Sometimes doing `series["2026"]` is exactly the right thing to type.

With some of the newest 3.x changes like copy-on-write, I find pandas getting quite verbose now as well.

In a world where AI is writing the code, I guess I shouldn't complain, but when I am discovering something the ai of choice yet again missed, both pandas and polars still feel verbose and lacking sugar.


You can do that in Polars, too

Agreed — I much prefer polars, too. IIRC the latest major version of pandas even introduced some polars-style syntax.

which makes sense because I believe that polars was written by the same guy that did pandas (hence the name - panda and polar are bears)

Polars is Ritchie Vink. Pandas is Wes McKinney.

Love these ideas!

Go is well known for its large and high quality std lib

Go didn't even have versioning for dependencies for ages, so CVE reporting was a disaster.

And there's plenty of libraries you'll have to pull to get a viable product.


I think the AI tooling is, if not completely solving sandboxing, at least making the default much better by asking you every time they want to do something and providing files to auto-approve certain actions.

Package managers should do the same thing


Another layer of AI tooling is the cost of spinning up your own version of some libraries is lowered and can be made hyper specific to your needs rather than pulling in a whole library with features you'll never use.

> Another layer of AI tooling is the cost of spinning up your own version of some libraries is lowered and can be made hyper specific to your needs rather than pulling in a whole library with features you'll never use.

Tell me about it. Using AI Chatbots (not even agents), I got a MVP of a packaging system[1] to my liking (to create packages for a proprietary ERP system) and an endpoint-API-testing tool, neither of which require a venv or similar to run.

------------------------------

[1] Okay, all it does now is create, sign, verify and unpack packages. There's a roadmap file for package distribution, which is a different problem.


> at least making the default much better by asking you every time they want to do something

Really? I thought 'asking you every time they want to do something' was called 'security fatigue' and generally considered to be a bad thing. Yes you can concatenate files in the current project, Claude.


Yes it has to be combined with a robust way to allowlist actions you trust

Oddly, since I wrote that Claude 'auto' mode just landed and I built something with it (instead of 'dangeously skip') and it's working.

Sandboxing by to default world be really nice. One of the things I really appreciate about Claude Code is its permissions model

I always felt like it was "I prioritized a speedy response on my phone instead of an elegant response from my computer at a later time".

Started in case I ever build a language server, thanks! The interface looks very understandable, and the debug server looks really nice.

Now that I think about it, it might be really cool to add LSP to my CLI framework[0] (I already have tab completion for shells, why not make an editor plugin if it's this easy ..)

0: https://github.com/bbkane/warg


I wrote this for the infracost LSP so I could write multiple IDE extensions. Its not even really a language server, its just a neat way to parse the Terraform/Cloudformation and return diagnostics.

Language servers are cool!


Similar to how lambda calculus "just is" (and it's very elegant and useful for math proofs), but nobody writes non-trivial programs in it...


Make that almost nobody.

I wrote a non-trivial lambda program [1] which enumerates proofs in the Calculus of Constructions to demonstrate [2] that BBλ(1850) > Loader's Number.

[1] https://github.com/tromp/AIT/blob/master/fast_growing_and_co...

[2] https://codegolf.stackexchange.com/questions/176966/golf-a-n...


The Roc devs came to a similar conclusion: https://www.roc-lang.org/faq#curried-functions

(Side note: if you're reading this Roc devs, could you add a table of contents?)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search:

HN For You