[erlang-questions] Erlang and the learning curve
Attila Rajmund Nohl
Wed Jan 5 15:59:56 CET 2011
2011/1/5, Morten Krogh <>:
> Why aren't many of these libraries written in functional languages to
> start with? Why hasn't the higher productivity in
> functional languages led to all those libraries being available in
> functional languages. Why is it more important for Erlang to interface
> with C, C++, Java etc than with Haskell, Lisp, Ocaml. Same question for
> them. Does Haskell care about interfacing with Erlang to get libraries?
> Functional languages are old, there have been many functional
> programmers, functional programmers are often very very skilled. Where
> are all those libraries
> that the imperative world doesn't have?
Writing a library is much harder than writing an application. Also
less rewarding. The software developers are very rarely tasked to
"create a library", they are paid to create an application that can be
sold. Because the "time to market" is a very important factor, it's
understandable that the fast "create a wrapper over existing code" is
chosen instead of "reimplement all that stuff from scratch", when some
functionality is necessary. Also don't forget that some of the
existing C libraries are out there for 10-20-30 years, which means
10-20-30 years of testing - it will take a good while for the new
Erlang library to reach the same level of maturity, especially that
there are much fewer users out there.
Also there's the fact that C is the lingua franca of today's
computing. Virtually every platform has a C compiler, so if you want
to create a library that can be used on many platforms, C is the way
to go. For this reason every other language has bindings for C to make
these libraries available.
> C is much more productive than assembler, and the speed loss in C is not
> that big.
> All higher level languages after C, are not that much more productive
> than C, or they lose a lot of performance. C hit a sweet spot.
> Some day, there will be a higher level language that displaces C, sure,
> but when?
For the applications I think it already happened a decade ago. The
Linux the whole KDE is written in C++, the iPhone applications are
written in Objective-C, the Android applications in a Java-dialect,
etc. The C holdouts are low-level stuff (e.g. systemd for Linux - it
needs to run without a VM) or code that needs good portability between
More information about the erlang-questions