Splitting the Brain: Plugin vs LSP
Why GALA's IDE runs on two processes and the sync contract that keeps them honest
Search for a command to run...
Series
A ten-part technical blog series exploring GALA — a modern programming language that brings sealed types, pattern matching, monadic error handling, and immutable-by-default semantics to the Go ecosystem. Each post takes a single concept, shows the problem it solves with real code, compares it to idiomatic Go, and is honest about trade-offs. Written for Go developers who want more expressiveness and functional programmers who want Go's runtime.
Why GALA's IDE runs on two processes and the sync contract that keeps them honest
Resolving receiver types from transpiler metadata when you don't have one
When your transpiler knows the types but your editor doesn't
How profiling, batch analysis, and content-addressed caching took multi-file compilation from 44.7s to 2.0s
What breaks when you map functional programming onto Go's type system, and how testing infrastructure keeps it fixed
46 releases, 216 tests, 22x faster compilation — two months of building a language that transpiles to Go