LINUX.ORG.RU
ФорумTalks

о развитии ЯП


0

0

http://www.informit.com/guides/content.asp?g=cplusplus&seqNum=225&rl=1

В конце статьи цитата Бъерна Страуструпа: "Будущее обычно больше походит на прошлое, чем мы думаем". Он подошёл прагматично к созданию C++, понимая, что очередной свертехнологичный и мегавыразительный велосипед не будет востребован общественностью, "просто напросто" накидал в корзину разных "вкусностей" из других языков и (!) сделал "плюсы" совместимыми с С. В этом и заключается гениальность датчанина.

★★★★★

Автору С++ место в дурке или на погосте. (С)

ero-sennin ★★
()

ИМХО довольно порочная практика собирать в кучу слабо согласующиеся меж собой технологии. Это только зря усложняет. Насчёт "вкусностей" весьма сомнительное утверждение. Вообще, какого-то лиха наиболее неудачные вещи оказываются и наиболее востребоваными, как например с++, или РНР с питоном...

> Furthermore, writing a C++ or Java application isn't significantly different from writing an Ada application 20 years ago. And frankly, why should there be a difference? Generics, encapsulation, exception handling, default arguments, operator overloading and other wonderful constructs that we use today were already present in Ada 83.

Парадокс, ИМХО. Понятия не только усложнились на порядки, но и коренным образом изменились, а языки, их описывающие, остались принципиально те же самые. Аффтар жестоко жжёт, утверждая, что это так и должно быть, что это правильно.

bugmaker ★★★★☆
()

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

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

Аналогов у этого "нагромождения" до сих пор нет. Либо значительно более тормозное - вроде джавы или C#, либо значительно более низкоуровневое, типа C или ассемблера, либо что то никому неизвестное, типа D.

У С++ плохо то, что это старый язык, обременённый совместимостью с сями, в остальном это отличный язык.

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

Аналогов есть и все они достаточно известные: лисп, смоллток, ада, пролог.

Правда про них обычный кодер просто не слышал.

anonymousI
()
Ответ на: комментарий от bugmaker

> Вообще, какого-то лиха наиболее неудачные вещи оказываются и наиболее востребоваными, как например с++, или РНР с питоном...

Просто они понятные большинству.

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

>в остальном это отличный язык.

Отличный от чего ?? :)

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

>за что так хаят с++

Лично меня не устраивает каша в include, почему их куча, а библиотека одна ?

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

> Всегда интересовало за что так хаят с++, можно подробнее?

Патамушта б#@лоязык для б#@лакодеров, как и PHP. Настаящия пацаны пишут на АДА! Ууу, ацкий сотона!

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

>Всегда интересовало за что так хаят с++, можно подробнее?

За маргинальность: низкоуровневому языку не нужны ООП и шаблоны, а для высокоуровнего ему не хватает сборщика мусора и вообще у него слишком перегруженная семантика. Он высокоуровневый и одновременно низкоуровневый. А на двух стульях, как известно... Сейчас уже всем ясно, что С++ получил распространение исключительно благодаря родству с С.

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

>>Всегда интересовало за что так хаят с++, можно подробнее? >За маргинальность: низкоуровневому языку не нужны ООП и шаблоны,

C++ - конгломерат. В нём объединяются 4 парадигмы программирования. Да, он довольно сложный, но кто говорит, что ЯП должен быть обязательно простым. Это для чего? Для быдлокодеров?

>а для высокоуровнего ему не хватает сборщика мусора

ЗАЧЕМ?? Вы таки ниасилили работу с памятью? Или ресурсы девать некуда? Тогда вам прямая дорога к Java.

>и вообще у него слишком перегруженная семантика.

"Ниасилил, многа букаф..."?

>Он высокоуровневый и одновременно низкоуровневый. А на двух стульях, как известно...

...он замечательно сидит. Более того, эта его "двуликость" открывает большие возможности.

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

4.2

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

> а для высокоуровнего ему не хватает сборщика мусора
как минимум, про указатели не говорю сами знаете почему.

seiken ★★★★★
() автор топика

> Аналогов есть и все они достаточно известные: лисп, смоллток, ада, пролог.

