Atom-in-orbit: Putting Atom in the browser
github.com
github.com
That assumption doesnt always hold true and even when true the internet is slow and unreliable and depending on it makes webapps slow and unreliable.
IMHO, atom in browser will be perfect for online code school.
That'll stop the obvious debate that always ensues...
While this is just my guess, I honestly think there should be more users with constant internet access than all emacs users(no harsh feelings, I use emacs myself, my point is just we are a minority group).
Really the problem we should solve when using this kind of editor is spotty connection(like in an airport or at a conference), it's not a use case targeting environment without any internet access.
In more seriousness, it would be cool to see atom in the web kind of like the cloud9 editor.
What it doesn't contain compared to VsCode is multiple panes, file management, etc.
You can always ssh in, use tmux or GNU screen, and use a terminal-based editor emacs or vi. But if you want to use a different editor, you're out of luck.
An alternative might be to get some kind of remote desktop going, but that only works well with good latency, since every keystroke and mouse movement is going over the network.
A web-based editor should be less chatty. True offline access doesn't matter for this use case; ssh wouldn't work anyway.
Also, keep in mind that some companies don't even allow you to put your working directory on your laptop. With a monorepo, downloading the company's entire codebase (or even just the parts you need to compile) is risky and impractical.
The lag is noticeable and a bad or spotty connection makes it a no go. No way you can tether or work on a train.
Back in the day, we used WebDAV[0] for remote FS access. This had some issues with file locks (with multiple users accessing the same directory) and cross-platform compatibility (mostly between different versions of Windows and/or Office), but most of the time it Just Worked.
Anyway, there are also other open source solutions like sshfs[1][2] available that sidestep those issues (as long as only one user is accessing the remote copy, anyway).
[0] https://en.wikipedia.org/wiki/WebDAV
Running language services remotely across a slow network may not be practical because downloading all those files (to build the search index) requires a lots of bandwidth.
- we work in an environment where our code lives remotely and desktop client software won't work
The problem with virtualization is that you still need to download all the files. And it's still on your laptop, which could be stolen.
One remarkable benefit for me is the fact that this plays nice with Vimperator.
That said the one place I saw where it was useful was Pebble due to complex nature of the dependencies + compiler versions. However it doesn't seem like the use case here is the same.
It was quite joyful and I could import third party libs with drag & drop and get updates with a few clicks
For inspiration, look at sandstorm.io
Why else would someone build an editor in JavaScript?
Proxying to a server is annoying and ugly (and requires an always on connection to do anything substantial), and loading from the local filesystem is slow, complicated, and difficult to use and re-save. But I think there could be a really powerful way of solving this problem that I haven't seen mentioned anywhere else.
Work directly from a hosted git repo over HTTPS.
It would require a re-implementation of a subset of git in javascript, but from there you could plug it into the BrowserFS as a backing store, and you could then work directly from a git repo (and not just from a "blessed" git backend, but from any git backend that provides "git-over-https"). Loading files from there, saving them locally in indexeddb or something, then committing them back to the repo when ready.
I've only given this a minute or so of thought, so please tell me if i'm missing something big here.
Edit:
Giving it a little bit more time, it looks like a js reimplementation of enough of git for my uses already exists [0], and there seem to be at least 3 others as well. But in the notes he mentions that CORS is not and most likely won't be enabled for github which could be a problem. However that's not really a technical problem but more of a "political" one. If something like this became popular and perhaps other hosted git solutions (like GitLab) decided to allow you to enable CORS per account or repo or something, it could light a fire under GitHub's ass to allow it.
For this to be truly useful, it needs to embrace the "go to a URL and it works" paradigm of the web. If I need to install something locally, or setup a proxy server, or install some code on my git server, it's a non-starter to me.
I promptly reached out to GitLab, but I guess at the time they hadn't found it to be a use-case worth the trouble: https://twitter.com/gitlab/status/572860578646999040?cn=cmVw...
I think we're just throwing solutions out there and try to find the problem to fix later.
Given that Atom is so optimized to run as a local app, with a local file system and no huge penalty for loading tons of code, I think it'd be much easier to start over with the component parts and build a new PWA designed for the web: all filesystem operations should be async, and all plugins loaded on-demand, and possibly running on the server.
Do I really need to have my code editor locally? I can't imagine why.
Because sometimes I'm in a place where I do not have internet access, yet would still need to do productive work?
ETA: I don't think it's a bad idea to have the ability to run an editor in the browser...I'm merely suggesting that there are actually real world use cases for having your text editor installed locally on your machine, along with a repository of your work.
Welp.
https://www.destroyallsoftware.com/talks/the-birth-and-death...