In Lisp, the main focus is on OOP (CLOS is the most powerful object system), on building abstractions at various levels, on a powerful basic language.
HTML and Java are very easy to compare. More precisely, you can compare XML and Java. In XML, the encoded logic of the Java Ant program that it interprets is encoded.
On the contrary, using Lisp allows you to overcome this unreal complexity that traditional approaches cannot do (the same OOP *).
You might be surprised, but the most common SDK in the world is Emacs
The possibility of Lisp, which allows you to deal with the complexity of large systems (against which, as practice has already shown, the OOP approach is powerless), is the ability to create multilayered weakly coupled systems due to problem-oriented programming (primarily based on macros) ...
... and not tied to the need to fence the hierarchy of polymorphism classes .
In a nutshell, what I wanted to say: if you do not create hierarchies, then there will be no polymorphism in OOP.
Loosely coupled systems are not science fiction. Unix is built upon this principle (to some extent).
polymorphism in OO languages (read C ++, Java) does not exist separately from inheritance ...
... If an OO language refuses the concept of inheritance, then it also loses polymorphism.
In short, whatever one may say, and all your polymorphism is created by creating more and more new classes.
Source: https://habr.com/ru/post/89194/
All Articles