3 ms·
At the end of the day, people need to do two things: write code that powers the solution, and write code that proves that the first code was correct. There are
by solatic 2y ago
At the end of the day, people need to do two things: write code that powers the solution, and write code that proves that the first code was correct. There are so many different ways to write the second - not just automated tests (be they unit/integration/service/component/e2e tests) but also strong static types (for earlier feedback from the compiler) and least-permissions security (for later feedback to catch unforseen behavior in production).
There's no replacement for educated engineers who pick the right tool for the job. If you go too heavy on static types, you get Haskell and Idris and get a lot of difficulty training people past the learning curve and actually putting value-generating code into production. If you go too heavy on automated tests, you get test suites that take hours and hours to run in CI and are extremely brittle and difficult to change. If you go too heavy on security infrastructure, you get big bank style practices where you're lucky to put anything past the review committees / bureaucracy.