powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Преподавать C++ или C#?
25 сообщений из 230, страница 5 из 10
Преподавать C++ или C#?
    #37929448
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацвсе что нужно - это лишь починить собственный мозг, в части понимания того, что
object->method(x, y)
мало чем отличается от
class_method(object, x, y)После этой починки ещё настроить маленькой отвёрточкой, чтоб получить правильное
object->_vtable->class_method(object, x, y)
а то и
object->_vtable->class_method(object->_vtable->base, x, y)
и иметь достаточно терпения, чтобы это писать, причём без единой лишней ошибки.
и иметь ещё больше терпения, чтобы заменить все невиртуальные вызовы виртуальными, когда в будущем что-то серьёзно поменяется, причём тоже без единой лишней ошибки.

И тогда да, никакой разницы. Главное, не портировать на Knights Corner, потому что выбор между правкой пары темплетов в плюсовом коде и взрывом мозга в сишном будет очень болезненным пинком по самолюбию си-зацикленного кодера.

Ну элементарная же мысль, что для разных работ нужны разные инструменты и выбирать инструмент надо с умом, а не с убеждением, что один для лохов а другой нет. Почему она не до всех доходит?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929450
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceКсеноцефал описывал некую элиту программирования, где С++ (и как я понял, ООП вообще) - далеко не основной инструмент. В почете ФП, лиспы и т.п.
Ксеноцефал-Луговский - ЕМНИП ембедщик. Он сам о себе так говорил.
И вообще я-бы не воспринимал слишком серъёзно его вбросы. Он - не
та истина в последней инстанции. Хотя общую характеристику рынка
специалистов он давал правильную.

