4 ms·
> Multiple teams are fighting UI politics over WinUI, MAUI on top of WinUI, React Native with WinUI, and classical UWP is not going away (Windows 11 Store is wr
by EMM_386 5y ago
> Multiple teams are fighting UI politics over WinUI, MAUI on top of WinUI, React Native with WinUI, and classical UWP is not going away (Windows 11 Store is written in it), then ASP.NET team is pushing Blazor everywhere including on Web Widgets.
Great point.
As a developer in the Windows sphere for decades, I'm used to change.
However, at this point I have no idea what I am supposed to be developing user interfaces in. Honestly, using VS Code daily as part of my stack I'm leaning towards just accepting that WebView2/Electron/etc is the future.
I have read the complaints, but VS Code is a solid piece of engineering and it "just works". If that's an example of what we can easily get cross-platform, so be it.
- pjmlp 5y agoI would rather see them rewrite VSCode in React Native, given all the love it is getting from Office and XBox teams, but lets see if it ever happens.
- v413 5y agoReact is slow for the perf targets of VSCode.
- pjmlp 5y agoReact Native != React. Also do you consider that VSCode has higher performance requirements than XBox dashboard, or Office plugins?
- belval 5y agoNo commenting on the React thing, but yes I do think that VSCode has much higher performance requirements than Xbox dashboard or Office plugins. VSCode has a very technical user base that will complain a lot if there is any kind of sluggish performance when doing live debugging. It's not just to work on small JS projects anymore. I use it to debug CUDA kernels on several processes at the same time and a lot of people have similar push-it-to-the-limit use cases.
- pjmlp 5y agoIf the user base was that technical, with performance requirements, they wouldn't be using an Electron based product to start with, when there are plenty of other native alternatives, including for CUDA debugging from Nvidia themselves.
- EMM_386 5y agoI have over 2 decades in this industry and have used almost every IDE that exists. I work on very large and complex projects ... the current one I'm working with is a massive Angular 12 project. The fact that it's Electron doesn't matter to me. I am not concerned with it "using much more memory than native" because that has no effect on me. All I care about that it works, and that is is performant. It is both.
- baxuz 5y agoIt's still React, and it's still too slow. The only difference is where the render is committed to (DOM vs Native UI) Having a declarative rendering logic, a rendering runtime, the VDOM, diffing, re-rendering, update scheduling and everything else that React uses under the hood is always going to be slower than tailor-made imperative rendering. And let's not even go down the rabbit hole which is concurrent mode and suspense, where React is going to be basically a black box more suited to quantum computing with the whole "render x times and settle on a result that it thinks is correct". I'm not sure if it will take up more resources than the Xbox dashboard or office plugins, but I am willing to say "yes". The dashboard is quite simple compared to a full-fledged IDE which VScode is becoming, and I'm yet to see the whole Office suite, including the underlying logic, being ported to React Native. Atom was ported to React at one point but they quickly abandoned it because of the bad performance. Microsoft followed suit and hasn't even bothered with React for VScode.
- pjmlp 5y agoAh, that is why Teams dropped Electron for React Native!
- DragoCubed 5y agoMicrosoft Teams? No they didn't drop Electron for RN/RNW. They dropped Electron for Microsoft Edge WebView2. I might be missing some sarcasm though
- arriu 5y agoI'm going to get down voted for this, I realize it isn't for everyone... If it's not for you, no problem. Let me know what you prefer. Anyways, try golang with imgui. You can make imgui look like anything. Ontop of that, you get true cross platform binaries with native speeds with only a couple dozen lines of code and amazing dependancy management. If you've never done immediate mode front-ends, you'll be delighted.
- kertoip_1 5y agoFrom what I see it's the kind of library for people preferring usability over good looking appearance. Of course you can make it "look like anything", but sane defaults are also important for rapid software development and this definitely lack them
- thrower123 5y agoVS Code is like the absolute greatest Electron app that has ever, or will ever be written. And yet it had an issue for quite some time where animating the cursor flashing was taking an enormous percentage of CPU.
- pjmlp 5y agoIt is also one that has big chunks of C++ and Rust code, and WebGL based rendering to make it actually usable.
- 0-_-0 5y agoOh you can do that with Electron? This is not my area of expertise... Are there any other ways to have GPU acceleration?
- pjmlp 5y agoHere how WebGL is used for the terminal in VSCode, https://github.com/microsoft/vscode/issues/85971 https://github.com/microsoft/vscode/issues/85971 Or how Rust is used for search via ripgrep. https://github.com/microsoft/vscode-ripgrep https://github.com/microsoft/vscode-ripgrep
- bool3max 5y agoRendering webpages is already GPU-accelerated by default in most browsers and platforms.
- greggturkington 5y agoTo be fair it was partially related to a bug in Chromium, and was fixed in 2017 https://github.com/Microsoft/vscode/issues/22900 https://github.com/Microsoft/vscode/issues/22900
- tacker2000 5y agoYea vscode is really great! Could someone knowledgeable give a rundown of the exact stack/frameworks/etc they are using?
- smackeyacky 5y agoAFAIK it's Electron (i.e. javascript, chrome as the renderer, node.js I think looking at the processes). So...not a lot of Microsoft product in it. Ironic.
- fartcannon 5y agoIt's chock full of Microsoft's telemetry!
- kyrra 5y agoI can't remember where I saw the post, but the reason it's such a fast product is that they put a large amount of time into performance analysis and fixing those issues. So it's not so much the stack as the pure engineering time.
- manigandham 5y agoTake a look at Monaco, the editor that powers VSC: https://microsoft.github.io/monaco-editor/ https://microsoft.github.io/monaco-editor/ The rest of it is in hosting the processes and plug-ins for it. Microsoft also developed the Language Server Protocol that provides intellisense and other features for each language: https://microsoft.github.io/language-server-protocol/ https://microsoft.github.io/language-server-protocol/
- dgellow 5y agoIf you’re already used to WPF then you can continue using it. You don’t have to switch to something else.