Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #65, АПРЕЛЬ 2006 г.

эволюция

КРИС КАСПЕРСКИ АКА МЫЩЪХ

Спецвыпуск: Хакер, номер #065, стр. 065-022-1


НЕСТАНДАРТНЫЙ С++

ЛЮБОЙ ДУРАК СОЗДАСТ АППАРАТ, КОТОРЫМ МОЖЕТ УПРАВЛЯТЬ ТОЛЬКО ГЕНИЙ. НО ТОЛЬКО ГЕНИЙ СОЗДАСТ АППАРАТ, С КОТОРЫМ УПРАВИТСЯ ЛЮБОЙ ДУРАК...

священные войны

Вокруг языков программирования давно разгораются битвы, но все как-то мимо писсуара и совсем не в тему. Обычный тезис: «Покажите мне пример, который нельзя реализовать на моем любимом XYZ, и тогда я съем свою тюбетейку». Еще бы козырек намазать маслом, чтобы было легче глотать!

Теоретически, если задачу можно решить на Машине Тьюринга, ее можно запрограммировать на любом существующем языке. Весь вопрос в том, за какое время, какой ценой и с какой эффективностью. Чистый язык сам по себе никому не интересен. Для полноценной работы программисту требуются средства разработки: трансляторы, линкеры, верификаторы, IDE, отладчики, библиотеки и т.п. Причем желательно, чтобы трансляторов было больше одного.

Основная разница между С++ и Basic'ом вовсе не в том, что трансляторы Basic'а генерируют тормозной код. Главное отличие С++ в том, что он никому не принадлежит. Есть открытый стандарт и десятки аттестованных компиляторов, которые генерируют стандартный промежуточный код, легко интегрируемый в любой проект, написанный, например, на Паскале или Ассемблере. Это не только упрощает перенос на другие платформы (LINUX, Palm OS), но и стабилизирует обстановку на рынке.

Язык С++ нельзя просто взять и «свернуть», как Microsoft свернула Visual Basic, отправив в игнор совместимость с ранее написанным кодом. Десятки тысяч программистов оказались буквально выброшенными на улицу. Переделывать отлаженный код под .NET муторно, сложно, и нет никакой гарантии, что через несколько лет Microsoft еще раз не впадет в маразм. Переучиваться под что-то другое слишком поздно. Как показывает практика, Basic необратимо калечит образ мышления программиста, особенно Visual. Кстати, Basic тоже имеет свой стандарт, как европейский, так и американский. Однако возможности настолько скромны, что даже самая непривередливая девушка не возьмет его замуж.

выбирая язык

ты выбираешь судьбу. И чтобы эта судьба не зависела от воли левой пятки Microsoft или Borland, необходимо писать так, чтобы программа транслировалась любым независимым компилятором (или хотя бы несколькими). Но сказать намного проще, чем сделать! Чистые компиляторы сейчас не в моде. Молодое племя программистов с трудом отличает язык от IDE, прочно подсаживаясь на иглу «Мастеров» и прочих растительных заграничных штучек. Можно долго спорить, что больше в Мастерах: пользы или вреда. Несомненно одно: человек, привыкший к Microsoft Visual C++ (вернее, к ее Microsoft C/C++ Optimizing Compiler, cl.exe - прим. AvaLANche), переходит на «правильные» трансляторы типа GCC с большим трудом, если переходит вообще, хотя, казалось бы, и то, и другое — компиляторы одного и того же языка С++.

чистый компилятор

в стандартном языке неинтересен так же, как неинтересен «чистый» язык, поскольку возможности ввода-вывода (если можно так выразиться) очень ограничены, а стандартные библиотеки совершенно непригодны для создания программ с графическим интерфейсом. Механизмы взаимодействия с операционной системой отсутствуют как класс, и даже такую простую операцию, как выдвижение CD-ROM-каретки, невозможно осуществить стандартными средствами! Вот и приходится использовать готовые компоненты, заточенные под конкретный компилятор, и нестандартные языковые расширения, которые привязывают программиста к поставщику. К тому же, хотя и существует множество открытых библиотек, которые написаны на стандартном С++ и позволяют создавать переносимые графические приложения, компилируемые любым компилятором, все-таки... Как же они тормозят! Взять хотя бы «Горящего Лиса» и сравнить его с Opera...

Содержание  Вперед на стр. 065-022-2