Собственно, сабж. STL/ATL/WTL на первый взгляд кажутся очень облегчающими жизнь программиста. Однако, наверняка, не все так хорошо. Господа, расскажите поподробнее про недостатки их? Особенно меня интересует STL в этом отношении.
STL, ATL и WTL это три совершенно разных библиотеки и сравнивать их - полнейшее нубство. Это как МТС, МЧС и МПС.
Voodoo Они на столько разные, что их нужно создавать не то что в разных темах, но и в разных ветках форума. STL это часть языка C++, ему место в WASM.LANG.C. ATL - это библиотека шаблонов от Microsoft для работы с ActiveX. WTL это библиотека-обертка над WinAPI, касающегося UI. Этим двум место в WASM.WIN32 или WASM.ZEN.
Но если по теме... У STL нет недостатков. Есть программисты, которые думают, что у STL есть недостатки. И сейчас мы их увидим ATL и WTL заслуживают одной фразы: уж лучше dot net.
Voodoo Дело в том, что ATL и WTL больше похожи на неудачные попытки облегчить людям жизнь. А .NET это то, что сейчас активнее всех платформ развивается микрософтом, в него инвестируется туева хуча бабла и он разрабатывается в едином ключе для всех задач. .NET это флагман, а ATL и WTL - так... придатки.
Voodoo Просто сравнивать языки и платформы на предмет субъективных симпатий (мол мне нравится перл потому что у него такой прикольный синтаксис, а еще там можно делать какую-нибудь никому ненужную хрень) - это удел 14-ли летних кулхацкеров. Если ты хочешь чтобы все было по-взрослому, смотри не только на синтаксис и отзывы на форумах, но и на потребность рынка, размеры инвестиций и тенденции и направления развития корпораций-законодателей моды.
Гм. Не, по-моему, dotNET и ATL/WTL - тоже сомнительное сравнение. Сравнивать платформу с библиотекой...
Voodoo Библиотека это интерфейс для доступа к некоторой платформе, можно ведь так сказать? Вот и считайте, что та часть .NET-а, которую можно назвать библиотекой (то есть ее font-end), лучше чем ATL/WTL.
_DEN_ Заблуждение. Ещё скажи, С++ как язык идеален. По аналогии: STL это библиотека для работы с потоками ввода/вывода. В своё время таким же флагманом была MFC. И что, STL тогда тоже был придатком? Если взять сопоставимую часть (COM/ActiveX и UI соответственно), то первое в дотнете является грубым костылём. А второе.. Интерфейсная часть библиотеки хорошая, а реализация как всегда. Ну, и если сравнить библиотечную часть дотнета c STL, то опять станет понятно, что разница в реализации не в пользу первого. Имхо. Voodoo Это разные библиотеки. Если стоит вопрос, использовать их или нет, то ответ будет "использовать". Если хочешь сравнить их с чем-то, то, во-первых, загляни в священные войны rsdn, а во-вторых, озвучь хотя бы, с чем хочешь сравнивать. А вообще, задача определяет средства, а не наоборот.
IceStudent А вот и первый такой программист. Поприветствуем С++ в своем роде почти идеален. C++0x будет уже почти-почти-почти идеален)) А кто сможет хотя бы сравнится с C++ ? Разве что D, но это очень экзотический, молодой и необъезженный язык. C++ практически живая утопия среди компилируемых языков. Дургое дело, что им никто не умеет пользоваться. Но это не является недостатком языка. Это проблемы людей)) STL сегодня это часть языка. MFC и ATL будут только отмирать, т.е. отдаляться, а не приближаться. Зачем они нужны, есть есть дотнет? Это все совершенно ниеого не ##ет, по скольку никто не инвестирует и не будет инвестировать в развитие MFC, WTL и ATL. Все инвестиции идут в дотнет, директиск и хну. Вот они и будут развиваться. Их будут выводить из состояние "го$но" в состояние "конфетка". Вот эти технологии выживут. А остальные умрут. Их участь - жить в лаботаторных работах и на сайтах а-ля firststeps.ru.
Понятное дело, что лет через 10-20-30, с выходом Singularity, возможно появится новая платформа и все инвестиции пойдут в нее, оставив дотнет умирать. Но когда это будет...
я не юзаю stl ибо раздувается размер выходного файла. хотя в плане удобства очень полезная штука. юзать/не-юзать зависит от целей.
_DEN_ Имхо, никто (из языков общего назначения), но идеальным он от этого не становится Ты о managed C++? Но это уже не С++, да и специализированная штука. А что такое хна? Судя по Шарпу 3, их направление сужается. А в дотнете не так просто отказаться от навязываемых фишек, как в нативном С++. Поэтому пока есть windows, "*TL" будут иметь право на существование, даже на той же MFC будут кодить, ибо распространённость большая + MS иногда поддерживает её (от недавно бету фьючепака с красивостями выпустили).
Стандарт STL'a не содержит hashmap/hashset. Если вы заглянете в программы на java, то вы там map'ов и set'ов не на хэшах просто не найдете. Поэтому нужно искать STL, который эти контейнеры содержит. И потом мучиться в аду, пытаясь сделать свою программу переносимой. Кроме того, не забывайте, что STL, как и классы, непереносим через границы dll (если не обеспечить совпадений версий компилятора и STL). Так же, cin и cout жутко медленные из-за синхронизации с printf и scanf. Поэтому большие объемы данных через них читать нельзя. Скорость дэка и других редко используемых контейнеров так же частенько бывает в десятки раз ниже вектора.
halyavin Java по сравнению с C++ это вообще не язык. Язык, в котором нет шаблонов и RAII, это компьютерная латынь. Ага, а бульдозер в 100 раз медленнее мерседеса. Но почему-то на дорогах есть и то и другое. Размер exe-шника это критерий для 14-ти летних кулхацкеров. На современном рынке размер экзешника всем до фени. Оно и верно - себестоимость мегабайта на современных носителях стремится к нулю. А вот каждый второй софт - полное ..но, кривое и глючное. И если тебе двойной размер exe-шника в качестве платы за стабильность работы кажется большой ценой, то... ты просто немного отстал от жизни) IceStudent Гейм-девелоперский фреймворк от Microsoft.
Видимо менеджеры Microsoft отнесли в категорию "критерий для 14-ти летних кулхацкеров" также размер требуемой памяти и производительность приложения. Стоит ли удивляться что их жутко "взрослая" и "современная" Vista с таким треском провалилась? Может стоит различать задачи в которых применим подход "пох.. лиш бы работало" и задачи требующие максимально возможной оптимизации как по скрости так и по размеру? Я недавно посмотрел жуткую Vista, удалил это убожество и поставил себе Ubuntu. Linux это ОС которая действительно развивается, в Windows мы видим только деградацию.
Твоя фраза выглядит как "я прав потому что не могу быть не прав, и сейчас мы увидим тех кто со мной не согласен, но они заранее неправы". Позволь мне задать встречный вопрос - имеешь ли ты достаточный авторитет для таких удтверждений? Если да, то покажи нам свои работы по которым мы можем убедиться что ты очень крут и твое мнение может быть единственно правильным.