LINUX.ORG.RU

IDE для C++


0

0

Была тут только что похожая тема, но немного не та.

Хочу научиться программированию на C++, причем основательно (быдлокодить я и на дельфях умею). Посоветуйте пожалуйста хороший IDE, с возможностью удобного создания GUI, и хорошую литературу/автора, желательно на русском языке. Причем, IDE не для новичков, а что-то более серьезное (vi/emacs/и т.п. + gcc не подходит).

anonymous
Ответ на: комментарий от anonymous

В качестве учебника пойдет Стенли Липман "С++ Primer". Б. Страуструп "Язык программирования С++" и Н. Джосатис "STL - стандартная библиотека шаблонов" - как справочники.

Все три книги есть на русском, все три можно найти в сети.

Vinick ★★
()
Ответ на: комментарий от jtootf

> может ещё и аргументация будет?

Я учился по Страуструпу (первым двум изданиям, правда). Книга Буча - тоже учебник, хотя и не по Си++.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Я учился по Страуструпу (первым двум изданиям, правда)

сочувствую

>Книга Буча - тоже учебник, хотя и не по Си++

во-первых - да, не по C++. а во вторых сомнительной ценности по сравнению с тем же GoF и сопутствующими статьями. если, конечно, не рассматривать GoF как каталог паттернов

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

>> Я учился по Страуструпу (первым двум изданиям, правда)

> сочувствую

Не стоит. Во-первых, это хорошие учебники (написаны автором языка, раскрывают все темы - после этого другие учебники мне казались дешевой попсой); во-вторых, тогда и выбора-то не было.

>> Книга Буча - тоже учебник, хотя и не по Си++

> во-первых - да, не по C++. а во вторых сомнительной ценности по сравнению с тем же GoF и сопутствующими статьями

Книга Буча вообще о другом.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Во-первых, это хорошие учебники (написаны автором языка, раскрывают все темы - после этого другие учебники мне казались дешевой попсой);

Ну у Александреску например написано коротко и интересно. У Страуструпа - длинно и неинтересно.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>> Во-первых, это хорошие учебники (написаны автором языка, раскрывают все темы - после этого другие учебники мне казались дешевой попсой);

> Ну у Александреску например написано коротко и интересно.

Modern C++ DesignЭ? По этому революционно укуренному произведению изучать Си++? O_O

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>>> Во-первых, это хорошие учебники (написаны автором языка, раскрывают все темы - после этого другие учебники мне казались дешевой попсой);

>> Ну у Александреску например написано коротко и интересно.

>Modern C++ DesignЭ? По этому революционно укуренному произведению изучать Си++? O_O

Что там укуренного? Вполне практические проблемы поднимает. Александреску чтоли ниасилил?

Absurd ★★★
()
Ответ на: комментарий от Absurd

BTW, их с Саттером книга "Стандарты кодирования на С++" тоже хороший, сжатый вводный курсец по теме.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>> Modern C++ DesignЭ? По этому революционно укуренному произведению изучать Си++? O_O

> Что там укуренного?

Идея использовать шаблоны как язык, интрепретируемый компилятором.

> Александреску чтоли ниасилил?

Осилил. А благодаря тому, что у меня к началу чтения был опыт работы на Си++ в 10+ лет, моя крыша осталась на месте %) А вот ты, походу, с Александреску начинал ;)

tailgunner ★★★★★
()
Ответ на: комментарий от jtootf

> метанируем? может ещё и аргументация будет?

Комментарий в стиле комментируемого, не? А вообще я изучал C++ по Страуструпу (сочувствовать не надо). Отличный учебник от автора языка. А книга Буча помогла мне лучше понять ооп'шные возможности и ограничения языка в сравнении с другими языками. Потому и "бред".

twosev ★★
()
Ответ на: комментарий от tailgunner

>>> Modern C++ DesignЭ? По этому революционно укуренному произведению изучать Си++? O_O

>> Что там укуренного?

>Идея использовать шаблоны как язык, интрепретируемый компилятором.

1) Ну во превых не только, там еще и про то какие проблемы создают большие иерархии классов. Было предложено делать простые итерфейсы которые делают только одну вещь и делают ее хорошо. И функционал класса комбинировать из таких простых интерфейсов - это должно определенным образом помочь справиться с экспоненциальным разрастанием вариантов проектных решений. 2 my mind это весьма ценная мысль.