Ну давайте посмотрим.
Лисп: Я думаю, что для большинства задач программирования императивный, и в частности объектно-ориентированный стиль подходит больше, чем функциональный. Не для 100% задач конечно, но для 95. В императивном стиле удобнее писать на С++, чем на лиспе.
Кстати вы какой лисп имели в виду? Комон? У которого стандарт толще чем у С++? :)
Производительность - почему некоторые куски емакса всё же написаны на сях?
Смоллток: по слухам это такие тормоза.. Уж лучше питон :)
Ада: из того, что я про неё знаю.. Это такая БОЛЬШАЯ куча всего. Это гораздо хуже С++. И ТОРМОЗА! У неё же куча проверок в рантайме, любое обращение к элементу массива = проверка! Конечно для военных оно может и хорошо, ну тормозит, закажем новый сервер, проблема что ли, в US особенно.
Пролог: Ну при чём тут пролог? Абсолютно другой язык, другая парадигма, позиционировать его, как замену С++ странно.

> Правда про них обычный кодер просто не слышал.

Да всё он слышал :) Проблема в том, что он не видит реальных хороших применений. Вот сейчас у меня на компе только 1 программа на лиспе запущена, всё остальное на сях и плюсах. Да и у той программы есть серьёзный конкурент, который опять же на сях написан :)

> Отличный от чего ?? :)

Просто отличный :)


> За маргинальность: низкоуровневому языку не нужны ООП и шаблоны, а для высокоуровнего ему не хватает сборщика мусора и вообще у него слишком перегруженная семантика.

Зачем ему сборщик мусора? У него нет никакого мусора :)

> Лично меня не устраивает каша в include, почему их куча, а библиотека одна ?

А почему бы и нет? Ну сделайте один большой инклуд, который будет инклудить все остальные и будет один инклуд на одну библиотеку :) Только смысл?

> Он высокоуровневый и одновременно низкоуровневый.

А может быть это и есть его главный плюс?

Хотелось бы послушать более конструктивную критику С++.

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

Нет, не исключительно. Кроме родства с С у него куча других хороших особенностей. В противном случае он бы не получил никакого распространения, за ним ведь не стояла Sun\Microsoft.

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

> Зачем ему сборщик мусора? У него нет никакого мусора :) Запусти firefox под valgrind'ом и удивись. Если будет мало, запусти ещё openoffice.

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

>> Зачем ему сборщик мусора? У него нет никакого мусора :) >Запусти firefox под valgrind'ом и удивись. Если будет мало, запусти ещё openoffice.

Ага. Значит в кривизне рук проектировщиков/разработчиков уже виноват язык? Ну-ну, что же дальше.

Все жалуются на тормоза огнелиса и опенофиса. А теперь представьте скорость их работы со сборщиком мусора. Представили? То-то.

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

> Ага. Значит в кривизне рук проектировщиков/разработчиков уже виноват язык? Ну-ну, что же дальше.

Тебе никогда не приходило в голову, что способности человеческого мозга не безграничны, и писать большие проекты на C++ без утечек памяти и переполнений буфера человек физически не в состоянии? Попробуй тогда взять исходники того же firefox'а и починить хотя бы одну утечку, на которую ругается valgrind. Как починишь, приходи ещё.

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

>> Ага. Значит в кривизне рук проектировщиков/разработчиков уже виноват язык? Ну-ну, что же дальше.

>Тебе никогда не приходило в голову, что способности человеческого мозга не безграничны, и писать большие проекты на C++ без утечек памяти и переполнений буфера человек физически не в состоянии?

При правильном проектировании - можно. Естественно, человек не 1.

>Попробуй тогда взять исходники того же firefox'а и починить хотя бы одну утечку, на которую ругается valgrind. Как починишь, приходи ещё.

А зачем?... Я им не пользуюсь, мне это не нужно.

Sectoid ★★★★★
()
Ответ на: комментарий от ero-sennin

Я хотел сказать, что в С++ есть вещи, вроде смартпоинтеров, которые позволяют, не теряя в эффективности, обходится без сборщиков мусора.

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

> При правильном проектировании - можно. Естественно, человек не 1.

Ладно, ты мне называешь правильный большой проект, а я натравливаю на него valgrind. Идёт? :~P

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

>> При правильном проектировании - можно. Естественно, человек не 1.

>Ладно, ты мне называешь правильный большой проект, а я натравливаю на него valgrind. Идёт? :~P

Открытых таких не знаю. Знаю 2 закрытых, но ни назвать, ни выдать исходники/бинари не могу - комерческая тайна.

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

>> Вообще, какого-то лиха наиболее неудачные вещи оказываются и наиболее востребоваными, как например с++, или РНР с питоном...

> Просто они понятные большинству.

