Hacker News new | past | comments | ask | show | jobs | submit login

Almost every language is multi paradigm (it just takes two paradigms after all, so every imperative OOP language is multi paradigm). All the most popular languages today have a mix of imperative, functional and OOP. Few languages (and certainly fewer popular ones) are paradigmically “pure”.



Imperative is orthogonal to object-ness, that doesn’t make a language multi paradigm. C++ was considered multi paradigm because it supported both OOP and procedural programming for organizing code.

Of course, these days procedural is taken for granted and drops off the radar as a notable paradigm.

The dual of imperative is declarative. It is quite possible to have a functional imperative language as Guy Steel points out in his Lambda: the ultimate imperative paper.


> every imperative OOP language is multi paradigm

I am not sure how you can count imperative and OOP as two paradigms. OOP is an extension of imperative paradigm. I would like to see what language you consider to be OOP but not imperative and not functional.


In the spirit of a bit of fun, Erlang can arguably make that claim. The processes are easy to view as objects, in the sense that I've often thought that when I read what Alan Kay said about objects, it often seems to be describing Erlang moreso than Smalltalk. But the language those objects are implemented in is functional.

(That said, if you read real Erlang code, despite being immutable and nominally functional, the code often is in practice simply imperative code where the code author has manually done the SSA rewrite. This is one of my major criticisms with the language. If you really try to program it functionally, it's quite a pain compared to Haskell.)


“Almost every language is multi paradigm”

Considering most language paradigms are mutually contradictory, this only serves to increase the LOLs.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: