Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Программирование на С++  (Прочитано 7398 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Программирование на С++
« Ответ #30 : 24 Октября 2012, 00:32:19 »
Когда-то (лет 20 назад) я писал кипятком от крутотенюшки Си++.
Прям таки в 1992 году? Дай пять!

Lifewalker

  • Гость
Re: Программирование на С++
« Ответ #31 : 24 Октября 2012, 00:53:00 »
Когда-то (лет 20 назад) я писал кипятком от крутотенюшки Си++.
Прям таки в 1992 году? Дай пять!
В 1991 году в одном из первых журналов PC Magazine RE была опубликована статья о Си++. В 1993 году прочитал монографию Б.Страструпа. В 1992…1994 году юзал его в хвост и в гриву, благо Borland C++ стал доступен в наших краях исчо в 1991 году. В свете этого я не понял, чо за наезды про 1992 год?

Если вы тогда ещё не родились, это не значит, что ничего не было. Откуда такое упорство априори считать себя умнее всех, а оппонента заведомо считать дураком и вралем?
« Последнее редактирование: 24 Октября 2012, 00:58:02 от Lifewalker »

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Программирование на С++
« Ответ #32 : 24 Октября 2012, 01:03:38 »
...но профессионалов мало, предельно мало, один на сотню...
...Откуда такое упорство априори считать себя умнее всех?
Да, откуда в вас такое упорство? Прекратили пользовать c 1994 года, а до сих пор считаете себя гуру С++?

Lifewalker

  • Гость
Re: Программирование на С++
« Ответ #33 : 24 Октября 2012, 01:30:41 »
Да, откуда в вас такое упорство? Прекратили пользовать c 1994 года, а до сих пор считаете себя гуру С++?
Где я сказал, что прекратил использовать Си++ в 1994 году? Я написал, что активно его использовал в период с 1992 по  1994 год, но это не значит, что я его вовсе не использовал после 1994 года. Тот факт, что в 1998 году я действительно полностью прекратил использовать Си++, не лишил меня разума и опыта. И кстати, где я называл себя гуру? Я говорил, что профессионалов мало, но я не утверждал, что я и есть тот самый, который один из ста.

Честно, если человек не в силах сделать элементарные логические выводы из человеческого текста на русском языке, как он может быть программистом и писать что-то на языке машинном? :)
« Последнее редактирование: 24 Октября 2012, 01:34:40 от Lifewalker »

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Программирование на С++
« Ответ #34 : 24 Октября 2012, 02:04:46 »
1) Ну судите сами - вы написали выше:
Цитировать
Посылка один: Много вы видели программ где оправдано применение тернарной операции? Нет
Посылка два: Много программ, где невозмоожно обойтись без перегрузки операторов или множественного наследования? Нет
Посылка три: Действительно ли нужно иметь возможность написать что-то вроде i = i++ - ++i; Нет
Посылка четыре: Когда вы в последний раз использовали ключевое слово friend? Давно
Заключение: Потому я категорически против того, чтобы детям спички давать.
Конечно же, бездумная перегрузка операторов и незнание советов Скотта Майерса при работе с множественным наследованием порождает ужасный код. Но не надо же ВСЕХ считать детьми неразумными, которые не знают, как со спичками обращаться. И не менее странна ваша способность делать элементарный логический вывод из человеческого текста на русском языке, при которой из списка мощных возможностей языка следует, что этим языком пользоваться не следует, потому что мощное опасно :)

2) Вот вы говорите:
Цитировать
Повзрослев и поумнев понял, что сила в простоте и ясности, а не в возможности выёжываться перед коллегами
Но вы почему-то не поняли, что простота и ясность исходят от программиста, а не от языка! Если вы используете перегрузку операторов для выёживания - это минус вам, а не языку, потому что как бы мы могли написать элементарное std::cout << "Hello"; без перегрузки operator<< ? Тем более, что добрый Скотт Майерс разъясняет нам, почему никогда не следует перегружать операторы "&&", "||" и ",", и добавляет: "Цель перегрузки операторов состоит в том, чтобы программы было проще писать, читать и понимать, а не поражать других знанием оператора-запятой".

3) Если ваш код, написанный вчера, невозможно прочесть и понять сегодня, то не языка тут вина, а ваша. На любом, ну то есть абсолютно на любом языке можно написать плохой код, который очень трудно понять. Вы же вцепились только в С++


---------
Всё это и в самом деле позволяет сомневаться, что разум и опыт всё ещё с вами, уж простите за прямоту.