Весьма спорное, и, как минимум иррациональное утверждение. Что в том же смоллтоке является менее понятным/более запутанным? Не говоря уж про лисп, простой как полено.

bugmaker ★★★★☆
()
Ответ на: комментарий от ero-sennin

>То есть, правильные проекты на C++ настолько редки, что даже их названия составляют коммерческую тайну? Ясно. :D

Вы дорожите своей работой? Я - да. Посему предлагаю тему закрытых проектов закрыть (простите за каламбур).

Насчёт больших открытых проектов на С++ - да, без утечек не встречал. И это есть грустно. Другое дело, что я действительно _хороших_ проектов на других языках не встречал. Хороших проектов на языках со сборкой мусора не встречал вообще. Может не туда смотрел? Моё определение "хорошего" проекта: функциональный, удобный (для меня), не тормозящий.

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

> Лисп: Я думаю, что для большинства задач программирования императивный, и в частности объектно-ориентированный стиль подходит больше, чем функциональный.

Если ты действительно так думаеш, пешы наздоровье. В лиспе ООП имплементирован намного лучше чем в с++.

> В императивном стиле удобнее писать на С++, чем на лиспе.

Весьма спорное. Как показывает моя личная практика, подавляющее большинство задач выражаются в функиональном стиле на порядки (!) проще, короче и естественнее. Если всё-же приспичило в императивном, практически всё в лиспе записывается в худшем случае не намного длинее чем на с/с++, а в масштабе функции/модуля есть великий выйгрыш из-за более продвинутой системы типов.

> Смоллток: по слухам это такие тормоза..

Я не проверял. Ты, вижу, тоже не. Если рассуждать здраво, то возможно тормозом он выглядел на тачках n-летней давности, а в сравнении с тем же питоном очень даже быстр.

> Уж лучше питон :)

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

> Ада: из того, что я про неё знаю.. Это такая БОЛЬШАЯ куча всего. Это гораздо хуже С++. И ТОРМОЗА! У неё же куча проверок в рантайме, любое обращение к элементу массива = проверка! Конечно для военных оно может и хорошо, ну тормозит, закажем новый сервер, проблема что ли, в US особенно.

Опять-таки, тормоза - понятие субъективное. В лиспе тоже всюду проверки, однако при полной безопасности ево производительность позиционируют как всево в 1-2 раза худшую чем с/с++.

> Пролог: Ну при чём тут пролог? Абсолютно другой язык, другая парадигма, позиционировать его, как замену С++ странно.

пролог ужоснахъ (за весьма редкими исключениями в чястныъ случяях). Я в детстве на ём чёто кропал.

> Да всё он слышал :) Проблема в том, что он не видит реальных хороших применений.

А видит кучю реальных применений всяких быдлодельфёв/быдловисуалвасика :( . С++ при своих явных и галимых недостатках всё равно намного луче их, однако... Где же выход?

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

> Да, он довольно сложный, но кто говорит, что ЯП должен быть обязательно простым. Это для чего? Для быдлокодеров?

А зачем он обезательно должен быть сложным? Весь цимес в том, чтобы сделать одновременно и просто, и удобно, и функционально. Т.е. есть некоторый оптимум, а с++ всё-таки от него дальше чем другие.

И фактически, основные претензии к с++ состоят в том, что для достижения хшего результата на ём требуется неоправданно много трудозатрат, как при обучении так и при разработке.

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

> Кстати вы какой лисп имели в виду? Комон? У которого стандарт толще чем у С++? :)

Аха, ево, родимово... Он позволяет делать код вдесятеро более короткий, простой и понятный, а стандарт толще далеко не вдесятеро. Выгода ИМХО налицо.

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

>А зачем он обезательно должен быть сложным?

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

>Весь цимес в том, чтобы сделать одновременно и просто, и удобно, и функционально. Т.е. есть некоторый оптимум,

Согласен. Так, значит в одном вопросе мы пришли к консенсусу? Уже хорошо:)

>а с++ всё-таки от него дальше чем другие.

Конкретные примеры можно?...

>И фактически, основные претензии к с++ состоят в том, что для достижения хшего результата на ём требуется неоправданно много трудозатрат, как при обучении так и при разработке.

И ещё примеры, пожалуйста...

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

Дорогуша, вы говорите мол все идиоты поэтому течёт!

Нет течёт потому, что язык позволяет на это дело. Как не крути из деталек от жигулей БМВ не соберёшь.

С++ - это низкоуровневый язык с высокоуровневыми костылями. Или наоборот. По анологии - если в жигули встроить турбину,АБС,сиденьки поменять итд - БМВ они опять-таки не станут. В лучшем случае недорозумением на колёсах.