Я бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников.
Время само всё расставит на свои места. Если потребность в ФП-кодинге
будет (будут задачи) то и будут нужны специалисты. На самом деле
ФП существует вокруг нас (к примеру любая грамматика описываемая
в терминах Бэкуса-Науэра требует применения ФП парадигмы для
создания транслятора. Хороший годный парсинг HTML и XSL-transform
это тоже задачи из этой области и работа с regexp. Можно брать
Python и громогласно заявить что вы функционально-программируете.
Где-то в документации было заявлено что питон - ЯФП. Как и насколько
функционально это вопрос спорный но главное - начать.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929451
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацkosh the best> Вот это все выше - феерическая глупость. На простом C вполне можно объектно-ориентированного программировать. Вот, просвещайся:
> http://www.cs.rit.edu/~ats/books/ooc.pdf
Ох, сколько пафоса. Так и ждал, когда ссылку на эту книжку вбросят.
Рабочее ООП на си - это com под винду и gobject в линуксах, а в твоей книжке ранние эксперименты.

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

А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить
собственный мозг, в части понимания того, что

object->method(x, y)

мало чем отличается от

class_method(object, x, y)

ну и class от struct (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы).

ООП можно написать на С, наверно можно и полиморфизм реализовать через указатели на функции.
Но ООП язык от не-ООП отличает то, что все эти возможности встроены в семантику языка и их не нужно реализовывать искуственно.
Ни кто в здравом уме не будет преподавать ООП на С.

Не соглашучь с вами. Совсем без наследование именно в реальных проектах обойтись нельзя.
Просто сейчас в разных языках появились альтернативы, такие как mixins и наследование в его изначальном виде можно и не использовать.
В структура на С, на сколько я помню, нет возможности использовать mixin-ы, только функции-операторы.
Вот что бы я подверг сомнению (в С++ в частности) так это множественное наследование. Оно чрезмерно усложняет язык не давая соизмеримых приемуществ.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929454
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Чем вы их предлагаете заменять?
Ну вот, например, наследование в других языках заменено интерфейсами или вообще прототипами. Типа другой механизм реализации полиморфизма. В с++ - используем иерархии наследования + механизм виртуальных функций - получаем рабочий полиморфизм. В других системах по другому это сделано.
Опять же инкапсуляцию лучше реализовывать отдельно от ооп-подсистемы в языке. Например, посредством модулей. Ну как сделано в common lisp. Ооп там - clos, инкапсуляция - пакеты.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929465
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац
А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить
собственный мозг,

Ну так и в ушах можно отверткой ковырять. И вовсе от этого уши не обязаны истечь кровью. Но вы ковыряйте хоть отверткой, хоть дрелью. А я, как нормальный человек, сделаю, по сути тоже самое, ватными палочками (которые, по ходу, тоже не рекомендуются для данного действия). Зато у вас мозг починен и вы можете выложить результат на ютуб на радость всем завидующим!


От невидаль, реализовать вручную на СИ объектно-ориентированные принципы. Чем бы дитя не тешилось. Но зачем предлагать страдать херней остальным? Страдайте молча.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929468
iv_an_ruПроясним ситуацвсе что нужно - это лишь починить собственный мозг, в части понимания того, что
object->method(x, y)
мало чем отличается от
class_method(object, x, y)После этой починки ещё настроить маленькой отвёрточкой, чтоб получить правильное
object->_vtable->class_method(object, x, y)
_vtable нужно лишь для наследования.

А вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза.

А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а?


iv_an_ru[а то и
object->_vtable->class_method(object->_vtable->base, x, y)
и иметь достаточно терпения, чтобы это писать, причём без единой лишней ошибки.
и иметь ещё больше терпения, чтобы заменить все невиртуальные вызовы виртуальными, когда в будущем что-то серьёзно поменяется, причём тоже без единой лишней ошибки.

Еще раз. Виртуальный методы, как и механизм exception - это дыра в голове. Такая себе дырища, рассадник глупости!

Тебе реально нужны виртуальные методы и исключения? А если взять, и посидеть, хорошо подумать?

iv_an_ruИ тогда да, никакой разницы. Главное, не портировать на Knights Corner, потому что выбор между правкой пары темплетов в плюсовом коде и взрывом мозга в сишном будет очень болезненным пинком по самолюбию си-зацикленного кодера.

Ну элементарная же мысль, что для разных работ нужны разные инструменты и выбирать инструмент надо с умом, а не с убеждением, что один для лохов а другой нет. Почему она не до всех доходит?

Потому что нужно не инструменты выбирать, а задачу решать.

А в случае C++ происходит строго обратное - сначала выбирается "инструмент", а потом происходит его натягивание на задачу (хотя начинать нужно с концептуальной модели, где вообще нет речи про классы, методы и темплейты).

Хотя тебе пока, возможно, это не понять (и возможно никогда уже - ООП мозга - редко излечимо).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929469
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рубистООП можно написать на С, наверно можно и полиморфизм реализовать через указатели на функции.
Но ООП язык от не-ООП отличает то, что все эти возможности встроены в семантику языка и их не нужно реализовывать искуственно.
Ни кто в здравом уме не будет преподавать ООП на С.
Я позволю себе добавить что ОО-программировать можно почти на любом современном языке.
Вопрос только в том позиционируется ли этот язык изначально как поддерживающий ООП
(ключевые слова virtual, interface, implements, extends e.t.c) или нет. Очевидно
что С - это вобщем-то портабельный ассемблер на котором вы можете
сделать ВСЁ. Но когда этого ВСЕГО становится много вы начинаете
думать об удобстве и об автоматизации процесса. И здесь не надо
быть гиком. Надо здраво считать количество символов которые должен
набить разработчик чтобы получить эффект ООП и надо учитывать
вероятность ошибки. Ведь её исправлять возможно будет другой
из команды e.t.c. А ошибки в программа как и "налоги" и "смерть"
будут всегда. Они - вечны.

P.S. В прошлом году купил себе двухтомник Седжвика (Алгоритмы) в примерах на С.
И именно искал на С а не на С++. У меня стояла задача углубить некоторые
знания в предметной области а не брейн-факать себе мозги очередными
шаблонами и функторами и прочими сладостями плюсов. Мне нужен
был рафинированный алгоритм в чистом виде.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929470
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить
> собственный мозг, в части понимания того, что
> object->method(x, y)
> мало чем отличается от
> class_method(object, x, y)
> ну и class от struct (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы).
Да ну. Что ты говоришь. Прочитай ее сначала, прежде чем ссылками бросаться. Там чуваку в конце все равно пришлось внешний препроцессор заюзать. Одним встроенным препроцессором и магией void* ему не получилось обойтись.

> И COM и gobject - это еще одно overbloating, применять которые можно лишь в исключительных случаях, когда по другому
> ну никак к какой библиотеке подключиться нельзя.
О да. Готовые отработанные механизмы для вас - overbloating, а велосипедить свой ооп на си - типа норм.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929479
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Виртуальный методы, как и механизм exception - это дыра в голове.
Думаю, дискуссию с данным товарищем на этом можно закрывать. Виртуальные методы ему не нужны. Ок. Пофиг, что на этом основано вообще все современное программирование.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929480
рубистНе соглашучь с вами. Совсем без наследование именно в реальных проектах обойтись нельзя.
а) всем плевать на твое лично несогласие, не подкрепленное вообще ничем рациональным
б) обойтись вполне можно и нужно - если ты используешь ООП в прикладном коде (а не в библиотеках) это означает только одно - или поражение мышления, или крайне кривые и недоделанные эти самые библиотеки. А чаще всего - оба симптома.