P.S. Ну и немного классики http://warp.povusers.org/OpenLetters/ResponseToTorvalds.html и немного свеженького http://channel9.msdn.com/Events/GoingNative/GoingNative-2012
« Последнее редактирование: 24 Октября 2012, 02:48:52 от mastepaner »

Оффлайн Дядюшка Ау

  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Программирование на С++
« Ответ #35 : 24 Октября 2012, 10:31:26 »
Цитировать
Много вы видели программ где оправдано применение тернарной операции?

это условие вида "? да : нет"? Я много таких видел. Мне этот оператор вообще нравится.
 
Цитировать
Много программ, где невозмоожно обойтись без перегрузки операторов или множественного наследования? Нет
Нет, немного. Перегрузка операторов - костыль, а не фича. Наследование... тут много теоретиков копья сломали, не мне судить.

Цитировать
Действительно ли нужно иметь возможность написать что-то вроде i = i++ - ++i;
Так вообще нельзя делать :)

Короче, что хотел сказать. Язык не виноват, что его неправильно используют. У него есть четкая прикладная направленность, он не является обязательным к знанию любым программистом (в отличие от С, имхо)
Ubuntu 12.04 для поколупацца, Win7 для поработать

Lifewalker

  • Гость
Re: Программирование на С++
« Ответ #36 : 24 Октября 2012, 11:25:19 »
Цитировать
Действительно ли нужно иметь возможность написать что-то вроде i = i++ - ++i;
Так вообще нельзя делать :)
Конечно нельзя, но если компилятор это допускает, то всегда найдётся сорви-голова, который вставит это с банзаем «Блясматритекакаойякрутой!»

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

В 95% случаев, Си++ несёт избыточную сложность и избыточные возможности. Давайте на этом и сойдёмся.

P.S. Тут выше написали, что дескать
Цитировать
как бы мы могли написать элементарное std::cout << "Hello"
Да, это ужасно. Однако, программисты векамидолго обходились чем-то вроде write('Hello'); впрочем, и до сих пор обходятся. Я понимаю, это не так красиво и не так кулхацкерно, зато это работает и генерирует в 3 раза меньше кода.
« Последнее редактирование: 24 Октября 2012, 11:32:32 от Lifewalker »

Оффлайн Дядюшка Ау

  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Программирование на С++
« Ответ #37 : 24 Октября 2012, 12:04:01 »
Да, это ужасно. Однако, программисты векамидолго обходились чем-то вроде write('Hello'); впрочем, и до сих пор обходятся. Я понимаю, это не так красиво и не так кулхацкерно, зато это работает и генерирует в 3 раза меньше кода.

Во всем согласен. Единственно, что cout << "Вы получили " << iCount << " рублей." и Write("Вы получили " + iCount + " рублей.") генерируют, скорее всего, сравнительно одинаковое количество кода. Однако, опять же, как я писал выше - перегрузка операторов - это костыль, призванный дать хоть какую-то возможность простой конкатенации строк. Это не фича языка, превращающая его в мощный инструмент, а наоборот - попытка убрать излишнюю сложность.
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Программирование на С++
« Ответ #38 : 24 Октября 2012, 12:28:37 »
Мой девиз: чем проще - тем лучше, до той поры покуда проще - лучше.
Хм, мой девиз тоже такой! Только проще должно быть программисту, а не компилятору (это к вопросу о "генерирует в 3 раза меньше кода"). Давайте на этом и сойдёмся.


Оффлайн astrobeglec

  • Активист
  • *
  • Сообщений: 838
  • Самая тяжелая ноша - пророк в извращенном мире...
    • Просмотр профиля
Re: Программирование на С++
« Ответ #39 : 24 Октября 2012, 13:13:24 »
Добавлю свои пять копеек. Все языки программирования являются инструментами. Как и в любой другой сфере у них есть свои мастера, подмастерья и прочее. Любой инструмент хорош в "золотых" руках.
Я вернулся...

Оффлайн Gekko

  • Участник
  • *
  • Сообщений: 222
    • Просмотр профиля
