Визуал С++ в топку!!!, МС опять облажались!
|
ZaHack
Большой Брат
Группа: Заблокированные Сообщений: 1.252 Регистрация: 24.01.2006 Из: Where The Eagles Fly Пользователь №: 333
Респектов: 117
| Всем, конечно, давно прожужжали уши насчет того что, Си круче Дельфи из-за размера получающихся ЕХЕшников.Этот аргумент был одним из самых важных в HollyWar'ах пасквилянтов и сишников.Но так ли это на самом деле? Я, от нечего делать решил проверить. Почему же бинарники Дельфи весят так много? Может у Борланд плохие программсты? Нет.Программа, написанная на VB или на VC с применением MFC, занимает гораздо меньше места. Все потому, что великая и ужасная компания Microsoft приложила к этому свою лапу. MFC и runtime-библиотеки в VB весят ничуть не меньше, просто они скомпилены в DLL и входят в поставку Windows, а значит, их код не приходится таскать с собой в программах. В защиту Borland можно сказать, что такая возможность присутствует и в Delphi. Нужно просто в настройках проекта поставить галочку Build with runtime packages, тогда программа значительно уменьшится, но потребует наличия соответствующих runtime-библиотек. Естественно, эти библиотеки в поставку винды не входят, но в этом надо винить не Борланд, а монопольную политику мелкософта. Значит будем программировать на чистом API ради чистоты эксперимента (каламбур получился ). Итак VC++ 7, поехали. Нашел классический АПИшный Hello World на Си (плохо знаю эту среду, так что юзал гуугль): #include int WINAPI WinMain(HINSTANCE,HINSTANCE,PTSTR,int) { MessageBox(0,'Hello World', 'test', 0); return 0; }
Скомпильнул. 21 Кб - неплохо, очень неплохо, если вспомнить, сколько занимают дельфийские, даже пустые проекты.Средний размер пустой формы с кнопкой - 360 кб. Теперь черед Delphi 7. Его я знаю лучше, так что функции смог задать более грамотно:
program Project1; function MessageBox(hWnd: LongWord;lpText, lpCaption: PChar;uType: LongWord): Integer;stdcall;external 'user32.dll' name 'MessageBoxA';
procedure ExitProcess(uExitCode: LongWord);stdcall; external 'kernel32.dll' name 'ExitProcess'; begin MessageBox(0, 'Hello World', 'test', 0); ExitProcess(0); end.
Естественно я делал через File-New-Console Application, а не, из автосоздаваемой формы. Компилируем, смотрим размер,и...делайте ваши ставки, господа...файл весит всего 13,5 Кб!!!!! А что это значит? А это значит, что Дельфи оптимизирует лучше, линкует и компилирует тоже лучше, и надо сказать, быстрее. Майкрософт опять облажалась! Все, в топку её "визуальный" Си, переходим на Борланд Си++ ЗЫ Установил Visual C++ 2005 (типа, самый новый, типа прорыв) попытался скомпилить этот мессагебокс - не получилось, написал "windows.h - не найден".Подумал, что это у меня руки кривые и запустил поиск этого файла в папке с сишкой.И нет его там. Нет и все. Майкрософт опять плюнула в лицо тысячам программистов-сишников, "перейдя на новые технологии", выкинув вообще этот хидер из дистрибутива VC.==> Майкрософт в топку! (еще раз) | |
| |
10.05.2006 - 18:49 |
ZaHack
Большой Брат
Группа: Заблокированные Сообщений: 1.252 Регистрация: 24.01.2006 Из: Where The Eagles Fly Пользователь №: 333
Респектов: 117
| Надыбал Visual Studio 6, а в ней этот мессагебокс занимает аж 150 Кб! Пламенный привет Биллу Гейтсу! | |
| |
10.05.2006 - 19:40 |
Штуцер
Специалист
Группа: Наши Люди Сообщений: 363 Регистрация: 2.03.2006 Из: The Earth planet Пользователь №: 125.765
Респектов: 83
| А я пользуюсь Борландом С++ 5.02 с 1999г. Одно удовольствие. Правда, оптимизация по времени не отчень. Зато менее педантичный - матюгаеться меньше визюла, а результат тотже. По оптимизации Интел рулит, для Интел-процов, конечно. Но это же не мелкософт! Вот только почему Боря не делает новые версии С++? 5.02 и все... | |
| |
10.05.2006 - 20:52 |
ZaHack
Большой Брат
Группа: Заблокированные Сообщений: 1.252 Регистрация: 24.01.2006 Из: Where The Eagles Fly Пользователь №: 333
Респектов: 117
| Штуцер, можешь дать пару ссылок на учебники по Борланду С++ 5.02? А то все учебники, которые у меня есть начинаются так: "Запустим Visual C++" Монополия Майкрософта, будь он неладен.... | |
| |
10.05.2006 - 22:31 |
Memphis04
Опытный юзверь
Группа: Пользователи Сообщений: 124 Регистрация: 7.01.2006 Пользователь №: 102.010
Респектов: 5
Предупреждений:
| ZaHack, если хочешь научиться програмить на Борланде, то возь книжку для Делфи (Борланд Си понимает паскалевские функции, но... синтаксис разный ) Хотя, если знаешь синтаксис Си и Паскаля- это не проблема. Сам я сначала програмил на Делфи, а сейчас перешел на Си - без всяких книжек по Си | |
| |
10.05.2006 - 22:51 |
devmstr
Unregistered
| Ох. Ну блин. Ну не зачем обсырать то, что не знаешь. Рассказываю для тех, кто в танке! В VC есть понятие Debug version и Realize version. Debug стоит по умолчанию. Естессно при компиляции туда суется куча мусора. И файл весит очень много. Но если выбрать Realize, то ситуация резко меняется. Все очень просто. Если еще поколдовать с найстройками, то можно добится размера предложенной программы - 5 kb. И зачем спорить, что лучше, что хуже. У этих сред немного разные ниши рынка |
|
| |
10.05.2006 - 23:06 |
devmstr
Unregistered
| ZaHack, >попытался скомпилить этот мессагебокс - не получилось, >Подумал, что это у меня руки кривые Абсолютно правильно подумали. Действительно кривые. Только не обижайтесь, вы сами это написали. Программа это прекрасно скомпилится и под VC2005.У меня у самого она стоит. Просто вы в множестве вариантов проектов выбрали не тот. |
|
| |
10.05.2006 - 23:14 |
ZaHack
Большой Брат
Группа: Заблокированные Сообщений: 1.252 Регистрация: 24.01.2006 Из: Where The Eagles Fly Пользователь №: 333
Респектов: 117
| QUOTE(devmstr @ 11.05.2006 - 0:06) ZaHack, >попытался скомпилить этот мессагебокс - не получилось, >Подумал, что это у меня руки кривые Абсолютно правильно подумали. Действительно кривые. Только не обижайтесь, вы сами это написали. Программа это прекрасно скомпилится и под VC2005.У меня у самого она стоит. Просто вы в множестве вариантов проектов выбрали не тот. Да я и не обижаюсь Просто " в множестве вариантов проектов выбрали не тот." - этим майкрософт как всегда поражает, "множеством вариантов" и дебильнейшими настройками по умолчанию. Почему в продуктах от Борланда всегда все компилиться с первого раза и там настройки по умолчанию нормальные, то есть установил и начал работать. А у мелких - установил, протра*ался пять часов и только потом начал работать? Добавлено:Просто интересно, а как надо компилить ту прогу в 2005?? | |
| |
11.05.2006 - 0:32 |
devmstr
Unregistered
| Не ну я не говорю, что Ms супер, но я имею довольно большой опыт работы с Delphi и VC. И мне кажется, что последнее время VC стал намного удобнее Delphi. Это выражается даже в том что Borland копирует интерфейс VC. Это не относится к Delphi 7, которую я считаю последней удачной оболочкой от борланд. Насчет глупых настроек по умолчанию. Все прекрасно работает и в Debug. Просто компиилтся все быстрее в Debug. Да и отладку можно производить только в Debug. Так что для программ сложнее HelloWorld, это самое логичное. А когда выпускается Realize все лишнее удаляется. В Delphi несколько иной принцип. Но все равно если посмотреть acm код Delphi програмы, то некоторые куски отладочной информации есть, и они с нами навсегда, если опять же не поколдовать с компилером. Ну и в последних Delphi тоже есть множество вариантов, так что выбрать новичку то, что нужно тоже не просто. Как скомпилить. Выбираете New project -> Visual C++ Projects->Win32 project. Я выбираю всегда Empty Project и потом выбрав Аdd file to project добавляю cpp файл, куда это и вставить. А вообще Вы не гарачитесь. Попробуйте эту среду, только без предвзятости презрения. Возможно, после превыкания вам понравится. Насчет Borland С++ 5. (: Это славный но очень подлый компилер. В нем есть некоторый набор глюков, без знания которых иногда опускаются руки. Так что не советую. Да и устарел он. Не любите Ms. Без проблем. Есть free, opensource, многоплатформеный mingw. Очень приятная штука. Есть к ней и оболочка Dev C++. Вообщем выбор есть. Удачи Вам в коденге. P.S. Эти строки я пишу из Gentoo Linux. Think Difference. |
|
| |
11.05.2006 - 23:44 |
Love.sys
Коксохим
Группа: Наши Люди Сообщений: 1.341 Регистрация: 23.08.2005 Пользователь №: 12.345
Респектов: 120
| Дамс.. почитал я тут и поянл, ZaHack, ты мало что смыслишь в программировании. Выпремляй руки. Я сам компилел мессаджебокс, на VS2005, ради спортивного интереса. Всё скомпилировалось, размеры меньше чем ты писал. Вывод - статья флуд. | |
| |
|
|