DEV Community

Discussion on: Software Engineering VS Civil Engineering

Collapse
 
drbearhands profile image
DrBearhands

Type systems (in pure FP), category theory and formal methods.

You can just restart a buggy program so there's not much of a business case for proof systems. I do see their value myself, but common perception is against me om this one.

Collapse
 
giorgosk profile image
Giorgos Kontopoulos 👀 • Edited

Foolproof software would probably cost 3x as much.

Collapse
 
drbearhands profile image
DrBearhands

FP type systems have saved me a great deal of time in the past, so I'd say "citation needed". It takes some time getting used to them so people wrongly assume it's a time-sink.

If you look at the situation in practice, the tools we have are still underdeveloped and underused. A lot more could be done for near-0-cost security/certainty.

Thread Thread
 
giorgosk profile image
Giorgos Kontopoulos 👀

Well 3x was more for the sake of the argument, I don't have citation and I do agree that over the last years a lot of improvement has been done in the way of testing and best practices (CI/CD easier than ever). But even that will take time before it is adopted properly from all teams developing software.

We are still a young industry compared to Civil Engineering field and we are still evolving and learning.

I have heard praises on FP so I better get my hands wet in the subject.

Thread Thread
 
drbearhands profile image
DrBearhands

If you have to do tests to verify your program (not everything can be proven after all) then the cost would indeed skyrocket. For instance, you need to account for every combination of inputs (a potentially infinite set) and behavior may depend on some hidden unknown variables.

You may be interested in one of my old posts about the curry-howard isomorphism the comments are pretty good too. I should also point out though, that even pure FP languages don't really exploit this property. For instance when dividing by 0, but also good old overflow problems.