Re: Программирование на С++
« Ответ #40 : 24 Октября 2012, 13:17:15 »
Lifewalker ! Конечно же я не имел цели как либо вас задеть. Тем более как выяснилось, вы так сказать патриарх программирования на С++. Но даже при вашем громадном опыте программирования на С++ боюсь, что у вас извращенные представления о С++. Никто не заставляет пользоваться всеми средствам которые предоставляет С++ и которые возможно излишни. Для нормальной жизни в С++ достаточно лишь использовать 50% того функционала который дает С++, более того, просто глупо использовать везде шаблоны классов и прочие новомодные штучки которые пропагандирует Александреску и подобные ему любители извращенного программирования. Я часто вспоминаю фразу которая является ключевой для всего С++, эту фразу можно прочитать в специальном издании "Язык программирования С++" Бьерн Страуструп (2001, изд.Невеский Диалект)  на странице 80 - "Для написания хороших программ не нужно знать о С++ все" это сказал создатель С++ Бьерн Страуструп. Вы Lifewalker же и многие подобные вам, которые начитавшись опусов Андрея Александреску полагаете, что если телевизор дает возможность смотреть 500 кабельных каналов, то их непременно нужно все 500 посмотреть, а если их все посмотреть не удается в виду их большого количества, то этот телевизор плохой. Потому, что в хорошем телевизоре каналов всего 20 и их можно за вечер все посмотреть.
Xubuntu 12.04 LTS с Xfce 4.10

Оффлайн Дядюшка Ау

  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Программирование на С++
« Ответ #41 : 24 Октября 2012, 13:22:21 »
Цитировать
Вы Lifewalker же и многие подобные вам, которые начитавшись опусов Андрея Александреску полагаете, что если телевизор дает возможность смотреть 500 кабельных каналов, то их непременно нужно все 500 посмотреть

Алярм, школота детектед!
Ubuntu 12.04 для поколупацца, Win7 для поработать

Lifewalker

  • Гость
Re: Программирование на С++
« Ответ #42 : 24 Октября 2012, 20:04:04 »
Единственно, что cout << "Вы получили " << iCount << " рублей." и Write("Вы получили " + iCount + " рублей.") генерируют, скорее всего, сравнительно одинаковое количество кода.
Неа :) Любопытства ради как-нибудь вместо компиляции программы оттранслируйте её в ассемблерный код, очччень много интересного узреете.

это к вопросу о "генерирует в 3 раза меньше кода"). Давайте на этом и сойдёмся.
Отлично. В три раза меньше кода это значит в три раза меньше памяти жрёт результат. Только это я имел ввиду, а не удобство компилятора. Компилятор он железный, чего о нём заботиться?

Gekko, можно долго препираться, лень. Говорите «Никто не заставляет пользоваться всеми средствам которые предоставляет С++ и которые возможно излишни.» Задаю себе логичный вопрос, а нафига вообще использовать Си++, если его возможности излишни в 95% случаев? Нынче мне более чем хватает олдскульной Модулы. Си++ - это микроскоп для гвоздей. Или ракета для поездок в булочную. Он не нужен :)
« Последнее редактирование: 24 Октября 2012, 20:15:34 от Lifewalker »

Оффлайн Исильдур

  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Программирование на С++
« Ответ #43 : 24 Октября 2012, 21:22:54 »
Мне кажется "Лучше уж останется, чем не хватит".
Лучше писать на С++, даже не используя в полной мере все его возможности. Если это конечно позволяет ситуация.
Чем на более простом, но когда возникнет ситуация что возможности языка ограничены - жалеть о потраченном времени ИМХО.

Оффлайн mastepaner

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: Программирование на С++
« Ответ #44 : 24 Октября 2012, 22:32:14 »
а нафига вообще использовать Си++, если его возможности излишни в 95% случаев?
Про это хорошо высказался Гради Буч: "По нашему опыту, множественное наследование – как парашют: как правило, он не нужен, но, когда вдруг он понадобится, будет жаль, если его не окажется под рукой." Если у тебя есть инструмент с адовой горой фичей, на нём можно спокойно работать, зная, что когда настанет какая ж.па, то под рукой всегда найдётся болт с резьбой на 18. А когда ты работаешь с инструментом, который позволяет только цветочки в поле собирать, а тут вдруг из-за угла танк, то тебе останется только пролепетать "Мамочка" и всё.

Когда я учил Чистый Паскаль, преподаватель обратил наше внимание на процедуру WriteLn - она принимает ПЕРЕМЕННОЕ число параметров, при этом в самом Чистом Паскале НЕТ ВОЗМОЖНОСТИ писать СВОИ процедуры с переменным числом параметов. Да, для обучения первокурсников это катит. Нет, для работы в полях это не катит.


 

Страница сгенерирована за 0.04 секунд. Запросов: 25.