2) Да в общем это вероятно суть метапрограммирования - автогенерить boilerplate-код. В этом ключе и надо было двигаться в таком случае - например как сгенерировать оператор switch по списку пар <метка, функция> - это пригодилось бы в тех же гуйках. Для этого нужен простой императивный turing-complete язык, который генерирует куски программного кода. Следовало как-то переработать или расширить Си-препроцессор.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>>> Что там укуренного?

>>Идея использовать шаблоны как язык, интрепретируемый компилятором.

>1) Ну во превых не только, там еще и про то какие проблемы создают большие иерархии классов. Было предложено делать простые итерфейсы которые делают только одну вещь и делают ее хорошо.

Это, по-твоему, укуренная идея, или у тебя с чтением проблемы?

> нужен простой императивный turing-complete язык, который генерирует куски программного кода. Следовало как-то переработать или расширить Си-препроцессор.

А вместо этого использованы шаблоны. Блестящая идея.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>> нужен простой императивный turing-complete язык, который генерирует куски программного кода. Следовало как-то переработать или расширить Си-препроцессор.

> А вместо этого использованы шаблоны. Блестящая идея.

как показал александреску, из шаблонов легко строится простенький недо-лисп. чем не язык для генерации кода?

anonymous
()
Ответ на: комментарий от tailgunner

> книга Буча - тоже учебник, хотя и не по Си++.

Книга Буча позволяет перестроить мышление с алгоритмического уровня (читай быдлокодинг) на объектно-ориентированный (не венец творения, но это работает для проектов больше 5-10 тыс. строк кода (читай GUI+серьезный движок)). А если человек будет изучать C++ и программировать при этом по-старинке (алгоритмически), то получится еще один быдлокодер, но уже на C++, т.е. никакого профита от перехода на C++ не получит, скорее его проекты будут еще хуже, чем на чистом алгоритмическом языке вроде обычного Си или Паскаля.

К слову сказать, освоив объектно-ориентированную технологию, лично я совсем иначе стал воспринимать дельфи: Дельфи (Lazarus) - это не среда для быдлокодинга, напротив - это весьма технологичное решение для создания сложных проектов (при условии отказа от "алгоритмизации" и полном переходе на объектно-ориентированную технологию).

Так что Буча читать, однозначно. А если получится найти его первые издания, так там еще и задачник был (ЕМНИМ).

asion
()
Ответ на: комментарий от anonymous

> из шаблонов легко строится простенький недо-лисп.

"Легко", бгг. И пользоваться им - одно удовольствие, ага.

> чем не язык для генерации кода?

Язык, конечно. Уебищный, неудобный, компиляторно-зависимый, но безусловно язык.

tailgunner ★★★★★
()
Ответ на: комментарий от asion

>Книга Буча позволяет перестроить мышление с алгоритмического уровня (читай быдлокодинг) на объектно-ориентированный

а книга Коплиена, например, позволяет научится использовать их одновременно; причём даёт некоторые указания касательно того, как определить - нужен ли вообще ООП в проекте. у Буча этого нет

>никакого профита от перехода на C++ не получит

т.е. останется хорошим программистом на C? а что в этом плохого? :)

jtootf ★★★★★
()
Ответ на: комментарий от twosev

>А книга Буча помогла мне лучше понять ооп'шные возможности и ограничения языка в сравнении с другими языками

если не секрет, какие ещё книги по ООП и проектированию в целом приходилось читать?

jtootf ★★★★★
()
Ответ на: комментарий от tailgunner

>Книга Буча вообще о другом

не про ООП? это что-то новенькое :) о чём же она?

>Во-первых, это хорошие учебники (написаны автором языка, раскрывают все темы - после этого другие учебники мне казались дешевой попсой)

простите моё невежество, но автором какого языка является Буч?

если же речь идёт о Страуструпе, то почему бы не посоветовать начинающему учиться по стандарту? после него всё остальное точно покажется попсой, это вне сомнения :)

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

>> Книга Буча вообще о другом

> не про ООП?

Не про Си++.

>>Во-первых, это хорошие учебники (написаны автором языка, раскрывают все темы - после этого другие учебники мне казались дешевой попсой)

>простите моё невежество, но автором какого языка является Буч?

Простите мне неверную формулировку, но вы ведь поняли, о чем речь? Ну а если вы хотите докопаться до столба, то Буч автор графической нотации имени себя и один из авторов UML.

> если же речь идёт о Страуструпе, то почему бы не посоветовать начинающему учиться по стандарту?

