}

zenonet

WebComposition

This summer, I created another programming language for fun. I worked quite a lot with jetpack compose (a declarative, kotlin-based UI-Framework for Android) and really liked this approach of declaratively creating UI in a Programming language. My main problem with jetpack compose was state-management. To allow Compose to automatically recompose UI when a variable changes, you need wrapperclasses and all that stuff to be able to catch state changes.

My idea was to create a little programming language that is a declarative UI-Framework as well. Having the UI-Framework and the programming-language this close together would allow me to catch state-changes directly without any caveats for developers.

Based off of this idea, I create WebComposition, a programming language that allows you to write UI declaratively like jetpack compose without any boilerplate for state-awareness. WebComposition runs in the web as WASM and renders UI as HTML. When using a variable anywhere in UI, changing that variable will result in the UI being recomposed and rerendered meaning you don't have to worry about data-UI-desync.

You can read more about WebComposition in the readme on github.

You can also try out the browser-based live-editor.

I am incredibly proud of this project because of its my most advanced programming language so far and it actually has some use. I'd be really happy if you check if out.