Post

Fresco is a ruby-framework that compiles down to a binary via Spinel (matz/spinel). It's super early, but I have something cobbled together that seems to work (and not segfault every fifteen minutes!) Fresco is fresh, it's new and it's inspired by Hanami and @hanakai.org

I knew you'd done something with Spinel so had to dig through your post history. Thoughts on spinel? Particularly the limitations for web apps?

that said the main issue I felt when trying it for a web app was the a) lack of library support and b) the pain of needing to compile it to test it between changes, but if you can keep writing CRuby that is compatible ala my fresco thing did, you can get the best of both worlds imo

Yeah, currently got Fable building out some experiments in the direction of “Cloudflare Workers but make it spin(el)”. So far, so ridiculously fast but definitely a few gotchas

pretty slick I'm sure, I took my learnings from Spinel and started building my own little language that can do all it can and more tbh with Fable and now Astra haha

0 reposts1 like

my thought last night was… Ruby (and Rails) are in danger because I've started mostly not caring what the implementation language or framework is for small utility apps. I mostly just use Cloudflare Workers now, which got me thinking: if I want to preserve Ruby, can I make it a serverless language?

I do find I still move towards ruby for apps I have the AI generate for me, only because I have 10+ years of experience and can judge quality better but tbh I'm rarely looking at code much anymore for personal projects so it matters less and less

yeah that's bad ass. two years ago I would have been in the no other language but ruby camp, but these days I use whatever gets it done. It's not uncommon to have an LLM produce ruby, javascript, rust, swift, and kotlin for me on various projects. ruby-style languages on cloudflare workers... +1

the library-support wall is the recurring one for anything ruby or python shaped targeting workers. building a pdf filler for that runtime hits the same wall, native libs and headless chrome are dead on arrival, so you reimplement in pure js or wasm, exactly the compile-test pain you're describing.

ruby.wasm already gets you cruby compiled to wasm running in workers via the wasm bindings, no need to invent a new language for it. cold start on the wasm blob is the real tax, not the language semantics

In most cases I’ve considered, if you have to use wasm to run Ruby on a platform then you negate the advantages of that platform (Cloudflare workers, the browser etc). WASM is cool but is almost always the wrong solution

depends what's in the wasm blob. we run mupdf-wasm in workers for pdf rendering since there's no native binary path there, and it still beats reimplementing in js. cold start tax scales with blob size, not wasm as a category. a 15mb cruby runtime pays a different tax than a 200kb module.

sure can do that. But there's learnings to be had and fun on the other side that I don't get with wasm. Not trying to make it big with my lil fun programming language :)

that's fair, building your own language is a way better way to learn than reaching for the wasm shortcut. langs you actually understand end to end beat langs you just consume, even if the practical answer for prod ends up different.