Hacker News new | ask | show | jobs
by davesmith1983 2507 days ago
I've seen this article before. A lot of people that are active on the internet like to assume that everyone is using the latest tech and can just use whatever tech they like. This is rarely the case. I've spent the majority of my career tending to old code bases.

There is a lot of legacy code that is still working fine. There is a lot of old C# code bases that are working exactly as intended in now unsupported .NET versions.

One of the constant annoyances of some of the newer tech stacks is that developers constantly break the API meaning that when you upgrade the framework version you have to fix code and probably tests as well. It is absolutely infuriating when an API is changed when the old API was working perfectly well.

3 comments

That's why the JVM (and platforms with a similar philosophy), to me, is the best runtime there can be. Sure, there's fancy state-of-the-art stuff being integrated into it; but the most compelling feature is the continuing commitment to making dusty old jars work, unmodified.
For the most part the situation is the same with .NET. Any code written in .NET 2.0 should work with 4.7.

The newer .NET Core most stuff is now compatible and it is pretty easy to write code that is compatible. Stuff that isn't compatible normally needs you to install a compat shim that Microsoft provides, but I've not needed them so far.

My major frustration is with the JS frameworks. I wrote some perfectly good Angular 4 code and I had to change quite a lot of it to work with newer versions of the framework.

I haven't been working with .NET for very long, but my experience is that mixing .NET Core and .NET Framework leads frequently to very confusing, inscrutable error messages about incompatibility between the two. Though if it builds it works fine.
The accepted method is convert projects to .NET standard and/or multi-target project itself. I haven't run into any issues but most of what I do is web projects, I wouldn't know if it was something like WPF.
I have been doing mostly C++, Java, .NET and classical Web since ever.

Naturally I try to learn about everything that pops up, languages, trends, whatever.

But is a peace of mind of staying with such platform languages, while watching others coming and going, really feels gratifying to me.

The phrase “old C# code bases” makes me feel incredibly old.
It's almost 20 years old. That said, many of the languages considered hip are older (Python, Ruby, Javascript, etc)
I started out working with .NET and C# in early 2001, feels like yesterday but suddenly it's ~18 years O_o.
Did you also used those beta MSDN releases where the documentation was full of red text for the parts that were still in flux?
I have some vague memories of this. I worked for a MS Gold Partner and half remember getting access to all sorts of pre-release bits.
... Haskell, Erlang ...
Same here.
>It is absolutely infuriating when an API is changed when the old API was working perfectly well.

Good thing Google is reading this.

This is virtually all of the important rust libraries that refuse to go out of v0 because of semver and their urgent need to break everything. Anyone who complains is not "apart of the team" either. It's astounding how much post-purchase rationalisation exists in the community, rust has plenty going for it, the people will destroy it before that though.

Sorry guys but if you can't manage the task of providing randomness as a stable basic lib then maybe all you have is an experimental language not fit for production? It's scary how the security and correctness of the lang doesn't match the namespace problem that exists currently.

The single owner of one of the most popular crypto libraries hasnt responded in years to anyone. Hundreds of downloads a day still. Evangelists please take a step back and think about that.

Do they care if the old API was working, if it didn't make them (enough) money?
This is why your software should avoid relying on cloud services that you have little or no control over.