Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.235.75.229] |
|
Сообщ.
#1
,
|
|
|
Уважаемые господа!
Увы я никогда профессионально не программироал на С/С++, хотя править чужие коды приходилось. Чаще пользовался Pascal, последнее время только Perl. В любом случае ползовался ООП. Однако, сейчас прочел пару статей и был весьма озадачен. Не поленитесь - прочтите и выскажите свое мнение. Для меня это важно. Ссылочки по сл. адресам: (в документации в самом начале)http://www.cs.virginia.edu/~lcc-win32/ (статья на сайте) http://www.softcraft.ru/paradigm/process/pr01.shtml Буду признателен, если продублируете Ваши ответы на мой и-мэйл (o.melnikov@urs.nsys.by) Спасибо. |
Сообщ.
#2
,
|
|
|
Тема - хорошее начало для флэйма. Приступим? ))
|
Сообщ.
#3
,
|
|
|
Погнали ! я за MSVC ! без комментариев ...
|
Сообщ.
#4
,
|
|
|
Чтож так? Комментарии были бы весьма кстати. По скольку явных приемуществ у этой оболчки я не заметил. ) На мой взгляд, если бы ребята из борланда не загубили бы ветвь BC++ 5.0 (не путать с билдером), он бы составил достойную альтернативу MSVC.
|
Сообщ.
#5
,
|
|
|
Согласен. Очень "флеймовая" тема. Тем не менее. Хотел бы получить увидеть Ваши аргументы на два маленьких утверждения:
1. Используя ООП получается экономия кода в теории, на практике - очень "толстые" программы (порой в раз 10). 2. Скорость работы программы, написанной c использованием ООП значительно уступает возможной реализации того же, но без ООП 3. Удобство "объектного" мышления и сопутствующие "приятности" при работе с кодом оправдывает недостатки п.1-2? Ваше мнение? |
Сообщ.
#6
,
|
|
|
Чтож, по порядку:
1. Хотелось бы конкретный пример (если это возможно). Я бы еще согласился с разницей в 1.5-2 раза, но не как не на порядок. 2. Спорный вопрос. В обоих случаях все зависит от программиста. Нет никаких объективных предпосылок для того, чтобы объектно-ориентированный код значительно уступал по скорости не-ООП. Как я уже сказал, все зависит от программиста, компилятора, и библиотек. Кончено, если сравнивать с gcc, который изначально заточен под оптимизацию pure C кода - то можно согласится, ведь только в последных версиях этого компилятора появилась достаточно грамотная реализация объектно-ориентированных конструкций С++. Для остальных компиляторов хотелось бы видеть результаты тестов с примерами, по которым велось тестирвоание. 3. На мой взгляд "объектное мышление" не зависит от применяемого инструмента - оно либо есть, либо его нет. А С или С++ будет использоваться для реализации - это уже другой вопрос. |
Сообщ.
#7
,
|
|
|
ну и я по порядку:
1.При использовании визуальных ОО библиотек почти на порядок. Где-то слышал нечто подобное: "...хочу стать программером, э-а где кликать?!" . Понимаю, что ручками делается гораздо компактнее, но где же теоретическое повторное использование кода и неиспользование "лишнего" кода? 2. Массовая обработка объектов. Примерный пример. Вызов на создание и обработку объектов-строк (которые умеют сами себя форматировать) и заргузка строк в память и последующая обработка их по фоматированию процедурой. Сам наступал на эти грабли. Когда речь идет о 200-1000, все как бы хорошо, но, когда 100000-900000 уже становиться "интересно". И все как бы (по теории) правильно, но результат на порядок или даже два. Понимаю, от массовой обработки объектов лучше уходить и первый вариант этого примера - "пример умственной лени" . Тем не менее. 3. А объектная реализация? |
Сообщ.
#8
,
|
|
|
1. Не твоя правда. Это беда не только ОО проектов - в задачу программиста входит выбор способа линковки (статический/динамический). И в не-ОО проектах можно ТАК библиотеку спроектировать, что готовый экзешник по размеру ни в какие ворота не влезет. К тому-же за все приходится платить. За 10-20 строк клиентского кода (в итоге) - 1.5 - 2 МБ служебных библиотек, в которых лежит все остальное. Это можно отнести и к pure-C проектам.
2. Микроскопом тоже можно гвозди забивать, но он для этого не предназначен. Каждым инструментом надо уметь пользоваться и использовать его по назначению. Это я к тому, что имея за плечами большой опыт программирования на С нельзя сразу же научится писать эффективные программы на С++ - подход другой. И те приемы, которые оправдывали себя в С не всегда применимы в С++. И наоборот. В любом случае, надо знать особенности того или иного языка, того или иного подхода. Везде есть свои тонкости. 3. И объектная реализация тоже. Возьми для примера Windows 3.1 - типичная ОО система, но написана без применения С++, или любого другого ОО языка. |