3 ms·
Software engineering is still mostly a craft, not a type of engineering. We should not start another FP versus OOP war. I think it misses the point. We should s
by fjfaase 8y ago
Software engineering is still mostly a craft, not a type of engineering. We should not start another FP versus OOP war. I think it misses the point. We should start thinking about languages where it is possible to precisely define implementation, like: X implements Y using representation R under conditions C. For example, a CPU instruction for adding two numbers works with modular arithmitics presuming a certain representation of numbers, nowadays, usually 2-complement with a certain power of 2. If you want it to represent the addition of two numbers then that is only possible if the sum of the two numbers does not cause an 'overflow'. There are algorithms to implement additions of much larger numbers using other representations and combinations of machine instructions. Writing an implementation for a certain problem, like summing a sequence of numbers, should begin with specifying the characteristics of the kind of sums one want to calculate. If one would have a library of implementation, one could engineer a 'correct' solution, without having to write an implementation by yourself.