Страниц: [1] 2
  Печать  
Автор Тема: какой?  (Прочитано 13392 раз)
RISC
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« : Декабря 10, 2002, 03:01:00 pm »

Здорово всем кюнишникам!
Вот решил забить на дизайн и заняться программингом. Сейчас подбираю толковые книги по C++. Думаю вот тут: какую среду разработки выбрать и какой компилер использовать? Хотел бы услышать ваши советы т.к. знаю, что тут тусуется много продвинутых программеров. В качестве среды хотелось что-либо в стиле IntelliJ IDEA, а компилер даже и не знаю какой … может Intel? И не забудьте про аргументы. Smiley
Заранее благодарен.
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #1 : Декабря 10, 2002, 08:27:00 pm »

Это под какой OS?
Или - безотносительно?
Записан
RISC
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #2 : Декабря 11, 2002, 02:04:00 pm »


Olej пишет:
Это под какой OS?
Или - безотносительно?

Если честно - не знаю. Почитал Стивенса про процессы и понял: какая же Win горбуха. Вот, думаю, может на *nix-ах рулить. Хотя... было бы интересно узнать и про Win.
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #3 : Декабря 11, 2002, 03:38:00 pm »


RISC пишет:
Если честно - не знаю. Почитал Стивенса про процессы и понял: какая же Win горбуха. Вот, думаю, может на *nix-ах рулить. Хотя... было бы интересно узнать и про Win.

В двух словах, только то, что по опыту и само вспомнилось, детальнее объяснят "гуру" (может быть...):
1. под Windows, собственно, выбор и компилятора, и IDE, в первую очередь, это традиционные и общеиспользуемые: MS Visual CPP & Borland Builder.
2. Visual CPP ... ну его все видели, что об ём писать. Единственное, что нужно помнить: C++ от Microsoft отличается от ANSI-стандарта (как водится - Microsoft никто "не указ"), код, написанный в Visual CPP просто не будет компилироваться другими компиляторами, простейший пример несовместимости:
for( int i = 0; i < n; i++ ) ....
if( i ... ) ...
т.е. i - сфера видимости (определения) за пределами "for"
3. Borland Builder - гораздо больше (но не до конца) совместим с ANSI, но ... кодогенератор у них - отвратительный. Я специально гонял большую вычислительную задачу из области цифровой фильтрации (когда вычислительный процесс слабо прерывается системными вызовами) - время исполнения при соизмеримых уровнях оптимизации отличается в 2-2.5 раза!!! Ну 15%, ну 50% ... но 2.5 раза?! И это - нормально. Borland всегда (в начале активно - сейчас еле слышно) позиционировались на учебные системы, не претендуя всерьёз на системы промышленной разработки. А когда от них целиком ушла команда разработчиков компиляторов (после BC 3.1), которые позже "организовались" в команду TopSpeed Modula-2 - то у них никого толком не осталось из разработчиков компиляторов.
4. Watcom ... ну, тот Watcom уже не существует, а как обстоят дела с OpenWatcom - просто не знаю.
5. Есть ещё несколько небольших "частных" проектов, вот один из "славненьких" - LCC, подсказан ed1k, вот здесь и "рядом":
http://ftp://ftp.cs.virginia.edu/pub/lcc-win32/lccwin32.exe
- к сожалению, он только под классический C.
6. Под UNIX ... ну под теми UNIX, которые, скорей всего вы сможете использовать "для собственных нужд": и Linux, и QNX - это будет GCC. Про GCC можно слышать и очень много хорошего, и очень много плохого. По крайней мере с ANSI он совместим ... больше чем сам ANSI , многие "новинки", которые только обсуждаются в комитете по C++ для включения в стандарт - уже присутствуют в GCC, например - typeof (на манер sizeof)...
7. IDE - там звучало в вопросе. Я под Linux пересмотрел и перепробовал до 10-ка IDE, лучшее, что я нашёл - это безусловно CodeForge - www.codeforge.com (и под Linuc и под QNX я его раскручивал). Это коммерческий продукт, но они охотно дают совсем свежие evaluation версии (на 3 месяца, кажется), и не возражают, если их последовательно брать ... бесконечное число раз .
8. В QNX - PhAB - совсем не такая слабая и ординарная "штучка", она, по первому взгляду, очень немного что "умеет", а по итоговой результативности (затраченное время на разработку) даёт не удивление хороший результат...
Записан
Evgeniy
Jr. Member
**
Offline Offline

