I think the challenge is to apply a rigorous expectation to the entire system of the software development lifecycle.
- Language chosen to reflect guarantees needed to minimize error (in all axes of analysis).
- Process chosen to meet quality and auditing standards
- Hiring and team selection done based on the kind of work needed
- Deployment system chosen to reflect the user's needs
etc. You've been around. :-)
Roughly, at each juncture, choose the thing that gives the best result for the least amount of work, given the tradeoffs involved. Engineer the thing. Language & tech stack are a big component of that - but not the whole thing.
> The thing about programming language is that it can only be made once whereas Process, training and personnel can be constantly adjusted.
This is why I think that language is absolutely a much more important decision than almost any decision about your process. Choosing a poor process is fixable. Choosing a poor language is forever.
- Language chosen to reflect guarantees needed to minimize error (in all axes of analysis).
- Process chosen to meet quality and auditing standards
- Hiring and team selection done based on the kind of work needed
- Deployment system chosen to reflect the user's needs
etc. You've been around. :-)
Roughly, at each juncture, choose the thing that gives the best result for the least amount of work, given the tradeoffs involved. Engineer the thing. Language & tech stack are a big component of that - but not the whole thing.