I agree that the stability is quite nice. But there are plenty of areas where the language could use some improvement - for instance, the ergonomics around writing nested Single Page Apps is pretty cumbersome.
HN user
whichdan
(They/Them) Director of Engineering in Boston
There's a lot to love about Elm, and I've written quite a bit of production code with it starting around 0.18.0. But in 2026 I'm not sure why a company would newly choose a language that hasn't otherwise been updated in nearly 7 years.
Honestly the feedback loop of "do math to roll more" would make this an excellent game for kids IMO
Yeah I agree. I grew up in a very blue-collar town, and anything I wanted to learn (outside of public schooling) either came from emaciated websites or whatever books I could find at the library. Having YouTube and Khan Academy and everything else would have made such a huge difference for me.
The nice thing with the Elixir example is that you can easily `tap()` to inspect how the data looks at any point in the pipeline. You can also easily insert steps into the pipeline, or reuse pipeline steps. And due to the way modules are usually organized, it would more realistically read like this, if we were in a BulkEmails module:
Users.all()
|> Enum.filter(&Users.is_expired?(&1, Date.utc_today()))
|> Enum.map(&generate_expiry_email/1)
|> tap(&IO.inspect(label: "Expiry Email"))
|> Enum.reject(&is_nil/1)
|> bulk_send()
The nice thing here is that we can easily log to the console, and also filter out nil expiry emails. In production code, `generate_expiry_email/1` would likely return a Result (a tuple of `{:ok, email}` or `{:error, reason}`), so we could complicate this a bit further and collect the errors to send to a logger, or to update some flag in the db.It just becomes so easy to incrementally add functionality here.
---
Quick syntax reference for anyone reading:
- Pipelines apply the previous result as the first argument of the next function
- The `/1` after a function name indicates the arity, since Elixir supports multiple dispatch
- `&fun/1` expands to `fn arg -> fun(arg) end`
- `&fun(&1, "something")` expands to `fn arg -> fun(arg, "something") end`
I wonder if the thinner profile will make it more comfortable in smaller hands (both in terms of reach and center-of-gravity), but I'm skeptical.
Oh, don't forget, if you click "Allow (current location)" it will also reload the page.
Elm works a lot like this and it's quite nice.
Totally agree; I started replaying 13 somewhat recently, and just felt worn down after playing for a few hours. The nonstop battles with no real break between them just isn't fun, despite the game having amazing aesthetics.
I'm really bummed there isn't a Mini - I'd be happy with getting one every third generation, even. For the size of my hands, the center-of-gravity is too high in the 6.1" phones, so I can't comfortably hold it with one hand.
I got a 500 on first load, and intermittent issues on subsequent loads, so it's not just you!
Without compile-time type checking, every single line of code needs to be evaluated with a unit test to ensure there won't be any runtime syntax errors.
I think Rails is a victim of its own success: many of the hot new Rails codebases from that time are now 10 year old monoliths. And those monoliths need incredible amounts of tests to compensate for the lack of compile-time type checking, Rails version upgrades are multi-month nightmares, and the object-oriented statefulness of the language means that complex load-bearing code can be extremely tricky to untangle.
There are certainly new compelling projects like Sorbet to add type checking, and the ecosystem itself is very mature, it's just that the average codebase is not going to live up the experience you might have with a brand new one.
Basically we'd need laws enforcing a minimum wage for waitstaff, otherwise restaurants that allow tipping will always have an advantage over more expensive ones that don't. And no, you're not required to tip, but that only ends up hurting the waitstaff, not the restaurant.
Ugh, yeah. I used to adore Spotify's "radio" algorithm, but depending on the genre - namely indie rock - I constantly hear repeats now.
Okay, so people who had historically high-paying jobs, who were at a high-paying company with above-average severance, didn't have anxiety around layoffs. You can't say anxiety around layoffs is purely about mental health without looking at the financial aspect of it.
Tiny suggestion - instead of
.map(g => { return { key: g.key, rows: g.rows.map(r => r[1]) }})
you can write .map(g => ({ key: g.key, rows: g.rows.map(r => r[1]) }))https://htmx.org/docs/#parameters
Simple doesn't mean "I should be able to intuitively understand this with under a minute of reading"...
My gut reaction was "wow that sounds boring" but then I reread it and realized I would have absolutely been excited about this in high school.
I know they don't have plans to work with AMD but I'd consider switching to AMD for my next card if EVGA was manufacturing it. They fixed an old card of mine way out of warranty so I have some brand loyalty here.
If you're just building an MVP I think doing "magic link" auth is underrated. It's super easy to set up, relatively secure, doesn't need any of the complexity of passwords/sso, and is easy to migrate to a different system in the future.
Auth0 is complete overkill if you don't need their advanced features IMO.
I forgot where I read it, but there's a rumor that Apple is only planning to release a Mini phone every other year.
Ruby Under a Microscope - https://patshaughnessy.net/ruby-under-a-microscope
I have an LG C1, which is an amazing TV, but even after disabling every single ad-related option, I'll still occasionally get a pop-up ad when the TV turns on.
Employers cover a majority of the cost of insurance. In Boston, I pay maybe $70 every 2 weeks for health insurance, but on the private market I'd be paying 5-10x as much for worse coverage.
MySQL has a MEMORY[0] storage engine which might be of interest?
[0] https://dev.mysql.com/doc/refman/8.0/en/memory-storage-engin...
So many fond memories of playing weird DBZ games on BYOND!
Sure, but getting hundreds or thousands of people to join your Mastodon instance or whatever is a huge barrier when Twitter works fine /most/ of the time.
The marketing seems pretty straightforward? M1/M2/M3 (and their sub-variants) and fan/no-fan are the two performance aspects, and then you just decide whether you want a 13"/14"/16".
Corvus Insurance | Senior Software Engineer | Boston, MA | US Remote
https://www.corvusinsurance.com/careers?gh_jid=4455611003
We're a rapidly growing InsurTech startup (Series C, 50+ in Engineering) looking for Senior Software Engineers who want to write Elixir/Elm/GraphQL with us (even if you're new to FP!). We've used functional languages since Day 1, deliver software in 5-week cycles, and have an excellent culture with a very diverse and queer team.