anonymousI
()
Ответ на: комментарий от Sectoid

>> А зачем он обезательно должен быть сложным?

> Я этого не говорил. Я говорил, что черезмерная простота до добра не доводит - теряется функционал и гибкость.

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

>> а с++ всё-таки от него дальше чем другие.

> Конкретные примеры можно?...

Можно, почему нет.

Аспекты разработки:

- Общеизвесно ИМХО, что при разработке ООП приложения необходимо уделять наибольшую чясть внимания иерархии обектов. И если на каком-то этапе создания ПО выявится изъян в созданной иерархии либо условия задачи немного изменятся, велик риск необходимости весьма существенной переделки кода.

- Далеко не все реальные задачи однозначно ложатся в объектную модель. А уж самой оптимальной эта модель оказывается вообще для единичных случаев.

Аспект кодинга:

- в топике "фраза о лиспе" я приводил примеры лиспокода, которые при реализации на с/с++ будут в разы и даже десятки длиньше и сложнее.

- Лично мне часто доставляла большие неудобства невозможность выполнения виртуальных методов из конструктора в с++. Оно намного сэкономило бы в случаях когда последовательность инициализации примерно одинаковая но одним общим методом воспользоваться всё одно нельзя из-за разницы.

> И ещё примеры, пожалуйста...

В тырнете есть статья "why code sucks". Она начинается примерно так:

> Почему твой код сасьйод: 1) Он не работает. Ты говориш он работает? А откуда ты знаеш? ...

Лично мне кажется весма проблематичным применять методы пи-исчисления к ООП вообще и к с++ прогам в чястности...

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

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

Хрупкость базового класса. Если приходиться что-то менять в базовом классе для большой иерархии - вы сильно рискуете и даже порой не знаете на сколько.

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

>Дорогуша, вы говорите мол все идиоты поэтому течёт! Нет течёт потому, что язык позволяет на это дело. Как не крути из деталек от жигулей БМВ не соберёшь.

Почему у меня не течёт?... Что я делаю не так?...

>С++ - это низкоуровневый язык с высокоуровневыми костылями. Или наоборот.

Я уже говорил: С++ - это язык-конгломерат, пригодный для написание как низкоуровневого, так и высокоуровневого кода.

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

> Хрупкость базового класса.

И не только. Зачастую оказывается что сама иерархия классов описывает задачу неадекватно и приходится прибегать к пустопорожнему занятию "рефакторинг". Т.е. фактически вместо обещянного reusable code, который легко может быть построен на функциях, получяем готовый код, который _нужно_ (must а не need или should) время от времени переделывать.

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

> Я уже говорил: С++ - это язык-конгломерат, пригодный для написание как низкоуровневого, так и высокоуровневого кода.

Для высокоуровневого он очень мало пригоден. Запости сюда хотябы решение задачи "найтить все варианты перестановков произвольного числа элементов произвольново типа", который на лиспе в парустрок.

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

>Почему у меня не течёт?... Что я делаю не так?...

Скорее всего вы ничего круче маленького велосипедика не строили и в комманде человек 20 над крупным нескольколетним проектом не работали.

>Я уже говорил: С++ - это язык-конгломерат, пригодный для написание как низкоуровневого, так и высокоуровневого кода.

Назовите его хоть синдикатом хоть конгломератом, хоть дегенератом что это меняет в том, что язык - всего-лишь бесформенный набор разных парадигм?

Вот скажите мне что по вашему даёт ручное управление памятью, кроме как огромного количества правил и постоянных проверок в коде (чтобы не вывалилося в сегфолт недайбох), а всё равно течёт хоть ты тресни?

anonymousI
()
Ответ на: комментарий от eugine_kosenko

Слушайте, ну что за манера постоянно разводить флеймы на ровном месте ?

Не нравится вам лично С++ - пишите себе спокойно на чём угодно, хоть и впрямь на prolog'е (хотя я очень хотел бы посмотреть, например, на библиотеку цифровой обработки сигналов на SWI-Prolog или иже с ним). Но не придумывайте же в оправдание своих личных предпочтений (или невежества) аргументы с потолка ! Современный С++ - мощный мультипарадигменный язык, конгломерат, и именно в этом его достоинство. Если вам нужно только ООП, или функциональное программирование, или метапрограммирование - пожалуйста, для вас есть Java, C#, ruby, yorick, rebol, lua, lisp, prolog, haskell, python, etc; и бездна ещё языков, каждый из которых имеет свои достоинства и недостатки. Да, в С++ не лучший синтаксис, и далеко не идеальная реализация того же ООП или функционального программирования (метапрограммирование там вообще появилось сравнительно недавно как таковое - благодаря тому же Гуртовому и Александреску), но в нём есть это всё и одновременно. Зачем это нужно ? Отсылаю к книге Коплиена "мультипарадигменное проектирование в С++" - там всё это очень хорошо написано...

