~

Roadmap

Improve Developer Experience

Summary

Urbit, like all operating systems, is primarily a tool for developers to build applications. For Urbit to win, the experience of developing applications needs to be top-notch. A few things need to work well for this to be the case. It should both be quick and easy to write and distribute a small application and know that it works properly. Sophisticated applications with large teams of developers and complex internal processes also need to be low-cost to maintain. Finally, the developer experience of Urbit OS itself (kernel and runtime) needs to be good, to maximize productivity when working on the core system.

A lot of different considerations factor into developer experience: source code management, dependency management, build times, general reliability, software distribution features, internal and external build system features, support for continuous integration and deployment, test harnesses, debuggers, telemetry (e.g. logs and metrics), and diagnostic tools all play a role.

Not to be discounted is the effect of the quality of an API on developer experience. A clean API that exposes solid, composable abstractions and has an ergonomic interface facilitates productivity much more than an API with leaky abstractions and a finicky or fiddly interface. The Urbit operating system exposes several such interfaces, and they should all be high-quality.

Projects

Completed

Use Nouns over HTTP

duration

1 Month

end date

2023-05-09

Eyre, Urbit's HTTP server, only supports communicating using JSON at the moment. Using "jammed" (serialized) nouns over HTTP would move JSON conversion logic from the server to the client, allowing a fully featured Gall agent to be written, including communication with a web client, without needing to write JSON conversions in Hoon.

Completed

Terminal Improvements

~palfun-foslup wrote a whole suite of improvements to the terminal. This opened up a lot of opportunities for better developer experience and terminal-based user experience.

Current

Native UI Research: Alpha

start date

2023-01-30

end date

2023-04-15

One of the main barriers to writing an Urbit app is that the standard way to present a user interface is by writing it in JavaScript that runs in a web browser. This has advantages, but it requires writing code in two languages, and it means you can't stay in Urbit entirely when writing an app.

Next Up

Native UI Research: Test-type

duration

3 Months

start date

2023-03-22

One of the main barriers to writing an Urbit app is that the standard way to present a user interface is by writing it in JavaScript that runs in a web browser. This has advantages, but it requires writing code in two languages, and it means you can't stay in Urbit entirely when writing an app. This phase of the work involves allowing hoon UI specifications to be rendered to a browser

Future

libames

duration

TBD

owner

TBD

`libames` would aid in integrating Urbit with other systems, writing iOS clients, and allowing Urbit to be used in internet-of-things applications.