2 ms·
Last year you wrote "maybe the future of all software - but I'm not ready to talk about that yet." Are you ready to talk about it?
by DennisP 4y ago
Last year you wrote "maybe the future of all software - but I'm not ready to talk about that yet." Are you ready to talk about it?
- josephg 4y agoI think its ridiculous we still use binary files in native software. I want a world where the operating system stores semantically rich data (imagine if all files on your computer were JSON or something). Instead of an app "saving" by overwriting the entire file, an app could send a patch (diff) to the OS, which could store a transactional change log. Immediately we'd get faster saving, and no chance at data corruption when things get saved. And we could have optional change tracking for everything. Then rather than loading the data from disk at startup, apps could subscribe to a change feed from the OS. I want to be able to open the same file in 2 apps. As I edit the file in one app, I should see my changes immediately appear in the other app. CLI tools like wc could update the word count of a file live, as its being edited. Compilers could consume code changes live, and update binaries based on super fine-grained incremental compilation, without needing to diff. And this model could be extended to the cloud. Right now you can't really store a google doc on your local computer and have it sync in an intelligent way with actual google docs. And if you use Dropbox and two users edit the same file, the file ends up in an unresolvable conflict state. With this model, and using CRDTs, we could seamlessly replicate changes between devices and users. So, I could edit a file locally (on a plane), it could replicate over wifi to my phone and I can keep editing it there. And then I could share it with another user, who can see my changes, edit it with me and so on. And the same data could be exposed through a collaborative editor in the browser, or with native apps. Thats the model I want for computers. None of this "native vs web app" distinction. Just a user's work, transparently replicated. I'm working on building a platform for this, but I'm not ready to demo it yet.