> > > Уважаемые, вы зря спорите. > > > Стандарт ANSI однозначно определяет Си как > > процедурный, > > > > Это ж где в стандарте "ISO/IEC 9899:1990, Programming > > languages - C" > > > > > Си++ как ООЯ. Все остальное от лукавого =) > > > > или в стандарте "ISO/IEC 14882:2003, Programming > languages > > — C++" такое написано?
Подтверждающая слова, которые я выделил болдом. А то понимаете ли какая незадача. Волею судеб у меня есть оба этих стандарта и у меня не вышло найти "однозначно определяющие" пункты. Вот хочу, чтобы Вы мне помогли избавиться от своей неграмотности
> Вам нужна точная фраза? И может быть чистый Си держит > полиморфизм, перегрузку операторов?
Может напомнить Вам, КАКИМИ были первые компиляторы C++ или сами вспомните?
То что в C мало встроенных средств ОО-разработки. С этим пожалуй соглашусь. Но C++ ведь тоже не Smalltalk, который считается одним из самых близких к идеальному ОО языку. Тем не менее в C++ больше встроенных средств для ОО, чем в C - с этим трудно не согласиться. Таким образом вести ОО разработку на C++ удобнее.
НО!!! Ведь была однозначно указана платформа. Человеку, сидящему под линуксом насрать на удобство. Более того, заявления о том, что не особо хочется трахать мозг конфигурацией X-сервера (видеокарты, шрифтов, раскладки и пр..), подбором ключей для монтирования и записи CD-ков и пр., воспринимаются примерно "А, лузер, не хватает мозгов ну и сиди в своей винде". Так что совершенно не факт на чем в данном случае вести разработку.
Ну а Ваша попытка сослаться на стандарт тоже не сделала Вам чести.
> ООП -- это стиль программирования, а не язык. Поэтому ОПП - это парадигма программирования, а не стиль.
> принципы ООП можно реализовать и на Си. Принципы ООП можно реализовать и в Ассемблере, но нужно ли это?
> Доказательство: вот такая вот дока: > http://netsago.ellsec.org/download/ooc.PDF Если в языке возможно что-либо реализовать, то это еще не значит, что он имеет для этого все средства.
Просто делюсь информацией.23.06.06 20:16 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member Отредактировано 23.06.06 20:26 Количество правок: 1
> > ООП -- это стиль программирования, а не язык. Поэтому > ОПП - это парадигма программирования, а не стиль. Парадигма определяет стиль ;).
> > принципы ООП можно реализовать и на Си. > Принципы ООП можно реализовать и в Ассемблере, но нужно ли > это? На самом деле, не всех устраивает реализация принципов ООП, представленная средствами C++.
> > Доказательство: вот такая вот дока: > > http://netsago.ellsec.org/download/ooc.PDF > Если в языке возможно что-либо > реализовать, то это еще не значит, что он имеет для этого > все средства. То есть что-то реализовать можно (я употребил именно это слово), но средств для этого нет? Ну, это уже вопрос владения логикой ;)).
Ну, а в целом, действительно, просто делюсь информацией.
Тоже делюсь информацией23.06.06 21:25 Автор: Heller <Heller> Статус: Elderman Отредактировано 23.06.06 21:26 Количество правок: 1
> > > ООП -- это стиль программирования, а не язык. > Поэтому > > ОПП - это парадигма программирования, а не стиль. > Парадигма определяет стиль ;). Но не наоборот ;)
(а вообще и само утверждение спорное)
> > > > принципы ООП можно реализовать и на Си. > > Принципы ООП можно реализовать и в Ассемблере, но > нужно ли > > это? > На самом деле, не всех устраивает реализация принципов ООП, > представленная средствами C++. Не всех. Но на C++ программирует большинство и я еще ни разу не видел языка, у которого объективно есть более рациональный подход к ООП.
> > > Доказательство: вот такая вот дока: > > > http://netsago.ellsec.org/download/ooc.PDF > > Если в языке возможно что-либо > > реализовать, то это еще не значит, что он имеет для > этого > > все средства. > То есть что-то реализовать можно (я > употребил именно это слово), но средств для этого нет? Ну, > это уже вопрос владения логикой ;)). Программа, написанная на C++ с использованием ООП, жпеговская картинка из Фотошопа, mp3-песенка - это все лишь набор единиц и нулей. То есть ты хочешь сказать, что в любом HEX-редакторе заложены "средства" сочинять mp3 и рисовать картины?
То что никто этого не делает, наверное, действительно вопрос владения логикой ;)
Re23.06.06 22:33 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
> > > > ООП -- это стиль программирования, а не > язык. > > Поэтому > > > ОПП - это парадигма программирования, а не стиль. > > Парадигма определяет стиль ;). > Но не наоборот ;) > (а вообще и само утверждение спорное)
> > > > принципы ООП можно реализовать и на Си. > > > Принципы ООП можно реализовать и в Ассемблере, но > > нужно ли > > > это? > > На самом деле, не всех устраивает реализация принципов > ООП, > > представленная средствами C++. > Не всех. Но на C++ программирует большинство и я еще ни > разу не видел языка, у которого объективно есть более > рациональный подход к ООП.
Большинство на нем программирует, потому что в универе так научили. Некоторые, действительно, осознанно выбирают плюсы. Не суть, в общем. Речь-то не о том была.
> > > > Доказательство: вот такая вот дока: > > > > http://netsago.ellsec.org/download/ooc.PDF > > > Если в языке возможно что-либо > > > реализовать, то это еще не значит, что он имеет > для > > этого > > > все средства. > > То есть что-то реализовать можно (я > > употребил именно это слово), но средств для этого нет? > Ну, > > это уже вопрос владения логикой ;)). > Программа, написанная на C++ с использованием ООП, > жпеговская картинка из Фотошопа, mp3-песенка - это все лишь > набор единиц и нулей. То есть ты хочешь сказать, что в > любом HEX-редакторе заложены "средства" сочинять mp3 и > рисовать картины? > > То что никто этого не делает, наверное, действительно > вопрос владения логикой ;)
Ну, подобного я действительно не втречал, но, опять же, речь не об этом. Я привел тебе в пример конкретную доку, чтобы показать, что и как можно делать с помощью Си. И так делают. О чем споришь-то? ;)
Я бы сказал, что сама русскоговорящая Википедия -...23.06.06 23:13 Автор: Heller <Heller> Статус: Elderman
> > > > > ООП -- это стиль программирования, а не > > язык. > > > Поэтому > > > > ОПП - это парадигма программирования, а не > стиль. > > > Парадигма определяет стиль ;). > > Но не наоборот ;) > > (а вообще и само утверждение спорное) > > Утверждение, что парадигма программирования определяет его > стиль ни разу не спорное: > http://ru.wikipedia.org/wiki/Парадигма_программирования
Я бы сказал, что сама русскоговорящая Википедия - сомнительный источник. Открой ту же страницу, но на английском: "A programming paradigm is a paradigmatic style of programming". Это разные вещи (в общем-то с таким понятием как "стиль программирования" я вообще лично не сталкивался, хотя слышать о нем приходилось много).
> > > > > принципы ООП можно реализовать и на Си. > > > > Принципы ООП можно реализовать и в > Ассемблере, но > > > нужно ли > > > > это? > > > На самом деле, не всех устраивает реализация > принципов > > ООП, > > > представленная средствами C++. > > Не всех. Но на C++ программирует большинство и я еще > ни > > разу не видел языка, у которого объективно есть более > > рациональный подход к ООП. > > Большинство на нем программирует, потому > что в универе так научили. Некоторые, действительно, > осознанно выбирают плюсы. Не суть, в общем. Речь-то не о > том была. Правда? А вот меня в Универе учили программировать на Паскале. А многие хорошие программисты вообще в институтах не учились. Ну да действительно не о том. Просто заявление, что "C++ выбирают потому что так сказали в универе" - тянет по масштабности на дискриминацию широких слоев населения. И вообще тема "C++ vs. все-все-все" уже достаточно широко избита. Самые ярые спорщики - паскалисты, которые единственное что могут разумного придумать, так это то что "C++ излишне усложнен" (само по себе смешное заявление). Вырвалось.
> > > > > > Доказательство: вот такая вот дока: > > > > > > http://netsago.ellsec.org/download/ooc.PDF > > > > Если в языке возможно > что-либо > > > > реализовать, то это еще не значит, что он > имеет > > для > > > этого > > > > все средства. > > > То есть что-то реализовать > можно (я > > > употребил именно это слово), но средств для этого > нет? > > Ну, > > > это уже вопрос владения логикой ;)). > > Программа, написанная на C++ с использованием ООП, > > жпеговская картинка из Фотошопа, mp3-песенка - это все > лишь > > набор единиц и нулей. То есть ты хочешь сказать, что в > > любом HEX-редакторе заложены "средства" сочинять mp3 и > > рисовать картины? > > > > То что никто этого не делает, наверное, действительно > > вопрос владения логикой ;) > > Ну, подобного я действительно не втречал, но, опять же, > речь не об этом. Я привел тебе в пример конкретную доку, > чтобы показать, что и как можно делать с помощью Си. И так > делают. О чем споришь-то? ;) Я не спорю, а объясняю очевидные вещи, в которых ты запутался ;)
ООП - это надстройка на процедрным программированием. И надтройка не стиллистическая, а скорее синтаксическая, заложенная в самом языке.
Еще пример: любая математическая задача, требующая численных результатов, сводится в конце концов к арифметике. Любой интеграл в конечном счете придется считать циферками. Вот что говоришь ты: "Я тебе могу показать, что интеграл можно взять не пользуясь интегрированием!". И это действительно можно сделать (хотя бы геометрическими методами). Однако можно ли из этого делать вывод, что "интегрирование - это всего лишь такой стиль арифметики"?
ЗЫ. И вообще это флейм и оффтоп. Пора завязывать.
Re24.06.06 00:32 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
Я тут про Паскаль ни слова не сказал, кстати. А сказал я то, что в С++, возможно, представлена не самая лучшая реализация принципов ООП. И показал реально хорошую доку. И сделал это для того, чтобы у интересующегося товарища ООП ассоциировался не только с С++, какой вывод он, возможно бы сделал из твоего ответа, а отталкивался от реально поставленной задачи и программировал не шаблонами. И ни в чем я не запутался, я говорю вполне конкретные вещи, которые ни каких-либо дополнительных объяснений, ни оспаривания, ИМХО, не требуют. Насчет русскоязычной википедии согласен.
> Еще пример: любая математическая задача, требующая > численных результатов, сводится в конце концов к > арифметике. Любой интеграл в конечном счете придется > считать циферками. Вот что говоришь ты: "Я тебе могу > показать, что интеграл можно взять не пользуясь > интегрированием!". И это действительно можно сделать (хотя > бы геометрическими методами). Однако можно ли из этого > делать вывод, что "интегрирование - это всего лишь такой > стиль арифметики"?
Абсолютно неуместный пример.
> ЗЫ. И вообще это флейм и оффтоп. Пора завязывать.
> > Уважаемые, вы зря спорите. > > Стандарт ANSI однозначно определяет Си как > процедурный, > > Это ж где в стандарте "ISO/IEC 9899:1990, Programming > languages - C" > > > Си++ как ООЯ. Все остальное от лукавого =) > > или в стандарте "ISO/IEC 14882:2003, Programming languages > — C++" такое написано? Вам нужна точная фраза? И может быть чистый Си держит полиморфизм, перегрузку операторов?
Да, мне нужна точная фраза.06.07.06 14:00 Автор: amirul <Serge> Статус: The Elderman
> > > Уважаемые, вы зря спорите. > > > Стандарт ANSI однозначно определяет Си как > > процедурный, > > > > Это ж где в стандарте "ISO/IEC 9899:1990, Programming > > languages - C" > > > > > Си++ как ООЯ. Все остальное от лукавого =) > > > > или в стандарте "ISO/IEC 14882:2003, Programming > languages > > — C++" такое написано?
Подтверждающая слова, которые я выделил болдом. А то понимаете ли какая незадача. Волею судеб у меня есть оба этих стандарта и у меня не вышло найти "однозначно определяющие" пункты. Вот хочу, чтобы Вы мне помогли избавиться от своей неграмотности
> Вам нужна точная фраза? И может быть чистый Си держит > полиморфизм, перегрузку операторов?
Может напомнить Вам, КАКИМИ были первые компиляторы C++ или сами вспомните?
То что в C мало встроенных средств ОО-разработки. С этим пожалуй соглашусь. Но C++ ведь тоже не Smalltalk, который считается одним из самых близких к идеальному ОО языку. Тем не менее в C++ больше встроенных средств для ОО, чем в C - с этим трудно не согласиться. Таким образом вести ОО разработку на C++ удобнее.
НО!!! Ведь была однозначно указана платформа. Человеку, сидящему под линуксом насрать на удобство. Более того, заявления о том, что не особо хочется трахать мозг конфигурацией X-сервера (видеокарты, шрифтов, раскладки и пр..), подбором ключей для монтирования и записи CD-ков и пр., воспринимаются примерно "А, лузер, не хватает мозгов ну и сиди в своей винде". Так что совершенно не факт на чем в данном случае вести разработку.
Ну а Ваша попытка сослаться на стандарт тоже не сделала Вам чести.
Опять же, вопрос логики.06.07.06 11:25 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
Я тут по ходу треда дал ссылку на документ, где написано, КАК это сделать.
К тому же, речь идет как раз не о стандартах и шаблонах, а о нестандартному подходу к программированию в целях максимальной оптимизации.
В целом я больше согласен, чем не согласен06.07.06 14:20 Автор: amirul <Serge> Статус: The Elderman
> К тому же, речь идет как раз не о стандартах и шаблонах, а > о нестандартному подходу к программированию в целях > максимальной оптимизации.
Но здесь на мой взгляд ты попал под воздействие стереотипов. C++ ничуть не медленнее C. Из средств, которые дают сравнительно большой оверхед в рантайме в плюсах только исключения и RTTI. Но эффективность исключений измеряется не количеством исключений в единицу времени, а УДОБСТВОМ передачи информации об исключении из места его возникновения (например библиотеки) в место, где известно, что с ним делать (в клиента этой библиотеки). Ну RTTI - это вообще страшная вещь. Ситуаций, когда он дейтствительно необходим очень мало, но есть криворукие программеры сующие его куда надо и куда не надо.
Твоя правда.07.07.06 00:19 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
Насчет скорости C++ и стереотипов согласен.
Я просто за то, что если в данной конкретной ситуации наиболее оптимальным решением будет использование C, то надо использовать C, а не уходить в сторону шаблонов и стандартов, которые вдолбили в мозг в универе/интернете или где-либо ещё. Грубо говоря, я имею ввиду то, что думать надо.
Огромное спасибо за разъяснение. С уважением. Пантер.22.06.06 21:05 Автор: panter_dsd Статус: Незарегистрированный пользователь