3 ms·
Counterpoint: > API Proliferation While Windows has a huge API, the Unix/Linux-side is particularly huge as well. Win32 API includes a wide variety of cryptog
by dragontamer 5y ago
Counterpoint:
> API Proliferation
While Windows has a huge API, the Unix/Linux-side is particularly huge as well. Win32 API includes a wide variety of cryptography for example, while modern Linux leverages a 3rd party open source program: OpenSSL or similar, to accomplish the same thing.
Another example: Windows Jet Red, which is roughly equivalent to Berkley DB (older style database focused on concurrency of access features / transactions, WITHOUT building up to a higher level SQL interface)
There's also obsolete / legacy technology. GDI is fully legacy these days (GDI is simply a layer on top of the "modern" DirectX framework, replaced by Direct2D). So all of those HBrush / Printing code is as unused as GTK 1.0 (or perhaps lower level XWindows code).
1. The Win32 team is very good at supporting legacy code. The API is monstrous, but it accomplishes its goal to a significant degree. Code written 30 years ago largely still works, you can't say the same about any other modern windowing API.
2. The technologies used in Win32 API cover a huge number of competing technologies. Not just OS-level stuff (files and IPC), but also cryptography, databases, threading and more. Furthermore: this API has remained consistent for decades (while Linux has had huge threading changes: the shift from Linux threads to NPTL threads for example).
3. Obsolete portions of the Win32 API hang around. Both the good and bad bits. Other OSes retire these supporting libraries (ex: GTK 1.0 or GTK 2.0, or KDE) more quickly.
> Avalon and XAML
Oh man. Petzold didn't even get the half of it since he couldn't see the future.
XAML's biggest issue is the lack of legacy support. Here he's talking about how Avalon/Longhorn (precursor to Vista, precursor to Silverlight, precursor to Win8) was being handled by programmers inside of Microsoft.
Maybe if Avalon stuck around for a while, it'd have been cool. But the amount of change that occurs over the next 17 years has made any bet on XAML a poison pill. Win-Vista gadgets are gone, fully obsolete and unsupported. If you moved your stuff to Silverlight, too bad, Silverlight is _also_ gone.
But don't worry, your Silverlight code got translated to Win8/Metro right? Or... was it UWP?
I think ultimately, the XAML has become much more beautiful and elegant. But these days, its an issue of "trust". Its a big and expensive hassle to rewrite your code into other frameworks, and Microsoft just didn't want to build XAML-stuff on top of anything steady.
It does seem like things have settled down upon UWP finally. Win10 / Win11 seems like its holding that API "steady". But Microsoft really shot itself in the foot too many times.
- ripley12 5y ago> It does seem like things have settled down upon UWP finally They officially cancelled UWP 2 months ago, after a few years of "not quite dead, not actively supported" limbo. I guess it's settled down, but not in a good way. https://www.theregister.com/2021/10/26/microsofts_uwp_unwanted_windows_platform/ https://www.theregister.com/2021/10/26/microsofts_uwp_unwant...
- dragontamer 5y agoHmmm. I thought the migration path between WinUI 2.0 (aka: UWP) and WinUI 3.0 was easier. Looks like Microsoft screwed the pooch one more time for one more upgrade cycle. Why do they keep doing this? They really need to think about code compatibility for more than a couple of years. Its not like Android or iOS developers need to deal with 3+ migrations over the past decade.
- ryandrake 5y agoI left Windows programming around 2006 or so, when it was Win32 and maybe MVC if C++ was your thing. Recently was noodling around with the idea of porting one of my hobby projects to Windows, and a just can't believe the mess the platform has become! Now we have Windows Forms, dotNet, WPF, UWP, WinUI, and probably a dozen more. What API should I use to "get back into Windows"? Will it be deprecated next year? If I pick the wrong one, and drive the train down those tracks for a few months, am I basically throwing all the code away? What an absolute mess!
- thrower123 5y agoWinForms is the one to pick if you want something that will work forever and always be supported.
- tonyedgecombe 5y agoIt's not great though unless your requirements are rudimentary. I wasted a huge amount of time on supporting high-dpi. The architecture is archaic.