> Cursor allegedly has been flouting Microsoft terms-of-service rules for some time now by setting up a reverse proxy to mask its network requests to the endpoints used by the Microsoft Visual Studio Marketplace. This allows Cursor users to install VS Code extensions from Microsoft's market. Other VS Code forks tend to point to Open VSX, an alternative extension marketplace.
There are specific protections allowed when the goal is to maintain / break compatibility. If Microsoft locks competitors out, competitors are quite often permitted to pick the lock.
I can't comment on this situation since I don't know the details, but it's very likely this is fully legal.
See Oracle / Java API lawsuit, garage door opener suit, etc. To see where the lines sit.
There is a direct cost to Microsoft that these companies are pushing on them. Specifically around bandwidth.
Microsoft does not need to provide access for downloading plugins from their servers to anyone else.
I get Microsoft is a Megacorp, but I don't think too highly of all these ai startups either.
Either you don't get caught and can move faster, or you get caught and the penalty is usually small and a long way down the line, by which time your company will have either folded or grown enough to pay without difficulty.
https://en.wikipedia.org/wiki/Microsoft_litigation#Antitrust
I did completely move away from GitHub (which is by now named "ShitHub" in some circles) the moment that Microsoft enforced 2FA on my account.
Yes, perhaps 2FA is a good idea for many scenarios, but if some company forces it upon me, I won't have any tolerance to be willing to be their customer/user anymore.
See [1] for a different perspective on this topic.
---
And yes, I agree with you that is a great idea for a next step to at least strongly reduce (or even cut) your dependence on NPM wherever possible.
---
[1] https://stackoverflow.com/questions/72512276/how-to-disable-...
I also present the CEO and board with other arguments, like moral ones about involvement in atrocities and tyranny, legal ones regarding things like data protection, market related ones such as the likelihood of a future showdown between the EU and US.
But the risk that MICROS~1 fucks us over directly is even easier for them to understand, because they have been using Windows and Office for decades and are quite queasy about 10 going EOL and what the next set of annoyances in document management will be that they'll have to suffer under. It's something they have immediate experience of and didn't like.
A year from now it's probable we'll only have a couple of Windows machines left, because some of our customers use software that doesn't run under Wine and tries to block execution under both debuggers and container environments.
To me the former is tolerable, the latter is not.
If anyone remembers WCF/AppFabric/WWF and Silverlight, that was the last stack I rewrote someone out of the shit on.
I had the fortune to be involved developing the LEGO Mindstorms EV3 programming software. Under the hood, it was a small web browser shell (using Mono on Mac and WPF on Windows) around a Silverlight Out-of-Browser app. Anything beyond the permissions of the Silverlight app (e.g. bluetooth/USB comms) was an RPC from Silverlight to the shell.
After completing the Mac/Windows app, LEGO wanted to deliver a similar experience on iPad. There was no Silverlight there, and it was clear there never would be. But we were able to leverage Xamarin stuff to reuse most of the same codebase, just with an iOS UI on top.
Due to experiences like that I refused to buy volume licenses from them, too. Sometime later I got an audit demand for which I had a reply ready.
"lol, no."
SharePoint Server Subscription Edition still uses those techs today.
Open source project hosted on GitHub, for the network effect.
Use Rust which also rely on GitHub for crates.io
> Use Rust which also rely on GitHub for crates.io
It is a very good idea to get rid of both as far and soon as possible. And, as I wrote at https://news.ycombinator.com/item?id=43793095 in some circles it already became very fashionable to call GitHub "ShitHub" and somewhat look down upon open-source projects that have their central repository on GitHub (i.e. are willing to enslave themselves to Microsoft for some stupid "network effect").
Unless the developers of the IDEs hit by this never actually read the ToS, of course, which would only make them less reliable as an IDE provider.
After all MS is completely okay with their AI darling reading ToS-protected stuff.
Also, if you do open source contributions, never ever agree to assign copyright to the project: doing so means the project owners can relicense the code base, even towards proprietary license.
Microsoft knew they would never get significant market share unless they offered open source alternatives that let you circumvent the telemetry in the early days of VScode. Embrace. The acquisition of github was part of this strategy. They made an ecosystem that sucked a lot of plugin developer talent into their ecosystem. Extend. Now the market share is firmly in their grasp and competitors have become weaker. Extinguish.
VS Code source is under MIT, but the built product is under an EULA - and all Microsoft extensions are under an EULA that requires the use of the EULA build.
As has been already posted multiple times here... https://ghuntley.com/fracture/
Sad to see it go in such a predictable direction.
AOSP used to be the complete Android system, more or less. And when you bought a Nexus device from Google, that's what you got. But they progressively abandoned the stock apps to replace them by their proprietary counterparts, or ones tied to their online services.
Then, they replaced their Nexus line of phones with the Pixel line. Pixels are full of proprietary technology, and their last move was to make Android development private.
The issue with VS Code is that it opened the door to many other editors, which, in a sense, drive people away from the Microsoft ecosystem. The combination of VSCode, GitHub, and TypeScript is ideal for MS: they win by attracting companies to GitHub services (which also offer code spaces based on VSCode); they also win by attracting users to Copilot, which helps them improve their tools. Creating an editor like VS Code is expensive; they are not paying the core developers because they prefer to give away money. They do it because it's part of their business strategy. You don't pay for VS Code; companies that subscribe to GitHub services do. A VS Code fork circumvents that strategy.
Minor annoyance to have to make my c make project generate buildchain files for a compiler I’m not using & copy that file into my project root to commit it- unrelated to the original question, but also annoying that I have to manually generate it every time I make significant codebase changes.
Yes, you're right about that.
Basically, it boils down to "use CMake with Ninja/Makefile" (even if you don't strictly have to, you could write a script that creates the json yourself, for example). When cross-compiling, you may also have to whitelist compiler paths.
Add -DCMAKE_EXPORT_COMPILE_COMMANDS=ON as command-line arg during the config step, or add the equivalent "set" call to your CMakeLists.txt, restart clangd (ctrl+p, restart clangd), and you're good to go.
There are minor annoyances when cross-compiling (it using clang -- some compile options are incompatible and need to be removed in global user config, and it not extracting default compiler defines from compilers) but they are very easily worked around
I more or less use this as config: https://gist.github.com/TuxSH/0220d1235dace77f82738c96718011...
Awesome software, but I don't trust the upstream org further than I must.
The worst part is all the VSCode is still promoted to developers as open source, even though official extensions increasingly aren't, with bits and pieces gradually replaced with closed code. It's not that closed source is necessarily bad, but when F/OSS popularity is milked for marketing purposes while stuff like this happens, it just feels very wrong. If you want to be closed source for reasons, fine, but be honest and upfront about it.
IIRC Apple at least has always been fairly clear and consistent with what bits of its software are open and what bits aren't. To my knowledge they haven't been breaking off chunks of Darwin and closing them. (Although if I'm wrong do correct me.)
Weird, ADS is dead and nobody spent any time on it, I wonder why.
I don't mean that in a mean way, but have you considered another editor that is more open?
It’s fast, the interface is distraction free and it already has support for all the languages I use regularly. Even Terraform support, which is notoriously hard to get right, is better than the current “best” in VSCode.
Thanks for the recommendation
Minor grievance, sure, but it it not an encouraging sign for their priorities.
I also think it's a mixed opportunity not to allow for something like Lua or a Lisp to configure Zed in. It's very promising but I'm not willing to switch just yet.
It supports most vscode extensions right out of the box.
Debugging isn't in yet, but is actively being worked on and planned for public release before 1.0: https://github.com/zed-industries/zed/issues/5065, there's an active channel in their Discord discussing the development of the feature.
I actually worked a bunch on the language server logic in Zed trying to get a bunch of it to work on Windows. All I have to say about that is: ugh.
I figure e.g. emacs will always be there when that happens.
All I need is a Github Copilot clone and a good code search feature.
Oh and automatic reloads of open but unchanged buffers when switching between git branches.
Oh and the ssh remote extension.
Yep, vscode is more intuitive.
However emacs is mostly the kind of thing you dedicate a couple of months of discomfort and enjoy for the rest of your life. Quite literally.
Spending some money on the “mastering emacs” book (https://www.masteringemacs.org/) is worth imho.
Bonus point: little by little you start enjoying doing more stuff in emacs. It’s a meme, but it’s true.
I'm using https://github.com/copilot-emacs/copilot.el
> good code search feature.
project-find-regexp is a nice start.
> Oh and automatic reloads of open but unchanged buffers when switching between git branches.
(global-auto-revert-mode t)
> Oh and the ssh remote extension.
I haven't compared it to Tramp.
or you could just use copilot through copilot.el
> and a good code search feature.
Like through helm or ivy?
> Oh and automatic reloads of open but unchanged buffers when switching between git branches.
My emacs does that, and I don't think I did anything special to get it.
> Oh and the ssh remote extension.
like tramp?
I feel like I've been doing that for years on a wide range of topics, but every time it's like you're talking to cult members.
How do you break through to people? People say things like "you're overthinking it", "that's never going to happen", "I don't care because I like using VSCode and not alternatives".
Is it individualism? That they only consider their own narrow short-term interests, and have become blind to collective problems?
I remember when basic features that come for free in VS Code cost thousands of dollars per developer, back when "update" meant "buy the new version (again)". I swear, people forgot how good they have it.
The change that made the Microsoft addon incompatible with VS Code forks happened four years ago.
For people who care, to some degree, about using an open source tool, for whom the marketing that VS Code is open source played a role in their choice of using it, it should matter. And it matters that other projects (think Platform IO and more) choose VS Code as a platform to build on top of, and they get away with it because "it's open source".
Also, very often, the feelings don't correspond to the reality or the aftermath of the decision-making at all. For example, X seems to be hugely upsetting, but life generally moves on, and people are not that touched actually, as much as they protest to the opposite. This happens pro and contra issues as well; for example, people might hate Windows' latest X bullshit, but they won't change their OS in the end, or, pro example, people might feel like that stand by local production, but they won't actually buy local, because it costs more.
What we are very blind to are problems that don't have immediate negative feedback. Comfort and security are huge motivators, especially when people have to let go of them. PR and propaganda (same thing really) uses this, among others, very effectively.
Me, personally? No, because they're honest about it. I use BBEdit and Nova frequently on my Mac. Those are as closed source as it gets. They never pretend otherwise, though. You pay your money and you know what you're getting. VSCode tries really hard to appear to be open source, as long as you're willing to ignore the million places where they aren't. (Python devs: are you using PyLance? I'm talking to you.)
And ironically, those closed editors seem to play more nicely with the ecosystem as a whole. Neither BBEdit nor Nova have ever tried to talk me into installing closed plugins, and the same plugins that work with them work great in Emacs and Zed.
If I go to one bar that charged $5 per beer, and another that gives free beer but makes you rent single-use mugs for $5, even though the end price is identical, the rental bar's going to annoy me horrendously. Just admit what it is and let people judge on their own merits.
The opening of Proverbs has:
1:5. Let the wise hear and increase in learning[...]
Tech bubble remains tech bubble, when common, non-tech people are much more screwed, yet nothing is being done except saying "lol, just install Linux".
Ever since I got remote mode working, I haven’t noticed any missing functionality I care about. (I also haven’t tried installing extensions for the pile of commercial services work uses, and that I wouldn’t pay for anyway.)
Edit: Since cursor now has near infinite VC money, perhaps they should fund a few open source devs to work on those forks. Why should they get a free ride?
Where this has become increasingly problematic is rampant materialism and corporatism.
If the only real motivator in town, especially for the powerful, is material gain then there is nothing to constrain wanton greed. This becomes even more pronounced with corporations because their overtly stated purpose is not but greed, so even if the individual actors have some transcend moral compass they will be in conflict to their programmed imperative to "do their job".
Currently many of the powerful are materialistic and materialism can bring worldly power. Other political paradigms may come to the fore but as it takes a form and gravity it will likely come into some dialectic conflict with the prevailing materialistic status quo. That may be a peaceful resolution, but I'd not be certain of that.
> Is it individualism? That they only consider their own narrow short-term interests, and have become blind to collective problems?
What collective problem, that someone might have to unexpectedly burn a weekend writing a new editor? That {emacs|vim} isn't popular enough? That people might have to go install openjdk in order to start using eclipse?
You just have to let go of things you have no real influence over.
And in the same sense regarding VSCode, and the VC fueled takeover of the open source ecosystem; the old guard warned against it, that's why they promoted GPL as critically necessary.
I don't think they'll survive very long as it seems that they don't actually have that many things that differentiate them. And there is a lot of competition.
Maybe against the store rules tho, dunno.
It is like when the same folks act surprised, after Google does something to their Chrome and Android forks.
Don't want big tech sponsored products?
Pay open source developers, so that they can actually make a living of their work.
The extension itself it MIT licensed (so could be hosted on the open VSIX store, if it wasn't down because the Eclipse project is suffering from server issues right now). In theory any fork can patch out the check and re-release the extension.
However, the extension packages some binaries that are proprietary, and have been since about four years ago. People could re-implement those and re-release an open version of the extension, but you can't just (legally) take the proprietary binaries and ship them if you don't have the license.
Open alternatives actually exist, but their quality and ease of configuration depends on your use case. In large projects the proprietary extension seems to be worse from what I've read.
The Microsoft C++ extension is not open source; not sure what people were expecting here.
It's another thing for its license to explicitly prohibit its use with any other IDE, even if it's API-compatible, even if it's literally exactly VSCode recompiled with another name.
And it's yet another thing to proactively insert checks for that.
I sure do wish my industry didn't need windows. I'd happily go to Linux and never look back.
As an added bonus, this setup is excellent for pair programming. Just use voice chat via signal or anything else and have the other person connect to the same tmux session over SSH.
That said, if you must use a GUI based development environment, I know of people happily using netbeans. I am not sure why anyone would use Microsoft’s tools for this.
Vim is so powerful, most people only know how to edit 1 file at a time and how to exit vim... My typical dev environment has over 10k+ open buffers in 1 vim instance. you want to know what "just works" in this environment? vimgrep w/ ## to find anything across these open buffers AND built in Ctrl+P autocomplete... Get good with splits and tabs inside vim and you'll never be limited... it just works.
For more "developer" focused professions I bet using tools tailored for their needs suits them better, I recently wrote some C# for some Windows software in Visual Studio in a Windows VM and the ootb experience is pretty good.
You're not the only one, but you're probably a small minority with your DE setup.
Really?
"The gist is that you should be learning by doing. It takes patience and dedication. Study and reuse other people’s code, but do not blindly copy-paste things: patterns of behaviour you do not understand will quickly accumulate, resulting in a potentially fragmented, frustrating experience.
The key is to not expect instant gratification. I know, this is how most of the world works these days. Thankfully, Emacs runs contrary to the zeitgeist: it caters to the user who cares deeply about the quality and functionality of their tools."
From my reading of the computer history books, it seems like there was a time when this sort of dedication to taking things slow and investing time into your tools and moving steadily towards mastery of all aspects of your craft were seen as de rigueur, part of the game.Moments like this, you want to imagine that some people will turn back to that. I guess when the next big thing comes along with the hype and marketing and "ease-of-use", we'll be off on the same cycle again, though.
"That's ancient history", they said.
"Lucy will hold the football this time for sure", they said.
I spent most of the past ~fifteen years working in Sublime and just switched between that and the terminal for build and test—not fancy, but then, C++ coding isn’t a speedrun. Sublime is clean, fast, and portable.
However, dev tooling has advanced so much now that I started learning and using neovim last year so I could take advantage of good syntax highlighting, LSP, and CoPilot. I don’t get enough daily reps to be good at core vi yet (I am a team manager so most of my time is spent asking questions of devs prefixed with “This is a really dumb question, but”) but despite all the techbros who’ve flocked to it I think neovim is pretty good technology and responsive. You can get the tooling features but control UI/UX; for me, I want as much code on the screen as possible, and I especially resent widgets that eat into vertical space. I started with one of the off-the-shelf all-in-one init.lua configs off github, but it was too complicated and I quickly broke things. What’s worked better is going through a video series on YouTube (https://www.youtube.com/watch?v=zHTeCSVAFNY&pp=0gcJCdgAo7VqN...) and building up the init.lua I want from scratch. As noted, I’m not great with it, especially the normal vim motions, but I’ve learned to get around, it’s fast, I can see my code without a million distracting widgets, and I get the benefit of clangd and CoPilot.
I also use PHPStorm for web dev work and we use MS DevOps at work and that extension is unstable, causes IDE errors for me and I will not use MS products just for this one irksome bug. I prefer PHPStorm for my work, because working with PHP in VS Code has never been a great experience for me. I just want my tools to work, I fight with code, I don't want to fight with my tools as well.
So jetbrains allows everyone to use their marketplace and their plugins outside their ides?
I can download the jetbrains php extension add it to my own shell and not pay for it?
It's licensed under MIT + VS Marketplace Terms: https://github.com/microsoft/vscode-cpptools?tab=License-1-o...
If you fork it and don't use VS Marketplace, it's only MIT. Or am I missing something?
(The license like that existed before cursor, it was basically the reason for vscodium)
(Source is https://marketplace.visualstudio.com/items?itemName=ms-vscod... the license link at the bottom)
The same problem with the c# extension, which has had an even bigger shitstorm since some parts of the extension need a ms account and depending on the company needs to be paid
> Embrace
Yay, MS loves open source!
> Extend
Wow, VS Code is so useful!
> Extinguish
shocked Pikachu meme
They seem to have this backward. Visual Studio Code is a derivative product of VS Codium.
> This is a repository of scripts to automatically build Microsoft's vscode repository into freely-licensed binaries with a community-driven default configuration.
If Microsoft are going to call VS Code “open source”, then the marketplace should not be selective on clients. If so, it’s not Open Source, it’s Sparkling Virtue Signalling!
Hell, Debian's repository now also include proprietary code (https://www.debian.org/vote/2022/vote_003) so binary BLOBs are perfectly capable of doing distro checks and refusing to run on forks.