Вы не задумывались почему в наше время люди ещё интересуются такими устаревшими платформами как
ZX Spectrum или
MSX? (о чём может свидетельствовать активность на форумах, посвящённых этим платформам). Оказывается, человек испытывает эмоциональную привязку, тёплое домашнее чувство, ауру детства. И эту особенность цинично пытается использовать индустрия. MS проталкивает в школы свой VisualBasic, начинающие программисты волею судьбы и накатанной дорожки не имеют никакой возможности выбрать что-либо иное, чем Java/.NET, а старые приверженцы C/C++ относятся к своему предпочтению не менее догматично, чем религиозные фанатики. Распространять на такой почве Оберон-парадигму — практически безнадежная затея, и этим мало кто занимается и интересуется, к сожалению.
Цитата:
Было обнаружено, что плотность ошибок в больших программных текстах на языке Си при прочих равных (квалификация разработчиков, объем и сложность ПО, время разработки и т.п.) в 16 раз превышает плотность ошибок в программах на наиболее совершенном потомке Паскаля Обероне. Грамотным специалистам очевидно, что с точки зрения обучения программированию Си еще опаснее, чем Бейсик:
«Обучение программированию с помощью Си эквивалентно развращению малолетних.»
— А.А.Берс, ведущий научный сотрудник Института систем информатики им. Ершова СО РАН (высказывание сделано — и не встретило возражений — на круглом столе ведущих преподавателей информатики новосибирских университетов и школ во время визита Н.Вирта в ИСИ СО РАН 3 октября 2005 г.).
Тем не менее именно те свойства языка Си, которые делают его использование источником «дыр» в больших программах, привели к его популярности среди незрелых «партизан» от программирования, рассматривающих его как игру, соревнование, арену демонстрации собственного «интеллекта». Важно понимать, что подобные явления не являются специфичными для программирования: в филологии и детской психологии хорошо известно аналогичное явление детского фольклора (страшилки и т.п.), демонстрирующее устойчивость на протяжении многих десятилетий. Таким образом, можно говорить о стихийном распространении своебразной мифологии вокруг языка Си и его производных, коренящейся в естественном недостатке знаний и опыта, а также в особенностях психологии юных программеров — желания самоутвердиться среди сверстников («настоящие программеры пишут на Си») и т.д.
Возникновение монструозно сложного языка С++, сочиненного путем «тупого» добавления к Си без исправления его многочисленных дефектов модных конструкций объектно-ориентированного программирования (о недостатках С++ написаны целые трактаты), только усугубило ситуацию: ведь молодежь (да и не только она) по наивности путает сложность и мощь языка, об ошибочности чего постоянно говорит Н.Вирт.
Стихийное распространение в среде юных «партизан» от программирования порочной мифологии, возникшей вокруг языков С/С++, имеет резоны в примитивных архетипах подростковой психологии.
К этому стихийному явлению нельзя относиться пренебрежительно по следующим причинам.
Во-первых, на примере программистов, учившихся на фортране еще в 1960-х гг., мы видим, как долго и упорно сохраняются в зрелом возрасте эмоциональные предпочтения и привычки программистского мышления, зафиксировавшиеся в юности (это явление отражено в старом анекдоте: «Пожилому программисту требуется домработница, говорящая на фортране»). Обучать современным эффективным методам программистов с уже сложившимися привычками почти невозможно, и такие программисты постоянно тащат в серьезные проекты эти негодные инструменты.
Во-вторых, масса фанатов Си/С++ создает стадный эффект: с одной стороны, на него ориентируются коммерческие издательства (которые, как показывает опыт, функционируют как мощный усилитель любого мракобесия, если только находится достаточно покупателей; напомним, что изначально потребность знать Си была создана распространением операционной системы юникс, а теперь и линукс). С другой стороны, новички-самоучки (коих множество) не имеют другого ориентира, кроме правила «иди за толпой». Наконец, менеджеры под давлением сиюминутных обстоятельств вынуждены ориентироваться на предложение рынка рабочей силы. Возникает порочный замкнутый круг, который разрывается только в относительно специфических классах приложений (встроенные системы управления и т.п.), где в игру вступает неумолимая объективная реальность, разрушающая мифологию.
В-третьих (и это самое главное), продолжающий расти массив программ, написанных на С/С++, есть постоянный источник проблем — от потерь времени пользователей (современные версии MS Word продолжают регулярно «падать», как и 15 лет назад, хотя и научились лучше сохранять работу), до «дыр» безопасности, связанных с дефектами программ (переполнение буфера, утечки памяти и др.). Дефекты, порожденные использованием таких опасных языков программирования, как Си/С++, очень трудно устранять. Процитируем сайт проекта Информатика-21:
«... В августе 2001 г. вице-президент Майкрософт Джим Олчин (Jim Allchin) объявил во время доклада на открытии конференции Intel Developers Forum в Сан Хосе, что в новой операционной системе Windows XP все возможные проблемы из разряда переполнение буфера были устранены посредством специального анализа исходных текстов на предмет безопасности (security audit). Но в декабре того же года была найдена «дыра» в одной из программ в составе Windows XP (в программах поддержки стандарта подключения внешних устройств Universal Plug and Play), причем, дыра оказалась именно из категории «переполнение буфера». ...»
Вообще вся ситуация здесь выглядит совершеннейшим абсурдом: то, чего можно без труда добиться просто выбором качественного и простого языка программирования, решается ... невообразимо сложным и дорогостоящим способом, а главной причиной, в конечном счете, оказывается умственная инерция программистов, в начале карьеры подвергшихся «заражению холерой Си». Отсюда понятно, почему серьезные специалисты употребляют такие сильные выражения как «развращение малолетних», «интеллектуальная зараза» и т.п., говоря о языках Си/С++.
Разумеется, проблемы Си/С++ ощущаются и в индустрии (не все же там, в конце концов, «партизаны» от программирования или ... менеджеры), даже несмотря на то, что конкуренция здесь ослаблена из-за быстрого расширения сферы ИТ. Именно поэтому возник язык Java, представляющий из себя попытку сделать то, что не сумели сделать авторы C++, а именно, не просто бездумно добавить на предательски ненадежную основу Си все возможные новомодные средства, но и сделать какой-то осмысленный отбор, а также перепроектировать фундамент языка, исключив коварные ловушки, которыми знаменит Си. При этом сильнейшее влияние оказал виртовский Оберон (компилятор которого, по сообщению Вирта, команда создателей Java изучила в исходниках, дав ему высокую оценку, за несколько лет до выпуска Java) — строгая типизация, автоматическое управление памятью, отказ от множественного наследования — фактически, это отказ от главного культового свойства Си, делающего его столь опасным («полная свобода программисту, включая свободу делать любые ошибки»). Разумеется, чтобы убедить фанатов Си согласиться с таким отказом, нужен был сильный способ отвлечь их внимание, и средством для этого оказались анти-майкрософтовские сантименты, широко распространенные в мире ИТ. Дорогостоящая маркетинговая кампания, в значительной степени построенная на эксплуатации этой обманки, имела успех.
Источник:
Ф.В.Ткачёв. Система образования как фактор национального суверенитета в сфере информационных технологий