Elixir v1.20 released! Now officially a gradually typed language: Elixir type checks every single line of code, finding bugs and dead code, without developer overhead (no typing signatures) and extremely low false positives rate. Plus a faster compiler! Links and reports below.
I've built a new JavaScript runtime that runs inside the BEAM.
Every JS runtime is a GenServer with its own OS thread. No JSON anywhere — JS objects map to BEAM terms natively through a lock-free queue.
What makes it different from running Node/Deno/Bun alongside Elixir:
→ JS runtimes live in supervision trees. They crash, restart, recover state — standard OTP
→ fetch() goes through :httpc. WebSocket through :gun. crypto.subtle through :crypto. BroadcastChannel through :pg — works across a cluster
→ The DOM is lexbor (C library). JS renders into it, Elixir reads it directly — no serialization, no re-parsing
→ Workers are BEAM processes. They get preemptive scheduling for free
→ TypeScript toolchain (OXC) and npm client built in — no Node.js on the machine at all
Full control over the JS layer: parse ASTs, bundle imports, transform TypeScript, minify — all from Elixir via OXC NIFs.
Use cases:
— SSR with Preact/React into native DOM, Elixir reads the tree
— Sandboxed user-defined business rules with memory limits, timeouts, and a controlled API surface
— Parallel Workers that compute and broadcast via distributed process groups
— Evaluating or bundling TypeScript without any external toolchain
— Running npm packages inside the BEAM
Still a research project in early beta. Covered with tests including Web Platform Tests ports, but expect rough edges.
https://t.co/OCB2aoombd
Saying "isolated processes for fault tolerance are not relevant because they were pushed to orchestration layer" is like saying "we don't need threads, because we will just run one pod per core anyway".
The difference in reacting and responding to "my connection pool crashed" by restarting the pool locally vs restarting the whole pod is going to be massive, similar to the differences in latency when coordinating across threads vs across pods.
Yes, other programming languages have threads, and they raise a signal when they fail, but that's missing the point. What matters it not the signal but the guarantees. If you have global mutable state and a thread crashes, can you guarantee it did not corrupt the global state? If you can't, the safest option is to restart the whole node anyway, because it is best to have a dead node than running a corrupted one.
PS: somewhat related 6-years-old post: https://t.co/TaRHZ515Iy
Hi there, Elixir friends! Hologram v0.7.0 is out! :)
49 contributors ported 150 Erlang functions to JS, pushing client-side Erlang runtime coverage from 34% to 96%.
Hologram compiles Elixir to JavaScript, enabling full-stack development in pure Elixir - and soon, Local-First apps.
https://t.co/WX9fuT282O
#Hologram #Elixir #ElixirLang #BEAM #WebDev
The top critical replies to Coder Girl here were "4 hours fixing audio drivers nobody asked about", "Installing Linux is a mess", and "sure if you don't like to game".
I have been a Linux user since SlackWare in the mid 90s. I would have agreed with all three of those up until around a year ago.
Here is the reality I have been experiencing now:
1) My livingroom gaming machine is now permanently Bazzite. I installed the default Bazzite distribution from a USB key with no modifications. It can run Steam in deck mode, so I can use it with my (Microsoft!) XBox controller, and I play almost exclusively Windows games on it, which run (shockingly) flawlessly in Proton. I have yet to encounter a single compatibility problem, although I am sure I would if I played competitive shooters since their anticheat kernel drivers are designed to prevent using it anywhere but on unaltered Windows distributions. Anticheat is really the only thing holding Linux back from being an immediate substitute for a Windows gaming machine.
2) My audio workstation is now also Bazzite, since I figured it was easier than maintaining two distros. Default install just worked, no drivers necessary, despite the equivalent Windows install needing both Yamaha and Behringer drivers to be installed manually to function properly. It "just worked" out of the box for audio as compared to the Windows equivalent, and has been rock solid - no drop outs, no crashes. I did not have to touch a single audio configuration option. I just installed Reaper and PianoTeq, and everything worked.
3) The only machine I've found so far that has trouble working out-of-the-box with Linux is a Microsoft Surface tablet. But I still got it to work, it just required me to manually install a kernel patch because support for things like the Surface touchscreen aren't built into Linux distros currently. Once I did install the patch manually, it works perfectly, and even has a touchscreen keyboard just like Windows does. So even Microsoft's own hardware can run Linux just fine, and it would even be turnkey if your Linux distro of choice decided to mainline the Surface driver repo.
The bottom line is that people who think Linux is worse than Windows either haven't used it lately, or are not being honest about how bad Windows has become.
Windows is circling the drain. Every update, it gets worse. The number of problems I regularly have to solve on our remaining Windows machines dwarf anything I have to do for Linux system maintenance.
Windows had a good run, but Microsoft has obviously focused its resources on SaaS and cloud computing. They don't care about Windows anymore, and neither should you. The next decade is about transitioning to Linux everywhere.
Typescript is installed through meteor install. Outside of package.json. How can you know this will be a good integration of typescript? You are limited by the version of typescript meteor pacakge. You have to wait for the community to update it.
The developer has to deal with the build system in place. It bundle all the code in a module.js file of megabytes size. No async loading. This is not made for slow networks.
So... Postgres is now basically a search engine?
pg_textsearch was just open sourced. It enables BM25 to search your database.... massive upgrade for key word search.
Google uses BM25 in their search engine.
Claude told me: "if you're already on Postgres, you can now skip the whole sync-your-data-to-Elasticsearch dance for search."
(ps, how can you not love Claude).
Now I got to figure out how to implement in my Django querysets... future course?
Grab it at https://t.co/bMwRSgtOcO
#sponsored