← Back to context

Comment by Verdex

2 days ago

You may be thinking of turing completeness. All turing complete languages can compute the same functions. And in that way they are equivalent.

However, not all languages are turing complete. See, for example, charity: https://github.com/dobesv/charity

Furthermore, turing completeness says nothing about expressiveness or capability. Imagine a language that has no IO. Such a language would be able to compute any function any other language can but not do anything viewable by the rest of the world. So obviously not equivalent.

And w.r.t. expressiveness, there is some academic research into how to quantify that: https://www2.ccs.neu.edu/racket/pubs/scp91-felleisen.pdf

I understand and agree, what I was trying to say is that one should not confine ones thinking by the constraints of a tool, would it be a programming language or whole framework, but to express everything as freely as possible without details of implementation only then one can go deeper and add concreteness that brings its set of constraints and all of this should be possible in any programming languages.

I hope I've cleared my standpoint.