Re[3]: Почему я не люблю C++
От: d Bratik  
Дата: 19.02.05 14:27
Оценка:
Здравствуйте, BioUnit, Вы писали:

BU>А что значит "система с GUI"?


Например, Visual Studio.

BU>И чем GUI так отличается от других областей применения?


Когда делаешь GUI на C++ очень быстро проявляется весь букет "венерических заболеваний" этого языка. Модульность, расширяемость, простота — становятся недостижимыми качествами системы.

BU>И ещё, приводи примеры кривизны и как она вылезает, только не такой бред, который ты запостил в другой ветке. Желательно ещё и с примерами на других менее кривых по-твоему языках.

BU>Думаю, видя конкретные примеры, можно будет показать, что это не кривизна С++ вылезает, а чего-то другого.

Например, при создании GUI просто жизненно необходима такая абстракция, как указатель на метод объекта (делегаты), подобный тому, что есть в .NET, в Delphi и в C++Builder. Как организовать это в С++? Почему в нем указатели на методы сделаны так глупо?
Re[4]: Почему я не люблю C++
От: Cyberax Марс  
Дата: 19.02.05 14:50
Оценка:
d Bratik пишет:

> BU>А что значит "система с GUI"?

> Например, Visual Studio.

Написана на С++...

> BU>И чем GUI так отличается от других областей применения?

> Когда делаешь GUI на C++ очень быстро проявляется весь букет
> "венерических заболеваний" этого языка. Модульность, расширяемость,
> простота — становятся недостижимыми качествами системы.

Да. У меня, например, сейчас как раз пишется модульная, расширяемая (но
не простая, естественно) система с GUI. С встроенной поддержкой VBA. На С++.

> BU>И ещё, приводи примеры кривизны и как она вылезает, только не такой

> бред, который ты запостил в другой ветке. Желательно ещё и с примерами
> на других менее кривых по-твоему языках.
> BU>Думаю, видя конкретные примеры, можно будет показать, что это не
> кривизна С++ вылезает, а чего-то другого.
> Например, при создании GUI просто жизненно необходима такая
> абстракция, как указатель на метод объекта (делегаты)

С каких пор она стала жизненно необходима?

> подобный тому, что есть в .NET, в Delphi и в C++Builder. Как

> организовать это в С++?

Boost.Bind как самый обобщенный вариант:
http://boost.org/libs/bind/bind.html#with_member_pointers и еще туча
подобных библиотек.

> Почему в нем указатели на методы сделаны так глупо?


Они сделаны умно.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[4]: Почему я не люблю C++
От: BioUnit Россия  
Дата: 19.02.05 19:09
Оценка: +1
Здравствуйте, d Bratik, Вы писали:

DB>Здравствуйте, BioUnit, Вы писали:


BU>>А что значит "система с GUI"?


DB>Например, Visual Studio.


Visual Studio — это "полный набор инструментов для создания как настольных прикладных систем, так и корпоративных веб-приложений". Что-то слова "система" я тут не встретил.

DB>Когда делаешь GUI на C++ очень быстро проявляется весь букет "венерических заболеваний" этого языка. Модульность, расширяемость, простота — становятся недостижимыми качествами системы.


Да? Я занимаюсь разработкой уже порядочное время и что-то "букета" такого не встречал. Трудности, конечно есть, но они как-то не совсем зависят от языка. А про модульность и т.п., может просто маловато практики в анализе и дизайне? Вот только язык тут не при чем.

BU>>И ещё, приводи примеры кривизны и как она вылезает, только не такой бред, который ты запостил в другой ветке. Желательно ещё и с примерами на других менее кривых по-твоему языках.

BU>>Думаю, видя конкретные примеры, можно будет показать, что это не кривизна С++ вылезает, а чего-то другого.

DB>Например, при создании GUI просто жизненно необходима такая абстракция, как указатель на метод объекта (делегаты), подобный тому, что есть в .NET, в Delphi и в C++Builder. Как организовать это в С++? Почему в нем указатели на методы сделаны так глупо?


