Inicialmente, tentei perguntar isso no StackOverflow, mas era muito subjetivo :-(. Estou interessado em métodos para definir o poder das linguagens de programação. A conclusão de Turing é uma delas, mas é quase universalmente satisfeita. O que seria bom é definir um medida de poder que discrimina as linguagens de programação realmente usadas.Por exemplo, alguém pode propor um método não subjetivo que discrimine entre assembly e Java?
Turing completude significa que uma linguagem é extremamente poderosa no que pode produzir (o que praticamente significa que pode fazer qualquer coisa fora do tempo com base no mundo real). Portanto, se queremos definir uma medida mais forte de poder, precisamos adotar outra abordagem. A falta foi sugerida na pergunta original, mas isso não é fácil de definir. Alguém tem outras sugestões?
fonte
Se entendi sua pergunta corretamente, você ainda está procurando algo que seja relativamente mensurável e não apenas um julgamento subjetivo. Nesse caso, eu pessoalmente favoreceria a quantidade de tempo necessária para resolver qualquer problema específico (média sobre todos os problemas e todos os programadores). Nesta medida, pode ser necessário considerar não apenas a linguagem em si, mas também a estrutura / API usada com ela. A sintaxe sucinta é um fator muito pequeno: um fator muito mais importante é que a funcionalidade mais comumente necessária é facilmente acessível.
Se você está procurando algo mais subjetivo, eu diria como é divertido . Os programadores tendem a ser pessoas que desejam resolver problemas; portanto, uma linguagem de programação divertida para os programadores será inevitavelmente a que resolverá a maioria dos problemas. Essa medida leva em consideração que pessoas diferentes têm preferências diferentes sobre como usar as coisas; portanto, a “melhor” linguagem de programação será a mais atraente para a maior variedade de programadores. No entanto, talvez você precise considerar não apenas a linguagem de programação e a API aqui, mas também o ambiente (IDE), que é obviamente o que o programador realmente interage.
fonte
Eu definiria o quão poderosa é uma linguagem pelo quão produtivo você pode ser com ela. Muitas pessoas tendem a falar sobre produtividade em termos de escrever código rapidamente, mas como a maior parte do ciclo de vida de um programa é de manutenção, não de desenvolvimento, uma medida melhor é a facilidade com que você pode ler e depurar o código, especialmente quando ele é escrito por alguém. outro. Os idiomas mais poderosos são os mais fáceis de ler e manter.
fonte
Você precisa definir melhor sua terminologia.
Turing completude não tem a ver com "poder" no sentido que você provavelmente quer dizer. Pelo contrário, é sobre computabilidade; ou seja, se um determinado idioma pode expressar qualquer programa que possa ser implementado usando uma máquina de Turing. Acontece que praticamente todas as linguagens de programação são Turing completas.
O que você provavelmente procura é uma medida do que é chamado de "expressividade" da linguagem de programação. Não tenho certeza se existe alguma medida, ou se existe, se é útil. Fundamentalmente, diferentes linguagens de programação são melhores para expressar soluções para diferentes tipos de problemas.
EDITAR
Apenas para esclarecer, as linguagens de programação não possuem uma propriedade conhecida como "poder". Existe um conceito conhecido como "expressividade" ou "poder expressivo" de uma linguagem de programação. Expressividade é em parte sobre como é fácil escrever programas sucintos para resolver problemas específicos. Mas há também uma medida considerável de como é fácil ler e escrever os programas. É como "beleza". Eu o saberei quando o vir, mas não me peça para defini-lo.
Simplesmente comparar a contagem de caracteres não fornece uma medida adequada de expressividade. Caso contrário, você poderia tornar uma linguagem mais expressiva compactando o código-fonte ... e isso não faz sentido. De fato, não conheço nenhuma medida objetiva de expressividade e suspeito fortemente que não exista. O que efetivamente torna a característica inútil e bastante desinteressante.
fonte