5 ms·
Win32, Visual Basic, MFC, ActiveX, WinForms, WPF, Silverlight, UWP, WinUI. (I know these aren’t either/or alternatives, bear with me.) I think Microsoft knows
by klodolph 7y ago
Win32, Visual Basic, MFC, ActiveX, WinForms, WPF, Silverlight, UWP, WinUI. (I know these aren’t either/or alternatives, bear with me.)
I think Microsoft knows it needs (1) a way for developers to build apps that look like they belong in 2020 (2) where the frameworks won’t find themselves in the garbage within a few years. This “toolkit approach” seems to recognize that the runtime is a separate problem, so e.g. you can use Win32 + C++ + WinUI, or you can use C# + UWP + WinUI and get something reasonably consistent.
Maybe this is the time Microsoft gets it right. Who knows?
- 2bitencryption 7y agoYou missed one! https://github.com/winjs/winjs https://github.com/winjs/winjs
- deleted 7y ago[deleted]
- pulse7 7y agoAnd another one: Windows Aero
- JoBrad 7y agoThis one may have had the swiftest official deprecation timeline of them all.
- denkmoon 7y agoDWM was created to facilitate Aero, and is still used today.
- contextfree 7y agoThat's not a UI toolkit, it is/was a theme for existing UI toolkits.
- theandrewbailey 7y agoAm I the only one who thought that Aero (Windows Vista/7) looked good?
- baybal2 7y agoYep, I dared the man to tell during an MS event in Vancouver in 2010 to tell when they will dump it. The auditorium exploded in laughing. 3-4 years down the line, that "biggest thing since sliced bread in development for Windows, and WinMo" got quietly swept under the carpet. And even after that, they tried to spin 3 or more "trendy Javascript platforms" to no avail. So now they have 6, possibly 7 defunct Javascript platforms for Windows whose very fact of existence completely discredits them in eyes of developers. P.S. He forgot to mention Windows script hosts!
- ckcheng 7y agoThis toolkit approach sounds inspired by the web. You write in whatever language / framework but the GUI runs in the browser runtime. But what about their ReactXP? That's supposed to let you build for React for Windows & Mac and thus WinUI, and also React Native for mobile and such.
- s_y_n_t_a_x 7y agoThey did a great job with ReactXP tying together react-dom (Web), react-native (Android, iOS, macOS), and their react-native-windows (Windows, Xbox, Mixed Reality). Unfortunately, development on it has slowed and it's not the easiest experience for new developers. Fortunately, it's super flexible and open-source so I've forked it to continue my vision of the perfect native cross-platform stack: https://ult.dev/ https://ult.dev/
- The_rationalist 7y agoWhy choose ult instead of electron? If the argument is performance, benchmarks are needed.
- s_y_n_t_a_x 7y agoBecause Electron does not run on mobile and it doesn't interface with the native UI. No benchmark is needed. Running your app in an entire browser (one of the most complex pieces of software w/ millions of lines of code) is of course going to be less performant and eat more resources. I'm not dissing Electron, it's great if you have a web app that you want to make standalone on the desktop. That alone does not make cross-platform though. Ult can target the DOM so you can build a web app then wrap it with Electron. This is currently the best way to target Linux. Ideally there will be a GTK bridge like the bridges for the other major desktop and mobile OSes.
- The_rationalist 7y agoBecause Electron does not run on mobile and it doesn't interface with the native UI. Just use ionic and electron, it is trivial. Running your app in an entire browser (one of the most complex pieces of software w/ millions of lines of code) is of course going to be less performant and eat more resources. You think you can draw conclusions from such a weak heuristic? One could argue that browsers are the software that had the most investment in optimizations. E.g chromium has the state of the art of 2D rendering performance (best skia integration). It's really sad to see that the myth that browser are slower than native uis is not challenged anywhere, It seems like people here locally disable their critical thinking, because of a blind spot.
- reaperducer 7y agoyou can use Win32 + C++ + WinUI, or you can use C# + UWP + WinUI and get something reasonably consistent. Wow. This reminds me of the stupid prediction I made in another thread today about Microsoft eventually abstracting Windows away so that it's a shell that can run on top of Linux. Or perhaps any other kernel.
- oaiey 7y agoThinking of the Duo smart phone.
- FpUser 7y ago"Maybe this is the time Microsoft gets it right" Windows GUI was done right long time ago by Delphi and now Lazarus. Now it is also multiplatform. When it comes to UI with Delphi approach I could concentrate on what I am doing instead of how. And it's been available for 25 years.
- pjmlp 7y agoOne thing that I always disliked on Visual C++, specially when compared against C++ Builder, was that doing MFC had nothing visual about it. C++/CX seemed to finally be what I was expecting, since C++/CLI never had designer tooling support. But since they got the ISO C++ striking force to redo C++/CX with C++17, now we are supposed to wait for ISO C++23, for the Visual Studio team deliver with C++/Winrt what C++/CX can already offer today. Sometimes I think someone should offer some C++ Builder licenses to Visual C++ team.
- wslh 7y agoMicrosoft developers always discovered that the UI controls you see in apps like Word, Excel, Visio, etc were never available on any of these libraries or frameworks. Don't forget WTL in the list.
- contextfree 7y agoWinRT and the UWP XAML framework built on it were already designed to support multiple languages and language runtimes (well, C++ and C# anyway, but theoretically other languages; they're working on Rust support). It's also been possible to use it in a Win32 app since Windows 19H1 with XAML Islands. WinUI 3 will make this easier though, and decouple the framework from the OS so it can work on older Windows (10/10X) releases, so those are the new aspects here.
- scarface74 7y agoYou’re forgetting about Windows Template Library....