рубистПросто сейчас в разных языках появились альтернативы, такие как mixins и наследование в его изначальном виде можно и не использовать.
В структура на С, на сколько я помню, нет возможности использовать mixin-ы, только функции-операторы.

Нет ни одной разумной причины для обязательного использования mixin, начнем с этого?

рубистВот что бы я подверг сомнению (в С++ в частности) так это множественное наследование. Оно чрезмерно усложняет язык не давая соизмеримых приемуществ.

mixin - это очередная вариация на тему множественного наследования. Говоря проще - натягивания задачи на инструмент,
притягивания за уши очередного проходного синтаксического сахара, который только усложняет реализацию и сопровождение.

В топку. Идите поищите еще какую-нибудь гадость на полу, попробуйте на вкус, вдруг понравится?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929483
kosh the best> Виртуальный методы, как и механизм exception - это дыра в голове.
Думаю, дискуссию с данным товарищем на этом можно закрывать. Виртуальные методы ему не нужны. Ок. Пофиг, что на этом основано вообще все современное программирование.

Зая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql и остальных проектах на чистом C, а потом мы с тобой поговорим о современном программировании, ок?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929489
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацА вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза.
А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а?В изрядном большинстве случаев устраивает. Но если, чьорт пабьерьи, мне надо именно наследование и именно ради vtable, то зачем мне портить код корявостями, если я могу просто взять чуть-чуть другой компилятор?

И вы мою пуговицу или оставьте в покое, или купите её у меня.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929499
kosh the best> А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить
> собственный мозг, в части понимания того, что
> object->method(x, y)
> мало чем отличается от
> class_method(object, x, y)
> ну и class от struct (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы).
Да ну. Что ты говоришь. Прочитай ее сначала, прежде чем ссылками бросаться. Там чуваку в конце все равно пришлось внешний препроцессор заюзать. Одним встроенным препроцессором и магией void* ему не получилось обойтись.
Эта "книга" - лишь пример, объясняющий как работает любой ООП язык.

А использовать или нет вот те "заменители" - это личный выбор каждого.

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

А любой, который думать не умеет, зато умеет подражать (как и остальные представители животного мира) - будет вещать "истины" о "современном программировании".


kosh the best> И COM и gobject - это еще одно overbloating, применять которые можно лишь в исключительных случаях, когда по другому
> ну никак к какой библиотеке подключиться нельзя.
О да. Готовые отработанные механизмы для вас - overbloating, а велосипедить свой ооп на си - типа норм.

Именно так. Они кривые, косые, толстые и тормозные. Как и Boost и STL. Ничем не оправданная сложность.

kosh the best> а велосипедить свой ооп на си - типа норм.
Вполне.

Тем более, когда "велосипедить" - это просто программировать в рамках того синтаксиса и идиом, которые остаются неизменными еще с конца 70-х годов (открой исходники System V или UCB BSD, там ООПа - по самое не хочу).

Еще раз. То, что ты не понимаешь, как программировать на C объектные модели - это лишь твое ограничение мозга, а вовсе не недостаток базового, стандартного и всем знакомого C.

Ну да, K&R в своей книжке для самых маленьких ничего не написали про ООП, и что с того? Читай другие книги, много думай.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929506
iv_an_ruПроясним ситуацА вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза.
А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а?В изрядном большинстве случаев устраивает. Но если, чьорт пабьерьи, мне надо именно наследование и именно ради vtable,
В 100% случаев оно тебе на самом деле не нужно, просто у тебя голова отформатирована (приняла форму куба, к примеру) на виртуальные методы.

Это нормально - люди в 18-м веке носили букли и парики пудрили, все думали что по другому ну никак нельзя!
Все же ходят в париках, а вдруг я без парика, как-же так, да? Неудобно, не современно, засмеют ведь!

