The importance of being Science

For me, computer science has always been “the job of solving problems”. While in practice, as a web developer, this often results in the creation of a website, I feel that the “solving problems” is a more accurate label. This let me think, how do I solve problems?

Many people assert that solving a problem requires a creative effort and a part of logic, but for me has always been a pure matter of logic. What I usually do is to link pieces of my knowledge and use them in a way that solves the problem. To me this sounds more like a logical process than a creative one.

Once you have a solution in mind, it’s the time to turn it into a sequence of steps made of mathematical and logical operations. Then, iterate over the solution to obtain an optimal one. This might seem obvious but for me that’s the core of why what we do is called (computer) science and not (computer) art.

I feel that some developers are missing this concept. Some have a problem, think to a solution, implement it, and then move on. They are missing a crucial step of the process: measure the goodness of the solution to improve it.

As a scientist, you’re supposed to measure the algorithm you implemented to see if there are rooms for improvements, as it’s often the case. To do so, you can take into account several common factors, such as time complexity and space complexity, or other factors like the DRY-ness, cyclomatic complexity, and the readability of your code. Performing these activities is of course time consuming. In your day-to-day job you might not have the time to check all these factors or study them in depth. This is understandable as clients and bosses usually care the product more than the code. However, we should acknowledge that we’re missing a part of our job and that sometimes what we’re doing is more close to computer art than computer science. Not that I’m against art, not at all. What I mean here is that unlike science art doesn’t need to be measured.

What’s your opinion on this matter? Do you feel that what you do is more computer art rather than science? Would you like to have more time in your day-to-day job to measure your solutions?

Let me know what are your thoughts by reaching me on Twitter or posting here.

This editorial will appear in this week’s issue of the SitePoint JavaScript Newsletter.

1 Like

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.