Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Experiences with cloud-based dev platforms?
60 points by beat on Dec 22, 2016 | hide | past | favorite | 48 comments
Are you using, or have you used, a cloud-based IDE or development environment like Koding, Cloud9, CodeAnywhere, etc? What do you like about it? Dislike about it?



Disclaimer: I'm just a product/biz guy that codes on the side.

I started using CodeAnywhere earlier this year to manage a small PHP+mysql geospatial email system for an aviation charity I do the tech for...so wanted something cheap (its $120 a year?) and able to teach a non-tech how to go in and make a change (as I don't want them making edits in the github UI). I was also using my Chromebook a lot while traveling and using shared space, so I needed a decent dev environment without Chrome plugins/jankiness/slowness from a 4gb system.

They have Android and iOS apps that make changes when on the go a touch easier, though code on a Nexus is pretty rough on a plane :-)

So far, pretty good - initially they were making changes to how containers were created and destroyed, causing some changes in the syntax of how a container is defined thus causing mine to be troublesome. However, their support was pretty responsive and got it sorted out.

gomix.com as mentioned here already is pretty new but has been reliable for me so far. It is a fogcreek venture so I imagine it will mature pretty quickly.


Hi, I am the founder of Codeanywhere. Thanks for the kind words and let me know if I can help with anything :)


I took a stab at this domain (online dev environment) with a service recently, and it's really hard! So congrats on codeanywhere, it's really nice. My qustion is; how does code anywhere handle mobile users? Every syntax highlighting text component I tried utterly failed on mobile slash touch devices.


Well we have native mobile apps :) Although be warned the ones on the store are a bit out of date with new ones coming out in a matter of weeks!


Custom Domain: on the tooltip you wrote "domian" ^_^


I started with them. First Cloud9, then Nitrous and eventually, I ended with...

- A cheap VM on Digital Ocean close to my location

- tmux

- vim

I have never been so productive before and they give me more flexibility than any cloud dev service at a much cheaper price point. And now after two or three years, I am a tmux, vim, console pro. Everything else compared feels slow and limited.


I did this for a few years. It was really great. I could take snapshots of my dev environment and when inevitably installed too many vim plugins just reset back to my last good 'state'.


This. What else is a cloud dev environment supposed to provide?


What size droplet do you use and what kind of apps do you develop on it?

I see the cheapest one has only 512MB RAM.


It is VIM, not Eclipse. A few megabytes of memory is really all you need.


Depends if you also want to run tests, like one often does in their local machines.


I have the $10 package with 1GB RAM but the smaller one for $5 with 512MB should also work (depending on your use case/dev environment).


Until you need a solid search that spans across the nested directories then you start wasting significant time with regular expression and complex commands.



FZF? Works in Vim and on the command line.

https://github.com/junegunn/fzf


Looks like it searches the filenames, I am referring to file contents. Does it support that?


I really like ack over grep, and there's a vim plugin too.

https://github.com/mileszs/ack.vim


GNU grep should be able to handle a few hundred small files easily for a few MB of free ram...


Yeah, but it's not as convenient as a GUI search in, say, Sublime.


That's debatable. For me, typing "gr <expression>" (my abbreviation for recursive grep) is quite fast and convenient.


No, but what about locate, grep and find?

Locate is the fastest, find is the slowest and grep is the most complex but also the most versatile one of these since you can use regexes.

It's the shell and you can use anything you want.


Locate searches the filenames, too.


Gomix (https://gomix.com) is my current favorite. It might not have as many bells and whistles as the others you listed, but it "just works" more of the time than any other platform I've tried.


I'm a big fan of Cloud9. Since you can use Cloud9 on your own hardware pretty easily you're not forced to treat it as a part-time-IDE-for-X you can just use it for everything (it supports dozens of languages) and being online or locally hosted becomes just an irrelevant detail. I've used it for web and android projects.

I dislike the proprietary ones, I don't think proprietary developer tools should be supported anymore tbh, but they force you to use them only-for-x and that means you're looking at alternatives every other time too!


>>>Since you can use Cloud9 on your own hardware pretty easily

Can you provide me with a link or two on how to do that?

The last time i looked, i think it was "just" their IDE on Github (or other) with next to no documentation on how to set up all the other bits and pieces - hopefully this has changed and i can make the whole thing work the same as if i would give them my money? :)


It used to be messy but now it's largely just:

    git clone git://github.com/c9/core.git c9sdk
    cd c9sdk
    scripts/install-sdk.sh
https://github.com/c9/core


Thank you, just tried it and can confirm it is really that easy :)


Part of my thinking here is to get a dev environment that is 100% independent of my laptop - I don't need local files, or local configuration. Currently, I'm using Vagrant on a Mac, and that works well, but it's also wedded to a computer I'd like to put into semi-retirement, and I don't want to spend a fortune on a new one. The idea of just using cheap Chromebooks for dev sounds very appealing.


Cloud9 has been a delight so far. It doesn't require local files — parent was just saying that you can use it as an IDE on your own arbitrary box (e.g. a DigitalOcean droplet), but that doesn't stop you from using the default option of a Cloud9-provided Ubuntu container. Another big win with C9 is "collaborative mode", which lets you pair with someone remotely, each with their own cursor in the same file. I've been using that a lot to integrate closely with a front-end developer who is taking care of the views while I simultaneously write the backend logic.


I explored moving to Chrome, I think it's almost ready. The Chromebox I bought didn't end up included for Android app support so I installed Cloud9 via Crouton and scripted that installation here: https://github.com/benlowry/chromeos-dev-setup.


I'm also a big c9 fan. On small systems I've also used Codiad which can be easier on RAM if you're running apache.


Thanks for this great question! As the Founder of COdeanywhere I am also really keen on hearing the answers. Also feel free to ask me anything you guys like.

Best


Well, question for my platform... I'm building client apps in Go to run on linux boxes. The core client is a scheduler that runs as a daemon, schedules execution of other apps, and sends results to a remote API. Is this something that can be done from within the CodeAnywhere platform?


Sure, you can either connect Codeanywhere to your Linux boxes via SSH or you can use the Boxes Codeanywhere provisions for you.


I've used https://cloud.sagemath.com/ with great success. Especially with writing Sage code, LaTeX, Python, Go, Javascript, and a bunch of others. It's especially nice since I can work on any of these collaboratively with others. Right now I'm using it with a small team writing a bunch of markdown files with math, which smc (sage math cloud) handles great.


I started using SageMathCloud a couple years ago while taking courses from edX and Coursera in physics and data science. I liked it enough that I joined the project as volunteer contributor. At 60+ MOOCs completed, I still use SMC for online learning. Most valuable features to me: 1) not having to install tons of software locally; 2) consolidation of work from different courses & schools; 3) Sage units of measurement and symbolic expressions (good for physics); 4) Jupyter notebooks and sage worksheets, so work from a study session reads like a lab notebook rather than a jumble of scratch paper notes.


I used https://cloud.sagemath.com/ entirely to implement https://cloud.sagemath.com/ itself (along with a dozen other collaborators, of course). I've probably spent thousands of hours coding via cloud.sagemath.com at this point. Probably my favorite feature of cloud.sagemath.com is TimeTravel, which Jonathan Lee first implemented as a Google Summer of Code project, which lets you browse (at very high resolution) all past versions of your document, and see diffs between two points in time. I also like having a separate chat associated to every document, and realtime collaboration (with multiple cursors). A lot of our users do education, research, and data science, so we support course management, latex, and Jupyter notebooks. But SageMathCloud is also useful for software development.


I'm a vim+screen+mosh(+Jupyter) guy, so my environment is "cloud-based" as-is (in that I'm mosh-ing to a dev server). I can see why some people might want more fully featured IDEs, but this works for me. As I get better and better at Vim it gets harder and harder to go away from the keybindings, as well.

I guess it depends on what you're looking for - i.e. some new kind of collaboration workflow or a nice GUI or some other IDE features.


Are you using a VPS or what sort of dev machine are you using?