Реализаций делегатов можно привести множество, загляни хотя бы в Boost.
Хотя честно говоря, я не вижу в этом "жизненной необходимости".
Опять же нет конкретных примеров кривизны.
Кроме того тебе не кажется странным отделять C++Builder и C++ ? Ты считаешь, что это разные языки?
В этом случае ты наивно ошибаешься, т.к. одно из них вообще языком не является, так же как .NET и Delphi...
Исходя из этого могу предположить, что твоя компетенция просто не позволяет тебе реально судить о С++, как о языке программирования, если ты сравниваешь его со средами разработки. Это все равно, что судить о русском языке по песням группы "Фабрика".
Re: Почему я не люблю C++
От: Dirichlet Россия  
Дата: 20.02.05 12:04
Оценка: 1 (1)
Давайте я аргументирую свою точку зрения, почему С++ — язык достаточно "кривой", и почему для очень широкого круга задач лучше использовать другие языки.

Итак, я последнюю неделю на работе программировал систему подготовки 3D моделей для проекта Trans-Force ( www.trans-force.com ). На С++ я программирую год. За неделю я потратил свое время впустую на следующие вещи:

1) Функции Maya API пишут свои сообщения в std::cout и std::cerr. Мне потребовалось перехватить их. Чтобы понять, как это сделать, учитывая то, что разные версии Maya используют разные версии run-time, потребовалось около 6 часов.

2) 1,5 часа ушло на поиск ошибки
#pragma pack ( push, 1 )
#pragma pack ( pop, 1 )

3) 1 час ушел на то, чтобы понять, что у меня в двух разных C++-модулях имеются различные структуры с одинаковым именем.

4) 2 часа ушло на поиски утечек COM-интерфейсов.

Уже получилось больше рабочего дня.

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

А сколько лишнего времени у меня ушло на создание GUI на WTL — слов нет (по сравнению с Windows Forms). MFC нельзя использовать, потому что некоторая программа, которая будет использовать мои dll, тоже использует MFC, но с другим run-time.

Учитывая то, что я программирую на работе не 8 часов в день, а меньше, то "кривизна" C++ или моих рук мне обошлась где-то в половину рабочего времени.

Если бы все компоненты, с которыми мне пришлось иметь дело, были написаны например на C#, моя производительность была бы существенно выше.
Re[2]: Почему я не люблю C++
От: Cyberax Марс  
Дата: 20.02.05 12:38
Оценка:
Dirichlet пишет:

> Давайте я аргументирую свою точку зрения, почему С++ — язык достаточно

> "кривой", и почему для очень широкого круга задач лучше использовать
> другие языки.
> [большой skip]

Можно вопрос? А где здесь хоть один недостаток _ЯЗЫКА_ С++, а не
сторонних библиотек?

> Если бы все компоненты, с которыми мне пришлось иметь дело, были

> написаны например на C#, моя производительность была бы существенно выше.

С хорошими библиотеками на С++ она тоже была бы выше...

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[3]: Почему я не люблю C++
От: Dirichlet Россия  
Дата: 20.02.05 12:50
Оценка:
Здравствуйте, Cyberax, Вы писали:


C>Можно вопрос? А где здесь хоть один недостаток _ЯЗЫКА_ С++, а не

C>сторонних библиотек?

C>С хорошими библиотеками на С++ она тоже была бы выше...


Я программирую на С++. Передо мной стоят вполне конкретные задачи. Я программирую не на абстрактном С++, а на вполне конкретном компиляторе. Я вынужден использовать библиотеки, написанные на С++.

Для меня нет разницы, недостатки это языка, библиотек или компилятора. После того как выбран язык программирования С++, мы выбираем лучший для наших целей компилятор и лучшие для наших целей библиотеки. Если мы сталкиваемся с проблемами, то значит наш первоначальный выбор языка был неверен.
Re[4]: Почему я не люблю C++
От: Cyberax Марс  
Дата: 20.02.05 12:59
Оценка:
Dirichlet пишет:

> C>Можно вопрос? А где здесь хоть один недостаток _ЯЗЫКА_ С++, а не

> C>сторонних библиотек?
> C>С хорошими библиотеками на С++ она тоже была бы выше...
> Я программирую на С++. Передо мной стоят вполне конкретные задачи. Я
> программирую не на абстрактном С++, а на вполне конкретном
> компиляторе. Я вынужден использовать библиотеки, написанные на С++.

Ну вот и надо говорить: "Библиотека xxx на для компилятора yyy — полный
АЦТОЙ!".

> Для меня нет разницы, недостатки это языка, библиотек или компилятора.


Твои проблемы.... А разница есть.

> После того как выбран язык программирования С++, мы выбираем лучший

