Google Launches Project IDX, A web-based IDE
What if your dev experience was entirely in the cloud?
These days, launching applications means navigating an endless sea of complexity. We felt this pain at Google, so we started Project IDX, an experimental new initiative aimed at bringing your entire full-stack, multiplatform app development workflow to the cloud.
Project IDX gets you into your dev workflow in no time, backed by the security and scalability of Google Cloud.
Project IDX lets you preview your full-stack, multiplatform apps as your users would see them, with upcoming support for built-in multi-browser web previews, Android emulators, and iOS simulators.
As a Vim fanatic, I can't say I'll ever feel comfortable working in a browser, but some parts of IDX seem interesting. I wonder what the implications are for proprietary code.
I do think it solves an interesting problem where you're working on your desktop and decide to move to your laptop and continue working on the same codebase, but don't want to commit early so you can pull down the changes to your laptop.
It reminds me vaguely of Shells.
Hell no, no way I'd trust Google with my code. Personal or otherwise. Let me guess this would work only in Chrome.
All your codebase are belong to us.
Ditto. But at the risk of playing devil's advocate, if you were writing free software code you were going to stick on a code forge somewhere anyway, would you still be against it?
Are there Google services that only work in Chrome? I don't use any of them, so I don't know. I do know Google is generally less annoying than Microsoft in that department.
this is the gateway to this
how this? through Firefox I experience ms websites the same as with edge. google websites? experience is full of small differences from chrome
Edit:formatting
Microsoft don't allow Bing chat to run in anything but Edge. I don't know if there are others, but that's the one I've noticed recently.
true, but bing chat isn't all ms services. although I've heard of plug-ins that could do that, dreadful as it is just the idea
Firefox is my main browser. In my experience, Microsoft services don't work at all on Firefox. I can't say I use much of either company's services, but Google tends to be more lax in some departments. For example, the Google Pixel is the only Android device that allows you to securely unlock the bootloader and install another operating system on it, rather than forcing you to root the device.
I'm not a fan of either company, but I get the impression Google is less actively hostile toward their customers than Microsoft. For the most part.
i work for a company that produces dotnet software. I'm my comments you'll find this, and that firefox is my browser of choice. so we obviously manage access via ad, we use azure, etc. . when it comes to develop Linux native code, i fire up my vm, and I can even use the teams web version on firefox (tbh, only chat though) , so
i don't really know where this is coming from. would you like to elaborate?
the idea that ms is hostile towards its customers is so apple propaganda from some 20 years ago... I mean, a very old refrain... just please stop beating this now decomposed horse. had u written something like
ms like apple like google/alphabet are private ruthless faceless us corporations, ready to suck the soul of anything that got one
that, i could agree on. anyways, peace, obviously.
As I said, I don't deal with a lot of Microsoft or Google services, though I do run my email through Microsoft Exchange. It took me roughly three hours to figure out how to download the Microsoft Office executable from the Microsoft website. I tried everything on Firefox, Brave, Chrome, even on my Mac. In the end, I needed Microsoft Edge to get it. I don't remember the exact details because this was 2 or so years ago, but requiring a particular version of a Blink-based browser just to download Microsoft Office seems...unnecessary.
I remember needing to use Brave for Microsoft Teams, but I could be remembering wrong. When I think of Microsoft being actively hostile toward their customers, I think of about ten years ago when Microsoft tried to prevent Xbox owners from sharing physical disk games with the Xbox One, essentially killing preowned games (not that they went through with it). Of course, Apple is an easier target than Microsoft for customer-hostile behavior. Frankly, these megacorporations all blend together for me.
I don't have any particular feelings about Microsoft, and after using Windows for 20 years, I don't have any major complaints with it (from memory; it's been a while), aside from the obvious. If there's any particular corporation I despise, that would have to be Amazon.
on mac i can't honestly argue about anything. apple policies, practices, hw, sw, services, etc. are something i try to stay as far away as possible. dunno if it's still the same, but as an example VLC on mac was practically nothing and broken compared to linux and win version, because, you know, quicktime (or what it was/is called the native media player). also is it possible that mac makes really hard to access ms services (or that ms makes really hard to access their services on a mac? although they already make sw for that os... mmh...)? anyways, just for completeness, on win I had no trouble managing office (again, don't recall what that iteration was called, but it was the one that allowed you to install office in 5 machines with one license) with firefox. have a nice day
I use mpv on macOS and haven't had any trouble to speak of. But you might have installed VLC from the App Store, which is a common mistake—unless you're installing Apple's own software, you probably shouldn't use the App Store. It usually only carries inferior versions of the software to comply with Apple's terms, haha.
I very rarely use Microsoft Office nowadays, but once it's installed, it's (mostly) fine? I've heard from a coworker that there are some significant missing features in some software in that suite. I just remember struggling to find the page to download the
Setup.exe
file. I went to the exact same page in Microsoft Edge and a download button that wasn't there in any other browser suddenly appeared! Maddening! This was a 5 or 10-license verison, I think.well the first part is super interesting...common mistake installing from official store non brand apps!? that's something on the line with win store. if I'm told I'd die if I do not install Inkscape through win store, well, you know, I'd either stop looking at the insides of a svg or die. not so tough of a decision ah ah
What if your dev environment could disappear completely one day when we get bored of maintaining it after it doesn't immediately displace github?
That would be annoying.
this
No. Just no.
Fuck no.
Cringe. Not everything needs to be offloaded to someone else's computer.
And frankly, why would I pay some sort of fee (which they will eventually charge, even if they don't right now) for the "privilege" of having
rustc
fight for execution time on a vCPU somewhere in California?Every day that passes I lean further towards pursuing a career in embedded.
It’s s toss-up as to whether they start to charge for it, or whether they ditch it after a couple of years, like they have done with so many other side-projects.
Damn, I'm exhausted, why does launching an application have to be so hard?
CTRL + T
terminal opensMeta+e .. emacsclient pops up instantly
Hey, there's always double-clicking the icon too. Now that is exhausting.
I imagine they mean launching in more of a release sense (IE: Announcing the launch of new app XYZ). I sure hope so, anyways.
Probably, I don't really know how a web IDE would make it any easier but perhaps that's because of a lack of personal experience.
It's selling itself as more than an IDE. The idea is to have templates for common languages/frameworks. Ideally, this would mean not having to learn how to init a project in a given framework, not having to learn the build tools, not having to learn deployment, ci/cd, etc. Just open this new webapp, pick a framework, develop, and click a "launch" button to have it spin up in GCP.
That sums up, I could use sensible CMake templates in my life.
Even if it's very cool, the problem I have with newer google products is that they might just kill it at any time, even if it's successful.
Basically if it brings them enough data it stays, otherwise, it dies. Look at Google domains.
I don't see how this could be positive for any Software developer in the long run. I totally see how this could be positive for CEO/CTO, Project Managers, in the long run, and I see a few short term advantages for Software developers.
Let's be clear, I saw that coming since Microsoft bought Github, and I am scared by the direction this is taking. The end goal is to move more and more control and power to non-software people about Software development.
By forcing every developer to not use their own tools this will have a lot of advantage for CEO/CTOs but this is terrible for software developers:
And I can think of other possible drawbacks but my comment is already long enough.
I mean, 2 and 4 have been true already for quite some time in my experience.
So, like 18 months before this gets added to the Google graveyard?
We really should start a community specifically for bets on when a newly launched Google project will be shut down.
I have a simple method for deciding whether or not to use something.
If either of these is a yes, I look for something else
This is a good method. I love technology, but tech companies have become increasingly icky. Trends over the last decade have finally soured me on Google. I just can't justify using or buying their services.
No.
Aren't we past that point?
VS Code is Electron based and it can even be deployed in the cloud. We are talking about one of the most popular IDEs.
You are talking about transmitting every bit of code you write to the internet. Go ahead if you want that, I don't
I am not saying otherwise. But do we still have a say?
Yes. It is still entirely possible to run VSCode or VSCodium locally without any of that cloud crap.
True, I myself prefer VS Codium but how many people use it? And some site like Coursera have VSCode on the web and it can't be changed to VSCodium.
My entire point is that you aren’t forced into using that cloud crap for normal development. And you aren’t forced into any specific IDE. You can choose whatever IDE you want unless your employer mandates something specific.
Is it good technically though? Or is it just really popular because it's so well maintained and extensible?
I think the main reason vscode is so popular is, because there aren't really good native alternatives (e.g. I wouldn't compare e.g. vim because it's kind of a different target audience).
So maybe something like zed or so will take the reign of this class of editors, but we'll see, I just hope it's not yet another electron or DOM based editor, DOM is bad enough in the web already...
Unfortunately, yes.
Google probably want that sweet, sweet development stages of the code, every interaction at debugging, documentation editing, everything, to train their AI.
This is wrong on so many levels, I cannot fathom where I could start talking about it.
You know they'll be saving every line of code and analyzing it and feeding it into their ML models.
Fuck that. Anything I do is staying right here with me unless it's something I choose to share on GitHub.
You can just push the changes to a different branch and then merge it to your normal feature branch later. Takes like 5 seconds.
Exactly. And if you you're worried about dirtying your commit history with an unfinished commit, just rebase it out later.
Someone needs to tell this man about rebasing.
I rebase! I just don't want to push to the main repo, pull it down, rebase and force push to it. Pushing to a disposable branch is an obvious solution I didn't see, haha. I tend to not use branching a lot in my projects...
...I guess I could actually set up my desktop as a remote too, huh.
If only there was some syncing thing that would let you move arbitrary files between devices.
https://github.com/syncthing
Thanks for the suggestion! If you can believe it, I already have Syncthing installed but haven't used it in ages. I didn't even think of using this for keeping git repositories in sync! I did find these forum posts that seem to recommend against using Syncthing for git repositories, though they're 6-7 years old:
Well, conflicting reports really, but it's enough to make me wary. Interestingly, someone recommends the branch solution as an alternative:
Seemed to be working out well for the OP, though.
I've had no problem for years.
Biggest issue I've had was forgetting I committed something on one device before committing on another. Then I had two branches where one had " conflict" in the name. I just deleted all conflict files and everything continued as normal. If your repo is never corrupted before syncing worst case you should be able to find and delete all conflict files.
Syncthing conflicts include the source of the conflict so you could just choose to delete all files whose conflict is from one device and leave everything from the other.
If you're worried you could just ignore your '.git' folder in syncthing since you're purposefully not committing during this. Then sync through git when you finally commit your changes on a device.
Fair enough, thanks!
Or just use vscode remoting.
Huh, fair enough. I guess I'm still not using git to its full potential. What I do now is SSH into my desktop from my laptop and work on it there. It's easy because I use Neovim.
"Hey you guys, come and use our totally free online thing. We promise we won't use anything you do for our own gains! Pinky swear!"
Cloud is a plague.
Mmh. Don't like that
Things have been headed this way for a loooong time. That said, unless I can self-host something like this, I'm not interested.
I might be open to the idea, but it would need to be a trustworthy company that doesn't cancel stuff left and right. An ide would be too annoying to switch constantly to take this risk.
The sad truth is that people are stupid enough to use this.
This has been a solved problem for decades. SSH.
What's bad about committing early? Do people not know about --amend?
There is no such thing as committing early.
It's not so much committing early, but pushing early. You don't want to push early, then rebase your commits, and then force-push to a repository other developers are using too.
But as I've learned from all of the responses in this thread, there are many ways of avoiding this 🙂
Well, it's what I use with Neovim, but not everyone uses a terminal-based editor. But other users had some other suggestions too: https://lemmy.comfysnug.space/comment/620209
Fortunately for me, VSCode has support for running the backend remotely via SSH.
Ever since I've discovered Parsec (or any other remote desktop streaming solution that isn't TeamViewer), I've switched from having to drag around a heavy laptop that still can barely run Unreal to just having a Surface, remotely WoL my desktop at home through a pooling solution that does not require any public facing service (my NAS is just pooling a website API for a trigger. Not efficient, but secure), and just connecting through Parsec.
RDP could also work I'd wager, but then I'd have to set up a VPN and I'm not really that comfortable with anything public facing. But if anyone asks me now for good laptop recommendations, I always recommend going the "better desktop for the same price, and small laptop for remote".
I've yet to find a place where I couldn't work comfortably through Parsec, it being optimized for gaming means the experience is pretty smooth, and it works pretty well even at lower network speeds. You still need at least 5-10Mbps, but if you have unlimited mobile data you're good to go almost anywhere.
Thanks for sharing about Parsec, it looks interesting. How is the speed? They talk about it being fast but is it?
I've never had any issues, it's pretty well optimized and it's miles ahead of TeamViewer. So, in my experience, it is pretty fast - if your net can handle it. And if you have lower bandwidth then it's pretty good at optimizing for speed instead of quality, if that's what you want.
Turns out it won't share a Linux machine.
Oh, you're right, I've totally forgotten about that. It was one of the (many) reasons why I gave up my last attempt to finally switch away from windows and to Linux.
If I'm not able to self-host it a la VS Codium, then it's very much a honeypot.
Like for stealing your code?
Also vscodium vs vscode-server. What's the difference? I've heard the ladder has Spyware or something?
Yummy yummy give me your codei !!
We don't need everything in the cloud or in a browser
This is a play against VSCode and the developer moat MS/GitHub have built right? In which case, go at it I guess.
The Shell -> Mainframe style IDE has been coming for a while. And makes some sense, however much of a local app person you are. I’m kinda surprised Google hadn’t made a move yet. On which, it’s suspicious that this is probably driven or associated with AI.
VS Code also supports the devcontainter format, where you can get a well-defined fully configured dev environments locally or remotely. It also automatically asks whether you want to use them if the project has a
devcontainer.json
file.So you can get the benefit of a standardized environment without going all-in on cloud.
https://containers.dev/
https://code.visualstudio.com/docs/devcontainers/containers
This is quite interesting. Is the devcontainer spec tightly coupled to VS Code, or is it something that other IDEs do/can support?
Well, to be honest, I have a Docker Compose setup I use with Neovim anyway so I don't know what the benefits are of devcontainer compared to that.
I think it was created by the same people as VS Code, and definitely designed around its needs (at least initially), kind of like the Language Server Protocol.
There is some preliminary support in IntelliJ - https://blog.jetbrains.com/idea/2023/06/intellij-idea-2023-2-eap-6/#SupportforDevContainers, but then it wasn't mentioned in the normal 2023.2 release notes, not sure if they pushed it to a future release or what. Either way, it's a work in progress there.
Then there are tools like https://devpod.sh/ that also use devcontainters.
Regarding how it's different from just using compose directly, I think the idea is that you "connect" your IDE to it and it specifies things like extensions (obviously IDE-specific), debuggers and debug configurations, language servers setup, environment to use when you open a terminal into it, etc.
Judging by the big
© Microsoft 2022
logo in the bottom right, I'd say you're right.I guess this is one of those things I'm not going to appreciate until I need it, but none of that sounds more appealing to me over Docker Compose. I'm not sure how debuggers, etc,. would even apply to the server or why you would need to use a cloud server rather than running the services locally for a development environment. My guess is this would be a lot more useful for Windows users who don't have as easy access to the right dependencies?
The main pitch is that you don't have to spend time and effort with installing and configuring a project for development when onboarding new people to it, or when you want to contribute to someone else's project etc.
You get a proven, up-to-date "works on my machine" kind of environment that others also use, and you don't need to "pollute" your host system by installing additional tools necessary for each individual project. Compilation (and other build steps), running the project, running the tests, debugging, IDE configuration (e.g. language servers, linter plugins), etc. all happen inside the container.
I personally don't find it all that useful for projects I'm working on long-term myself, but it's nice if you need to check something in someone else's project which you're not that familiar with.
I use dev containers on Mac, it’s not just about launching services that you need to test your code, it’s about specifying the entire build toolchain to get a deterministic dev environment in an isolated way.
You don’t need to manage the docker containers at all, vscode handles their lifecycle.
You can specify different extensions/configurations per project, so if you bounce between several languages, you’re only using the extensions/configs for a given project.
It also allows for a mostly seamless debugger experience with the browser when you launch a process.
The nice thing is that it sits off to the side, you can use your docker-compose as you normally would, but if you want to provide a full working dev environment for contributors, basically all they need is docker and vscode installed and they can get started.
The devcontainer spec is based on open standards, so it probably will end up in other editors, because it solves a huge problem for teams. The only thing that I think will come close is Nix, but I think it’s limited in scope in some important ways for this use case.
The landing page mentions this:
I left it out of the main post because I um, didn't think it was particularly newsworthy.
So cancer + a different form of cancer = ...?
I really don't get why you want an editor to be based on DOM, it feels just like sluggish ... cancer...
Eclipse che has missed the train by tying itself to red hat.
I'm avoiding google as much as I can, so this definitely isn't for me. But, does anyone knows of any self-hosted similar solution? I'm already mostly working remotely on my desktop through Parsec, but having something like a FOSS web IDE running at home would be a little bit better solution for cases where the network speed/quality isn't good enough to work for the whole streamed desktop case.
There's versions of VSCode you can run as a web app, including support for the terminal. You just need to roll your own build/run stuff.
That sounds cool, thanks! Apparently, you can do the same with JetBrains Rider, which would also be great. I have to check that out.