Потому что стандарт вообще не предназначен для обучения.

> после него всё остальное точно покажется попсой, это вне сомнения :)

Если бы ты предложил изучать Си++ по исходникам компилятора, получилось бы еще смешнее.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>>1) Ну во превых не только, там еще и про то какие проблемы создают большие иерархии классов. Было предложено делать простые итерфейсы которые делают только одну вещь и делают ее хорошо.

>Это, по-твоему, укуренная идея, или у тебя с чтением проблемы?

Ты вообще всего Александреску охарактеризовал как "укуренного". Следовательно, в твоей интерпретации эта идея тоже укуренная.

>> нужен простой императивный turing-complete язык, который генерирует куски программного кода. Следовало как-то переработать или расширить Си-препроцессор.

>А вместо этого использованы шаблоны. Блестящая идея.

Это Былинный Отказ а не идея - они по факту совершенно бесполезны. Не вижу никакой острой потребности в typesafe-коллекциях - для чего они собствеено задумывались. Эстетизма ради только. А диалект Лиспа на их основе слишком хрупок чтобы его можно было реально использовать.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Ты вообще всего Александреску охарактеризовал как "укуренного"

Только это произведение (больше ничего не читал).

> Следовательно, в твоей интерпретации эта идея тоже укуренная.

Нет. Это вообще не идея Александреску. Основная идея книги - "а вот щасс мы заюзаем интерпретатор шаблонов для решения практических задач". И это сильно укуренная идея - шаблоны для этого просто не предназначались, со всеми вытекающими (уебищным компиляторно-зависимым кодом).

>>> Следовало как-то переработать или расширить Си-препроцессор.

>> А вместо этого использованы шаблоны. Блестящая идея.

> Это Былинный Отказ а не идея

Хм, недавно ты говорил про "коротко и интересно", а сейчас - epic fail, Тебя трудно понять.

> Не вижу никакой острой потребности в typesafe-коллекциях

Я бы не бравировал этим, но дело твое.

tailgunner ★★★★★
()
Ответ на: комментарий от asion

>Книга Буча позволяет перестроить мышление с алгоритмического уровня (читай быдлокодинг) на объектно-ориентированный.

Наооборот, разработка алогитмов и структур данных - это настоящее программирование, а ООП - это быдлокодинг.

Absurd ★★★
()
Ответ на: комментарий от tailgunner

>>> А вместо этого использованы шаблоны. Блестящая идея.

>> Это Былинный Отказ а не идея

>Хм, недавно ты говорил про "коротко и интересно", а сейчас - epic fail, Тебя трудно понять.

Былинный Отказ это специализация метапрограммирования только под одну конкретную задачу чем-то кажущуюся важной Страуструпу - впердоливать типы в специальные ячейки функций и классов квадратно-гнездовым методом. Если абстрагироваться от убогости С++, то руководство по проектированию у Александреску вышло хорошее.

Absurd ★★★
()
Ответ на: комментарий от tailgunner

>> Не вижу никакой острой потребности в typesafe-коллекциях

>Я бы не бравировал этим, но дело твое.

Ну если придерживаться конструктивистского подхода - рассматривать только те структуры данных для которых известны процедуры их получения, то профит выглядит бледновато, честно.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Наооборот, разработка алогитмов и структур данных - это настоящее программирование, а ООП - это быдлокодинг.

Как бы алгоритмы и ООП - ортогональны друг другу. Одно не мешает другому. Так что, и в ООП много настоящего программирования. Другое дело, что ООП-ешные GUI библиотеки давно стали попсой (еще со времен Turbo Vision). Отсюда часто путают само ООП и популярную практику его использования.

P.S. какой забавный у вас тред

dave ★★★★★
()
Ответ на: комментарий от Absurd

>разработка алогитмов

Забавная кстати у меня вышла опечатка - алогитмов. Надо запомнить это слово.

Absurd ★★★
()
Ответ на: комментарий от jtootf

> т.е. останется хорошим программистом на C?

В постановке задачи звучало, что топикстартер программирует на Дельфи.

Если *станет* хорошим программистом на Си, ну что же - тоже люди :)

asion
()
Ответ на: комментарий от dave

>Так что, и в ООП много настоящего программирования

too much programming I'd say :) too much

>P.S. какой забавный у вас тред

like any other thread with C++ being mentioned in any circumstances and Absurd being present ;)

// jtootf from Munich

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.