0:16:52asarchFrom the point of view of Lisp, what's wrong with C++?
0:17:12asarchI've read a lot of bad jokes about this programming language
0:17:35asarchBut I still cannot realize the reason of it
0:18:43aethasarch: C++ pretends that it's on the low-level side of the high-level languages, but it has high-level syntax, which makes metaprogramming painful. It also inherits all of the security/safety flaws of C by being compatible with C.
0:21:29aethLisp doesn't force a high-level infix string representation of source code on top of the abstract syntax tree that's underneath, which makes things like macros actually doable.
0:25:07aethTemplates, C-style macros (i.e. string macros), and other generic/template/macro systems tend to be complicated, hard, painful, and easy to make mistakes in. Lisp-style macros (i.e. structural macros) avoid most of those issues.
0:27:25aethe.g. If you need to interface with something that expects some string format, you can just write a CL macro to generate a string. Doing so is very similar to writing a function, but it will produce a string at macro-expansion-time, which can mean that string will be compiled into the native compiled form (usually a FASL file).
0:27:40aethThis is an easy exercise in Common Lisp.