Monday, August 13, 2007

Is Computer Science Dead?

Is Computer Science dead? Has the coming of biology and bio-related fields supplanted the efficacy of Computer Science? Are all the things that we are doing in Computer Science going to be irrelevant in time to come? And are all my soon-to-come arguments just a delusion that I am giving myself to justify my choice of a course and future career?

It has been a while for Computer Science. Compared to the older fields of Mathematics, Physics, Chemistry and even Biology, Computer Science is indeed a fairly young field which had a lot of potential. In a way, Computer Science was born in a time where electronics and mathematics were breeding together, when the first electronic computation device was created. It has remained largely in a state where it couldn't decide completely whether it was a scientific discipline or an engineering one, and as a result ended up making it's own path in life as it's own discipline.

There are many types of computer scientists out there, some are interested in the theory of computer science, while others are interested in the applied aspects of computer science. In its own little way, computer science could cater to a lot of people's wants and needs, from the absolute theoretician to the the absolute applied scientist. All these ease of application is due to the fact that as a fairly young science, the dogmas are not well defined yet, and thus give us the freedom to decide in its direction.

Now, a good 50 years have passed since the inception of the modern field of computer science. The dogmas have already settled in (for instance, the von Neumann architecture for computers), and the initial exponential growth of knowledge in the field have reached the point where many of the fundamental questions are already answered, and what is left is just the filling in of the cracks of knowledge that the initial burst has failed to observe.

The question is: at this point, have we reached the situation that Computer Science is dead as a field for new innovations that do not involve the unnecessary nitty-gritty?

To answer this question, I feel, we need to look back into the roots of Computer Science, where it was at once the hotbed for interaction between mathematics and electronics. Computer Science was a by-product of a healthy interaction between the engineers and the theoreticians. As such, the multi-disciplinary nature of Computer Science is one characteristic that has been around for a very long time. Most of the pioneering computer scientists do not stem from the study of Computer Science itself; they come from fields as diverse as philosophy, psychology, mathematics and even physics. It is through all these interactions between these fields that the modern field of Computer Science is truly born. And throughout the decades that Computer Science has been in existence, the problems that Computer Science solves are those that have almost direct applications in the fields from which the problems come from, for instance the computation challenges associated with signal processing, and even base matching for genetics.

So the strength of Computer Science lies in the fact that it provides a better "glue" among the sciences than say just mathematics or physics (or even chemistry) alone. But this strength comes at a price: because Computer Science is the active "glue" of the disciplines, we find that it becomes increasingly hard to find things that are truly "Computer Science" in nature. All these just means that Computer Science cannot simply exist as a discipline on its own; its survival is dependent on the existence of problems with which their solution is of use to the community, with the precondition that the problems to be solved have no known closed form and require lots of data/number crunching to be able to get a good-enough approximation (we can only get approximations and rarely perfect answers due to the inherent differences between real mathematics for the real world equations and the rational mathematics that is used by the discrete computer) with which we can draw useful conclusions from or to make useful products with.

Computer Science is thus the discipline of skilled problem solvers; we stop at nothing to help solve the problems from the varying fields that are available in the real world out there. This doesn't mean that that is all the Computer Science has to offer; it is just a more tangible form with which non-computer scientists can better understand us and the things that we do.

There is also another reason why Computer Science cannot die: the ubiquitousness of the Internet and other "abstract" tools that see a real practical use in the real world. The day that the Internet dies, the day that the computer dies, will be the day that Computer Science will be something that is totally different from before. The growth and maturity path of Computer Science seems to be following the "normal" path of any discipline, with the single exception that it is more accelerated. For instance, mathematics have been in growth over the last 400 to 500 years, physics almost 200 years, chemistray also roughly as long, as does biology. But with Computer Science, its development seems to be providing itself with the ability to hasten its own development, to the point that we can build up the whole field from infancy to maturity in a very short span of time. This in its own is a grand achievement; it also makes it easy to predict the demise of the discipline when it seems that it has started to "outgrow" itself.

The trick to survival then, would be to continually seek problems to solve, to harness the ability of the computation machine/device to help in the advancement of the other disciplines. Current development in biology and bio-technology for instance, would have been much slower had we not have the development of faster machines and better computation algorithms to take away the tedious and error-prone computations required in order to test out the hypotheses. The use of computer simulations also help in the reduction of cost of time and money in building physical prototypes to the cost of electricity as we try to compute the effects in the abstract sense to reduce the amount of actual building that we need in order to test out the effects of a design and stuff. Such power is unprecedented in the history of humankind, and it is something that Computer Science will be best known for.

Will Computer Science experience death then? Maybe, but not now. While there might not be much that Computer Science needs to know in order to be able to function well, there will always be problems whose solutions are required, and from these problems and the corresponding [limited] resources, Computer Science will still be relevant in the world. Thus, instead of seeking to understanding deeper, perhaps it would be wiser to understanding broader.

No comments: