Cloud9's acquisition really left a big hole in the market. AFAIK there's still nothing out there that gives you a decent code editor (edit multiple files, have multiple tabs open, etc) that also gives you access to a Linux shell and ability to expose ports like Cloud9 did.
Personally I'm most optimistic for https://repl.it. They already have a core userbase in high school classrooms and have been adding a ton of support for serverside applications to make it more appealing outside of the classroom.
I'm not affiliated with them or Amazon in any way other than being a Cloud9/AWS customer. Just wanted to make sure everyone realized that AWS Cloud9 still works.
--edit: to clarify, you can still use Cloud9 through AWS... the old c9.io doesn't allow new signups and is in the process of shutting down, but the service is still available through Amazon.
For example, I myself wouldn't touch any service from Amazon with a ten foot pole. I acknowledge their role in starting the cloud revolution, but every business move of that company down to the design of the last web button is to set itself up as a monopoly in the fields it enters. They are the Apple of everything.
They haven't updated any of the ubuntu images since 14.04, and you cannot update them yourself.
They really want you to move to Amazon's pay as you go scheme instead of one flat rate. (I think).
Web IDEs in general are a great concept though, mostly because developers generally love having their editor customized the way they like it, and from there, having it in the cloud accessible from any computer is a huge win. That being said, it's hard to compete against the plugin model that Sublime/Atom/VSCode have.
My laptop is a tool I use every single day and have with me almost all of the time. I do not need internet connectivity to remain productive, which is a huge boon to me when travelling. An IDE that requires constant, reliable connectivity to work is therefore of little use to me.
Kind of like how you can already edit files and make a pull request in the GitHub web interface, but you can also run the program and check it works!
I've tried Cloud9, and found that the plugin issue was a killer. If a Web-based IDE can't use an existing ecosystem of add-ons then the developers have to implement linters, debuggers etc. for every language, as well as things like build tool support and version control integration. For this reason, Cloud9 doesn't actually have the functionality of an IDE or a programmer text editor, and I could not imagine asking professional developers to adopt it as their primary environment: it is closer to Notepad++ than VS Code.
Xray, GitHub's experimental possible Atom successor, seems to be designed to support this usecase, per https://github.com/atom/xray#web-compatibility . Seems like they want to be able to use the same code to power both a desktop and web IDE, and would support collaborative real-time editing in both.
OT: Its Chinese. It makes me wonder what other tools and technologies exist there and of which 'Western' developers never even have heard of.
Considering Microsoft has VS Code, I think during the following years Atom will be phased out (or, in enterprise terms, "maintained by the community") in favor of that editor and they will focus on improving the Git aspect of the application, perhaps integrating the existing GitHub application into VS Code as a rich extension.
- why can't we schedule manual jobs to be started when dependencies are finished?
- on merge request, Discussions tab, the way one chooses between a comment and discussion is simply awful (talking about a button with a dropdown) - I have yet to meet a developer who immediately understood the difference between the two and could use them as intended
- why can't I limit some type of jobs to the branch AND a tag? (for instance deploy_production should only happen on master and with a version tag)
- ...
It looks like they are neglecting development in the core of the product, which is just sad.People have already created issues for the improvements you've listed. Upvote them to show your support or create new ones if these don't satisfy your needs:
- CI manual jobs ignore dependencies: https://gitlab.com/gitlab-org/gitlab-ce/issues/28396
- Start a discussion from a non-discussion comment: https://gitlab.com/gitlab-org/gitlab-ce/issues/30299
Re: your last point, I've pinged someone from our CI area to see if we already have an issue for that.
[0]: https://github.com/c9/core/blob/master/LICENSE-COMMERCIAL-US...
also, azure notebooks are currently free.
And since Microsoft now own Github this will most likely be VSCode in the browser just like azure already uses. A lot of people will be happy with that
I don't see why anyone needs an online IDE. Much less one interfaced with Gitlab. What next, invent a new cpu too?
Unix philosophy is great for system builders, but system users want the car, not the tools and parts.
This kind of ‘user centric’ justification is rubbish and we all know it.
What this is, pure and simpe, is ‘throw it at a wall and see what sticks’.
Maybe people will like it and they’ll run with it, or maybe people will hate it and it’ll get binned.
Fair enough; but its got zippo to do with user quality of life or what users actually want; its just easier to justify value by adding features than fixing existing ones.
‘Speculative development’
Bitbucket does this all the time as well; its super annoying.
If you want to improve user quality of life, you know what you need to do?
Ask users what they want. ...and listen.
I use codepen everyday for compiling different frontend web components. Its not an IDE, but it has IDE-like features. This way I could build reusable code snippets. Then I port those into my actual project. I wish something like this existed for backend languages, repl.it was the closest thing I found. Although stackblitz is nice too.
What I look for in an web IDE is a simple system that lets me debug small singular components. If they integrated something like pythontutor.com or loupe.com, visual animations for debugging, that would be really nice. A webapp has more potential for these applications than an electron-based app.
Next I always end up with build errors. I'm too lazy to use docker / run VMs so having someone do this for me is a bonus.
Also, online IDE's are used in classroom settings often. I used cloud9 a few times for this reason and its very helpful, minus the fact the git-integration tools the last time I use it weren't there.
To put it in short, I look for webtools that would let me build micro environments to test a small suite of code. Ideally with nice debugging tools. And an easy way to reference those code snippets later (imagine evernote's tagging structure applied to a web IDE).
Web IDE's won't compile as fast as a native desktop application however.
Ironically, once we introduced staging into the Web IDE, usability went down significantly (this is referenced in the blog post), as the core users were people that weren't comfortable with local editing. So we're addressing that next.
This. Please.
I'm playing with a similar concept for GitHub: https://twitter.com/pomber/status/1003416752146075648
That setup doesn't work for everything, but it's great for some use cases.
I've never run into the slightest issue between chromebook html5 browser and Apache Guacamole, which I suppose does not prove no problem could exist for anyone else. Its SSH is really a very nice terminal emulator, and of course there's rdesktop protocol and all that also.
It helps to have an enormous vmware cluster holding the numerous servers such that I'm connecting to a machine that is too beastly powerful to ever consider in a laptop form factor... so my dev box has slightly higher latency but the CPU and memory are immense such that its not all that different than native, some things a little faster, some a little slower.
The biggest problem I have is I can buy a chromebook with a decent screen for roughly the price of a decent windows laptop, but I can't buy a decent keyboard on a chromebook for any price. Model-M keyboard to USB to plug into the chromebook, I've never tried that? On the stereotypical hyper limited chromebook keyboard, emacs is ... difficult but possible, and android studio is OK, or at least as OK as java programming can be. Android studio emulator had some weirdness with it not being amused at attempting virtual machine hardware acceleration on a vmware image of a windows box; probably depends exactly which version of studio you install and when you installed it...
Native chromebook VPN support is "ok" or at least somewhat usable. I don't have the infrastructure bare out on the internet for obvious reasons.
An extremely beefy virtual dev box with 10 hour battery that weighs nothing using a state park as my office is pretty nice, when weather permits that kind of work. The only problem I've found is you can use a lot of mobile data very quickly this way, especially during a nice summer month. Also I can charge my tether phone off the chromebook but then the battery life seems much shorter; AC power is surprisingly not hard to find and picnic shelters are almost always empty during the week (full on weekends). Parks are also empty and quiet during the week. When it rains I'm stuck in the office, what a bummer. Do not be like me and hike out five miles to an observation tower right before a rainstorm begins, I was stuck under the tower for an entire day until it stopped raining.
I'm shocked Google hasn't tripled their efforts to make the chromebook a code editor masterpiece. You'd think they'd have spearheaded it themselves.
Now I'm keeping my eyes on Microsoft bringing arm64 hardware in the game. 20+hr battery life + wifi means I could just work wherever I want during the day and then go home at night and charge. Adventure coding, EVERY DAY! That'd be so awesome.
Besides having a vision ourselves of that, we also want to encourage and motivate others to contribute.
They have a ton of open positions listed, but none are for Site Reliability Engineer.
Frequent slow requests and 5xx errors keep me from giving GitLab a real try.
This would have been a nice path to bring less technical folks into gitlab, say for writing articles and other copy. But I can already imagine the non-stop complaints about losing work.
I do agree this is something that needs to be solved, but cannot categorically be solved elegantly, so GitLab needs to just get on with just doing what will work.
Ironically, GitLab pages ended up not working very well for me. It was nigh impossible to add a cert to a custom domain. I ended rewriting the CI pipeline to push to Firebase.
In the past, people would request ftp/ssh. Setting up git and auto-deploy with custom scripts didn't scale well. Our clients seem very content with WebIDE. They can do quick edits and barely know they are using git.
The idea is that there's a lot of different users using git and I want to make it accessible for everyone.
I was able to use Web IDE to edit a couple files including a `.gitlab-ci.yml` and kick off a continuous integration job from my iPad 6th Gen. I hit a snag with the Merge Request, but the commit worked okay. For now it would be a little cumbersome to rely on as a primary development workflow, but it's fun as a proof of concept.
Editing multiple files is a pain though, you'd need one per commit, so this seems to solve that for me.
Git has a super high learning curve for simple edits...
See for more information https://gitlab.com/gitlab-org/gitlab-ce/issues/47307 and https://gitlab.com/gitlab-org/gitlab-ce/issues/46122 for example in how we are improving this starting with 11.1
Git, like God, is good :) But even, over time, God has evolved and gotten more accessible.
The Web IDE thing is something more sophisticated.
This will make it easier for non-techies to edit product requirements, without deep knowledge of git.
According to an Xoogler acquaintance, he used a web IDE for all his development; I'm not sure how widespread this is in Google, but the answer to your question could be "lots".
(Any Googlers want to chime in with estimates on % of devs using web IDEs?)
It helps that there's a single source repo to work from, a remote filesystem for all source code whether working remotely or local that syncs immediately, and a single build system.
For me, I do all work from my laptop in the web IDE and save harder or larger things for when I'm at my desk. It's pretty great that I can start a change in one, then switch to the other seamlessly e.g. write the bulk in an IDE, then make changes in response to comments via the web IDE.
I'm truly sorry if the above drivel is either impossible or insane; as an embedded guy this is most definitely way outside my wheelhouse. I should get back to repairing my oscilloscope.
WebGL is more or less just a set of standardized (JavaScript) bindings to OpenGL ES... which is actually ran as DirectX I'm sure in some places...
Everything required to draw high-performance hardware accelerated text already exists in most browsers before even getting to these bindings, which would furthermore require accessing a redundant glyph renderer.
That is to say, WebGL wouldn't provide you much gain. Though, I'm sure some very amusing post-processing could then be done to your code.
Perhaps the future of programming is in the web with lens flare.
Tangentially, Ace[0] appears to be the only editor outside Vim proper that has managed to implement a half decent Vim mode. It's the only such editor I've come across where visual block editing doesn't end in fits of rage.
[0]: https://ace.c9.io/
(1) The zoom animation takes too long, I want to see the screenshot
(2) After zooming, it's still difficult to read to my 33-year-old eyes. I want a fullscreen image.
(3) After finishing squinting at the screenshot, I scroll down to read more text only to have that text MOVE while I'm reading it as the screenshots animate back to their original positions.
That said, I find all JS-based "zooming" of images bad. The simplest behaviour is the best here - just make the thumbnail a link to raw image directly. If you absolutely have to have that JS-based gallery, then for goodness' sake, don't do it with CSS background shenanigans - use the <img> tag, so that "right click + view image" works.
(To be fair to Gitlab, in this article "view image" works, and can be used to see images in full resolution.)
Alas, I'm pretty sure that half of this breakage are designers cargo-culting trends instead of focusing on usability; the other half is user-hostile designs purposefully making it harder for regular users to get to the URL of the actual image.
On a slightly similar vibe... if you're gonna take a picture of your laptop for the banner image on your web page, at least try cleaning the screen first. The dirty spots and greasy finger smudge in the top image make the whole page feel grimy, lol.
In fact a Koding acquisition by GitLab seemed like a no brainer.
FWIW ~2012-2013 there was Cloud9, Koding and Nitrous. Now that Nitrous is defunct and Cloud9 was acquired I'm not sure what fills the void.
Put differently is there a void to fill? Is there an actual demand for web IDE's? Or is this just bling?
> And to be honest, it was what we were hoping that Koding would have provided for us, and we have an integration with them, but it hasn’t worked out, really, the way that we had hoped. And so, we’re looking at alternatives, and we think we can probably do this ourselves.
So I don't think we'll be creating a programming language soon. I'm following crystal https://crystal-lang.org/ with interest. And one of our team members is making one in a private capacity https://gitlab.com/yorickpeterse/inko
You would need some sort of code navigation, debug and run capabilities to call it an IDE :) Hope to see more soon?
Redhat's OpenShift.io Eclipse Che integration would be a good example of a cloud IDE where you can could code,build and debug off a web-browser backed by a container-based workspace running on Kubernetes.
... Why?
Also, centralization is against the Unix philosophy.
Is there any way to change the font size in the Web IDE? Is there a dark mode?
Thank you for this!
They should drop everything and focus the most important feature: speed.
It's the fastest single transistor in existence. You could say... it focuses on speed, to the exclusion of all other features!
I set up a simple proof of concept [1]. My goal is to complete the "Your First RPM Package" tutorial [2] using Web IDE from a iPad 6th Gen. [3] is the resulting CI Pipeline. I recognize this is nowhere near a "real" project (and hadn't ever planned to really share or use it). Maybe someone else has a more complete example?
Edit: Since you mentioned Java development, it might be worth reading through the answers to the Stack Overflow question "How to use GitLab CI to build a Java Maven project?" [4].
[1]: https://gitlab.com/mchogan/iPad-experiment/tree/mchogan-mast...
[2]: https://rpm-packaging-guide.github.io/#hello-world "Your First RPM Package"
[3]: https://gitlab.com/mchogan/iPad-experiment/pipelines/2277793...
[4]: https://stackoverflow.com/q/33430487/3877908 "How to use GitLab CI to build a Java Maven project?"
* No terminal
* No development environment to speak of, either (e.g. no libraries or binaries installed)
The post identifies that this was developed as a way to include multiple file edits in one commit. GitHub, by contrast, applies a commit per file edit, so if you want to change three files, you would open each file separately and each edit/save would become a separate commit.
I do think that this nudges GitLab as a platform a little closer to being like Cloud9 though!
I don't necessarily consider this a useless feature. I've edited files live on Github (usually things that are safe to edit, like READMEs) and I wouldn't mind the editor being a bit more feature-rich.
I could write my code and tests in the browser editor, and just have a dashboard with everything I need to know.
Then when I'm at home I can use my editor and still hack the old fashioned way.
I wish Microsoft has bought gitlab instead of github. They could have this new editor tie in with azure or something cool like that. Like websharper, but for everybody else.
I doubt something like what gitlab is building will come to github. Maybe a quick edit editor, but nothing more.
Gitlab is going to integrate this to gitlab's CICD infra.
If github gets one, it'll be a shitty typo fixer, that's it.
In any case, I see a lot of value for the IDE to be integrated into your git host, so I think this is a great step for GitLab.