samedi 6 septembre 2014

paradigm shift

What is a paradigm shift?


Paradigm shift is something like a revolution. As Thomas Kuhn describes it in his book the Structure of Scientific revolutions, it's a change that has been driven by the emergence of an idea which challenges an existing orthodoxy. 
Initially, the two ideas compete while the old order maintains its dominance. Over time, the strength and popularity of the new idea grows, until it begins to displace the older order: This is what Thomas Kuhn calls a paradigm shift.

That's how all great ideas come into existence. It's not easy to think of something that can cause a revolution, something that can change history as well as existing patterns of thoughts. People are usually resistant to change, a new idea is not necessarily well accepted most of the time. Thus, when thinking of a new revolutionary idea, one must have enough resolve and keep on holding onto their own ideas. We have to think different, think outside the box, in order to be able to change the world. And as a programmer, it's not enough to have an idea, we must make the effort to implement this idea, turn it into something concrete.

How did fortran (and modern programming languages) come into existence

Excerpt from stanford C++ course (cs106b)

In the early days of computing, programs were written in machine language, which consists of the primitive instructions that can be executed directly by the machine. 
Machine-language programs are difficult to understand, mostly because the structure of machine language reflects the design of the hardware rather than the needs of programmers. In the mid-1950s, a group of programmers under the direction of John Backus at IBM had an idea that profoundly changed the nature of computing. Would it be possible, they wondered, to write programs that resembled the mathematical formulas they were trying to compute and have the computer itself translate those formulas into machine language? In 1955, this team produced the initial version of Fortran (whose name is an abbreviation of formula translation), which was the first example of a higher- level programming language. 

I guess that this bright idea was what brought the modern programming languages into existence. After all, it's possible to express any mathematical formula with an instruction or two in any programming language. Programming requires logical thinking, which is something mathematicians are good at. It might not be always the case, but I think a good mathematician can be a good programmer. However, a good programmer is not necessarily good in mathematics.