13 ms·
The Future of the Gitlab Web IDE
- beninsydney 4y agoI'm excited about this, I would love the IDE to move to the browser and have been a fan of the idea since the Cloud9 days. If browsers had a way to delegate their reserved keyboard shortcuts I would use web IDEs full time.
- greggyb 4y agoIn Qutebrowser, there is a passthrough mode (default keybinding is C-v) that does exactly what it sounds like -- it passes all keystrokes through to the current page for processing. The only keybinding in that mode is the binding to leave it (Shift-Escape by default).
- djbusby 4y agoWe've had some success with less technical types using their web-based editor (like fixing fonts, colours and markdown docs). Love it, it's very useful for them to contribute where they can. Cheers to this team.
- dimgl 4y agoWhile this is cool, for Node.js there's something far better: https://stackblitz.com/ https://stackblitz.com/. This is one of the more impressive IDE in browser experiences I've had. Comes complete with a terminal and a shim around `npm` that allows you to install JavaScript dependencies directly to the browser. Some truly cool stuff.
- philliphaydon 4y agoI miss c9 which was bought by Amazon. It had a VM running behind it with a terminal so I was able to do .net core development. A couple times I wasn't home and wanted to fix a bug in my project so I was able to login to c9, spin up my project in the browser and it committed back to github.
- nsonha 4y agoWhy do you have to miss it? Any of the contemporary online IDEs can do more than that now (I ran docker containers in github codespaces) and you can theme it like Ace if that's your thing.
- philliphaydon 4y agoMiss it cos there's no free tier now. Speaking of codespaces I just got an invite last week. Still to check it out tho.
- SadTrombone 4y agoDoes Cloud9 on Amazon no longer let you do that? I used it back in college but haven't really kept up with its current status.
- btgeekboy 4y agoIt’s still around - https://aws.amazon.com/cloud9/ https://aws.amazon.com/cloud9/ Personally, I’m using Tailscale + VS Code with the Remote-SSH plug-in, accessing my home server.
- philliphaydon 4y agoYup but no free tier now :D not paying for it for open source dev stuff. Rather just run the IDE on my laptop. Was handy when using someone elses computer.
- hda2 4y agoCan the installed dependencies be downloaded locally? It might be a great way to resolve npm dependencies without resolving having to run npm on my system.
- rmetzler 4y agoThere is also https://www.gitpod.io/ https://www.gitpod.io/ I like the current WebIDE. It has two features which are important to me: - Lauch it with the . hotkey, from the file or merge request you currently browse - multi cursor with CMD+D on a Mac I don’t think I need VSCode, but we’ll see.
- ghuntley 4y agoHey, Geoff here from Gitpod. Thanks for letting more folks know about us. If people have any questions let me know.
- eschurter 4y agoGitLab team member and OP author here. I'm glad you enjoy that `.` hotkey! Don't worry, it won't go away! I'm about 90% sure multi cursor works the same way, but I'll verify and make sure we don't take a step back there :) I hope you find value in the other features we'll be delivering as part of the VS Code transition!
- rmetzler 4y agoI mentioned the CTRL+D multi cursor specifically because I think this feature is only available in VSCode if you choose the Atom key bindings. I regularly try to show this to my colleagues whenever we’re pairing, but they need to fall back to search & replace in VRSCode.
- PoignardAzur 4y agoOh hey, a recruiter made me code on stackblitz for an interview recently, and I couldn't find the site again afterwards. Thanks for the link. Yeah, stackblitz is amazing. At least during that one interview, it worked flawlessly.
- dimgl 4y agoThat... might have been me :D haha
- daenz 4y agoMaybe I'm getting old, but I don't want to do all development-related tasks in my web browser. As a software engineer, I want local control, where an internet connection is optional. I want to be able to experiment with the software in various local setups. I just don't get why Gitlab thinks this is a good idea worth a huge amount of engineering effort. Are people really clamoring for this feature?
- simonw 4y ago> Are people really clamoring for this feature? Yes. Because local development environments (at least for the languages I work with, Python and JavaScript) break ALL THE TIME. With 20+ years of experience I can just about keep my own laptop ticking over - but it takes work, and every time I mentor a new learner this is the number one sticking point. The browser-based cloud IDE experience, where it doesn't matter what you've got going on with your laptop, you just visit a URL and start work, is an incredible productivity boost for the vast majority of people. When I think about how much time was wasted on broken personal development environments at my last big employer (several hundred engineers)... I reckon the lost productivity was easily in the low millions of dollars per year.
- snitko 4y agoPerhaps the problem isn't your particular environment, but these languages infrastructure.
- happymellon 4y agoIt sounds like PEBKAC. I literally have not had Python just break on me, and after decades of software development at various places using Python/Java/Javascript I would say it is rare these days to see it happen to other people in the team either. It usually happens when someone decides to experiment with a different way of handing application versioning that they saw on HN, but they aren't actually experienced enough to test it in a sandboxed environment. Essentially breaking their computer in a new way that no one else on the team can help, and that Google won't give you any help with. I would say that the person you are replying to is probably inexperienced and doesn't want to learn their tools.
- alephnan 4y agoJob titles seem really important to the content here > In this video Paul Slaughter, Staff FE Engineer, walks Eric Schurter, Senior Product Manager
- datalopers 4y agoThey just erased 4 years of work by simply replacing it with a superior and open-source tool, VS Code. They’ve gotta justify their existence somehow.
- golergka 4y ago> superior and open-source Here's all the justification you need. Work doesn't have any value by itself.
- paradite 4y agoI feel that moving from Monaco to VS Code OSS (which is based on Monaco) is analogous to moving from a custom protocol on top of tcp to the standard http protocol. It's a big change, but not necessarily groundbreaking or noteworthy.
- emteycz 4y agoMake a free Gitlab account and try out their Web IDE as it is now, and then compare it to Gitpod or just run Coder-server on your machine. It's a humongous change. The current Web IDE is not an IDE at all - VSCode is.
- alephnan 4y agoBy the way, Monaco is 10MB+. That's quite impressive nowadays for something so feature filled, but you're staying for 10MB when doing quick edits. Monaco is a mature, powerful and pluggable, which makes it a good platform to build on top of. More cynically, it's a good bang-for-the-buck project if you are seeking a promotion. The alternative is building your own. Maybe that doesn't make good business sense. And that's exactly why I'm crafting a good enough web-based code editor under 14KB ( a single TCP roundtrip ). I was optimistic for Cloud9. It was built from the ground up, for the web, and was at a suite spot between being light but entirely suitable inline code edits.
- m_eiman 4y ago> under 14KB ( a single TCP roundtrip ) That's not a single roundtrip in any TCP stream I've heard of... Still, a lot smaller than 10MB of course.
- alephnan 4y agohttps://tylercipriani.com/blog/2016/09/25/the-14kb-in-the-tcp-initial-window/ https://tylercipriani.com/blog/2016/09/25/the-14kb-in-the-tc...
- m_eiman 4y agoAh, so it's "initial window size" than than "ping round trip". Interesting. The RFC they reference doesn't seem to be elevated to official standard, and it appears different OSes have different default values. On my Mac sysctl net.inet.tcp.maxseg_unacked says 8, which I assume is the relevant TCP option. But in the case of a server responding to a HTTP request I suppose the server could set it to basically any value, so why stop at 10? :)
- shp0ngle 4y agoRunning VSCode remotely introduces many interesting challenges, mostly due to security. (You are letting your users run any arbitrary code on your infrastructure.) However, I guess GitLab already has this sorted out, because of their existing IDE, and they are experts in this area. Also the open source versions of VSCode don't have access to the official VSCode marketplace. (Both VSCodium and coder.com Code Server.) But again that is probably fine here.
- leodriesch 4y agoUsers can already run code on their infrastructure with CI jobs, so I’d guess they already have that part figured out. The extensions and settings sync are going to be interesting, especially since they were pretty positive about extension support in the post.
- jillesvangurp 4y agoIt's all dockerized and security hardened probably. I'm guessing this is not that much of an issue. At least not any more than the likes of AWS, Google cloud, etc. allowing third parties to run whatever on their infrastructure. Not to say that there aren't any challenges but they aren't new challenges. And of course Gitlab has long been running CI infrastructure which would have the exact same issues.
- shp0ngle 4y agoYeah I know, but I have some indirect experience with this (not at gitlab, of course) and it was hard to figure all out. In short, it's hard to tell if you are doing repeated C++ builds or mining cryptocurrency. But yeah it's not that different from CI.
- emteycz 4y agoWhat does it matter if you pay for it?
- sarki_247 4y agoGitLab team member here! This implementation will be client-side only, with a selection of extensions allowed. Self-hosted instance admins will be able to enable or create an allow-list of extensions on their instance. You can learn more in this epic: https://gitlab.com/groups/gitlab-org/-/epics/7683 https://gitlab.com/groups/gitlab-org/-/epics/7683
- crabmusket 4y agoIt's interesting to me that GitLab is adopting a Microsoft product (VS Code) and Microsoft owns a significant competitor in GitHub. Nothing intelligent to say about that other than to wish I'd been a fly on the wall for the discussions about that. > Next, we asked ourselves the question: Do we want to continue to invest in implementing custom features for the Web IDE that ultimately deliver the same value as those already available in VS Code? Or do we embrace VS Code inside GitLab, and invest in extending the experience to more tightly integrate with GitLab and the DevOps workflow? I feel like if asking myself those questions I'd have come to the same answer, but it's certainly an interesting position. It's not necessarily that I think Microsoft will leverage this open-source project against GitLab. Maybe it just says something about Microsoft's increasingly-dominant position in developer tooling.
- zarzavat 4y agoMicrosoft may have a dominant position in developer tooling, but they don’t have a monopoly. A well-funded team could create a compelling competitor to VS Code. The issue is that there’s no money to be made duplicating the effort that has gone into VS Code when VS Code is open source. Even Google doesn’t seem to care about entering that space.
- jve 4y agoHaven't ever used JetBrains Rider, but I hear they too have remote development capability: https://www.jetbrains.com/remote-development/ https://www.jetbrains.com/remote-development/
- jillesvangurp 4y agoJetbrains just did a deal with gitpod as well: https://www.gitpod.io/blog/gitpod-jetbrains https://www.gitpod.io/blog/gitpod-jetbrains Remote development environments are becoming a thing. I've not really had a chance to explore this space a lot but I might.
- dnsmichi 4y ago
- rektide 4y agoThere's a long long route to cloudification, but works like Okteto[1] seem like a nice early pass at doing what Docker-Compose was capable of for fast local development, but modern. Pursuing remote-development makes a lot of sense. There's already solid VSCode integration[2]. If you just need a terminal like thing to local-dev in, toolbx[3] is probably the first choice. These are probably where we run our LSP/Language Server Protocol helpers too. Eventually I expect we won't really notice or care that the "computer" ("local") is virtual, just some container. [1] https://github.com/okteto/okteto https://github.com/okteto/okteto [2] https://marketplace.visualstudio.com/items?itemName=okteto.remote-kubernetes https://marketplace.visualstudio.com/items?itemName=okteto.r... [3] https://containertoolbx.org/ https://containertoolbx.org/
- crossroadsguy 4y ago> These lightweight changes make up the vast majority of the Web IDE usage Imho, that’s Web Text Editor. It’d be helpful to not mix junior an “editor” with an “IDE”. If someone at Gitlab is listening then it’d actually be a differentiator to make an IDE (and charge for it) to also those platforms where having a beefy laptop becomes a requirement (eg Android) and developers on those platforms, or a lot of them like me, would love to have a platform online that’s largely independent of a development machine.
- golergka 4y agoVSCode is really an IDE, not a text editor. While it's not built for one particular language in mind, with vast majority of languages it offers all the features you would get from an IDE.
- infinityio 4y agoNot sure it'll end up as a cloud offering and instead just a lightweight desktop app, but have you looked into Jetbrains Fleet (w/ Spaces)? Not released yet, but it has potential
- john_cogs 4y agoGitLab team member here. Thanks for the feedback. It would be great if you could share your insights and feedback on the public epic for the strategy for remote development: https://gitlab.com/groups/gitlab-org/-/epics/7419 https://gitlab.com/groups/gitlab-org/-/epics/7419
- eschurter 4y agoGitLab PM and OP author here. Thanks for linking that epic @john_cogs! You can also see the direction page for remote development: https://about.gitlab.com/direction/create/editor/remote_development/ https://about.gitlab.com/direction/create/editor/remote_deve... We're looking to a future where the Web IDE earns the "IDE" distinction, and you're absolutely right - for smaller edits, we'll continue to have a lightweight Web Editor.
- TekMol 4y agoWhat is the idea here on how to use it for anything but front end development? When I edit PHP, Python, Ruby, whatever code that is hosted on GitLab via their Web IDE, how am I supposed to see the result when it needs a whole stack with Linux, Apache and MySQL below it to run?
- makeitdouble 4y agoI use the current web editor a lot for small changes on repositories I don't want to full clone. For instance if you need to change a value in a configuration file, you can make the change in a new branch, have the CI pass on it, check if every was fine, and merge/deploy as needed. All from the web interface. I'm sure some people use it do crazy complex changes, but I see it as convenience for scope limited tasks more than anything.
- leodriesch 4y agoGitHub Codespaces and VSCode remote development solve this problem by using docker and optionally docker compose to create reproducible development environments. GitHub is using Codespaces itself [0], which is a huge Rails app with tons of infrastructure behind it I’d assume. [0]: https://github.blog/2021-08-11-githubs-engineering-team-moved-codespaces/ https://github.blog/2021-08-11-githubs-engineering-team-move...
- bibinou 4y agoCI.
- sarki_247 4y agoGitLab Team member here! You can set up different environments with whatever dependency your application needs. GitLab CI can build/deploy your application to the right environment depending on various factors. You can also look at GitLab Review Apps, which "is a collaboration tool that assists with providing an environment to showcase product changes." See: https://docs.gitlab.com/ee/ci/review_apps/ https://docs.gitlab.com/ee/ci/review_apps/
- eschurter 4y agoGitLab PM and OP author here! You're right, the client-side instance of VS Code is only a piece of the full "IDE" puzzle. You can learn more about our direction for providing server-side runtime on our Remote Development direction page: https://about.gitlab.com/direction/create/editor/remote_development/ https://about.gitlab.com/direction/create/editor/remote_deve... More on that in the near future.
- dinvlad 4y agoIt would be amazing to figure out how to make a Web IDE with a local shell that's inexpensive to run. Something that uses Spot instances with seamless migration between hosts. No one has really addressed this problem so far - all of the existing cloud IDEs cannot match a modern multi-core dev laptop without breaking a bank.
- DeathArrow 4y agoI want to own the code, own the software, own the tools (IDE, compiler etc) and also be the only one who controls them. And I want to also develop fast, not wait for some goddamn web app. And no, I don't need to code on my phone or tablet while travelling to Bahamas.
- alephnan 4y agoWhat IDE do you 'own'?
- hk__2 4y agoI guess that OP is talking about having the IDE/compiler/etc binary on their computer and not having to rely on any external service to work.
- emteycz 4y agoWell then self-hosted Gitlab is the perfect option.
- dnsmichi 4y agoGitLab team member here - using VS Code on a desktop client works well with the GitLab Workflow extension [0] for Git SCM operations, as well as CI/CD pipeline status from pushed commits & merge requests. Additionally, remote repository views come in handy. [1] [0] https://docs.gitlab.com/ee/user/project/repository/vscode.html https://docs.gitlab.com/ee/user/project/repository/vscode.ht... [1] https://about.gitlab.com/blog/2021/05/20/vscode-workflows-for-working-with-gitlab/ https://about.gitlab.com/blog/2021/05/20/vscode-workflows-fo...
- snovv_crash 4y agoQtCreator? Vim? Eclipse? KDevelop? And I'm just talking about C++ IDEs here.
- Existenceblinks 4y agoYeah, practically, it's the same. They don't even own git tbh, and won't even make noise on git core mailing list. I can even go extreme, practically, whether they even can.
- greatgib 4y agoAlways have to check the date for April's fool day when seeing a news like that, but sadly it is not... When you think that gitlab started as an open source alternative to the closed world of GitHub, and was free as in "free speech". And then, little by little it becomes the same thing. Less and less things not in premium plan and less affordable plans. Now, they are ok to use as-is a Microsoft editor, that is free as in "free core" and is in the straight line of the EEE strategy. So, for me, each time it is less and less reasons to use gitlab and better to use directly GitHub, for better performances anyway...
- dijit 4y agoTo be completely fair to Gitlab: reimplementing the same thing but worse isn't exactly fun; gitpods is already doing this basically. VSCode, as much as I don't personally use it: does have a completely free and open source version in vscodium: https://vscodium.com/ https://vscodium.com/ Isn't it better to consolidate efforts on a vscode fork in the event of hostile tactics by Microsoft?
- bibinou 4y agoa fork developed by who? OP is literally Gitlab admitting they can't build a competitive web editor.
- ohgodplsno 4y agoAnd ? Should every company yak-shave to satisfy FOSS zealots ? Where does it stop ? Is running Gitlab on Windows a problem ? Let Gitlab focus on git repositories, project management and devops. Everything else is just a pure waste of time.
- dijit 4y agoA fork by more people than just gitlab is going to be easier than a reimplementation created only by gitlab. 1) It is a product that exists, maintenance is easier than building from scratch in this case. 2) a consolidated effort by many people in maintaining a fork will allow much more effort than gitlab alone can spend. 3) mindshare on how vscode works already exists externally, a new webIDE doesn't have the same level of developer mindshare anyway. As a paying gitlab customer I'd rather their money be spent on things that actually matter; reimplementing open source tools does not matter.
- Dave3of5 4y agoGithub already does this. Press dot (period) on any repo and it'll open in a web based VSCode.