Сообщений: 73


Просмотр профиля
« Ответ #4 : Декабря 12, 2002, 01:40:00 am »

Небольшое добавление
OpenWatcom соответствует версии 11 с чем-то и доступен для скачивания с документацией (С/С++ и Фортран/77) под форточки.
Если речь идет о NT-форточках, то могу посоветовать VisualAge for C++ от IBM - чрезвычайно мощная IDE, особенно при построении приложений с прицелом на DB2. Честно говоря, ничего мощнее не встречал (я пробовал ее под полуосью). Правда и ресурсов жрет много...
Записан
RISC
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #5 : Декабря 12, 2002, 01:35:00 pm »


Olej пишет:

Visual CPP ... ну его все видели, что об ём писать. Единственное, что нужно помнить: C++ от Microsoft отличается от ANSI-стандарта (как водится - Microsoft никто "не указ"), код, написанный в Visual CPP просто не будет компилироваться другими компиляторами.

Вот это обстоятельство меня сильно и напрягает. А можно ли к этой среде разработки подцепить другой компилятор без потери функциональности самой среды? Там еще грядет что-то ужасное: Visual Studio .NET.

Borland Builder - гораздо больше (но не до конца) совместим с ANSI, но ... кодогенератор у них - отвратительный.

Да. Недавно ходил по форуму разработчиков ботов для Quake3, так там проскакивала мессага о том, что когда открываешь dll-ку скомпиленую Borland-ом в проге от Intel для анализа эффективности кода (не помню уже названия) и там критические места красным выделяются, так там весь код красный.

Watcom ... ну, тот Watcom уже не существует, а как обстоят дела с OpenWatcom - просто не знаю.

А говорят, раньше самым продвинутым компилятором был. Жаль его. Наверное, OpenWatcom так и не сможет возродиться: время упущено. Прям как BeOS: из-за распиздяйства загнулась, перешла в стадию свободного полета, теперь ожидаются многочисленные клоны. Но это будет уже совсем другая игра…

Есть ещё несколько небольших "частных" проектов, вот один из "славненьких" - LCC, подсказан ed1k, к сожалению, он только под классический C.

А я его тоже знаю (помню). Как вы думаете откуда? Под этот компилятор были исходники для создания своего мода под Quake2. Вот я еще тут думаю о том, какому языку больше отдавать предпочтение: С или С++? И как там обстоят дела с POSIX и С++, ведь он разрабатывался как стандарт для С, или я ошибаюсь?
Еще есть компилятор от Intel. Говорят, что выдает хороший код. Кто-нибудь его использовал?

Под UNIX ... это будет GCC.

Ну, GCC - он и в Африке GCC. Только что-то последнее время его новые версии многое не компилят, говорят.

IDE - там звучало в вопросе.

Да. Это именно то, что заменяет программиста. Ну, по крайней мере - продлевает его руки.

Я под Linux пересмотрел и перепробовал до 10-ка IDE, лучшее, что я нашёл - это безусловно CodeForge - http://www.codeforge.com/ (и под Linuc и под QNX я его раскручивал).

А чем вам не понравились другие (CodeWarrior, Elipse, etc), и какие у него преимущества?
Вы работали с IntelliJ IDEA, что для Java? Одно удовольствие. Жаль, что Java так плохо спроектирована в самой реализации. Хотя, как язык программирования Java - самый лучший для обучения ООПу, ИМХО. Только он помог мне понять - что же такое ООП. Правда, я до него книгу "Основы СОМ" прочитал. Она меня повернула лицом в эту сторону: раньше я был ярым противником ООПа.