iv_an_ru то зачем мне портить код корявостями, если я могу просто взять чуть-чуть другой компилятор?
И вы мою пуговицу или оставьте в покое, или купите её у меня.
Тебе - незачем, поверь. Оставайся в рамках ограниченности своего мышления, бог с тобой, не велика потеря.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929508
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацЗая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql[хамский режим on]Зая, ты сначала покажи свой код, закоммиченный в linux kernel или mysql, а потом гни пальцы.[хамский режим off]
Потому что люди, у которых квалификации хватало коммитить и туда и туда, относятся к вопросу куда более спокойно, и вряд ли все стройными рядами пойдут подписываться под вашими текстами :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929513
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуаца чем тебя, любезный, обычный вызов фунции не устраивает, а?
А чем тебя не устраивает большой коробок для хранения одежды и прочего хлама вместо гардероба с отделами и полками? Не нравится, когда все в кучу сброшено?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929517
iv_an_ruПроясним ситуацЗая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql[хамский режим on]Зая, ты сначала покажи свой код, закоммиченный в linux kernel или mysql, а потом гни пальцы.[хамский режим off]
И что, это починит твои мозговые ограничения? Избавит от форматированного шаблонированного мышления?

Сильно сомневаюсь.

iv_an_ruПотому что люди, у которых квалификации хватало коммитить и туда и туда, относятся к вопросу куда более спокойно, и вряд ли все стройными рядами пойдут подписываться под вашими текстами :)

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

Ну ок, не чини, продолжай писать виртуальные методы на C++, на радость окружающим тебя и уважающий тебя лично, морально совместимых с тобой людей, в чем проблема?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929521
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац , ручник дерни - ты уже выдохся и из тебя попер троллизм дедсадовского уровня.
Поди передохни чтоль.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929524
Edd.DragonПроясним ситуаца чем тебя, любезный, обычный вызов фунции не устраивает, а?
А чем тебя не устраивает большой коробок для хранения одежды и прочего хлама вместо гардероба с отделами и полками? Не нравится, когда все в кучу сброшено?

Ну и к чему ты это понаписал? Для программ на C отменили функциональную, структурную декомпозицию, сокрытие области видимости?

Давно?

Однако сколько нового узнаешь порой.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929530
Edd.Dragon Проясним ситуац , ручник дерни - ты уже выдохся и из тебя попер троллизм дедсадовского уровня.
Поди передохни чтоль.

Троллизм детского уровня - это ты про себя точно подметил. Ничего умнее, чем про гардероб с полками выдавить из себя не смог, но виноват в этом - вот тот самый противный чувак, который нагло смется надо мной.

Давай-ка я ему скажу "Дерни ручник", тогда мое "разоблачение" про "гардероб" будет выглядеть не так глупо, ага.

Еще чего дернуть присоветуешь?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929538
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929539
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проясним ситуац,

действительно, проясним ситуацию. ООП отстой, ФП - миф, рулит процедурное программирование, например, чистый С. Для решения практически любой задачи (кроме веба) можно брать С и не париться. Так?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929540
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацНу и к чему ты это понаписал?
Давай посчитаем, сколько раз ты этот вопрос написал в этом топике. А потом ты рассуждаешь о шаблонности мышления других. Сначала со своим разберись и с его рамками, прежде чем других носом неизвестно куда тыкать.

А касательно функционального программирования, так тоже можно испросить - на кой ляд вообще делить код на функции и распихивать по сотням файлов проекта? Что тебе дают эти вызовы функций? В чем профит? Пиши одну простыню. Не проблема в ней серфить и смотреть ее отдельные куски одновременно в нескольких окошках.

- Нафига трусы! Можно ходить в штанах и без трусов! Вы какие-то ограниченные!
- Чувак, можно ходить вовсе без одежды.

Вот и вся полемика.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929544
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацТроллизм детского уровня - это ты про себя точно подметил.
Пойду застрелюсь что ли.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929548
iv_an_ruПоскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :)

Забавно. Т.е. ты 12 лет не практикуешь то, о чем тут якобы "экспертно" говоришь?
Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею".

Зачем это тебе?

Решил поиграть в доказательства от противного?

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

Все в мире используют наследование и обобщенное программирование! Только мамонты, доживающие свои последние годы - не в теме, но они уйдут сами, как динозавры и ламповые телевизоры.

И что с того?

Учите дети Java и C++, не прогадаете!
...
Рейтинг: 0 / 0
25 сообщений из 230, страница 5 из 10
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Преподавать C++ или C#?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]