This project is currently on hold. We may consider resuming development in the near future if there's continued interest or demand. For updates on our ongoing projects, please check our Discord or X.
Status: All releases are behind the previous schedule for several reasons, so I updated it below.
Reasons:
- I'm building query-flow for
deskc
anddworkspace
. - I plan to discard the current
mirgen
and design a new MIR intervening between Desk-lang and low-level IR to generate a GC-less binary, which is fast as Rust in theory (in my mind). - I've switched to Ubuntu Desktop from M1 Macbook Pro mainly for financial reasons. As a subsequence of it, I can utilize the mold linker.
- I've returned to Neovim after several years of a temporary stay in the VSCode.
- With the lowest priority, I have about three my own projects now to improve IDE experience with the Neovim ecosystem.
- I've built a Keyball39, a split keyboard placing a injection-molded trackball slot in the really ergonomic position.
- I'm going to completely re-design the Desk-lang.
Pre-release includes:
- incremental Desk-lang compiler
- DeskVM with an official scheduler
- a file system for Desk-lang
- Desk-lang visual editor
- A web demo like Rust Playground for Desk-lang
The first release includes:
- MVP of Desk Craft, a game engine
- a platformer game demo
- a space to publish created games
- real-time collaboration on Web
- paid plans for Desk X (official hosting)
See the draft of the first release
๐ฏ Blur the line between living and coding ๐ฏ Make every software programmable
- ๐ฎ Intuitive like games
- ๐ฅผ Pragmatic like professional tools
- ๐บ๏ธ๏ธ Versatile like spreadsheets
- ๐ Accessible to everyone
- ๐น Minimalist design
Desk apps are inherently:
- ๐ผ code-oriented like data-oriented
- ๐ statically-typed (data and UI)
- ๐ค programmable (extensible by code)
- ๐งฒ interoperable with other Desk apps
- ๐ฑ running on everywhere (web, desktop, mobile)
Desk is consist of:
- Desk Programming Language and Desk Compiler (deskc)
- Desk Workspace System (dworkspace)
- DeskVM (deskvm)
- Desk-plugins (dplugins)
Desk-lang is a programming language that has:
- minimalistic syntax and semantics
- type system with inference
- algebraic effects
- content-addressable by type and UUID
- incremental compilation
Most of the data and programs on Desk apps are finally evaluated as a snippet of Desk-lang.
Desk compiler is an incremental compiler for Desk-lang.
Crates
- deskc: the incremental compiler
- deskc-lexer scans Desk-lang source code and generates tokens
- deskc-parser parses tokens and generates an AST
- deskc-typeinfer infers types of expressions.
- deskc-mirgen generates MIR
Desk-workspace is a platform-agnostic environment for editing Desk-lang.
Desk-workspace provides these features:
- file system for Desk-lang
- permission management system
- realtime collaboration support
Crates
- dworkspace: the implementation
- dworkspace-codebase defines structs for a codebase
DeskVM is a runtime for Desk-lang influenced by Erlang VM.
Features
- platform-agnostic
- capable of running many programs as a d-process
- type-driven message passing and pub/sub
- interpreter-agnostic: DeskVM can run anything as a d-process
- preemptive scheduling
- custom scheduler support
Crates
- deskvm: the implementation
- deskvm-dprocess defines structs of such as d-process
There are many Desk-plugins. Each Desk-plugin implements a single feature as a Bevy Plugin.
- ๐ง Desk Craft for game development
- ๐ง Desk Brain for productivity
- ๐ง Desk Verse for communication
- ๐ง Desk Robot for automation
- ๐ง Desk Board for BI
- ๐ง Desk Calendar for scheduling
- ๐ง Desk Pages for hosting
๐ง not yet implemented
Yes.