В QNX - PhAB - совсем не такая слабая и ординарная "штучка", она, по первому взгляду, очень немного что "умеет", а по итоговой результативности (затраченное время на разработку) даёт не удивление хороший результат...

...но она только под QNX.
Записан
RISC
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #6 : Декабря 12, 2002, 01:37:00 pm »

Да! Хотел давно узнать: что такое ctags и с чем его едят?
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #7 : Декабря 12, 2002, 03:16:00 pm »


RISC пишет:
Вот это обстоятельство меня сильно и напрягает. А можно ли к этой среде разработки подцепить другой компилятор без потери функциональности самой среды? Там еще грядет что-то ужасное: Visual Studio .NET.

Да - это на большого "любителя", это такой тяни-толкай, гибрид C++ с Java (бульдога с носорогом) от Microsoft.

А другой компилятор там можно прикрутить. В частности от Intel - вы его там упоминали - я прикручивался и пользовался. Этот компилятор создаёт совсем уж эффективный код под специфику каждого отдельного типа процессора (Intel, естественно). Из того что я видел - его применяют там, где уж очень объёмные массированные вычисления: спектральный анализ, wavelet разложения и т.д.


Вот я еще тут думаю о том, какому языку больше отдавать предпочтение: С или С++? И как там обстоят дела с POSIX и С++, ведь он разрабатывался как стандарт для С, или я ошибаюсь?

Посмотрите:
http://qnx.org.ru/forum/viewtopic.php?topic=952&forum=12&0
http://qnx.org.ru/forum/viewtopic.php?topic=943&forum=12&2
Там хорошо видно, что C++ только последние годы выходит за рамки "надстройки" над С и "покрывает" совсем не свойственные ему области, например - уровень обобщённого проектирования, который традиционно относился к ADA.


Ну, GCC - он и в Африке GCC. Только что-то последнее время его новые версии многое не компилят, говорят.

Это странно слышать. Не компилит - то, что написано не в соответствии с ANSI стандартом, который, да - пересматривается, последний крупный пересмотр ANSI - 1997-1998... Всё, что делалось раньше - может и не компилиться, так оно - и не должно!


А чем вам не понравились другие (CodeWarrior, Elipse, etc), и какие у него преимущества?

Я только сказал, что CodeForge мне - понравился больше. Вот Eclipse мне действительно не понравился: громоздкий, чудовищно неповоротливый, весь сырой (free), документации - ноль (в разработке ). Может ... лет через 10 из него чего и выродится.
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 470



Просмотр профиля
« Ответ #8 : Декабря 12, 2002, 09:41:00 pm »


RISC пишет:
Да! Хотел давно узнать: что такое ctags и с чем его едят?

Ну, к примеру, с workspace.
Там где показываются функции, переменные, классы (на выбор).
Также является хорошей приправой к cscope.

А CodeWarrior хорош, очень хорош. Только одно но:  я когда увидел его цену, то просто ойкнул. И понял, что нигде, кроме как дома (с триальной версией), мне с ним поработь нигде не удасться.

Eclipse же смотреть стоит только с версии 2.1, но одним глазом и очень аккуратно.  Для Java - это лучшая среда разработки, для Си (особенно на "ветеранах") без коммерческих плагинов - гроша выеденного не стоит. С коммерческими(Momentics IDE) - другое дело, там встроены такие средства анализа и отладки приложения, что никаким VS_NET ничего подобного и не снилось. Без соответствующих плагинов от Rational (в девичестве, а ныне просто - IBM) конечно же. Это при том, что Eclipse бесплатен.

[ Это Сообщение было отредактировано: dmi в 2002-12-12 18:48 ]
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 470



Просмотр профиля
« Ответ #9 : Декабря 12, 2002, 09:54:00 pm »


RISC пишет:

Ну, GCC - он и в Африке GCC. Только что-то последнее время его новые версии многое не компилят, говорят.


