My perception is one of a treadmill. My fellow developers in C# are much more frequently analyzing migration from one incarnation to the next, updating and installing their license files, evaluating compatibility between versions, and generally spinning their wheels on things not required for getting work done on other platforms.
Back in the day, I was getting a new “99% compatible” DOS version every 6 months (until we transitioned to the PharLap 32 bit extender, got more memory to work with AND stopped the perpetual upgrade treadmill.)
That “99% compatible” thing means: in a 10,000 LOC codebase, you’ve got 100 things to fix before it works on the new DOS.
I really liked working with Qt from 2006-2024 or so, the only major break was 4-5 (must admit, I never migrated to 6, and nobody forced me to…) and the migration from 4-5 was less painful than a DOS version bump. Also, Qt fully insulated our code from garbage changes happening at lower layers.
Most of my version-upgrade woes seem comparatively recent, lol
Nullable contexts. It’s “easy” to update this with a setting in your project file! … but it adds warnings to basically every file in the project :( You could break it up by adding a preprocessor directive, but it still added a lot of noise at the time.
File-scoped namespaces. I like this feature for new code, but OUCH does it mess up code reviews when it’s an incidental change. I really grew to love Github’s “ignore whitespace” setting in the PR diff view because of this.
Migrating from 4.6 to .NET Core. There were a few times when a deploy just … stopped. It worked on our desktops, and it worked on our test server, but the prod deploy just choked. We might have finally gotten a clue about what was wrong from the event viewer, but it’s been a while. I do recall that our usual troubleshooting path was useless in this case!
Why not? I like working in C#, so I’m curious what about the ecosystem bothers you.
My perception is one of a treadmill. My fellow developers in C# are much more frequently analyzing migration from one incarnation to the next, updating and installing their license files, evaluating compatibility between versions, and generally spinning their wheels on things not required for getting work done on other platforms.
Yeah, fair. New versions release every year. It’s usually good stuff, but it does add some toil to existing codebases.
Back in the day, I was getting a new “99% compatible” DOS version every 6 months (until we transitioned to the PharLap 32 bit extender, got more memory to work with AND stopped the perpetual upgrade treadmill.)
That “99% compatible” thing means: in a 10,000 LOC codebase, you’ve got 100 things to fix before it works on the new DOS.
I really liked working with Qt from 2006-2024 or so, the only major break was 4-5 (must admit, I never migrated to 6, and nobody forced me to…) and the migration from 4-5 was less painful than a DOS version bump. Also, Qt fully insulated our code from garbage changes happening at lower layers.
Most of my version-upgrade woes seem comparatively recent, lol