?

Log in

No account? Create an account

Previous Entry | Next Entry

Вирт и C/C++

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

Comments

( 8 comments — Leave a comment )
ex_reitetsu551
Oct. 24th, 2007 03:20 am (UTC)
А как же тот факт, что код пишется один раз, а читается многократно?
aklk
Oct. 24th, 2007 08:17 am (UTC)
А какая связь между этим фактом и двоеточием?
ex_reitetsu551
Oct. 24th, 2007 12:27 pm (UTC)
Ну, насчёт лучшей читабельности можно поспорить (хотя лично мне кажется, что такие принципиально разные вещи, как = и ==, лучше бы более отличающимися сделать), но я имел ввиду не конкретно двоеточие, а вообще сомнительность преимуществ, которые даёт аббревиативность синтаксиса и простота набора.
aklk
Oct. 24th, 2007 12:52 pm (UTC)
Читабельность кода на мой взгляд гораздо сильнее зависит от культуры программирования, чем от синтаксиса конкретного языка.
bik_top
Oct. 24th, 2007 07:33 pm (UTC)
А мне паскалевское присваивание больше нравится. Оно к математике ближе. Хотя лучше всего для присваивания подошёл бы символ «←». Но его, увы, нет на клавиатуре.
aklk
Oct. 25th, 2007 07:35 am (UTC)
Тогда Вам не стоит переходить с Паскаля на C/C++. :)
Вместо символа «←» можно было бы использовать «<-», но его набирать ещё труднее, чем «:=» :)
А насчёт близости к математике — мне кажется не стоит забывать, что в случае языка программирования «x», «y» ... — это только имена для областей памяти, а «=», «==» и «:=» — это операции над адресами или значениями. Интересная Джоэла Спольски статья на эту тему (если не читали): Закон Дырявых Абстракций
bik_top
Oct. 25th, 2007 10:53 am (UTC)
:)
С Паскаля на C++ я перешёл уже давно, чему несказанно рад :) Но ведь обсуждались-то не языки, а синтаксис?
C++ — мой любимый язык программирования, и его я знаю довольно хорошо. Просто я не склонен его идеализировать.
Джоеля Спольски читал.
aklk
Oct. 25th, 2007 11:30 am (UTC)
Я тоже не идеализирую С/С++. Просто в докладе Вирт уж очень агрессивно высказывается в отношении С и С++, выставляя его чуть ли не главным источником всего плохого в современных инормационных технологиях. :)
( 8 comments — Leave a comment )