Вирт и C/C++

  Наконец-то нашёл статью, точнее доклад Вирта о современных технологиях, Преподавание информатики: потерянная дорога. Я не спорю с основными тезисами этого доклада, действительно в последнее время всё становится сложнее. Но одно место в тексте привлекло моё внимание и вызвало возмущение, абзац об «уродливом синтаксисе» языка С, выделяющийся по эмоциональности из основного текста, ключевое предложение: «Он запутывает студентов, допуская разный смысл для x = y и y = x и принуждая всех писать x == y вместо обычного x = y.» Очевидно, здесь язык С противопоставляется виртовскому Паскалю. И Вирт явно имеет в виду, что надо писать x:=y. Я не могу аргументировано судить, какой синтаксис более уродлив, сишный или паскалевский. Но делать самую часто встречающуюся конструкцию языка — оператор присваивания — состоящей из двух символов, причём один из них набирается с шифтом, это по-моему поступок недостойный. Помню, какое я ощутил чувство свободы, когда я перешёл на С и мне больше не надо было набирать это надоевшее двоеточие. Хуже этого только LET x=y в ZX Basic.
«Вот и всё, что я могу сказать о войне во Вьетнаме» (Форрест Гамп)
(Crossposted in LJ)

  • CEMEH

    Можно прослеживать эволюцию rant’ов об образовании.
    Вот, например, rant 2005-го года уже совсем о другом.
    http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

  • IronPeter

    Забавно… А его не напрягает, что a / b и b / a имеют совершенно “разный смысл” ?

    Впрочем, что с них взять, они же канадцы ( с ).

  • lordmaze

    java is a new pascal

  • Tenchiken

    Чтобы убедиться в том, что ZX Basic еще не так уж плох, достаточно посмотреть, например, на синтаксис POV-ray’а. Там приравнивание производится через конструкции формата “#declare a = b”.

  • http://aklk.com.ua klk

    Я на синтаксис POV-Ray смотрю уже лет семь. :) Делал на SDL (POV-Ray Scene Description Language) много разных вещей, скелетную анимацию например. Да, «#declare» немного утомляет, хотя бесит не так сильно, как «:=». Не знаю, почему… Но там и выбора нет. Хотя при желании можно было бы поковырять исходники и скомпилить свою версию без «#declare», но в этом случае сразу потеряется совместимость.