Wow, very cool. Lots of new players in this space: https://repl.it, https://glitch.me, and now GitLab (and I'd be surprised if GitHub doesn't follow in tow).
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 have been keeping a list[0] of Awesome Online IDEs that you might be interested in. It's difficult to explain the differences between them (in one line of text) so you might have to try it out yourself.
You speak about Cloud9 as if it's not available anymore, and that may not have been your intention, but I'd like to make it clear: Cloud9 still exists, and you can still use it. It's just accessed through the AWS portal. If anything, it's even more of a value proposition today due to EC2 auto-shutdown saving money when you're not using it, and even more useful since it's running on your own VPS you can do whatever you want.
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.
I'm a c9.io user so my account is still free, but the impression I get from the Amazon acquisition is that you have to run it on an EC2 instance now. That requires some form of setup, doesn't it? And AWS is jargon all the way down, so the entry level is a lot higher than it was before.
Cloud9 is better than other AWS products in that you can click through one wizard that sets up your EC2 instance and provisions the Cloud9 software on it at the same time. The AWS interface is still a byzantine nightmare of a labyrinth, but just getting into Cloud9 can be saved with a bookmark once it's set up, and setting it up is just one wizard.
Agreed that it's a higher barrier of entry compared to how simple and slick the c9.io interface was.
Given the absolutely massive and technical amount of features that aws requires, it's not surprising (or even worthy of condemnation) that the interface can get somewhat convoluted. That said, I wonder if there is a stripped down version of that interface that would better accommodate a hypothetical cohort of extremely common use cases. I would bet there isnt, which is why the interface is so.... Deep.
There's a way to pin sections to the nav bar. So you can pin EC2, IAM, RDS, and VPC up there if you mainly use those 4 services.
It's a bit of a nightmare, as a support engineer, to get access requests for AWS services you've never heard of before. "Need access to AWS services: Cloud9, Memento, Athena, and Pandora Nexus." Each having a completely unique set of granular permissions to fumble over means most users get full permissions to the requested service until the auditors complain.
Administrators beware - this auto-set up creates wide open security groups and other misconfigurations. Some of these will show up on your Trusted Advisor report.
I think the main selling point is that you run the IDE on an EC2 which runs the same OS as your production environment (even Lambda) which allows you to directly compile server code in the IDE and it just works on your server.
I think it's a justifiable reaction, similar to the one after Microsoft's acquisition of GitHub. When an 800 pounds gorilla pays a bunch of cash to acquire a successful independent product, they do so either to quench a potential rival or to embrace and extend into that field and leverage their traditional offering. It makes sense from a business perspective, and they are the only ones capable of paying that much cash precisely because they can use the leverage.
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.
The interests of platform vendors and developers are not aligned.
Developers want their skills to be portable, in order to maximize the market for their labor. Platform vendors want you to stick with their offerings in order to maximize the value of the platform.
Even so, vendors can choose how high to dial up the pain they inflict on developers who dare to wander. Trying to develop websites that worked across multiple browsers a decade ago was incredibly painful because of Microsoft dragging its feet on standards compliance for IE. It was so bad that many developers from that era will bear a grudge towards Microsoft for the rest of their lives.
I always laugh bitterly when I hear from a vendor about how much they care about developers. If you really cared about developers you wouldn't make our lives so damn difficult. A huge chunk of my life has been lost to switching costs.
Probably the best remedy is to use developer-governed FOSS platforms whenever possible. The perverse incentives towards lockin don't go away entirely, but they are much less.
Digital Ocean is a traditional VPS provider who recently added a product that competes with AWS S3 and a product that is docker hosting as a service, which I hope is a valid alternative to EC2 autoscaling. They have a thing with gitlab to run your continuous integration pipeline. They have a few more things.
Heroku is a platform as a service. They provide an alternative to EC2 autoscaling. Also available is postgre, Kafka, redis, MongoDB, MySQL, and a few other things I rudely assumed aren't important enough to mention as a service.
Vultr and linode also offer block storage in addition to traditional VPSs.
Ovh has something called object storage.
Auth0 is willing to be your "user authentication as a service" which also includes something like AWS lambda.
Spotinst will help you get cheap "spot instances" for AWS/GCP/Azure. They also have an AWS lambda competitor and an object storage (I think this one is literally a JSON object storage for your FaaS, not actual files). Not much of a primary service provider.
I consider AWS, GCP, and Azure to be megacorporate monopolies and would prefer to support an underdog. But I'm not aware of any 4rth competitor that comes close to what those 3 actually are. The ones I mentioned probably average at 10% and maybe DO or heroku peaks at 40%.
I would love to hear more about cloud providers who are becoming more than just VPSs to take on AWS.
Right, I don't think anyone would recommend using Cloud9 as in c9.io, but AWS Cloud9 (https://aws.amazon.com/cloud9/) is still a perfectly valid option and does get updates.
For my usage, AWS Cloud9 has turned out far cheaper since the EC2 instance shuts down when I'm not using it. I can actually keep it within the free tier, which is a long way from $20/mo I was paying before.
But if you have anything on there that you want to keep, doesn’t it charge you something?
I would think the lowest grade machine is the equivalent of $5/Mo.
In cloud9 I like to have a node machine, a python machine, a rails machine and one to experiment on the front end, one for Data science. Basically I want to muck about on a clean machine.
Honestly I generally don't want to do my entire development on a Web IDE, but I do think it's very useful for a repo hosting site to have editing tools, as I often find myself wanting to fix something quick away from my setup.
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.
I've heard this a lot since around 2012/13 when I first became aware of C9, and even gave it a go. Granted it was and is impressive as a technical achievement, but I really don't see the use case at all, other than as something to use as a quick fix embedded by a repo host.
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.
Right, which is why I would love to see a browser that is both web-based and also offline. If either Sublime, VS Code or Atom get proper web-based support, that would be amazing. You can use your offline version on your computer, then jump to a web version when you're on a different computer, while still having all your settings and even extensions.
There's no reason an online hosted Web IDE can't work perfectly well in an offline mode too. Offline-capable Web apps are essentially a solved problem.
> Offline-capable Web apps are essentially a solved problem.
That may be true in theory. In practice "essentially" is an awfully long way from "absolutely", with offline support in many apps being either choppy or non-existent. Even the venerable Google Docs is something of a ####show when used offline, to the point where I gave up and went back to Office 365.
Web IDEs like ours (Codeanywhere) and C9 Have been around since before 2010...so we have been all around for a while. The Web IDE is a valid product and it has a use case (we have over 1.2M users), but not that all anticipated way back then.
Yeah in theory it could be amazing for very irregular contributors - e.g. I see a small problem in a project that I think I can fix but I don't want to download the whole thing, set up the device environment, run a server and whatever.
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!
Especially with plugins that can save your configuration to a server somewhere. Yeah, it takes longer than just booting up c9, but it's really not that much worse.
> 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.
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.
> I'd be surprised if GitHub doesn't follow in tow
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.
Ok. One question that bothers me. Why repl.it and company permit internet access through their sandboxes? How is that not restricted? I can just annonymously run stuff and use them as a proxy. That is a big no-no in my book, but I must be missing something.
Absolutely. But is unexpected for me at least. But thinking of it, maybe you can log everything and if something bad happens you can blame the origin IP who ever that is. You can also ratelimit the outbound conections to avoid abuses etc. Is not like an open wifi where the client doesnt leave any trace at all. But in the shell account days IIRC you had to register with your name/email etc to use the service, that provided internet access. Maybe that didn't imply any safety either.
Here's an example: https://repl.it/repls/RustyInsecureEngines. I don't have any previous examples that I can find, as I don't usually use it while logged in. Essentially, I use it to help customers out when they're having issues integrating my API product. Real easy to create a repl and send them a link.
Didn't notice you were the founder, nice. I'll check out the link.
Semi-related:
I've been wanting to give my customers the ability to write/deploy their own webhook handlers, because that's a big roadblock for those that don't have any web/server experience.
Been thinking it'd be cool to embed a repl for that (with a "starter" handler per-language), to handle editing/deployment, but I haven't dug too much into that to see if it'd be possible.
Been meaning to reach out to your team but I keep putting it off. Like I said, love your platform and been fun watching you grow. :)
Repl.it is really cool. I love the ability to code in javascript without needing to run something locally or in a container. We do have a prototype of client evaluation in the Web IDE https://youtu.be/UFvJkD8N-Zk that does this.
> I'd be surprised if GitHub doesn't follow in tow
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.
Cool, but I would appreciate it more if they fixed some relatively small (probably) and very annoying UX bugs:
- 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.
We are not neglecting the core of the product, we just have a lot of different priorities. We are hiring almost continuously to keep the development fast and healthy.
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:
Sorry, didn't see your comment till now... About the last point - yes, there is a ticket about it (too lazy to find it now ;).
The first ticket is a bit different. Starting depending jobs automatically would be great, but I would be satisfied if I could just click a button "Start this job when dependencies finish".
But anyway, those are all quite old tickets and I know from talking with other developers that I am not the only one having a sore point. And I don't see much improvement in the last year or so.
Don't get me wrong - I still love the product and would like to see it get even better.
Cloud9 still exists, Amazon just charges for it. My current favorite cloud ide is definitely azure notebooks. It's especially great for Python with the inclusion of a jupyter magic for pip installing dependencies!
> I'd be surprised if GitHub doesn't follow in tow
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
So I have a question. I played around with Web IDE-s a few years ago and they felt really sluggish back then. If anyone is actively using one, how are they now, viable?
That’s fair. We’re thankful for the support from our investors and partners: but you’re right, the product should speak for itself. Maybe a little bit of an amateur move on my part. Feel free to check it out - we’re super receptive to feedback! You can comment here or email me directly (even if - hell, especially if - it’s to criticize me ;)), keith at stdlib dot com.
Why are people building these verticals? What happened to Unix philosophy? Build tools that do simple things, and make composition do the work for you.
I don't see why anyone needs an online IDE. Much less one interfaced with Gitlab. What next, invent a new cpu too?
Just because it's unified at the presentation layer doesn't mean its design doesn't follow the Unix philosophy. The problem is that even if the web was composable (`gitlab.com | jenkins.com | tee cloud.google.com aws.amazon.com`), it probably wouldn't be accessible to most users.
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?
People do want this. If you asked me what I want, in terms of software, a great cloud IDE is near the top of my list.
I didn’t want this before I had kids, though. But now that I do, I greatly value being able to stop work suddenly, even in the middle of a line of code, and then resume what I was doing sometime in the future, somewhere else and on a different device.
So: different people want different things, and the things people want change over time, too.
You might not want a cloud IDE, but based on the many projects and companies in this space, and the many millions of dollars being spent on it, I’m quite sure I am not alone in wanting to be able to code in the cloud.
Years ago, it was equally implausible to do your word-processing and spreadsheets in the cloud. Now it’s routine.
Well, I can't say for sure if if would benefit you, but the one thing I found useful about it is that it makes it easy to do code reviews without checking out the whole project.
At work we use GitHub, so to do a code review I have to check out the working branch or PR that I am reviewing, and review it in my local IDE/editor software. I have to do that because the web UI that shows the PR diff generally isn't sufficient to really review the code. I want to quickly jump to related files to follow the code path, keep the subset of files I'm referring to open in new tabs, get a project-level view of how the pieces fit together, and maybe step through some of the code in the debugger.
Now, the first two are possible just using a web UI but it's very unlike a normal code editing experience. Using the GitLab IDE interface makes it easier to do the first three of those things. It still cannot actually run/debug a program, but I presume that their goal is to someday enable that kind of thing, at least for some kinds of projects.
Today, all major git repo hosting services have rudimentary web-based single-file text editors — seems to me that adding IDE-like multi-file project-level editors is a pretty straightforward and logical extension of that.
So yeah, as a GitLab user, I want this. As a GitHub user, I want them to copy this idea and implement something similar. And if I were a BitBucket user...
Users do want this. The Cloud9 Web IDE was popular enough that amazon acquired it and now it's part of their offerings in the AWS family. There is also CodeAnywhere that has paying users.
Less setup involved especially if you are dealing with a language you don't use everyday. Also nice to build reusable small components in an isolated environment.
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.
Lots of companies do their development work on per-developer remote VMs, especially for resource-intensive applications that need nontrivial configuration-management setup for databases, message queues, etc. that they depend on.
Currently your choices are emacs/vim over SSH or sync from your local machine (where the code intelligence / debugging integration probably doesn't work as desired).
A web IDE allows an arbitrarily powerful cloud instance to do the heavy lifting of build/test/code intelligence while the developer still gets a full-featured GUI IDE. Especially since VS Code and Atom are Electron apps, it's a natural step to use them to edit remote files. Better than VNC, anyway.
You can already have an arbitrarily-powerful instance do the heavy lifting in these cases. Cloud-based instance, if you want to do it on someone else's computer. The first time I've seen it (not used it, though), Sun workstations were still a thing. There are various tools to do distributed compilation with various degrees of smartness, though I'm seeing them in action less and less often because, quite frankly, Moore's law has made them more and more unnecessary in the last 7-10 years.
VNC isn't the right way to go in these cases. If a company is asking its developers to do remote work over VNC, and they aren't a three-person company struggling with financial and administrative resources, what they need is an IT manager and/or a build system engineer, not a web IDE. We already have plenty of IDEs that can't hold a candle to Visual Studio, the umpteenth one BUT ON THE WEB is pretty much the last thing we need.
Conversely, if all you need is a web IDE that abstracts individual tools away, why bother dealing with them? Setting up and maintaining a development environment environment is at best annoying and at worst daunting, especially if you're a beginner.
Why write and commit locally and then push to an online repository separately? Nice to have it all on the web especially if it's a big system and CI tests will run quicker in a cloud environment.
If you're not a software engineer, cloning, editing, staging, committing, pushing, creating a merge request is a lot to learn. I believe we can make this much easier, and that's the first problem we hope to solve with the Web IDE.
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.
> We are planning for an even better experience in the future: one where we can integrate and support more advanced features, such as a live environment to test your code against
Depending on your job, you might be able to. All of my webdev is done using remote servers, I go back and forth between Cloud9 and Vim+EC2. I don't even have any locally-installed dev tools, and with Vim I can use my phone or tablet in a pinch.
That setup doesn't work for everything, but it's great for some use cases.
Vim is actually pretty usable on a phone, my problem with it is that phones just feel like toys and so I have a hard time with putting myself in the right mood to do anything useful
The future being unevenly distributed, I've been doing that for a long time privately, not publicly, via Apache Guacamole (with LDAP integration for configuring) as my front end to some virtual dev boxes.
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.
> The biggest problem I have is I can buy a chromebook with a decent screen for roughly the price of a decent windows laptop
Why would anyone choose the former in that situation? I thought the whole argument for chromebooks was that they were going to be cheaper than regular laptops. If you need a decent keyboard, buy a ThinkPad. You're not limited to windows, you can run any flavour of Linux and quite a few of them make a decent hackintosh
Its pretty much the anti smart TV argument, where I have access to much better systems so a halfway attempt merely gets in the way.
Also I didn't mention it but its kinda implied that "standard windows laptop" has too little memory to actually work well, a two hour battery, an old fashioned slow spinning disk, and lots of crudware pre-installed and hard to remove, whereas chromebook implies "it just works" seconds out of the box, a ten hour battery and SSD means no moving parts. Also the windows box is inherently insecure.
If all either will ever do is rdesktop / ssh into clustered machines, and I'll never do any local processing other than maybe play games on the windows laptop, its no contest that the chromebook experience is better.
Have you tried remapping the search key to something else?
> 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...
Did you expose the CPU virtualization extensions to the outer VM? VMWare has an option per-VM, but it's off by default.
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.
One small day for man, one giant leap for losing the power of local computers to an inflexible proprietary limited web interface blank wall of profitability.
We already have a prototype of client evaluation in the Web IDE https://youtu.be/UFvJkD8N-Zk code javascript without needing to run something locally or in a container.
And performance. I migrated our project from Gitlab to Githab exactly because of how excruciatingly slow PR workflow was (serialized game assets routinely have changesets in tens of thousands of lines).
When they're in tens of thousands, no. But quite often files of the same format, and even the same files have just a couple of changes that are definitely reviewable.
At first I was excited about this. Then I tried it. There is no working set. Reloading the web page loses all changes.
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.
Well, that shouldn't be very hard to solve; at the worst save the "working set" in a UI-specific cache (aka detached from the git repo), and maybe offer options for autosaving into branches.
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.
What is the use for this? I mean how many people actually use such tools for actual day to day dev? Maybe for some quick edit if you don`t have laptop/computer at hand, but otherwise I see no real advantage of this.
I've actually been using it for the past month or two and it's been pretty solid. My particular use case is that I'm using GitLab pages and can use the Web IDE as a poor man's CMS tool. Edit/preview the markdown and upload images, then commit and have the CI pipeline pick it up and deploy. I can see myself editing config files, READMEs or possibly markup. Real coding would likely end up frustrating as hell.
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.
No. If you're editing markdown, there's a preview tab but it doesn't account for anything that's part of your jekyll template. Your app isn't running at all.
I don't know if it's the use-case they had in mind, but where I work we allow trusted clients to edit their custom CSS file for our CRM.
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.
Hey there. I'm the developer who made the POC. My original idea came after watching non-technical people try to make changes to the readme. They would have to ask for a lot of help to get the terminal open or use a GUI. When really all they wanted to do was make a quick change.
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.
Why do you want non-technical people to be able to edit the readme? That's for programmers to communicate to programmers. A little knowledge is dangerous. Keep non-technicals away from git.
I've made a lot of small changes to projects using the Github editor. If you've come across a project with a small change that you need it's great and easy to just press edit, change a few lines and commit. Then you let the CI server run the tests. Pretty frictionless.
Editing multiple files is a pain though, you'd need one per commit, so this seems to solve that for me.
I stopped making changes through GitHub's editor after it started marking those commits as modified using the editor. I felt like a n00b and everybody could see it.
I have several repos of text-file based validators that members of the public contribute to. They don't understand git, so it's handy to be able to edit on the website.
Git has a super high learning curve for simple edits...
The irony that Git was instrumental in the evolution to GUI-based computing, but didn't also make that same jump to lightspeed has always dumbfounded me.
Git, like God, is good :) But even, over time, God has evolved and gotten more accessible.
Once this is completed/implemented, our entire company will be migrating our old school document system to GitLab, using static pages, merge request approvals and this Web IDE.
If push comes to shove, I'll have to fork and do it myself ;)
"The original idea came from staff developer Jacob Schatz, who observed how non-developers were having a hard time editing multiple files and getting those changes committed."
Exactly. You don't want documentation editors having to learn git and all cumbersome processes first. They may not even want to learn that. They want to edit and get their changes in.
I'm asking the same question. We use GitLab at work, and the amount of bloat being added to this piece of software is becoming ridiculous. While I'm sure 'Auto-Devops' and other tools have their place at larger organizations, I'm struggling to find any real use case for a WebIDE that wouldn't be satisfied (and to a much better extent) by any of the other cloud IDE providers (see: Cloud9, etc.).
Companies want to force us back to the days of time-sharing taking the power out of our computers, placing the gems of our work gated into their systems.
No. They don't want to take power away from you. They want more people to use their platforms. That could mean selling enterprise cloud access, selling chromebooks, selling on-prem solutions, or selling more copies of sublime text.
> how many people actually use such tools for actual day to day dev
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?)
Hard to say the exact %, but the web ide is more than capable for simple changes. If you're the kind of programmer that doesn't use auto complete or you don't need to do extensive refactoring that requires understanding the source, it's good for nearly everything.
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.
Heh, personally I could use this for discreetly working on projects via mobile phone. Maybe in meetings that I'm not interested in, or hanging out in an obligatory social setting. But for everyday use, I also don't see how it's practical.
Have you ever need do a merge from master on your PR in GitHub? Well that workflow is crap because the UI and editor is atrocious. So I welcome any competition to move GitHub to improve that experience.
What we need is a web deliverable (i.e. not a "web technology based" Electron desktop app) Neovim frontend. Something like a Wasm & WebGL based UI layer connected via msgpack to the editor core that's running in a sandbox on GitLab's infrastructure.
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.
Serious or not, here's hoping it will once the feature is out of its infancy.
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.
While it may not have been a serious question, vim key bindings (or emacs or whatever) are important to many people. You spend so much of your time in your editor/ide and become expert in it. Learning to work in another one is painful before you're properly productive again.
Seriously, how hard can it be? It's not like it's a completely new form of interaction. Vim and emacs are the ones that are exceptions in regard to UX.
I use qutebrowser (has vim-bindings), sway wm (I've customised it to have vim-bindings), zsh (with vim-bindings), weechat (with vim-bindings), mutt (still getting started with mutt, but it has vim-bindings too), and vim itself. These are pretty much the only pieces of software I interact with, so you can imagine how central vi/vim-bindings are in my life.
The basics are easy. A rudimentary normal mode with HJKL for movement is not hard. Block-select, sensible paragraph hops, copy/paste registers, repeatable macros, etc. is much harder to get right, and rough corners there can be a deal-breaker. Vim is a lot more than moving a cursor with your right hand.
I'll admit I'm a very poor "look and feel" person. But am I the only one who thinks that the zooming images on this webpage are hostile to the user?
(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.
I managed to bug an animation by scrolling too fast over it. One screenshot kept snapping back and forward 10 pixels really fast. I always feel like I'm not part of the demographic for these presentation pages.
It’s really bad on mobile, it literally just barely moves the screen shots around. I just have to view the image directly to get what I wanted out of it.
I agree, it's slow, unnecessary, and totally annoying.
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.
> 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.
If you are looking for a self-host solution, you can still use the [GPL version of Cloud9 v2](https://github.com/exsilium/cloud9). All contributions to the project are warmly welcome.
GitLab is slowly on its way to compete with Microsoft, Google, JetBrains... I hope you guys create your own programming language as well to become a real software company ;-) Good luck!
I admire Gitlab in all sorts of ways, but in the context of IDEs, they're no JetBrains yet. Their IDE is unsurpassed for Java folks. I tried to stick with Eclipse as long as I could, but IntelliJ keeps adding amazing features at a breakneck speed. Admittedly, Java is a very IDE heavy language, umm, "culturally" (while I've seen people doing Python or JavaScript in other editors like vim, for Java that seems hardly ever the case). Maybe this whole online IDE thing is just not aimed at is Java folks? (Like... How would I do TDD?)
Anyone remember back when Heroku had something sort of like a primitive version of this? Whatever happened to that? I spent many a high school lunch break in the library teaching myself how to make Rails apps using it
One big point of differentiation is Cloud9 runs your whole dev environment, you can run the code on the same server you write it on. It seems GitLab's solution doesn't offer that (yet).
Looks interesting, but it has the same bug as the normal file editing in Gitlab. As soon as I click on edit, the syntax highlighting (no matter what theme I have selected) changes to something completely different.
I feel like StackBlitz beats all other Web IDEs since it's pretty much just VSCode in the Browser. The only one where TS code completion works and they can offer it very cheaply since the tech is so great that they don't even need to run a server to bundle anything. Just great! ATM it's only good for frontend apps though. My dream would be a combination of Cloud9 and the StackBlitz editor.
Hi...
Amazing knowledge and I like to share this kind of information with my friends and hope they like it.
I would like to address you about a similar website which provides awesome information on Adware Removal Tool (https://www.howtoremoveit.info/adware/).
Good job! This looks like a great code/text editor than an IDE at the moment.
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.
I have been using GitLab IDE in the past few months for documentation updates and it has been great. Whenever I see an outdated doc in the repo, I just click edit on the markdown file. It provides markdown preview and automatically creates patch-n branch and merge request for me without the need to touch my terminal. Super convenient.
Sourcegraph used to be an online vscode, simply the coolest back then, but seems no more, they suddenly changed direction, possibly due to conflict of interests with Microsoft?
Sourcegraph CEO here. VS Code is great for editing, but Sourcegraph is code search/browsing. So we switched to using a read-only code view that loads super fast on the web. It has basically all the same features as before: https://sourcegraph.com/github.com/gorilla/websocket/-/blob/... has code intelligence hovers, Git blame, symbols, etc. What features do you miss?
Wait a second - that's what they did? They picked Monaco which is the code editor for VSCode. They also referenced in the article how they stuck with similar UX as Atom and VSCode as well.
Decentralize for privacy and anti-censorship, centralize for convenience (collaboration, sharing, zero management, continue working where you left off on another device, ...)
One way is to use the CI Pipeline feature of GitLab. When you commit your code, run it though a build stage (if necessary) and then a test stage. Any tests that output an error will cause the test stage of the CI Pipeline to fail.
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].
Vaguely - think GitHub file editing, but far more powerful. Some differences would include:
* 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 wouldn't be surprised if Apple quietly uses them internally. 100k companies with a horizontal app like this (and "source code management" is pretty horizontal in any vaguely tech-incorporating industry) probably includes all the big names.
You could argue the same about their CI/CD features.
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'd love to see more symbiosis between editors and deployment tools.
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.
Gitlab is using Monaco for this. An open sourced online editor brought to you by none other than Microsoft. (https://github.com/Microsoft/monaco-editor)
I couldn't dig it up now but I recall seeing that Microsoft started this project as an online code editor for Azure, later using it in VSCode. So it would not be surprising if they bring this to github some time in the future.
It still is "alive" somewhere in Azure but MS scrapped it really and focused making the best possible Desktop Editor. You wont see a web editor form them soon.
If multiple users could use the "IDE" at the same time I could move entirely off of GSuite. Right now being able to edit the occasional code block with 4 people watching is worth GDocs.
Almost all of VSCode is open source, but live share is not.. On their website I noticed that they intend to provide generous 'free plans' of live share, which is a big hint about how Microsoft intends to monetize their open source products.
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.
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.