2.9x компилит все, что нужно. Вполне состоявшийся компилятор.
3.х - там посложнее, он иногда излишне интеллектуален :E
В QNX его пока вообще решили не вносить в дистрибутив.

А то, что он чего-то там не компилит - проблемы того, что не компилится. Все, что компилится должно, содержит в ChangeLog соответствующую запись о поддержке компилятора.

Так что используйте проверенные версии, не гонитесь за "свежачком". Компилятор - не новая шкурка для KDE, которую надо привернуть раньше всех Smiley
Записан
RISC
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #10 : Декабря 14, 2002, 06:54:00 pm »


Olej пишет:
Там хорошо видно, что C++ только последние годы выходит за рамки "надстройки" над С и "покрывает" совсем не свойственные ему области, например - уровень обобщённого проектирования, который традиционно относился к ADA.


А это – самая главная загогулина, что меня напрягает. Начинаешь учить С++, углубляешься, потом тебе так тонко намекают, что для понимания глубинных механизмов надо знать С т.к. собственно все на нем и построено и отовсюду прет. Берешься учить С, углубляешься... и там тебе тоже так намекают, что собственно чтобы быть в нем богом, то надо знать Asm т.к. С – есть макроассемблер. Сидишь тут, репу чешешь...
Да и все эти “надстройки” выглядят как неродные: какой-то хак или патч, что-то совсем не вписывающееся в философию С++. Ой! Как я не люблю патчи: после них непонятно что сделалось с твоей настроенной и хорошо отлаженной системой/прогой. Какая часть изменилась, а какая осталась неизменной? Проводить весь комплекс мероприятий по настройке заново? Хорошо, что в структуре многих патчей можно покопаться и разведать что там и к чему... О чем это я? А! А эти “противные” шаблоны, просто какие-то макросы. И эти новые типы данных... А не пора ли было просто новый язык разработать? Или обязательно надо все г. с собой всегда таскать? Если бы я не научился без сожаления и всяких престранных мыслей выбрасывать кучу всяких ненужных (А вдруг еще пригодится? вещей из своего письменного стола, то столу пришла бы ж., как и всей квартире. Вот я и искал нормальные языки, пока не наткнулся на D. Но он еще так сыр и в некоторых местах маразматичен.
Да... А были времена, когда в кабинете информатики на перемене забивал на карветах такое:
10 PRINT “NAME”;
20 GOTO 10
Затем для пущей убедительности прописывал:
POKE 23607,77
И вслепую набирал “RUN”... Заходит так препод в класс, а там на всех компах такое  – и глаза на лбу: вирус... ))

Это странно слышать...


Значит – врут злые языки парней с кривыми руками.

3.х - там посложнее, он иногда излишне интеллектуален :E


Заменяет программиста? Может это рывок вперед?


dmi пишет:
И понял, что нигде, кроме как дома (с триальной версией), мне с ним поработь нигде не удасться.

А где эту триальную достать? Я только до патчей добрался, а где весь пакет?

Eclipse же ... для Java - это лучшая среда разработки


