Is Lisp the most powerful programming language?

Is Lisp the most powerful programming language?

Yes. Learn Scheme.

No dna is the most powerful programming language.

No, but it's the most Jewish.

Excellent post

10/10

banana scheme is more powerful.

/thread

DNA is the original spaghetti code

Just like HTML isn't a programming language, neither is DNA. They're just a way to represent things.

lisp code is also just a way to represent things

Code is data that you can manipulate at compile time (through macros)
Few other languages give you that.

bump

One of the most enlightening, but not the most powerful

It's certainly the most comfortable. Minimal syntax and prefix operators means I don't have to memorize tables of precedence laws, special-case-syntax, or language-specific mechanisms. It makes it really easy to handle the problem in terms of the problem itself, instead of in terms of your language.

All turing complete programming languages are equally powerful.

That's not what Turing equivalence means. It doesn't mean "equally powerful", it means "both can simulate a single-taped turing machine". Dwarf Fortress is Turing complete, but that doesn't mean it's equally as good for programming aircraft controllers as any other language.

Is the "power" of a language what you would use to decide whether to program X or Y in it?

No, it's the family of most mind-expanding languages.
I use C though, but Scheme was very educational.

I'm going through the SICP lectures but I think what I want to learn is Common Lisp. I guess I'll be learning both and getting that wizard beard

Power is pretty ambiguous, but is usually taken to mean either "control", "expressiveness", or "concise, where the latter two are closely related.

In a Lisp language, you manipulate the AST directly in the program and that ability is granted to the language as well (macros manipulate the AST and use the language itself to generate new code), and you are usually able to manipulate the control-flow of the program itself via continuations, both of which grant an incredible amount of control over the language.

Since a Lisp language allows you to manipulate and alter the language itself using that same language to do so, in order to generate new code (like the compiler is an API, and not a black-box), you're given any arbitrary amount of "expressiveness" you want. I recently used a Lisp language that allowed you to write and use code written in ALGOL 68 for the interpreter and compiler. Similar to how GOTO abstracts over and controls JMP opcodes, and for abstracts over and controls GOTO, you can extend the language to abstract over for loops and treat these new constructs natively.

Since the above is possible, it's also possible to abstract over common design patterns. Lisp languages don't need "design patterns", because you can encapsulate that pattern in a macro and have the language generate it for you automatically.

Anyway, see for my actual personal opinion why Lisp languages are the best, but the above for why they're more "powerful" in a technical way.

Code is just a way to represent instructions (instructions are things).