By Chris Clark, 04/09/2022, in Guideposts
There is value in consistency, and fungibility (e.g. the extent to which a developer can work on multiple projects). There’s value in better bus factors.
Therefore, there is a high bar for selecting a new technology that the team doesn’t know.
At some level, programming languages are just syntax and don’t matter that much -- but the lift in a new language/stack’s ecosystem can be considerable, and beginning with something new makes beginners’ mistakes more likely.
We default to the things we already use, unless there is a strong reason that it won’t work.
Note this is different from iterative improvement; introducing a new library or a new pattern or a new practice is different than introducing an entirely new technology or language. We should absolutely be pushing to modernize our Python, JavaScript, SQL, etc. development practices; this is not a case for stagnation, but a case for uniformity-by-default.
Technologies don’t get selected simply because they are interesting.