Interview, Fireside Chat
Building a UI Framework with Ty Overby
- Building a debugger for Bonsai leveraging its static component graph for navigation and value inspection is predicted to become possible.
- Google is anticipated to replace DOM-based rendering with Canvas rendering for various components within the Google Docs suite.
- The Houdini proposal is expected to offer direct integration with layout engines and powerful user event APIs, though adoption timelines and final feature sets remain unclear.
- WebAssembly may eventually support a garbage collector for OCaml, enabling native execution on the web platform without external GC dependencies.
- A new OCaml feature known as "let punning" is expected in a very new version to reduce verbosity by allowing variables matching value names to be ignored.
- A CSS hashing project merging into the repository is expected to solve style name clashes in Bonsai by generating unique names based on string contents and filenames.
- Re-implementing standard text input behaviors like text shaping and cursor management on a Canvas renderer is estimated to require a cost equivalent to years of work.
- The browser DOM and layout engine limitations are expected to persist for a while, despite desires for more direct control.
- Future language designs are predicted to increasingly acknowledge metaprogramming as a standard feature, with trends observed in Zig, Rust, and C#.
- OCaml's current macro system is viewed as too powerful for small, lexical-scope-only extensions and not fully integrated into the language in a modular way.
- Future work is expected to strengthen OCaml's macro support and expose them in a modular fashion to improve usability.
- UI-based design tools are predicted to almost always fail to expose sufficient power to developers without powerful hooks or a transition back to code.
- Bonsai is expected to be ineffective on platforms relying primarily on mutation without a virtual DOM style abstraction.
- The Bonsai graph structure is defined as static after the initial setup phase, meaning no new component possibilities can be added at runtime.
- Excel's success is attributed to the tiny barrier between viewing results and editing the formulas that produced them, despite its equation language being very limited.
- The Blender node system is cited as providing incredibly powerful visual debugging of intermediate shader steps, a capability described as impossible to replicate purely in code.
- The Svelte project, which compiles UI components specified ahead of time, is considered a model that "might have been developed for the web with hindsight."
- The CSS language itself is regarded as quite nice, with implementation issues attributed to browser layout engines rather than the language syntax.
- WebAssembly may eventually provide features to support an OCaml garbage collector if standard integration is not approved.
- Side effects within a Bonsai application are expected to be confusing, and the system relies on a static graph structure that cannot be dynamically extended.