I've gone through the process of port forwarding my router and setting up dynamic DNS (who does that anymore? :) ) so I can hit my home desktop with an Ubuntu VM on it and I usually have a few AWS instances up at any given time for different projects. Then most of the active code gets synchronized between machines via Github.


> dynamic DNS (who does that anymore? :) )

I do! I used afraid.org at first, but since my company blocks DynDNS domains (don't ask), I switched to gandi-dyndns [1] using my own domain.

[1] https://github.com/jasontbradshaw/gandi-dyndns


Of them all the one i used the most was Codio.

It used to have a minimal set of things you could install but moved to a clean Ubuntu box that you can pretty much muck about with and install what you like.

For Rails, it is perfectly suited and very easy to spin up an Ubuntu VM and play.

I used Cloud9 before hand and though this was a while ago, I had a demo of an Express thing with MongoDB and about 15 mins before said demo it started falling apart.

I believe the uptime is pretty great, just a lasting impression of failing just at the wrong time.

Codio seems to have pivoted however to be more about offering educational institutions the ability to create courses etc. so though powerful, that is what the developers are focused on now

Occasionally the version number of things lag behind in Codio and that is my biggest gripe. That and PHP boxes not having mod_rewrite enabled out the box, but that is just me


Great question. I'm curious about what others do as well.

By day I am a .NET developer who typically uses Visual Studio. I do all of my development on an Azure VM with all of my dev tools on it. This is very useful because I can access it from anywhere and don't muck up a physical machine doing it. I use a standard F4 instance and stay under my free MSDN credits most months as long as I remember to turn it off (automation has fixed this recently ;). Not exactly what you mean, but lots of the same benefits.

But, I do like to tinker and see what all the cool kids are using, so have tried most of the ones you mention as well. I do think this model will become way more common, but none have stuck so far for me. Most of that is that I have customers that use VS and have a hard time imagining them using anything else. But I also felt the "free SKU" on some of these to be a little limiting. One or two projects or public-only projects means I have to commit to use in my day job. I don't fault them for making money, but there is a barrier there that limits me from using or recommending it. Also, if I'm learning something new - especially tooling like webpack/grunt/gulp/yo/etc.- it can be difficult to translate "getting started" style documentation to the specific environment. If something goes wrong, I'm unsure if it's the environment or me (though I assume the later ;)

As many have suggested, gomix is changing this some for me. I've used it to learn node a bit more, and as a place for one-off tests of JS/HTML/CSS issues. As with the others, I feel like I'd have a hard time recommending it for production use at the moment, but really like it for things I don't necessarily want in my or my customers' source control. It's zero-friction and "just works" for a certain class of problem.

My _hope_ is that these mature so that 1) there is less vendor lock-in and barrier-to-entry and 2) get more popular so that certain types of applications don't need a full on dev environment to code for.


For my personal interest, I'm developing an app on a Rails/Postgresql stack, and client software that talks to the app in Go. I'm interested in finding a cloud-based solution that supports both without a lot of DIY hand-rolling.


If I could do the Rails stack gracefully, I could probably offload the Go development to a regular VM on DigitalOcean. I may need to anyway, for reasons. So from that perspective, I want a cloud-based system where I could also ssh from it into a VM of my own.


I've been using Cloud 9 a bit to give my girlfriend coding lessons. Once she acquired a base set of knowledge, I started giving her "assignments" where I'd describe the program she had to build in comments.

When she has an issue, I hope onto the collaborative workspace, and we either chat using the in-app function, or do a Skype voice call.

For collaboration, it is great. The environment is pretty slick as well. I haven't used it for a "real" project yet, though. I'm not quite sure how the collaborative functions would work with a VCS, for example.


(As long as you have fast internet) Codepen is so useful for making ui's... it massively smooths out the fiddling process and also convenient to share a ui with the debug / display mode or whatever it's called. I'm sure one could come up with a similar offline software for the creation aspect, but since it's hosted, it takes only two clicks to share a website demo, which seems like it would be hard to duplicate without cloud.


I'm loving Cloud9 for JavaScript and Python dev. I love having a separate VM per project and nothing installed on my laptop.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: