Even Java's Swing, introduced in 1999 (or maybe 98 in beta?), dealt with the problem of dynamic layouts fairly well. Of course, it performed like an absolute dog to begin with, but most of the performance kinks were dealt with during the Java 1.3 era (2000), and by 1.4 in 2002/3 or so, performance was absolutely fine, with most of the rendering quirks of the native look and feels having been dealt with as well.
Moving to C#/WinForms in late 2004 after working with Swing for 4 years felt absolutely jarring by comparison. No concept of layout managers and very limited options for dynamic layout in general (docking was about it, IIRC), really hard to customise components (if it was possible at all - for many it wasn't because they were just thin wrappers around Win32). It was terrible by comparison and I seriously considered quitting the job I was in, even though I liked the company, and finding a role in a Java shop again instead because I hated WinForms so very much.
Swing is obviously ancient history now. Is it still a thing? Do people still use it? Are there still Java desktop apps? I've no idea. But even 20-odd years later Microsoft have never managed to surpass it for desktop app development. WPF is OKish, and certainly addresses a lot of the problems of WinForms, but it's always felt over-complicated and the syntax of XAML has never really been a plus point in my opinion. Silverlight was... a debacle.
And, really, since 2013 I've only paid attention to distributed systems, web, and back end development (all of which have their own problems and complexities) so I've really lost touch with Microsoft's desktop development paradigm.
But I do find myself often yearning for the "simplicity" of desktop app development. Of course, that simplicity comes at a cost: you're trading it for complexity in licensing, distribution, deployment, and support because you have no control over your target environment, and you have to support almost unlimited combinations of machine configuration (which is not necessarily a picnic when you have thousands, tens of thousands, or hundreds of thousands of customers for each product). And, let's be real: nobody misses InstallShield and MSIs.
I've been doing development using JavaFX, Swing's successor, for many years. It's got its quirks, and places where the dev team stopped iterating on the API a little too soon; but it works and does some really nice stuff.
Swing is still a thing, at least for all of those using JetBrains products, and still comes wiht the JDK, whereas JavaFX was placed into open source, and I think it only carries forward thanks to Gluon's work.
In what concerns layout managers in .NET, you could do it in Windows Forms via TableLayoutPanel and FlowLayoutPanel.
WPF has always used layout managers from the get go, which is why its drag and drop workflow feels strange to Windows Form devs.
Yeah, but those layout managers came later. I don’t think they were there in the early 2000s.
I’ll say this for Microsoft: they supported WinForms, even adding new features, long after it had ceased to be the new hotness. Whether they still do, I don’t know. The last time I touched WinForms was 2013.
Where I was working, for maximum compatibility with customers, I was still working on .NET 1.1 until I want to say 2006/7, when we moved to .NET 2.0. EDIT: it was actually 2006 because the project I was leading integrated with SQL Server Managment Studio, which forced us to use .NET 2.0. We were one of the first two projects to make the jump.
I don't think we moved to anything WPF capable until .NET 4 came out in 2010 or so, except for perhaps one project that had moved to .NET 3.5 so they could take advantage of an early version of ASP.NET MVC.
Believe it or not, when I showed up in 2004, we were still running on .NET 1.0 and Visual Studio 2002, which did not support extensions, so no Resharper... which was a nightmare given I'd just been using IntelliJ IDEA. Moving to VS2002 was an absolutely horrible regression.
So I want to say I'd managed to argue the case for .NET 1.1 and VS2003 by the end of 2004, or maybe very early 2005... which meant us devs could at least install ReSharper and have a much better time as a result.
Moving to C#/WinForms in late 2004 after working with Swing for 4 years felt absolutely jarring by comparison. No concept of layout managers and very limited options for dynamic layout in general (docking was about it, IIRC), really hard to customise components (if it was possible at all - for many it wasn't because they were just thin wrappers around Win32). It was terrible by comparison and I seriously considered quitting the job I was in, even though I liked the company, and finding a role in a Java shop again instead because I hated WinForms so very much.
Swing is obviously ancient history now. Is it still a thing? Do people still use it? Are there still Java desktop apps? I've no idea. But even 20-odd years later Microsoft have never managed to surpass it for desktop app development. WPF is OKish, and certainly addresses a lot of the problems of WinForms, but it's always felt over-complicated and the syntax of XAML has never really been a plus point in my opinion. Silverlight was... a debacle.
And, really, since 2013 I've only paid attention to distributed systems, web, and back end development (all of which have their own problems and complexities) so I've really lost touch with Microsoft's desktop development paradigm.
But I do find myself often yearning for the "simplicity" of desktop app development. Of course, that simplicity comes at a cost: you're trading it for complexity in licensing, distribution, deployment, and support because you have no control over your target environment, and you have to support almost unlimited combinations of machine configuration (which is not necessarily a picnic when you have thousands, tens of thousands, or hundreds of thousands of customers for each product). And, let's be real: nobody misses InstallShield and MSIs.