Ygor Serpa
1 min readOct 12, 2021

--

I see your point, that it is an art, but lives depend on software we build, so we ought to be more responsible about how we develop it.

I can't agree, however. This downplays a lot of effort that has been put over the years by several people. For life critical system, there are things like Event-B, that can be formally proven to be bug free. There are logic/constraint programming languages, that allow for a less strict but still fairly controllable formality, like Prolog and ECLiPSe. There are declarative languages, to help people get what they want without having enough freedom to crash things up, like SQL or no-code systems.

Then, the reality of most coders is that no life really depends on thing they code. Specially today. Even when working with data.

And even so, we got incredibly resilient systems, like Linux, the current container orchestration systems, game engines, blockchain technology etc.

Comparing software to how engineers build bridges is very counterproductive. Civil engineers are bounded to the laws of physics and available material. We, computer scientists, are nearly unbounded in anyway. Our tools are incredible expressive and any of it can be changed, tuned, attacked, exploited, etc. No wonder our problems are also equally diverse.

And if builders were to build buildings the way programmers write code, the moment the very first woodpecker arrived, they would open a branch to solve the woodpecker issue and repair the damaged area.

--

--

Ygor Serpa
Ygor Serpa

Written by Ygor Serpa

Former game developer turned data scientist after falling in love with AI and all its branches.

No responses yet