Касательно же работы с памятью... Инструмент всегда инструмент. Зачем делать лопату со встроенным механизмом предупреждения удара по голове ? Не используйте raw pointers в С++ (std::auto_ptr, boost::scoped_ptr, boost::shared_ptr - этого уже более чем достаточно) - и каким бы большим проект ни был, утечек памяти не будет. Неужели так сложно ?

Работал я с проектами от 1K до 1M строк кода - на С++, C#, и ряде скриптовых языков, так что это не аргумент...

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

>>Почему у меня не течёт?... Что я делаю не так?...

>Скорее всего вы ничего круче маленького велосипедика не строили и в комманде человек 20 над крупным нескольколетним проектом не работали.

Всяко бывало. Многолетних - пока не было.

>>Я уже говорил: С++ - это язык-конгломерат, пригодный для написание как низкоуровневого, так и высокоуровневого кода.

>Назовите его хоть синдикатом хоть конгломератом, хоть дегенератом что это меняет в том, что язык - всего-лишь бесформенный набор разных парадигм?

Бесформенным набором парадигм его делает программист, который не умеет им пользоваться. Предыдущий оратор (jtootf) уже отослал к книге Коплиена. Вам туда.

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

Я где-то говорил о полностью ручном управлении памятью? Упаси Тьма, у мя моск вскипит. Для этого есть замечательный паттерн проектирования Smart-Pointer. Они бывают самые разнообразные и покрывают все нужды (может у меня мало опыта, но я пока не видел случая, когда их не хватало). Зачем ассенизатора в язык тащить?

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

>И не только. Зачастую оказывается что сама иерархия классов описывает задачу неадекватно и приходится прибегать к пустопорожнему занятию "рефакторинг".

Прекращайте жечь - у нас пол отдела изпацтула вылезти не может... Вы сейчас рассуждаете, как программисты из M$. Можете сами посмотреть во что превратилась венда без рефакторингов.

>Т.е. фактически вместо обещянного reusable code, который легко может быть построен на функциях, получяем готовый код, который _нужно_ (must а не need или should) время от времени переделывать.

Ясно. По Вашему, код, построенный на функциях, легче повторно использовать, чем грамотно спроектированный ООП код? Удач вам в ваших начинаниях;)...

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

> Почему у меня не течёт?... Что я делаю не так?...

Охотники за сегфолтами.

Ах, разве может что-то быть прекраснее, чем явиться на работу свежим морозным утром, когда солнце только-только выглядывает из-за покатой крыши дома напротив, размять озябшие пальцы, сварить чашечку крепкого кофе, а потом сесть за клавиатуру, запустить gdb и с матами ловить тот сегфолт, с которым ты затрахался ещё вчера вечером!

Что за прелесть эти сегфолты! Они изменчивы и загадочны, как сердце юной девушки из отдела напротив, и неуловимы, как мысли её, когда она задумчиво глядит в окно, а её забытый утренний кофе стынет в углу стола. "Может быть, всё дело в этом утреннем кофе? Или в этом радостном воробьином галдеже, и солнце, почти весеннем, что разбивается на тысячи хрустальных искр в каждой сосульке на той крыше? Или виной всему шеф?" Да, вдруг понимаешь ты, именно шеф, именно он стоял за твоей спиной вчера вечером, когда вдруг вылез тот зловещий сегфолт. А сегодня шеф далеко, он улетел в далёкий Амстердам и занят важными переговорами, и сегфолт затаился, растворившись среди ста тысяч миллионов крошечных бит твоего кода. Выгляни хоть на минуту, просишь ты его, хоть маленьким краешком, хоть и знаешь, что всё напрасно. И ты сидишь, откинувшись на спинку стула, и выжидаешь, словно охотник в засаде, и утро медленно катится к полудню...

