Подбери себе компилер Крис Касперски ака мыщъх Хакер, номер #075, стр. 075-102-2 Компилятор ICC совмещает в себе высокую скорость трансляции с хорошим качеством результирующего кода, однако он не обходится без недостатков. Это программный продукт с закрытыми исходниками, поддерживающий только платформу x86, заточенный под процессоры Intel, да к тому же еще и не бесплатный. Бесплатность для некоммерческого применения не в счет, это в молодости мы шашки наголо и айда, но по мере углубления в лес все больше хочется кушать. К тому же, никакой уверенности, что завтра ICC не коммерцинализируют окончательно, у нас нет. Скорее всего, именно так все и будет. Тем не менее, ряды поклонников ICC ширятся с каждым днем, и на то есть свои причины. Это лучший компилятор для платформы Intel (а под другие платформы большинству ничего компилировать и не нужно). Он отлично документирован, служба технической поддержи работает честно и оперативно. GCC вот, по сути, не поддерживается вообще, разработчики совершенствуют компилятор в свое удовольствие, а эти противные пользователи им только мешают. Вместе с ICC поставляется набор высокопроизводительных библиотек с заготовками на все случаи жизни и оптимизатор VTune. Последний может работать и с другими компиляторами, но связка ICC + VTune наиболее удобна и эффективна. Это не пересказ рекламного проспекта, а личные впечатления. Недаром фирма QNX выбрала ICC основным компилятором для своей OS реального времени! Однако их выбор - это все-таки _их_ выбор. Он не должен быть опорой для твоего собственного мнения. В конце концов, никто не запрещает использовать оба компилятора попеременно, и проблема «или – или» здесь не стоит. Вавилонская башня языка Си/Си++ Качество open source проектов (что бы там ни утверждали их поклонники), вообще говоря, очень невысоко. Когда программа компилируется - это уже хорошо, а если при этом она еще и работает... Всякая попытка оптимизации или переход на другой транслятор разваливают хрупкое программистское строение окончательно. Программа либо перестает компилироваться совсем, либо в ней заводится глючный баг. Работающие на голом энтузиазме девелоперы просто не в состоянии опробовать все версии всех компиляторов, а ведь различия между ними очень значительны. Вот только один пример: в GCC 3.х из класса std::fstream изъяли конструктор fstream(int) и метод attach(int), в результате чего объявления вида fstream* FS = new fstream(fd) перестали работать. Еще одна жертва заявленной совместимости со стандартом! Впрочем, неприятность эту можно обойти: написать свой класс, производный от std::streambuf и создающий streambuf-поток (что долго, зато портабельно), или использовать гнусное расширение __gnu_cxx::stdio_filebuf («GNU’сное», потому что непортабельное). Но это работа программиста, а не конечного пользователя! |