I've interop'd with JS from Haskell and you can just go full dynamic property access. And gradually add phantom typed APIs around it.
console.log also still works fine
I've been coding professionally for >30 years. I don't think any of my code has survived 5 years in production.
I don't think code quality affected that at all - I know the really, really, shitty code I wrote when learning OOP in the 90's survived for a looong time, while the amazing code I wrote for a startup 2018-2021 died with it.
A lot of code makes a difference but I guess there's a lot that doesn't?
At the time, a lot of it felt "important" and "significant". And some of it probably was at the time, to the businesses I wrote it for. But whether I sweated blood and tears to craft the most elegant and efficient software I was capable of, or I phoned it in and just copy/pasted Stack Overflow answers together until I met some interpretations of a requirement to be able to leave the office on time - really made no difference.
I've been pondering lately, thinking about GenAI and vibe coding, with the very real risk of creating completely unmaintainable codebases - whether that matters, if the code is likely to be retired or rewritten in 3-4 years anyway? My current gig is on to the 4th rewrite of it's web/mobile app backend platform in 15 years, which started out as a Groovy on Grails app, which got rewritten in Java, then rewritten again in Java, and now it's being rewritten in Python. Each rewrite had fairly good reasons at the time, but a huge amount of code here gets thrown away every 4 years or so - which looking back makes me seriously question whether any of it was "of any significance". To be honest, the 2026 Python code really isn't doing anything notably different or more complex than the Perl and JavaScript code I was writing in 1996 - web work is CRUD apps all the way down.
That said, the people who change companies aren't the ones that believe that management ever had the best ideas, or are able to push back on the cult thinking with clarity. Unfortunately, though, it's not necessarily evidence that wins arguments, it's charisma, which is how the cult is started in the first place.
The entire AI ball of wax is built on python (dynamically typed) - or at least a large part of it. It probably needs to move to rust to save on power and compute cost.
Python is also the choice of non-programmers for simple work. Nothing wrong with that. But I wouldn't want e.g. my car's ABS system to be programmed in Python (or my browser or my OS or many other examples).
Design-by-Contract[0] is a formalization of this concept and well worth considering when working in code using mutable types. In addition to pre/post conditions, DbC also reifies class invariants (which transcend method definitions).