10 ms·
Atom-in-orbit: Putting Atom in the browser
- fokinsean 10y agoYo dawg, heard you like web apps, so we made a web desktop web app. In more seriousness, it would be cool to see atom in the web kind of like the cloud9 editor.
- andrewclunn 10y agoBut can we use it to code a version of chromium that runs on electron?
- oneweekwonder 10y agoBig c9sdk[0] fan here. I don't have high hope, because last time I tried atom on my i7 it ran like a dog. [0]: https://github.com/c9/core https://github.com/c9/core
- dagenleg 10y agoOh, we've gone full circle now, haven't we?
- skocznymroczny 10y agoWell, now it's time to port Atom-in-orbit to something like Electron, so that it works offline and doesn't require a web browser.
- Philipp__ 10y agoWhere it belongs in the end...
- tibbon 10y agoI do hope they are able to pull this off well. 20 years ago, I could have never imagined decent word processing software in the browser (I remember trying a portable Java version of Word Perfect that was a trainwreck), but now Google Docs is really quite good and I personally have no reason for anything else. Do I really need to have my code editor locally? I can't imagine why.
- mempko 10y agoI'm guessing this is what mainframe users felt like. Why would anyone want a PC? When you have lovely smart dumb terminals.... we have come full circle.
- woofyman 10y agoAs a former mainframe user, we gladly and excitedly ditched our dumb terminals for personal computers. The user experience was so much better.
- Philipp__ 10y agoBecause I need speed and no dependencie on Chrome whatsoever. I doubt something like Emacs would be possible to have "on cloud". And Vi is everywhere already.
- dragonwriter 10y agoAnything that can be used from a remote server can work from the cloud, and Emacs was running from remote servers long before "cloud" was a thing.
- johnbellone 10y agoIt is very much possible to have something like Emacs on the cloud using Clojurescript. There are a lot of nuances with Emacs-lisp that would need to be handled, but I am sure its not insurmountable.
- bmj 10y agoDo 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.
- 10y ago
- andrewmutz 10y agoThis sounds like a fun addition to my docker-compose.yml. Instead of installing a text editor or IDE locally for development, fire up one while developing and just write my code in the browser.
- vvanders 10y agoNot sure I'm a huge fan of my editor in "the cloud". I don't want to depend on someone's data center in order to be able to compile. 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.
- SixSigma 10y agoI spent a year developing embedded C++ code in http://Mbed.org/ http://Mbed.org/ It was quite joyful and I could import third party libs with drag & drop and get updates with a few clicks
- VikingCoder 10y agoI feel like I need to remind people, just because the interface is in the browser doesn't mean the back-end is running on someone else's computer. For inspiration, look at sandstorm.io
- colemickens 10y agoWish they would've done this with VS Code instead. The editor is vastly more performant and already works in the browser: https://github.com/Microsoft/monaco-editor https://github.com/Microsoft/monaco-editor
- fabiorocha 10y agoSee link by octoploid above.
- FlorianRappl 10y agoSame here - VS Code is much better performing than Atom imho.
- octoploid 10y agohttps://spiffcode.github.io/ghedit/ https://spiffcode.github.io/ghedit/
- fokinsean 10y agoWow this is almost exactly what they're trying to do. I made the transition recently to vscode and am enjoying it over atom for js development.
- tedmiston 10y agoWould be nice to see a demo or try it without giving GitHub auth.
- octoploid 10y agoLook at the gif that shows how it is used on torvalds/linux: https://github.com/spiffcode/ghedit https://github.com/spiffcode/ghedit
- mrkgnao 10y agoWow, this is good. I'm guessing highlighting support could be improved -- I opened a Haskell file and it was just plain text. One remarkable benefit for me is the fact that this plays nice with Vimperator.
- msoad 10y agoVSCode has a browser version as well[1]. It's just the editor. Similar to CodeMirror. [1] https://github.com/Microsoft/monaco-editor https://github.com/Microsoft/monaco-editor
- FlorianRappl 10y agoIt's the text editor control (used, e.g., in Visual Studio Team Services). The editor (incl. plugin system, IO, ...) is afaik not available as a webpage.
- Matthias247 10y agoIt's a little bit more than only an editor. E.g. it contains the complete framework for custom languages with syntax highlighting, auto completion, annotations, etc. You can easily plug in support for your custom languages there. What it doesn't contain compared to VsCode is multiple panes, file management, etc.
- ytechie 10y agoThe App Service Editor (which uses Monaco) does have file management. It even has a web-based command-line interface. https://github.com/projectkudu/kudu/wiki/App-Service-Editor https://github.com/projectkudu/kudu/wiki/App-Service-Editor
- Matthias247 10y agoYou can of course build file management on top of the base Monaco component. Monaco itself provides only APIs to set or retrieve the content of a monaco editor widget. You can then build some kind of filemanager on top of it which loads file contents from whereever and puts them into an editor instance.
- egamma 10y agoActually you can try out VSO Monaco easily at https://tryappservice.azure.com/ https://tryappservice.azure.com/. It supports Git, file management, a console etc. For a set of short videos see https://channel9.msdn.com/Series/Visual-Studio-Online-Monaco https://channel9.msdn.com/Series/Visual-Studio-Online-Monaco
- daleharvey 10y agoNice idea for a project, but please reconsider the assumption "It is generally fair to assume the user is online while using the app." 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.
- alexpersian 10y agoIf a user was offline, wouldn't they just be using traditional Atom then?
- amelius 10y agoPerhaps not if they started while being online.
- TheAceOfHearts 10y agoAtom targets desktop clients, which usually have fast and reliable internet.
- toomuchtodo 10y agohttps://en.wikipedia.org/wiki/Fallacies_of_distributed_computing https://en.wikipedia.org/wiki/Fallacies_of_distributed_compu...
- qudat 10y agoI feel like plugins are going to be really difficult to figure out. How are they going to allow javascript to be dynamically loaded in at runtime and ensure any kind of safety?
- Klathmon 10y agoWhy will safety be any different than loading them in the desktop app?
- navait 10y agoSadly, I could not find the original paper, but we studied this in my security class. Google allows add-on extensions in google docs that are untrusted. They do this by transforming un-safe behaviors in the source javascript to safe, contained behaviors in the plugin that actually runs. This technology could be adapted for this project as well.
- ec109685 10y agohttps://developers.google.com/caja/ https://developers.google.com/caja/
- petemill 10y agocloud9ide already did this
- arechsteiner 10y agoNot up to date with atom/electron but I kind of assumed that the whole point of building an editor in JavaScript was to be able to use it in some sort of browser context, for example on GitHub. Why else would someone build an editor in JavaScript?
- epmatsw 10y agoEasy crossplatform development in a language and framework that a huge number of developers are familiar with.
- crooked-v 10y agoAnd, at the intersection of those two factors, the ability to easily make complicated editor plugins that Just Work without having to worry about the specifics of different OSes.
- kminehart 10y agoI don't think it's necessarily about using JavaScript as much as it is about using Chromium / Electron to easily create a consistent cross-platform experience.
- skybrian 10y agoSomething like this is great for the following use case (1) you have a Chromebook, and (2) your working directory is on a remote workstation. 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.
- bandrami 10y agoThat's why I love Emacs' tramp mode. Run Emacs on my laptop; access any file I can ssh to. Though also keep in mind that if you have an X11 server running on your laptop you can run any X11 client application (say, your favorite editor) on a remote machine and just have it display on your laptop.
- nothrabannosir 10y agoX11 over network is not a reasonable alternative to running an app locally which syncs data intelligently. Like e.g. a web based editor, or emacs in tramp mode. 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.
- bandrami 10y agoOTOH it's very useful for running computationally expensive programs on my relatively powerful VPS while displaying them on my completely underpowered Chromebook.
- webmaven 10y ago> But if you want to use a different editor, you're out of luck. 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 https://en.wikipedia.org/wiki/WebDAV [1] https://github.com/libfuse/sshfs https://github.com/libfuse/sshfs [2] https://en.wikipedia.org/wiki/SSHFS https://en.wikipedia.org/wiki/SSHFS
- seanwilson 10y agoCould this work as a Chrome extension instead? You get way less restrictions (e.g. CORS).
- gravypod 10y agoI can't wait for browsers to become a first class application development framework and for things like SELFHOSTED-cloud UDEs to become more mainstream. Dev machines can become smaller and collaboration will become easier.
- Klathmon 10y agoThe one thing that bothers me about using an editor in the browser is that filesystem access is a headache no matter how you do it. 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. [0] https://github.com/creationix/js-git https://github.com/creationix/js-git
- oweiler 10y agoYou can always use a reverse-proxy to circumvent CORS.
- Klathmon 10y agoBut then you're back to needing to run your own proxy server as it's also going to have to terminate SSL and therefore will be able to read everything that goes through 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.
- scottlu2 10y ago
- oblio 10y agoI hoped I wouldn't have to do this, but I'm currently in a very locked down environment and "non-installable" apps are very appealing.
- mmanfrin 10y agoSooo... we're putting a javascript frontend webapp wrapped in electron in to a wrapper to emulate a filesystem in the browser so we can use that frontend webapp in the browser. Welp.
- dualogy 10y agoI think they should just recompile the whole Electron app-wrapper shell (with its whole own webview + JS engine) into asm.js via emscripten via LLVM for "putting Atom in the browser". What could go wrong! While you're at it, you'll surely find another 10-50 sturdy FOSS dependencies you can require for this to build --- heck, we're not reinventing Sublime Text here anyway, this is Cloud Scale 'n all.
- mmanfrin 10y agoJust as planned: https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript https://www.destroyallsoftware.com/talks/the-birth-and-death...
- deleted 10y ago[deleted]
- maglavaitss 10y agoWhat problem is "Atom-in-orbit" trying to solve? Those times when you're always online and you can't be arsed to download a full-featured IDE, so you transform your browser into a memory-gulping machine? I think we're just throwing solutions out there and try to find the problem to fix later.
- reledi 10y agoThis is answered right near the top of the README: https://github.com/facebooknuclide/atom-in-orbit#motivation https://github.com/facebooknuclide/atom-in-orbit#motivation
- spankalee 10y agoI tried to get Atom running as a Chrome App a while back, but it's so entangled with Node APIs that it was extremely difficult even for another local environment. 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.
- ryanmarsh 10y agoThe more things assume you're online with a decent connection the fewer things I can do on my laptop when I fly. I feel like my devices get less useful on the plane each month.
- dolftax 10y agoThis makes me sad, though! - http://caniuse.com/#feat=filesystem http://caniuse.com/#feat=filesystem