Понятия «простой язык программирования», «непрофессионал» и «наилучший язык программирования» не являются туманными. Они очевидны на интуитивном уровне.
Вы уверены, что Ваше интуитивное представление совпадает, например, с моим? :)
Мерой простоты языка может быть объем его описания: широко известный пример: Виртовское описание Паскаля занимает 30 страниц.
В Паскале есть указатели -- не самая простая концепция для понимания непрофессионалом. Кроме того, я думаю, имеет смысл различать краткость описания языка и простоту написания программ на этом языке. Иначе, скорее всего, придется признать, что самый простой язык программирования -- это Форт.
Другая мера: объем исходного кода интерпретатора языка, написанного на этом же языке.
А по этому критерию, самый простой язык -- Лисп (если мне не изменяет память, код интерпретатора Лиспа на Лиспе занимает около страницы).
«Наилучший язык программирования» - понятие ситуативное: то, что наиболее важно на данном периоде развития дисциплины Программирование, то обычно и включают в понятие «наилучший язык».
Бессмысленно говорить о "наилучшем" языке, до тех пор пока не определен класс задач, которые с помощью этого языка предполагается решать. Да и после того, как класс задач определен, все равно бессмысленно :): не существует объективных коэффициентов для "взвешивания" достоинств и недостатков, поэтому задача многокритериальной оптимизации при выборе языка в общем случае неразрешима.
Сейчас ИМХО самой больной проблемой является надежность софта (малая надежность - причина многих техногенных катастроф, сетевых ограблений банков, взломов сетей и т.д.).
Вы считаете, основная проблема в "ненадежности" языка? На мой взгляд, главная причина -- кривые или криво реализованные протоколы обмена и алгоритмы управления; ну и, конечно, постоянно растущая сложность задач.