> для наших целей компилятор и лучшие для наших целей библиотеки.

А как вы узнаете, что эти библиотеки и компилятор — лучшие?

> Если мы сталкиваемся с проблемами, то значит наш первоначальный выбор

> языка был неверен.

Ага, а С# магически разрешает сразу все проблемы. И все библиотеки для
C# тоже абсолютно всегда правильны, безглючны и совместимы со всем
остальным еще не написанным софтом...

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[5]: Почему я не люблю C++
От: Dirichlet Россия  
Дата: 20.02.05 13:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Для меня нет разницы, недостатки это языка, библиотек или компилятора.

C>Твои проблемы.... А разница есть.

Меня интересует конечный результат. А именно набор программ, помогающий нам эффективно работать с моделями. Какая разница, что мне мешает быстрее добиться результата — язык, библиотеки или компилятор?

>> После того как выбран язык программирования С++, мы выбираем лучший

>> для наших целей компилятор и лучшие для наших целей библиотеки.
C>А как вы узнаете, что эти библиотеки и компилятор — лучшие?

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

C>Ага, а С# магически разрешает сразу все проблемы. И все библиотеки для

C>C# тоже абсолютно всегда правильны, безглючны и совместимы со всем
C>остальным еще не написанным софтом...

В отделе, где я работаю, есть опыт разработки отдельных компонент на С#. Поэтому я могу сравнивать.

Если интересует вопрос, почему же я не программирую на С#, то потому, что стоимость перевода моих компонент на С# достаточно высокая.
Дело в том, что код, который будет писаться другими людьми и будет взаимодействовать с моим кодом, тоже должен будет писаться на C#. А такого количества знающих C# людей у нас в отделе пока нет.
Re[6]: Почему я не люблю C++
От: Cyberax Марс  
Дата: 20.02.05 13:42
Оценка:
Dirichlet пишет:

>>> Для меня нет разницы, недостатки это языка, библиотек или компилятора.

> C>Твои проблемы.... А разница есть.
> Меня интересует конечный результат. А именно набор программ,
> помогающий нам эффективно работать с моделями. Какая разница, что мне
> мешает быстрее добиться результата — язык, библиотеки или компилятор?

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

А вот недостатки языка программирования влияют на всех.

>>> После того как выбран язык программирования С++, мы выбираем лучший

>>> для наших целей компилятор и лучшие для наших целей библиотеки.
> C>А как вы узнаете, что эти библиотеки и компилятор — лучшие?
> В компании, где я работаю, есть много достаточно квалифицированных
> людей, чтобы осознанно сделать выбор.

А есть из чего выбирать?

> C>Ага, а С# магически разрешает сразу все проблемы. И все библиотеки для

> C>C# тоже абсолютно всегда правильны, безглючны и совместимы со всем
> C>остальным еще не написанным софтом...
> В отделе, где я работаю, есть опыт разработки отдельных компонент на
> С#. Поэтому я могу сравнивать.

Работающие с теми же программами, и выполняющие ту же работу?

> Если интересует вопрос, почему же я не программирую на С#, то потому,

> что стоимость перевода моих компонент на С# достаточно высокая.
> Дело в том, что код, который будет писаться другими людьми и будет
> взаимодействовать с моим кодом, тоже должен будет писаться на C#. А
> такого количества знающих C# людей у нас в отделе пока нет.

И что, люди знающие С++ не могут без проблем перейти на C#? Странно.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[2]: Почему я не люблю C++
От: The Lex Украина  
Дата: 23.02.05 09:50
Оценка:
Здравствуйте, csvb, Вы писали:

C>Кто ж его любит ...

C>С C++ как с Microsoft или как с проституткой (кому как удобнее):
C>никто не любит, но многие используют.

Сам-то пробовал?
Голь на выдумку хитра, однако...
Re[6]: Почему я не люблю C++
От: The Lex Украина  
Дата: 23.02.05 12:58
Оценка:
Здравствуйте, Dirichlet, Вы писали:

>>> Для меня нет разницы, недостатки это языка, библиотек или компилятора.

C>>Твои проблемы.... А разница есть.

D>Меня интересует конечный результат. А именно набор программ, помогающий нам эффективно работать с моделями. Какая разница, что мне мешает быстрее добиться результата — язык, библиотеки или компилятор?


Да вся разница как раз в том, что Вы не чувствуете разницы...
Голь на выдумку хитра, однако...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.