Re: С++ulture [опубликована в КТ № 22]
От: Denwer Россия  
Дата: 11.06.04 10:03
Оценка: -7 :)))
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Я – программист. Я знаю пять языков – и верен одному. Я прочел два десятка книг только об этом языке – а хотел бы две сотни. Я могу математически доказать правильность своей программы – и скрещиваю пальцы на удачу, когда запускаю ее на компиляцию. Я могу переписать одну строку восьмью разными способами – но работает только девятый. Я безнадежен.


А ты не задувмывался над тем, почему тебе 20 книг не хватает, а не проблема ли тут в самом языке. Действительно по С++ можно написать кол-во книг стремящихся к бесконечности.

ЗХ>***

ЗХ>Один мой коллега (и все профессора в моем институте) верят, что главное – это научиться программированию. Мол, человек, умеющий программировать вообще, за пару недель освоит новый язык и будет писать на нем великолепные программы. Поэтому в университетских курсах огромное количество сухой(сноска: Ну, черт с ней, полусухой.) теории, а языки преподаются на уровне пресловутого «Хелло Ворлд». Но это все равно, что научить стихосложению вообще – а потом студент за пару недель осваивает финский или хинди и выдает первоклассные стихи, входит в историю поэзии и энциклопедический словарь. Вроде абсурд получился.
Действительно, человек, знающий ооочень хорошо архитектуру ПК, ООП, и представляет как работает ОС, сможет достаточно быстро разобраться в языке программирования. Меньше всего это относиться к С++, потому что вот так все запущенно. Но всеже, если знаешь С++, то писать на жабе не составит труда уже через 1 месяц.
ЗХ>Каждый язык программирования – из тех, в которые влюбляются – порождает свою культуру. Совершенно так же, как человеческий язык. У него есть свой букварь(сноска: Кафедра Программного обеспечения, курс «Язык С++», 48 часов. (с) расписание 2-го курса.). Но это – только самое-самое начало. Есть лексика – и даже нецензурная(сноска: Скажите любому опытному С++-программисту магическое слово goto. Только с безопасного расстояния.) (как и в естественном языке, иногда она бывает к месту). Есть синтаксис. Это все вещи понятные, относительно легко изучаемые и относительно легко формализуемые. Именно поэтому можно автоматизировать проверку синтаксической и лексической правильности как программы, так и данной статьи.
Культуру пораждает все старое и в свое время очень популярное, например битлс. Это не говорит о том что он будет таким популярным как и прежде.
ЗХ>Но и это все – лишь начало. Ни «Война и мир», ни «безбашенная» проза Харуки Мураками, ни «Linux» – не являются математически стройными системами. Их нельзя назвать написанными «правильно» или «неправильно». Более того, и то, и другое, и третье можно было написать несчетным(сноска: В математическом, а не поэтическом значении этого слова.) количеством различных способов – но написаны (и ценны) они именно такими.
Говоришь как специалист по ОС, и плиз расшифруй понятие матиматически сторойная ОС, а уж тем более Война и мир.
ЗХ>Нельзя «научить» писать эпиграммы, сказки или статьи, которые нравятся редакторам «Компьютерры». Каждое такое произведение – это результат творческого переосмысления опыта предыдущих поколений + немножко вдохновения + владение языком + собственный стиль. Нельзя научить писать программы на C++ – это результат [см. выше].
ЗХ>***
ЗХ>У этого языка есть свои идиомы – краткие, но очень емкие конструкции. Есть традиции – и возможность плевать на них. Есть свобода выбора стиля. Есть возможность различными словами написать одну и ту же фразу. Есть классика – и есть классики: Бьярн Страуструп, Джефф Элджер, Герб Саттер, Николай Джосаттис. На этом языке можно сказать двусмысленность – и не получить линейкой по рукам от компилятора(сноска: …а трое суток искать, почему программа вылетает, когда i=17.). Здесь есть место творчеству – здесь есть место спорам – здесь есть место 48-часовым марафонам по отладке программ. Есть тонкости, доступные только снобам. Здесь нет только одного – места, где можно было бы остановиться и сказать: все, ничего нового для меня в этом мире не осталось.
Все это относиться и к АСМу. А вот тут ты явно не прав: На этом языке можно сказать двусмысленность – и не получить линейкой по рукам от компилятора. Для этого есть стандарт, или другое развитие событий: компилятор глючит, а это везде может быть.
ЗХ>***
ЗХ>Поймите меня правильно – пользователю, в общем-то, плевать, на каком языке написана программа и насколько освоился в этом языке ее автор. В отличие от написания текстов, в программировании конечный продукт очень слабо связан со стилем и культурой автора текста(сноска: Естественно, связан сильно, но совершенно неочевидно для конечного потребителя.). Тем не менее, программа, которой «еще жить и жить» от версии к версии, просто обязана быть красивой – а не то в следующей версии никто уже не поймет, куда там дописывать новый кусок и почему старый до сих пор работает и «черт побери, кто вообще это писал?!» Но я вам другое скажу – программа, написанная с любовью и вдохновением, все же немножко другая. Не такая, как вышедшая из-под клавиатуры человека, любимая фраза которого «Надо сидеть и педалить код».
Действительно пользователю плевать на язык, но у него есть свои предрассудки: красиво, без тормазов, плюс много всего. Но для реализации этого программисту не плевать на чем писать.
ЗХ>***
ЗХ>Поймите меня правильно еще раз. С++, будучи изначально и по определению промышленным языком, является крайне неудачным выбором для промышленного производства. Там нужен язык другой – пригодный для производства штампованных программ штампованными программистами. Язык, который подразумевает только один вариант выражения мысли. Язык, на котором десять разных программистов по одному и тому же заданию напишут практически идентичный код(сноска: Кстати, это уже шаг в сторону автоматической генерации программ или «Цель деятельности всех программистов – чтобы их деятельность стала не нужна».). Язык, в котором шаг влево, а равно и шаг вправо просто нельзя выразить средствами языка.
ЗХ>Язык, который никто и никогда не будет любить.
ЗХ>***
ЗХ>Я – программист. Мой любимый язык – С++. Это отвратительный язык. Я могу сказать на нем любую глупость. Мне не помогут и двести книг. Девятый вариант строчки тоже не сработал. Я безнадежен.

Всех нас ждет платформа НЕТ, а там уж сам выбирай(я уж точно на С++|CLI не перейду). Так что или писать под математически не стройные системы типа линукс, либо Windows+C#.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.