Steven D'Aprano <steve+pyt...@pearwood.info> writes: > where power is defined (rather fuzzily) as the expressiveness > of the language, how easy it is for the programmer to read, write and > maintain code, how efficient/fast you can implement it, etc.
Scheme guru Matthias Felleisen takes a stab at a precise definition here (though it's pointy-headed theory that I don't understand that well): http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.4656 > The Halting Problem is easily solved for Bloop languages: they always > halt. If Bloop is powerful enough to "solve the halting problem" as you describe, that gives it capabilities that Turing-complete languages lack. (Of course it also loses some capabilities). Some of the advantages of Turing-incomplete languages (plus why they are less constraining than it might sound) are discussed here: http://www.jucs.org/doi?doi=10.3217/jucs-010-07-0751 > But as we've seen, syntax can make a HUGE difference to power in the > sense of expressiveness, maintainability of code, readability, > efficiency of the programmer, and even efficiency of the > interpreter. Conway's Game of Life is Turing Complete. Would you > rather use Python, or Game of Life? BrainF*ck or Javascript? That's completely different than Python vs Scheme, where you can basically transliterate Python to Scheme by converting indentation structure into parentheses and a few other things like that. Felleisen's paper (linked above) has a deeper take on what expressiveness really means. I've programmed lots of Python and a fair amount of Lisp, and Lisp's parentheses really aren't that big a deal. Python is more pleasant than Lisp for me these days, mostly because its built-in datatypes and the standard libraries are a better match for today's programming than Lisp, which is somewhat stuck in the 1980s. Clojure (a new Lisp dialect with modern capabilities, currently only on the JVM) may be the way forward for Lisp, parentheses and all. > you are convinced that Python would be a better language if it > supported more mathematical notation with Unicode operators. Haskell and Agda both support this. It isn't used much in Haskell but Agda users actually use it, and the Emacs editing mode for Agda has special stuff to make it easier. It's probably more useful in Agda since Agda programs deal more with actual mathematical proofs. -- https://mail.python.org/mailman/listinfo/python-list