7 ms·
Wow, imagine someone trying to make this statement 15 years ago...things have sure changed.
by bnolsen 9y ago
Wow, imagine someone trying to make this statement 15 years ago...things have sure changed.
- cjsuk 9y agoIndeed. 15 years ago I kind of enjoyed it. Win32/winforms is still less horrible than the web these days.
- pcwalton 9y agoWin32 is in no way less horrible than the Web. Win32 doesn't have any device-independent layout, at all. Forget about handling HiDPI sensibly. RegisterClassEx/CreateWindowEx are incredibly verbose. WndProcs are a mess compared to individual event handlers. The mishmash of COM and inconsistently named C APIs is terrible. COM involves a monstrous amount of boilerplate. COM requires you to deal with apartment threading, legacy that exists primarily for compatibility with Visual Basic 6, which is of course no longer supported but still saddles the platform. Creating an OpenGL context with WGL, with the "false context" stuff, is a nightmare compared to WebGL. Memory management is a giant pain to deal with. The GDI APIs are archaic and slow. I could go on…
- mobilio 9y agoYeah... because compatibility here is MUST.
- cjsuk 9y agoThat sounds exactly like the state of affairs the moment you pick a JavaScript framework, which was my point.
- pjmlp 9y agoYet I would rather take all of that than dealing with Frankenstein CSS/HTML/JavaScript programming, while making sure it is pixel perfect across all browsers and not making use of the OS features and computer hardware that made me buy it in first place, e.g. WebGL 2.0 on DX 12 GPU. Most of the issues you mention are solved in .NET, WPF and UWP. COM is a breeze to use in Delphi, MFC/ATL, .NET, C++/CX. Windows is much more than just Win32. Apparently Windows event system is so bad, that the younger generation re-inventing it in the form of React. Also Cocoa, UI Kit, Android and Qt are all better solutions than Web.
- oceanswave 9y agoDespite the populist mindset that programming the web is a shitshow, it’s really not. Tooling these days is pretty incredible and the ecosystem is pretty great when you are found needing - issues get fixed, PR’s get accepted. It’s a much better experience than a 20 year old environment where everything is set in stone, yet bugs and inconsistencies still exist. The tools and software for traditional windows app programming have long been neglected and the newer ones throw you into a niche — and still don’t provide a cohesive story. I would much rather pick up react and produce a working product in less time it takes to troubleshoot XAML databindng and styles, for instance. If my windows app needed something like a map component, I can drop one in my macOS, iOS app - the same one baked into the os - and on the web have an assortment of components to choose from — with WebGL support baked in. Also, there isn’t such thing as a DX only gfx card - it happily runs OpenGL games and apps just fine
- pjmlp 9y ago> Tooling these days is pretty incredible and the ecosystem is pretty great when you are found needing - issues get fixed, PR’s get accepted. It’s a much better experience than a 20 year old environment where everything is set in stone, yet bugs and inconsistencies still exist. Try to make a CRUD SPA as fast as a Delphi one, including a nice L&F by default, just with mouse clicks and setting a few properties. > Also, there isn’t such thing as a DX only gfx card - it happily runs OpenGL games and apps just fine This statement means you don't have much experience in graphics programming, at least regarding the fun of dealing with drivers and how OEMs classify GPU features. So if you prefer I will rephrase it as "WebGL 2.0 on OpenGL 4.6 GPU". Now feel free to compare what it means in GPU features. Hint, WebGL 2.0 is basically OpenGL ES 3.0, which maps to OpenGL 4.3. https://www.khronos.org/developers/reference-cards/ https://www.khronos.org/developers/reference-cards/
- pcwalton 9y ago> Try to make a CRUD SPA as fast as a Delphi one, including a nice L&F by default, just with mouse clicks and setting a few properties. Use Bootstrap for the look and feel. The browser's painting stack is far faster than Delphi's '90s style GDI, so you don't have to do anything there.
- bonesss 9y agoWhat I find missing, compared to back-in-the-day, is the _maturity_ of that ecosystem. Win32 has warts on warts, but around the year 2000 the MS development space was a monoculture and the COM-to-GUI story was increasingly mature and integrated. .Net came along and, on the one hand, positioned MS to be a whole different kind of tool provider (F# on dotnet core on linux in kuberernetes is niiiiice), but they also lost a few hundred man-years worth of local improvements to their platform. This without providing a credible replacement for Win32 ensuring it would be around for decades. That fracture fractured again with XAML, again losing tons of maturity, and then fractured even further with the UWP/Silverlight/Metro/WhoKnows. I've never been a bigger fan of MS's product line, but can't justify or defend using much on the client other than html for fancy things or standard winforms for deployability.