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


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0254 ]   [ 17 queries used ]   [ Generated: 28.03.24, 12:58 GMT ]