But then I noticed that nobody actually cares much about what tools you use, as long as they get the job done. The end result is what counts.
But then I noticed that nobody actually cares much about what tools you use, as long as they get the job done. The end result is what counts.
Think about how important maintenance is. If an organization doesn't have in-house skillset to maintain and enhance software solutions they buy outright, why would they want it?
Unfortunately there are a lot of cases where this matter:
- Customer requires the sw to run on their standard environment (think some version of RHEL, or some Windows Server version). Hence you're limited to what's supported there (usually from the vendor). No bleeding edge versions of Python/Node/.NET etc. You might need to build a Go or Rust binary for that specific system and it might not always be obvious. Java might be a different story, but I wouldn't risk it.
- Embedded software (for similar reasons)
- Sw that needs to run on a customer's system
- Sw that needs to interface with an existing system (loading a DLL/.so? JVM?)
That seems... dishonest? What happens when the client wants to hire someone else in the future, only to find out it's not Java, it's actually this language which is not mainstream at all?
Yup, that's exactly my point. Your car analogy is a good one. I was going to make a similar one with house construction but you've hit on it well.