Hacker News new | ask | show | jobs
by hcarvalhoalves 3861 days ago
This quote is so misleading.

Since when functional programming is "radical"? It's the essence of computing.

What we're seeing are other languages going back to the basics, after a detour in the "imperative is easy to learn" and "OO is reusable" lands.

2 comments

machine code looks pretty much like the "essence of computing" to me, and that's about as far as you can get from functional programming. I think I would agree with you more if you meant the essence of computer "science". If I remember correctly there is, anyway, a theorem by Church and Turing that proves imperative and functional programming to be capability-equivalent. The argument is more about the superiority of functional programming in its benefits to software engineering and algorithm discovery by forcing rigour onto our mistake-prone brains.
>Since when functional programming is "radical"? It's the essence of computing.

It isn't representative of how processors work, unlike imperative programming. Even if the theory is there, the machine itself is imperative (most of the time), so there's a level of abstraction needed.

Though the theory could have started like that, the mechanisms are totally separated from the physical reality. In a field dominated by engineers (especially in a time where cycle counts mattered much more), that's what's going to happen.

Well, increasingly that's untrue as machine operation begins to become more data flow oriented. Even before it hits the machine optimizations are often better performed on analyses which are more "functional" in nature. SSA is not so far from a functional language.
There were honest to god LISP machines built back in the day. They never really caught on however. They were mostly oriented at the educational market, and didn't ship with such niceties like an OS or even a bootloader sometimes.
>> the mechanisms are totally separated from the physical reality.

> There were honest to god LISP machines

As LISP-flavored stack machines, yes [0]. Alas that Linear Lisp [1] never received a hardware implementation [2].

To those exploring high level language architectures, forget not also the noble SCHEME-79 chip [3]: a Von Neumannian register machine, but one which executes a SCHEME interpreter microcoded in LISP.

[0] https://en.wikipedia.org/wiki/Lisp_machine#Technical_overvie...

[1] http://home.pipeline.com/~hbaker1/LinearLisp.html

[2] http://home.pipeline.com/~hbaker1/ForthStack.html

[3] http://dspace.mit.edu/handle/1721.1/6334