Bye bye Python; Enter Haskell

The only ‘programming language’ a computer understands has two ‘commands’ - 0
and 1. That language also happens to be the one that human programmers have
the most difficulty with, and so the need arose for human-like languages.
However, it could never be forgotten that all codes developed in human-like
abstract languages had to be translated into 0s and 1s at the end of the day.

The proliferation of programming languages over the last 50 years was related
to balancing the above two aspects. At first, programs were written in
assembly language, which was nothing but Anglicized machine code. When
computers became larger and programmers felt a bit more ‘wasteful’, languages
like C and PASCAL came in. It took another 30 years for computers to be large
enough to allow domination of scripting languages (PERL, python, ruby, PHP)
over C and C++.

The computing hardware world went through another major transformation over
the last five years to support another upgrade in programming paradigm. It is
the introduction of many cores. The older languages like C or C++ cannot be
programmed seamlessly, while taking advantage of many cores. That is where
Haskell, a functional language, can help.

Please note that we are not saying that multi-cores cannot be programmed in
C/C++ or programmed efficiently in C/C++. Haskell will make it easy to write
scalable code without significant loss in speed. The transformation we are
suggesting is similar to the one from assembly language to C. Most programmers
knew that assembly codes were efficient, but those, who continued to write
assembly language code, did not manage to build very complex applications.

Here we will add links to few Haskell resources, if you are interested to get
started.

Based on my understand, Haskell programs run slightly slower than C/C++, but
often faster than PERL/python (without PyPy) in single CPU. The biggest
advantage is in how easy it is to modigy codes to take advantage of multiple
cores.