А я думал, что IntelliJ IDEA ( http://www.intellij.com/ ) круче. :]




[ Это Сообщение было отредактировано: RISC в 2002-12-16 11:04 ]
Записан
dmi
QOR.Admin
*****
Offline Offline

Сообщений: 470



Просмотр профиля
« Ответ #11 : Декабря 15, 2002, 08:02:00 pm »


RISC пишет:

А где эту триальную достать? Я только до патчей добрался, а где весь пакет?

Лично я свою получил написав письмо в metrowerks. Через две недели уже держал в руках диск.


А я думал, что IntelliJ IDEA ( http://www.intellij.com/ ) круче. Ключик нужен?

Похоже мало до кого доходит... Скольких еще придется удалить?
Предупреждение первое, предпоследнее...
Записан
RISC
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #12 : Декабря 16, 2002, 02:23:00 pm »


Похоже, мало до кого доходит...

Извините, дописался...
Ключ на сайте можно раздобыть, потому там и "Wink".
Смысл воспринимается не тот.

Всем спасибо за ответы.

[ Это Сообщение было отредактировано: RISC в 2002-12-16 11:41 ]
Записан
olej
QOR.Team
****
Offline Offline

Сообщений: 42



Просмотр профиля
« Ответ #13 : Декабря 16, 2002, 05:10:00 pm »


RISC пишет:
А это – самая главная загогулина, что меня напрягает. Начинаешь учить С++, углубляешься, потом тебе так тонко намекают, что для понимания глубинных механизмов надо знать С т.к. собственно все на нем и построено и отовсюду прет.

А не надо "учить" С++ по чём попало - авторы сами, в большинстве, не сильно понимают, вот и "намекают"...
У С++ есть один "законный автор" - Бьярн Страуструп - сот по его книжкам (или его "команды") и следует разбираться ... остальные - перевирают. Здесь в форуме скажут: Страуструпа - читать нельзя, он "занужный", от него "мозги в узлы завязываются" ... Да - его читать трудно. Но только по нему можно во всём разобраться. См.:
http://qnx.org.ru/forum/viewtopic.php?topic=509&forum=12&2

Да и все эти “надстройки” выглядят как неродные: какой-то хак или патч, что-то совсем не вписывающееся в философию С++. Ой! Как я не люблю патчи:

Я и не говорил ни о надстройках, ни о патчах...
Имелось в виду то, что можно "натворить" в рамках стандарта С++, в первую очередь - template и STL (Standard Template Library) - которая полностью подменяет манеру С программирования в отношении контейнерных классов, в частности - полностью предлагает отказаться от "массивов в стиле С" (т.е. - указателей!).

Ещё более удивительные вещи - см.:
http://qnx.org.ru/forum/viewtopic.php?topic=943&forum=12&2
http://qnx.org.ru/forum/viewtopic.php?topic=952&forum=12&0

Записан
int19h
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #14 : Декабря 19, 2002, 01:09:00 am »


Olej пишет:

2. Visual CPP ... ну его все видели, что об ём писать. Единственное, что нужно помнить: C++ от Microsoft отличается от ANSI-стандарта (как водится - Microsoft никто "не указ"), код, написанный в Visual CPP просто не будет компилироваться другими компиляторами, простейший пример несовместимости:
for( int i = 0; i < n; i++ ) ....
if( i ... ) ...
т.е. i - сфера видимости (определения) за пределами "for"


Особенно забавляет соответствующий комментарий в MSDN Knowledge Base - "не работает? снимите галочку language extensions". Про то, что headers STL/MFC/ATL без этой галочки, мягко говоря, не работают, скромно умолчали. Кстати, в VC++ 7 тоже по дефолту "language extensions" стоит, снимать не пробовал. =) Есть общеизвестное лекарство, напомню на всякий случай. После (именно _после_) включения всех хедеров пишем:

 #define for if (0); else for

Я сам под ним только так и работаю...


5. Есть ещё несколько небольших "частных" проектов, вот один из "славненьких" - LCC, подсказан ed1k, вот здесь и "рядом":
http://ftp://ftp.cs.virginia.edu/pub/lcc-win32/lccwin32.exe
- к сожалению, он только под классический C.


Еще и под C99, плюс свои расширения - перегрузка функций и операторов, например.

От себя добавлю Digital Mars C++ (http://www.digitalmars.com), бывший Symantec C++, бывший Zortech C++ =). Со стандартами там не очень (хотя STLport таки скомпилили), но вот зато оптимизатор кода - весчь! Да и бинарики делает маленькие. Еще что радует - поддерживает многие "расширения" MS, за счет чего работает с MFC/ATL. Скачать компилятор можно бесплатно, или заказать CD за $31 - там IDE и много еще всего вкусного.

Кстати, компилер может генерить еще и DOS16, DOS32 и WIN16 приложения. Особенно забавляет поддержка .COM-файлов - AFAIK это единственный полноценный C++ компилятор, который позволяет такие вещи. =)
Записан
Страниц: [1] 2
  Печать  
 
Перейти в: