эволюция

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

Спецвыпуск: Хакер, номер #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
Выпуски журнала "СПЕЦ Xakep"
Cпец Хакер #01Cпец Хакер #02Cпец Хакер #03Cпец Хакер #04Cпец Хакер #05Cпец Хакер #06Cпец Хакер #07Cпец Хакер #08Cпец Хакер #09Cпец Хакер #10Cпец Хакер #11Cпец Хакер #12Cпец Хакер #13Cпец Хакер #14Cпец Хакер #15Cпец Хакер #16Cпец Хакер #17Cпец Хакер #18Cпец Хакер #19Cпец Хакер #20Cпец Хакер #21Cпец Хакер #22Cпец Хакер #23Cпец Хакер #24Cпец Хакер #25Cпец Хакер #26Cпец Хакер #27Cпец Хакер #28Cпец Хакер #29Cпец Хакер #30Cпец Хакер #31Cпец Хакер #32Cпец Хакер #33Cпец Хакер #34Cпец Хакер #35Cпец Хакер #36Cпец Хакер #37Cпец Хакер #38Cпец Хакер #39Cпец Хакер #40Cпец Хакер #41Cпец Хакер #42Cпец Хакер #43Cпец Хакер #44Cпец Хакер #45Cпец Хакер #46Cпец Хакер #47Cпец Хакер #48Cпец Хакер #49Cпец Хакер #50Cпец Хакер #51Cпец Хакер #52Cпец Хакер #53Cпец Хакер #54Cпец Хакер #55Cпец Хакер #56Cпец Хакер #57Cпец Хакер #58Cпец Хакер #59Cпец Хакер #60Cпец Хакер #61Cпец Хакер #62Cпец Хакер #63Cпец Хакер #64Cпец Хакер #65Cпец Хакер #66Cпец Хакер #67Cпец Хакер #68Cпец Хакер #69Cпец Хакер #70Cпец Хакер #71Cпец Хакер #72Cпец Хакер #73Cпец Хакер #74Cпец Хакер #75