6 ms·
Developers are quite conservative of their environment, but a cloud IDE could be awesome. I want to write code on a 2 lb MacBook, with continuous build-as-you-
by Rezo 10y ago
Developers are quite conservative of their environment, but a cloud IDE could be awesome.
I want to write code on a 2 lb MacBook, with continuous build-as-you-type in the cloud on a fleet of Xeons that have larger CPU caches than my entire project.
Have 5, 50, 500 tests that need to run? Run them all in parallel continuously and get immediate red/green feedback in your IDE. Behind the scenes Lambda takes horizontal scaling from minutes/seconds down to milliseconds, so go radically horizontal.
I want my editor, exactly as I left it, down to the open tabs and cursor position, on any machine. And pair-programming Google docs simultaneous-edit style, without either party giving up the ability to run/debug the software on their own.
What if the FaaS/Lambda lifecycle management was tightly integrated in the IDE? Working on, testing, versioning and publishing a function could be re-imagined in a non-file centric way.
- jjnoakes 10y agoDoes a cloud IDE work well with a flaky network connection? Any time I see a network-always-on browser-based service, I'm only interested in it if I can run offline and synchronize my state in the background. Which is exactly what I do. I use a local editor on different machines. I sync my projects (git). I get builds and tests farmed out for me automatically (CI). I'm just not dead in the water if I'm on a train, or a plane, or in a car, or my network dies, etc.
- tedmiston 10y agoI haven't tried running C9 in a connection that intermittent or totally offline, but it does work well for hopping on/off across networks without losing local state in the browser.
- jjnoakes 10y agoWhile offline, can you do anything useful though? Or do you just have to wait to come back online somewhere else?
- tedmiston 10y agoJust tried C9 again -- You can change text in open files, but you can't open new files (doesn't seem to cache everything) and I couldn't refresh the browser view of my web app. To be fair, my app pulls some assets from CDNs, but if C9 gave me cached versions or just failed to load them I could have kept working. I'd say at this point, fully offline is too limited... at least if your use case involves many files and building web apps.
- zeveb 10y ago> I want to write code on a 2 lb MacBook, with continuous build-as-you-type in the cloud on a fleet of Xeons that have larger CPU caches than my entire project. Your editor doesn't need to run remotely in order to do this; it just needs to be able to run things remotely in order to do it. > I want my editor, exactly as I left it, down to the open tabs and cursor position, on any machine. You could build this from syncthing and emacs, if you wanted. > And pair-programming Google docs simultaneous-edit style, without either party giving up the ability to run/debug the software on their own. You can do this, too, with emacs. It's just a simple matter of programming. Why spend time reinventing the wheel when there's already a network-aware, extensible editor with man-centuries (man-millennia?) of extensions already built?
- mawburn 10y agoWhat if he doesn't want to spend the next 6yrs learning Emacs? c9 has a very low entry bar. It's not reinventing the wheel, it's improving it. You can't really compare a terminal based editor, with an extremely high learning curve, to a preconfigured web based IDE.
- zeveb 10y ago> What if he doesn't want to spend the next 6yrs learning Emacs? From rms's ruminations on Lisp & emacs (https://www.gnu.org/gnu/rms-lisp.en.html https://www.gnu.org/gnu/rms-lisp.en.html): >> Multics Emacs proved to be a great success — programming new editing commands was so convenient that even the secretaries in his office started learning how to use it. They used a manual someone had written which showed how to extend Emacs, but didn't say it was a programming. So the secretaries, who believed they couldn't do programming, weren't scared off. They read the manual, discovered they could do useful things and they learned to program. It's really not hard to use a decent text editor like emacs. > You can't really compare a terminal based editor emacs has supported X11 since at least November 1994 — your information is at least two decades out of date. I've got a nice GUI emacs frame open right now. > with an extremely high learning curve Learning emacs is not really hard at all. There's a lot to learn, but that's because it does a lot. If something is quick to learn, by definition there can't be much substance to it. > to a preconfigured web based IDE Check out emacs prelude (https://github.com/bbatsov/prelude https://github.com/bbatsov/prelude): it's a great some of mostly-sane emacs defaults in one easy-to-use package. Heck, emacs out of the box is pretty great, too. It evens displays a nice little message about how to use its built-in tutorial.
- jamra 10y agoIt's funny that you use the 2 lb Macbook as an example. Mine has a terrible problem with its wifi, requiring me to restart it every minute or so. It's unusable with Cloud9's IDE. Furthermore, their IDE is extremely slow and vim mode is broken. Other than that, I share your ambition and hope that one day some other company will solve this. Perhaps Microsoft will be the first. Visual Studio Code has as a nice web-based editor.
- sytse 10y agoThis is a great idea. It makes much more sense to run your tests in the cloud than on your local machine. I don't think it can be done 'as-you-type' due to resource constraints. But I do think it can be done pre-commit. As a programmer I'm waiting for my tests to finish for hours per day, leading to a lot of inefficient multitasking and distractions. Obligatory adapted XKCD http://www.codeproject.com/Articles/381622/Unit-test-and-the-man-in-the-middle http://www.codeproject.com/Articles/381622/Unit-test-and-the... If we can improve this it would be an amazing thing. We're considering building this in GitLab I want a local client that pushes my working copy to GitLab and runs tests on it. GitLab can receive the code, commit it to a 'hidden' repo, and run the tests. Sending feedback about failing test or successful tests back to the client. The client could be part of an official command line client, currently we have community ones under CLI clients on https://about.gitlab.com/applications/ https://about.gitlab.com/applications/ See https://gitlab.com/gitlab-org/gitlab-ce/issues/19267 https://gitlab.com/gitlab-org/gitlab-ce/issues/19267 for more detail.
- tedmiston 10y agoPlease do! —GitLab user
- sytse 10y agoThanks, good to hear you like it. But this is quite an involved project. So we want to do Automatic parallelization of tests first https://gitlab.com/gitlab-org/gitlab-ce/issues/3819 https://gitlab.com/gitlab-org/gitlab-ce/issues/3819 And it will need a client integrations and a way to make this 'hidden' repository and/or commit.
- tedmiston 10y agoI agree this is very / more valuable, for my use case at least. The discussion around creating the build file is interesting. In Django for instance, it would be straightforward to automate generating the list of apps to test: { "name": "my django project", "tasks": [ "python manage.py test myapp1", "python manage.py test myapp2", "python manage.py test myapp3", ], "labels":"..." } Those app names can be pulled from Django's settings.INSTALLED_APPS with a little config to avoid testing third party apps. It would be cool if the architecture allows for plugins like this.
- xsmasher 10y agoHyperdev does the cloud IDE thing pretty well; I spun up a half-serious prototype of a web app in a weekend, and sitting down at any nearby computer to hack / run / test really was a joy. I even logged in from my iPad to fix some css (not painless, do not recommend, but it worked.) Nothing to install, no environment to configure, just log in and start editing.
- tedmiston 10y agoI remember trying it, and Fog Creek is a company I really like and trust, but it's hard to tell if they're interested in turning HyperDev into more. I want it to be a fully professional development environment, and today it's "JSFiddle for backend".
- tedmiston 10y agoSide note: I have really wanted to get this _exact_ testing setup with aggressive parallelism running on a large Django app. Lambda would be cool, but really any way to spin up several machines near instantly and for just a few minutes without paying for full hours would suffice. GitLab CI has helped lots. If you're seriously pursuing it at all, we should talk more.
- tedmiston 10y agoAnother thing I've always wanted is when working on two feature branches, or a feature branch and separately a hotfix branch -- to leave my open files in the IDE, virtual environment, git untouched and have both co-exist. Sublime doesn't handle this too well today. Sure I can setup all of this manually a second time, but it takes too long to be practical.