3 ms·
Breaking changes to languages, APIs, operating systems and libraries are not putting lives at risk. All of the above have expressed their compatibility guarante
by ddevault 6y ago
Breaking changes to languages, APIs, operating systems and libraries are not putting lives at risk. All of the above have expressed their compatibility guarantees in clear terms. No one advertises Python as suitable for life-critical applications. It's the responsibility of the person who choses to use it for life-critical applications to understand its change lifecycle and put that into their evaluation.
While I agree that in general we should care more about backwards compatibility, don't put the blame on the maintainers for bad choices in life-critical domains. Most domains are not life-criticial and it's entirely reasonable to make and meet a set of compatibility guarantees which applies to the domains you're working in.
- jacquesm 6y ago> No one advertises Python as suitable for life-critical applications. I think you just relegated python to the status of 'toy language'. But that's the wrong attitude. Just like everything will sooner or later connected to the internet, which is why it matters that it is secure, with 'software is eating the world' as pretty much the mantra of HN you should realize that any piece of software, no matter how trivial has the potential to affect lives and sometimes in the most direct way with the ultimate price - of someone else's life - as the consequence of our collective failure. And that's because of the very nature of software: it gets re-used all the time. One persons application is another persons library, one persons application is another persons service and so on. Leaky abstractions are bad enough, leaky broken abstractions can sooner or later turn out to be dangerous. Of course whoever deploys the software has the responsibility to check it for suitability. But in principle any language, OS or library has the potential to be applied in ways the original author did not foresee and if that potential can extend to life critical or life affecting purposes then that should come with a similar standard of care. How many machine learning systems are written in Python? How many of those make decisions every day regarding people's lives, some of those life critical? Are you seriously suggesting that all those people made the wrong decision in picking the language the application is written in? If so then you are most likely at odds about this with just about every developer out there who - rather than arguing with their manager about whether language 'x', 'y' or 'z' is suitable for the job will simply be told what language is on the menu and to do the job in that one based on availability of programmers and whatever is 'hip' at the moment. These decisions are not necessarily made in the most rational manner and whether you agree or disagree with that in principle it is the reality that we live in. And so 'toy' languages such as Python, PHP, Perl, Visual Basic, FileMaker and so on are all going to be used for mission critical stuff, whether you add a disclaimer or not. Better be aware of that before you throw your brainchild out into the world: you own it.
- Icathian 6y agoIf the actual expectation of every piece of software published is that the author is responsible for every harebrained choice made with it, then nothing would ever get published. That simply isn't practical. My responsibility is to meet whatever guarantees I make when I publish a tool, and to open source the code if I plan to stop maintaining it such that it no longer meets the original guarantees. If you want to lay at my feet the consequences of everyone who chooses to use it, whether it's an individual dev or some executive mandating its use to their whole org, I think you need to reconsider your perspective.
- jacquesm 6y agoThe general attitude to software development is why we really should not be calling it software engineering. More like software plumbing. And even plumbers tend to carry liability insurance.
- Icathian 6y agoIf you have a plumber fix your toilet, and multiple years later it breaks, and you go to them expecting their insurance to pay out for a replacement, how do you think that conversation will go? If you hire an engineer to build you a bridge, and years later you are jealous that every other city has two-level bridges, do you imagine they will rebuild it for you for free? I don't understand how software is any different.