Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ - его сила и его слабости, обсудить 
:(
    Опции темы
MAKCim
Дата 6.2.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Sun
а, в этом смысле согласен


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
SergeCpp
Дата 6.2.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 3
Всего: 124



Цитата(Is C++ too hard for most programmers?)
It shouldn’t be. C++ has become “expert friendly,” partly by design and partly because the notion of professionalism hasn’t taken root in the software development world.

The best uses of C++ involve deliberate design. You design classes to represent the notions of your application, you organize those classes into hierarchies, you express your algorithms precisely and abstractly (no, that “and” is not a mistake), you use libraries, you build libraries, you devise error handling and resource management strategies and express them in code. The result can be beautiful, efficient, maintainable, etc. However, it’s not just sitting down and writing a series of statements directly manipulating characters, integers, and floating point numbers. Nor is it simply plugging a few pieces of code into a huge corporate framework.

The demands of using C++ well are mainly maturity of system designers and understanding of design and programming technique. They are not primarily demands on the understanding of obscure programming language features. In that sense, the critics are right: Not everybody should write C++, but then I never did claim they should. I do not know if too many people use C++ today, but many do, many more than in the mid-90s, and the use of C++ is still growing in some areas. Obviously, C++ wasn’t too difficult for quite a few people.

C++ is designed to allow you to express ideas, but if you don’t have ideas or don’t have any clue about how to express them, C++ doesn’t offer much help. In that, C++ is not that different from other languages, but it is different from languages/systems/tools/frameworks designed to make it easy to express specific things in a specific domain. The relatively small size of the C++ standard library – primarily reflecting the lack of resources in the ISO C++ standards committee – compared with the huge corporate libraries can be a real disadvantage for C++ developers compared to users of proprietary languages. Given that C++ is designed as a language for writing and using libraries, too many C++ programmers use too few libraries and reinvent the wheel too often. It is far easier to use a good library (such as the C++ STL) than to design and implement it.

Цитата(In retrospect. Wasn't the decision to trade off programmer efficiency and security and and software reliability in exchange for runtime performance a fundamental mistake?)
Well, I don’t think I made such a tradeoff. I want elegant and efficient code. Sometimes I get it. The efficiency vs. correctness, efficiency vs. programmer time, efficiency vs. high level, etc. dichotomies are largely bogus.

What I did do was to design C++ as a systems programming language first of all: I wanted to be able to write device drivers, embedded systems, and other code that needed to use hardware directly. I still want that. Next, I wanted C++ to be a good language for designing tools. That required flexibility and performance, but also the ability to express elegant interfaces. My view was that to do higher level stuff, to build complete applications, you first needed to buy, build, or borrow libraries providing appropriate abstractions. Often, when people have trouble with C++, the real problem is that they don’t have appropriate libraries available – or that they can’t find the libraries that are available.

Other languages have tried to more directly support high-level applications.
That (also) works, but often that support comes at the cost of specialization. Personally, I wouldn’t design a tool that could do only what I wanted – I aim for generality.

Цитата(...)
In theory, the answer is simple: educate our software developers better, use more appropriate design methods, and design for flexibility and for the long haul. Reward correct, solid, and safe systems. Punish sloppiness. In reality, that’s essentially impossible. People want new fancy gadgets right now and reward people who deliver
them cheaply, buggy, and first. People don’t want inconvenience, don’t want to learn new ways of interacting with their computers, don’t want delays in delivery, and don’t want to pay extra for quality (unless it’s obvious up front – and often not even then). Even major security problems and crashes seem not to make people willing to change their use of software – and without changes in user behavior, the software suppliers are unlikely to change.

Полный текст беседы со Страуструпом 1 декабря 2006 (PDF, 74 K)

PM MAIL WWW ICQ   Вверх
SergeCpp
Дата 6.2.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 3
Всего: 124



Цитата(Alexeis @  5.2.2007,  23:08 Найти цитируемый пост)
...от плохого стиля программирования, такого как GoTo...

Structured Programming with go to Statements. Donald Ervin Knuth (PDF, 2.9 M)

PM MAIL WWW ICQ   Вверх
Sartorius
Дата 6.2.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Цитата

but if you don’t have ideas or don’t have any clue about how to express them, C++ doesn’t offer much help
  smile  ИМХО как и любой другой язык
Цитата

In theory, the answer is simple: educate our software developers better

 Интересно это о разработчиках какой страны? (Ну не знаю, где сейчас Страуструп живет... smile )
Цитата

People don’t want inconvenience, don’t want to learn new ways of interacting with their computers

 Ну не знаю ... не знаю

Это сообщение отредактировал(а) Sartorius - 6.2.2007, 16:42
PM MAIL ICQ   Вверх
Rodman
Дата 6.2.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Цитата(Sartorius @  6.2.2007,  15:35 Найти цитируемый пост)

but if you don’t have ideas or don’t have any clue about how to express them, C++ doesn’t offer much help

под лежачий камень вода не течет - так и здесь...

но если есть идеи, то С++ любую из них реализует...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
SergeCpp
Дата 7.2.2007, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 3
Всего: 124



Преподавание информатики: потерянная дорога
Никлаус Вирт
Приветствие на открытии Международной конференции по преподаванию информатики ITiCSE
г. Аархус (Дания), 24 июня 2002 г.

Цитата
Вспоминается рассказ Э.Дейкстры о его ночном кошмаре после чтения спецификаций нового языка программирования PL/1 в 1965 г. Ему представилось, что в будущем программирование приравняют к выучиванию PL/1, а информатику — к овладению OS/360 JCL <речь идет о языке программирования и языке управления заданиями для компьютеров фирмы IBM, печально известных своим крайне неудачным дизайном; российские программисты старшего поколения помнят, что это такое, по опыту работ на ЕС ЭВМ — прим. перев.>. Достаточно заменить PL/1 на C++ или Java, а JCL — на Windows или Linux, и вы чудесным образом перенесетесь в настоящее.

Цитата
Порочный круг был однажды разорван, когда распространился Паскаль. При поддержке коллег-единомышленников и в упорном противостоянии рутинерам, Паскаль распространился в учебных заведениях и проник в индустрию. Это произошло, несмотря на могучую конкуренцию со стороны индустрии и других больших организаций, в соперничестве с языками PL/1, Алгол 68 и Ада. Однако наследники Паскаля, существенно его превосходившие, Модула-2 и Оберон, не получили должного внимания среди преподавателей, и сами пали перед лицом самого недостойного из соперников — C. Самого недостойного, т.к. в этом языке были нарушены все открытые к тому времени принципы серьезного программирования. Он запутывает студентов, допуская разный смысл для x = y и y = x и принуждая всех писать x = = y вместо обычного x = y. Только за одни эти пороки он заслуживает изгнания из учреждений образования. Однако сей уродливый синтаксис был целиком воспроизведен в языке Java, принятие которого академическим сообществом произошло, отчасти благодаря этой преемственности.


PM MAIL WWW ICQ   Вверх
Sartorius
Дата 7.2.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



Цитата

Он запутывает студентов, допуская разный смысл для x = y и y = x и принуждая всех писать x = = y вместо обычного x = y. 


 Какая разница какой знак приписать операции. В рапире вообще "->" для присвоения использовалось. ИМХО к любому более менее очевидному синтаксису достаточно легко привыкнуть.
PM MAIL ICQ   Вверх
Любитель
Дата 7.2.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(MAKCim @  6.2.2007,  12:57 Найти цитируемый пост)
правда, вот сейчас ради интереса, решил "поиграться" с restrict и разницы между "с restrict" и "без restrict" не заметил вообще 

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

Romikgy, недостатки в недоделанности на самом деле. Тот же языковой инклюд. Возможность нормального разделения объявления и реализации шаблонов (хотя, конечно, исходники, либо какой-то псевдокод все равно понадобится при компиляции). Спецификации исключений, так недружащие с шаблонами и вообще вызывающие много споров. Функциональная недоделанность стандартной библиотеки (по сравнению со многими другими языками). Отсутствие STL везде где только можно  smile В частности мне бы хотелось иметь стандартизированный прототип main, принимающий любой STL-совместимый контейнер с std::basic_string. Вообще наличие всяких WinMain вызывает мое недовольство. По мне так так ограничить по стандарту несоклько прототипов, а остальное запретить! Отсутствие естественных final(sealed). Да и вообще достаточно много.. Но повторюсь, это не потому что язык плохой - а просто недоделанный.

Цитата(Alexeis @  5.2.2007,  21:08 Найти цитируемый пост)
Сишники будут активно возмущаться, но я все скажу. ИМХО указатели это вообще прошлый век, и пора от них совсем отказываться, как от плохого стиля программирования, такого как GoTo и т.д.

Уже было сказано, но потворюсь - не о тех плюсах думаете  smile delete - используется чрезвычайно редко. Либо в тривиальных случаях (когда выделение/освобождение в одном блоке), либо в библиотеках самрт-поинтеров  smile В сях да free забывать нельзя, но как бы разный профиль...

Цитата(LSD @  5.2.2007,  19:31 Найти цитируемый пост)
Есть не так много вещей кроме математики, способных загрузить процессор на 100%.
И вообще какое это имеет отношение к тому, что я написал? 

Цитата(Sun @  5.2.2007,  18:49 Найти цитируемый пост)
Вот когда добьетесь производительности от программы написанной на каком нибудь другом языке, отличном от С/С++ (ассемблер не предлагать), тогда я сниму перед вами шляпу

Не математикой единой...


--------------------
PM MAIL ICQ Skype   Вверх
SergeCpp
Дата 7.2.2007, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 3
Всего: 124



В VC6 опция оптимизации, относящаяся к aliasing, ускорила одну из моих программ на 5%

PM MAIL WWW ICQ   Вверх
MAKCim
Дата 7.2.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(Любитель @  7.2.2007,  18:17 Найти цитируемый пост)
По-моему очень многие компилеры, если и поддерживают рестрикт, то тем не менее просто его игнорируют. Также, как скажем инлайн. Лично я против неизкоуровневой оптимизации со стороны програмиста в высокоуровневых языках. Нефиг - пусть компилер сам старается

GCC полностью поддерживает C99, а значит restrict, кроме того была включена оптимизация... вообщем непонятно, каким образом можно оптимизировать случаи, когда применяется restrict  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Beltar
Дата 8.2.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

но если есть идеи, то С++ любую из них реализует...


Все сразу и ничего вместе.

Кстати, а в C есть параметры по умолчанию?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Romikgy
Дата 8.2.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Beltar @  8.2.2007,  12:22 Найти цитируемый пост)
Кстати, а в C есть параметры по умолчанию?

есть


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Void
Дата 8.2.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



А вот именованных параметров (лично мне) не хватает и в C++, и в Delphi, и в Java, и в C#…


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Daevaorn
Дата 8.2.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(Romikgy @  8.2.2007,  15:18 Найти цитируемый пост)
есть 

Не совсем. Есть скорей всего только в С99. Ну и в С++ конечно.
Цитата(Void @  8.2.2007,  17:20 Найти цитируемый пост)
А вот именованных параметров (лично мне) не хватает и в C++, и в Delphi, и в Java, и в C#… 

за-то в С++ они почти красиво реализуются средствами языка. smile
PM MAIL WWW   Вверх
Beltar
Дата 8.2.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

именованных параметров


А что это?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1319 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.