А что если... Да! Есть идея! Сергей, голубчик! Ты будешь за шефа! Встань здесь, толстая синяя папка в руках, смотри поверх моей головы прямо на мой экран, говори сердито и надменно. Михаил! Испуг в глазах, больше испуга в твоих глазах! И всего лишь повтори то, что ты говорил шефу вчера вечером, испуганно и заискивающе! Вот так, вот именно так. Анатолий! Просто пей свой дьявольский кофе, чёрный и вязкий, как пил ты его вчера, и как пьёшь всё время. Олег, Виктор! Просто сидите и делайте вид, что поглощёны без остатка важной работой. И теперь я знаю, он точно клюнет! Что ещё? Ах да, вечер! Тяжёлая штора оставляет от солнца лишь тоненький лучик с танцующими пылинками, в комнате становится темно, как в кинозале, и мигая, одна за другой, вспыхивают холодные люминесцентные лампы, наполняя всю комнату своим бесстрастным светом, от которого негде скрыться. Наступает тишина, чуть слышно лишь взволнованное дыхание и гул вентиляторов. И ты понимаешь, у тебя есть только один шанс. Ты не имеешь права промахнуться. И ты сделаешь это. Ты несмело касаешься клавиатуры, вводишь несколько команд, и чувствуешь, как волнение сменяется железной уверенностью, всё вокруг исчезает, остаёшься лишь ты и твой сегфолт. Ты нажимаешь ещё несколько клавиш, вводишь тестовые данные и чувствуешь: он здесь, и он твой. Отладчик работает безукоризненно, брейкпоинты мелькают, как столбы за окном курьерского поезда, и он уже знает, что ему не уйти, затравленно мечется из сегмента в сегмент, отчаянно пытается затеряться среди исключений, но спотыкается об отладочные символы, и обессиленно падает прямо в стандартный вывод. Тебе остаётся лишь запечатать его нору крепкими патчами и поставить снаружи тройную проверку на нулевой указатель. Дальше... Дальше будет пир и веселье в честь удачной охоты, и девушки из соседнего отдела будут с замиранием сердца внимать бравым охотничьим рассказам, и даже шеф, обычно такой суровый и немногословный, не утерпит, и ввернёт парочку своих историй... А потом будет вечер, и ты отправишься домой, усталый, но довольный, зная, что впереди ещё много радостных дней и интересной работы, и что пока жив С++, охотникам за сегфолтами не придётся сидеть без дела.

ero-sennin ★★
()
Ответ на: комментарий от anonymousI

"С++ - это низкоуровневый язык с высокоуровневыми костылями. Или наоборот. По анологии - если в жигули встроить турбину,АБС,сиденьки поменять итд - БМВ они опять-таки не станут. В лучшем случае недорозумением на колёсах."

Ты ацтал ат жизни!! В TopGear-е как раз взяли пятерку вазовскую разок, взяли кучку инженеров из Lotus Sports, взяли 200 штуки зеленых, и сделали из пятерки спортивный боллид!!! А ты говоришь недоразумение.. В этом мире возможно все, если у тебя есть на то возможности. Другое дело, что далеко не каждый анонимус доплывет до середины днепра....

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

>>В TopGear-е как раз взяли пятерку вазовскую разок, взяли кучку инженеров из Lotus Sports, взяли 200 штуки зеленых, и сделали из пятерки спортивный боллид!!! А ты говоришь недоразумение..

Недавно смотрел видео, так там на вазовских пятерках такое вытворяют... Но БМВ все равно лучше.

Energizer
()
Ответ на: комментарий от ero-sennin

>>Почему у меня не течёт?... Что я делаю не так?...

>Охотники за сегфолтами.

Жжошь! Хоть наши точки зрения не совпадают, но за кретифф респект!

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

> у нас пол отдела изпацтула вылезти не может

Смех без причины - извесный призак с++ кодера.

> Вы сейчас рассуждаете, как программисты из M$.

Разве в моих рассуждениях есть какой-то намёк на то, что я считаю преимуществом длинный но глючный код? Или представитель народов севера отдаёт предпочтение письму перед чтением?

> Можете сами посмотреть во что превратилась венда без рефакторингов.

А зачем равняться на венду?

> По Вашему, код, построенный на функциях, легче повторно использовать, чем грамотно спроектированный ООП код?

Есть какие-нибудь сомнения что грамотно построеный процедурный код намного легче использовать чем ООП? Или что процедурный код намного легче грамотно спроектировать чем ООП?

> Удач вам в ваших начинаниях

спасибо

bugmaker ★★★★☆
()
Ответ на: комментарий от ero-sennin

за средства выразительности незачед. слишком много понапихал.

за все остальное - да !

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