Once upon a time, back in school, I discovered Cloud 9. A website that gives you an IDE in your web browser? And root terminal access to your very own Linux VM? I was in heaven. I had a beefy machine at work, but for my school work, I just had an old refurbished Chromebook. But I loved my old Chromebook, and didn't want to spend a bunch of money getting a proper laptop just to haul in my backpack to school every day so that I could compile code for my C or Java class. Plus, I needed Python for this and my other blog running on Jekyll. And Node for the Echo and Google Home actions I was working on on the side. Cloud 9 fit that need perfectly. I could spin up a new project for each stack and edit right from my Chromebook.
But really, editing on Cloud 9 is not the same as editing on a proper IDE. Auto-complete is extremely limited, and while the nature of the app forced me to get a lot better at the command line, when it's 2 AM and you're still working on that C assignment, you don't really care that you're getting really good at traversing directories via the command line or parsing out obscure GCC compilation errors from typos a "real" IDE would pick up right away.
I tried dual-booting my Chromebook using Crouton, but the overhead was so large I started running out of drive space before I even installed an editor (like I said, this is an old Chromebook). I almost gave up and bought a proper laptop, but in the end, I stuck with it. Partially to save money, and partially just to say that I managed to get through my 4-year CS degree with basically nothing but a Chromebook. :)
Now, I'm out of school and I've still been using Cloud 9. Why? Well, partially because that old Chromebook still is my laptop of choice around the house, and partially because I just feel weird installing RVM and Python just to write on my blogs. Or installing and configuring Node just so I can keep my Google Home action up to date. The list goes on. I don't want 50 versions of 30 frameworks in 5 languages stacking up on my personal laptop.
But at the same time, I've yearned for the nice things a native environment/IDE can offer. Even for my blog, which, leaving the underlying Jekyll guts aside is nothing but Markdown, YAML, and web frontend. It would just be nice to have real IntelliSense. And extensions. And breakpoint debugging. And all the other niceties that come with decent editors (like my prize child, VS Code). Even just the markdown preview would be nice. At one point, I wondered: since VS Code is an Electron app running on Node, how hard would it be to create a web-served instance of VS Code on some Linux container that could give me something like that?
Then yesterday I heard the guys over at CodingBlocks mention this new thing called Coder. It's exactly what I dreamed about: a web-accessible container that runs full instances of VS Code directly in the browser. I couldn't believe my ears. I was giddy. I ran home that day, threw open my laptop, created a free account. Yes, it's free. It's awesome. And it's everything I hoped for.
I crated a free account, cloned my GitHub-hosted blogs, installed RVM, Python, and Jekyll, read the docs on the ports to bind and... there it was! To celebrate, I'm writing this article on that same now 7-year old Chromebook in Coder.
I am in love. A proper IDE. In my browser. With all my extensions, task running capabilities, etc. In a container I can blow away and re-hydrate at will. It's beautiful.
I'm going to keep playing with Coder as they work through their public alpha. Next up on my "play" list is .NET Core and Node.js. I've noticed some bugs in the UI that defintely make themselves known, but so far, nothing that really gets in the way of a normal workflow. So far I am thoroughly hooked.