Первоначально я пытался задать этот вопрос в StackOverflow, но это было слишком субъективно :-(. Я заинтересован в методах определения мощи языков программирования. Полнота Тьюринга одна, но почти универсально удовлетворена. Что было бы неплохо, так это определить мера мощности, которая различает языки программирования, которые фактически используются. Например, может ли кто-нибудь предложить несубъективный метод, который будет различать ассемблер и Java?
Полнота Тьюринга означает, что язык является максимально мощным в том, что он может выводить (что в значительной степени означает, что он может делать все, что не связано с временем в реальном мире). Поэтому, если мы хотим определить более сильную меру власти, нам нужно использовать другой подход. Краткость была предложена в первоначальном вопросе, но это не так просто определить. У кого-нибудь есть другие предложения?
источник
Если я правильно понимаю ваш вопрос, вы тем не менее ищете что-то относительно измеримое, а не просто субъективное суждение. Если это так, я лично предпочел бы количество времени, затрачиваемое на решение какой-либо конкретной проблемы (в среднем по всем проблемам и всем программистам). В этой мере вам, возможно, придется учитывать не только сам язык, но и структуру / API, используемые с ним. Краткий синтаксис является очень небольшим фактором: гораздо более важным является то, что наиболее часто требуемая функциональность легко доступна.
Если вы ищете что-то более субъективное, я бы сказал, как это весело . Программисты, как правило, люди, которые хотят, чтобы проблемы решались, поэтому язык программирования, который интересен программистам, неизбежно будет тем, который решит большинство проблем. Эта мера учитывает, что разные люди имеют разные предпочтения в том, как пользоваться вещами, поэтому «лучшим» языком программирования будет тот, который наиболее привлекателен для самого широкого круга программистов. Тем не менее, вам может понадобиться рассмотреть не только язык программирования и API, но и среду (IDE), с которой, естественно, взаимодействует программист.
источник
Я бы определил, насколько мощен язык, насколько продуктивно вы можете с ним работать. Многие люди склонны говорить о производительности с точки зрения быстрого написания кода, но, поскольку большая часть жизненного цикла программы - это обслуживание, а не разработка, лучше определить, насколько легко вы можете читать и отлаживать код, особенно когда он написан кем-то. остальное. Самые мощные языки - те, которые легче читать и поддерживать.
источник
Вы должны определить свою терминологию лучше.
Полнота Тьюринга - это не «сила» в том смысле, который вы, вероятно, имеете в виду. Скорее речь идет о вычислимости; т.е. может ли данный язык выражать любую программу, которая может быть реализована с использованием машины Тьюринга. Оказывается, что почти каждый язык программирования завершен по Тьюрингу.
То, что вы, вероятно, после, является мерой того, что называется "выразительность" языка программирования. Я не уверен, существует ли какая-либо такая мера, или если она существует, если это полезно. По сути, разные языки программирования лучше выражают решения для разных типов проблем.
РЕДАКТИРОВАТЬ
Проще говоря, языки программирования не обладают свойством, известным как «сила». Существует понятие, известное как «выразительность» или «выразительная сила» языка программирования. Выразительность отчасти связана с тем, насколько легко писать сжатые программы для решения конкретных проблем. Но есть также значительная мера того, насколько легко читать и писать программы. Это вроде как "красота". Я узнаю это, когда увижу, но не проси меня дать определение.
Простое сравнение количества символов не дает достаточной степени выразительности. В противном случае вы могли бы сделать язык более выразительным, сжав исходный код ... и это чепуха. На самом деле, я не знаю ни одной объективной меры выразительности, и я сильно подозреваю, что ничего не существует. Что фактически делает характеристику бесполезной и довольно неинтересной.
источник