Aleksei Ivanov

Everything is not perfect

Computer science can be considered a part of the field of mathematics. And mathematics is pure. It is exact and it is the closest thing to perfect that we have.

Whilst the natural language that we speak is messy, prone to misinterpretation, the language of mathematics is formal and thus unambiguous.

Everything is either is or isn’t, there is no in-between (well, maybe apart from some unproven theorems, but that’s a complicated topic).

So, we would think that programming languages, being a type of formal language similar to mathematical, would be perfect as well. And they kind of are.

But the things that are produced with the help of these languages–the programs–are not ideal. There bugs, and crashes and unexpected behaviour lurking around at every corner.

But how come?

It is easy for simple things to be perfect — there is not much room for mistakes. They are either are or aren’t.

Modern computer programs, and other engineered devices and machinery, are easy to fall "in-between". They are so complicated, have so many intricate details and intertwined dependencies, that it is almost a miracle that they work at all.

In my opinion, one way to perfection is to remove extra things, which might be unimportant. The difficult task is to decide which are and which aren’t.