powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Преподавать C++ или C#?
230 сообщений из 230, показаны все 10 страниц
Преподавать C++ или C#?
    #37927720
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И опять тема холивара. Но вдруг кто-то выскажет ценную идею?

Ситуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Вопрос: на базе чего это лучше делать - С++ или C#? (пробовал и так, и так - не могу пока понять, что лучше подходит)

Критерии:
с моей точки зрения, курс должен научить студентов мыслить объектно. Все подробности просто не успеть охватить, но если будет хороший фундамент - они дальше сами, на практике, подтянут что нужно (кто захочет, конечно). С этой точки зрения С++ предпочтительнее, поскольку:
1. Дает более глубокое понимание того, как это все работает.
2. Дает свободу дальнейшего пути: можно изучить C#\Java (после С++ это будет легче, чем идти наоборот), захотят уйти со стека MS - пожалуйста, Qt, мир Linux и пр. А с C# им будет сложно уйти в С++, и они по моей вине станут "заложниками" MS-технологий.

С точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу. Начинается это уже при написании диплома в конце обучения: C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение. ДА и в целом, на C# ряд типовых задач (формочки, БД, сеть, графика) они решат легче и быстрее, без всяких сторонних библиотек и пр. Судя по вакансиям, .net-разработчики как-то более востребованы, чем плюсовики.

Такая вот дилемма. Поделитесь опытом и мыслями?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927724
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UPD: да, и забыл упомянуть еще и такой момент: переход C=>C++ более прост, чем C=>C# (IMHO).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927738
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО 8 лекций - не так уж и много, чтобы забивать им еще голову новым языком.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927751
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, конечно, "C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение", но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927753
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace,

Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную". Для формочек, положим, Qt - с него на C# тоже несложно.
Хотя, воля Ваша, "цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи и при разных её трактовках будут получаться разные советы. Скажем, C++ позволяет хотя бы пунктиром наметить, как всё то же самое можно было бы получить на чистом C, что полезно для понимания подлежащей механики, но хороший вопрос, насколько оно в Вашем случае надо.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927887
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettИМХО 8 лекций - не так уж и много, чтобы забивать им еще голову новым языком.

ООП стоит в программе, ну и штука это нужная. Как его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927903
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindos, но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++.

Вы поставьте себя на место человека, который пока не знает почти ничего! Ему придется очень попотеть, чтобы подключить boost и пр. Да, опыт этот нужен - но не все сразу. Зачем сейчас человеку заморачиваться с поиском хорошей библиотеки для UI, качать какие-то фреймворки для работы с сетью (тот же boost::asio), когда в .net это все есть, и используется одним кликом мыши?

Скажу больше. А может для лучшего усвоения ООП человеку и не нужно отвлекаться на технические заморочки? Преимущество .net на C++ в богатстве стандартной библиотеки.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927914
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AbstractionTopSpace,
Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную".
В C# подобные вещи есть, просто слегка завуалировано. Есть value-types и reference-types. И в чем-то это даже проще: класс - это всегда ссылка на объект, число - это всегда значение, и всего делов.

AbstractionTopSpace,
"цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи
Да, а что делать? Есть примерная программа, и никто не скажет, как оно должно быть, из каких критериев исходить. Отсюда и вопросы)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927923
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpacepirovindos, но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++.

Вы поставьте себя на место человека, который пока не знает почти ничего! Ему придется очень попотеть, чтобы подключить boost и пр. Да, опыт этот нужен - но не все сразу. Зачем сейчас человеку заморачиваться с поиском хорошей библиотеки для UI, качать какие-то фреймворки для работы с сетью (тот же boost::asio), когда в .net это все есть, и используется одним кликом мыши?

Скажу больше. А может для лучшего усвоения ООП человеку и не нужно отвлекаться на технические заморочки? Преимущество .net на C++ в богатстве стандартной библиотеки.

Согласен, если про "БД, сеть", то здесь есть преимущество в стандартных библиотеках у .net.
Я в посте прямо написал, что не вижу преимуществ для "быстро наклепать симпатичное Desktop-приложение".

Но если
TopSpace Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП
то при чем тут БД и сеть?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927929
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceКак его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально.
по крайней мере у С и С++ базовая часть как-никак общая.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927952
Fantomny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЦель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.
Имхо С# проще для старта.
Это даст возможность быстро и просто применить навыки и получить толк .
На чистые плюсы - очень мало времени. Уровень их знаний будет "совсем не коммерческим"
То есть курс прошел, экзамен сдал - но написать толком ничего не могу

Вопрос, насколько они знают С.
Если тоже "по верхам" - то эти базовые знания подойдут для обоих языков.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927959
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindos
Согласен, если про "БД, сеть", то здесь есть преимущество в стандартных библиотеках у .net.
Я в посте прямо написал, что не вижу преимуществ для "быстро наклепать симпатичное Desktop-приложение".

Но если
TopSpace Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП
то при чем тут БД и сеть?

Да вот даже просто наклепать формочку - на C# в разы проще, чем в MFC. А БД и сеть - это просто то, что понадобится вскоре после формочек.

Про UI: можно бы взять Qt, но.. Изучить MFC и Qt - не успеть. Только Qt - сомнительная идея, по причине того, что MFC (да, до сих пор!) чаще встречается на старых проектах, некоторые работодатели выставляют даже требования в вакансии: опыт работы в Visual Studio (какой блин там опыт!). Тут опять история повторяется: как освоивший С++ легко справится с C#, так освоивший MFC будет петь от счастья работая с Qt.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927965
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace А БД и сеть - это просто то, что понадобится вскоре после формочек.
Тогда не вводите людей в заблуждение, поменяйте Цель.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927970
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettTopSpaceКак его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально.
по крайней мере у С и С++ базовая часть как-никак общая.

Вот я тоже про это думал, как сделать переход? В С++ можно первую лекцию вообще не говорить про классы, и рассмотреть отличия С++ от С (перегрузка функций, оператор new, модификаторы static, inline и т.п.). Потом плавно перейти к классам. А в C# даже строку на экран не вывести без объявления класса со public static void Main.

Но может это только мне кажется проблемным? Есть ведь и обратный эффект: трудно учить похожие языки. Попробуйте параллельно выучить испанский и итальянский, например) Путаница. Студенты часто путаются между C и C++, а C# все-таки подальше от С.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927989
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FantomnyИмхо С# проще для старта.
Это даст возможность быстро и просто применить навыки и получить толк .
На чистые плюсы - очень мало времени. Уровень их знаний будет "совсем не коммерческим"
То есть курс прошел, экзамен сдал - но написать толком ничего не могу


Согласен, но тут тоже палка о двух концах. Да, почему бы не давать людям легкий и мощный инструмент, позволяющий клепать программы - они быстро найдут себе хоть какую-то работу. Зато это вбросит в индустрию очередную порцию низкоквалифицированных разработчиков, от чего индустрия только страдает. С другой стороны: а может давать мощную основу (С++ за 8 супер-наполненных лекций и 4 лабы, сложностью как курсовик каждая) - тогда произойдет отсев, экзамен сдадут только те, кому это действительно интересно. Вариант хорош для общего блага, но не приятен желающим "легкого старта". Ну и сквозь такое сито могут не пройти потенциальные таланты, которые раскрылись бы позднее (видел пару примеров таких людей).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927995
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAbstractionTopSpace,
Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную".
В C# подобные вещи есть, просто слегка завуалировано. Есть value-types и reference-types. И в чем-то это даже проще: класс - это всегда ссылка на объект, число - это всегда значение, и всего делов.

AbstractionTopSpace,
"цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи
Да, а что делать? Есть примерная программа, и никто не скажет, как оно должно быть, из каких критериев исходить. Отсюда и вопросы)По первому - не проще. Особенно когда добавляется ключевое слово ref . То есть, объяснить-то можно, но как бы при этом не пришлось привлекать аргумент "it's magic" в значимых объёмах.

По второму - значит, надо конкретизировать. Если критериев нет, придумать какие угодно. Потолок наш лучший источник информации, в конце концов.
Скажем, "целью программы обучения является ознакомление студентов с объектной парадигмой; разъяснение (технических, эстетических) преимуществ объектного программирования по сравнению с процедурным; краткое ознакомление с UML-нотацией; обучение рассмотрению задач в терминах объектов и их взаимодействия, основам написания программ на поддерживающем ООП языке; первичное ознакомление с понятием шаблонов проектирования" - тогда это C#/Java.
Или "цель программы - ознакомление с принципами ООП, их реализацией на примере популярного языка программирования, понятий раннего и позднего связывания, их различий и преимуществ первого и второго; ознакомление с механиками обобщения алгоритмов (через наследование; через шаблоны); подробное рассмотрение механики динамического выделения ресурсов (памяти), освещение возникающих проблем и ООП-методов их разрешения; ознакомление с понятием библиотек классов, обучение их использованию в своих разработках" - тогда это C++.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928002
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindosTopSpace А БД и сеть - это просто то, что понадобится вскоре после формочек.
Тогда не вводите людей в заблуждение, поменяйте Цель.

Цель - ввести людей в ООП, но рисуя диаграммы и рассуждая о паттернах! Вспомните сами, с чего начинали. Нужен фан! Интересные примеры, прикольные задачи. Это в институте мы могли убить день ради реализации хитрого алгоритма для B-дерева. А тут - взрослые люди, выкраивающие свободное время на самообразование, не нужна им сухая теория, "такова селяви". Штуки вроде сетевого чата, клиента твиттера, простой игры, видеозахвата и т.п.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928027
Fantomny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(видел пару примеров таких людей).
У нас в физмат гимназии преподавали примерно так...
В результате кто "понимал и тянул" почти все стали тру-программерами

Но, удивительно, из тех кто не понимал (не успевал) и не тянул - половина стала
тоже программировать :)

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

Если бы у вас был годовой курс - то можно подготовить хороших плюсовиков. В вашем формате - имхо это сомнительно.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928029
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,

это уже довольно детальное описание цели. Это скорее не цель, а краткое содержание программы, т.к. остается вопрос: а ЗАЧЕМ человеку знать то-то и то-то?

Да, изучение ООП само по себе целью быть не может. Так что, речь может идти о:

а) Максимально эффективное "въезжание" в тему, чтобы как можно быстрее "встать на рельсы". Если не устроиться junior'ом, то хотя бы понять основы, и самостоятельно уже себя дотянуть. При этом подходе в курсе можно затрагивать элементы "профессиальной разработки", т.е. какие-то best practiсe на типичные ситуации, codestyle, методологии разработки, контроль версий и багтрекинг и т.п.
b) Получить максимуально фундаментальную подготовку, т.е. глубоко изучить "недры" ООП, не затрагивая "профессиональные реалии".

С одной стороны, первое человек получит уже на работе. С другой - оно ценнее, поскольку отражает реальный опыт, а не только толстые книги (которые они и так могут прочитать).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928036
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FantomnyЕсли бы у вас был годовой курс - то можно подготовить хороших плюсовиков. В вашем формате - имхо это сомнительно.

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

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Objective-C
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928072
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
товарищ лектор, сам то как, ответишь за полиморфизм?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928086
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinTopSpaceОни уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Objective-CИМХО, сомнительно. "Чистые" сигналы и концепция "класс как объект" - это хорошо, а вот отсутствие пространств имён, двойное именование аргументов методов, невозможность перегрузки функций - уже не айс. Есть риск застрять в этих частностях и деталях синтаксиса (только на объяснение того, что значит @property(weak, nonatomic) может уйти неприлично много времени).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928126
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЦель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Если изучить ООП и клепать веб-интерфейсы и обычные казуальные Windows-формочки
то пускай изучают С#. Это реально быстрый старт. Даже с точки зрения ООП
С++ вобщем-то не рулит. Его сила вовсе не в ООП а в шаблонах и мета-программировании.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928144
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928159
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мнение Луговского весьма интересно к рассмотрению. Только оно рвёт шаблон
в разрезе рынка вакансий.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928163
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЯ тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?)Хорошо бы ссылку на конкретное мнение, а не на тему на много страниц.
В любом случае, нет понятия "язык быдла", потому что оно не изобретает языков. К тому же, Вы учите не языку, а ООП, иллюстрируя свои построения некоторым конкретным языком; большая часть сведений остаётся применима и при переходе от одного языка к другому, так что вопрос, как мне видится, в первую очередь в том, какой язык лучше всего подходит для иллюстрации того, о чём Вы собираетесь рассказывать.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928232
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction, ты зарегался в 2011 году и поэтому невкурсе. Это эпичный
топик который вошёл в историю дискурсов о С++ и вышел за пределы
скруля по цитатам.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928310
Fantomny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. квалификация .net-чиков будет выше, чем у плюсовиков, подготовленных за равное время?
За полгода - точно
Плюс эта квалификация позволит им применять знания, а это - повод к ее повышению.

Пример - многих экономистов учат С по полгода. толку =0. Лучше бы vba научили

Ps
Подход "освоят не все- ну и хорошо" мне не нравится.
Немного преподавал и уверен - что моя работа выполнена хорошо, если неглупый и старательный обучающийся все усвоил.
Ориентироваться на "таланты" неверно. Это не обучение. а "талент серч", спецподготовка...
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928399
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЯ тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?)

ОМГ, ну тогда и преподавай ООП по CLOS =))
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928593
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace...
Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.
...

Для начала независимо от языка растолкуйте/повторите студентам основные практические вещи, необходимые для небыдла:
- практически любая ООП - программа является приложением ОС;
- обработка сообщений ОС;
- понятие оконной функции;
и т.д.
Воспользуйтесь синтаксическими диаграммами (пример возьмите хоть из тех-же Borland Pascal / Delphi ).

От этой вводной информации отталкивайтесь при переходе к изучению объектов.
Как вариант, начинайте усложнять тот-же дефолтный объект оконной функции, который создает выбранная среда программирования.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928594
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws- понятие оконной функции;

Ты хоть поясни. Я то понял из какой это предметной области но многие найдут более
релевантное: аналитику в SQL, и спектральные фильтры из методов обработки сигналов.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928615
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Прежде чем заниматься аналитикой, надо базовые вещи знать.

Оконная функция принимает ВСЕ сообщения ОС (события) для окна программы - работающего приложения.
Далее - как программер распорядиться поступать, так приложение и будет себя вести.
Многие современные "программисты" об этом понятия не имеют. Им видимо не мешает, а я считаю надо знать аксиомы.

А лучше с машинных кодов (пару примеров достаточно) начинать обучение, чтобы разъяснить, как работает процессор.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928626
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aswsmayton,

Прежде чем заниматься аналитикой, надо базовые вещи знать.
Парень, когда ты даёшь новичку термин - ты дай ему
ключевые слова чтобы он хотя-бы это нашёл.
Твой термин на первых страницах google-поиска находит
всё что угодно но только не оконную функцию windows
приложения.

Надо было просто добавить WndProc. Я это делаю
за тебя.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928633
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

ниче подобного, google предлагает вариант "оконная функция winapi"
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928636
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton... но многие найдут более релевантное: аналитику в SQL, и спектральные фильтры из методов обработки сигналов.с какой стати ты свое личное мнение считаешь как мнение всех?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928638
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мнение многих?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928641
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно гуляй себе с богом. В следующий раз пиши явно все ключевые слова.
И не забывай что google персонализирует любой поиск для каждого
юзера лично.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928644
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и тебе того-же.
Оконная функция имеет однозначную трактовку в терминологии.
Не путай людей.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928663
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws, мне гугл выдал кучу информации по использованию оконных функций в задачах цифрового спектрального анализа.
Это подтверждает высказывание тов. mayton, о том что многие подумают про спектральные фильтры из методов обработки сигналов :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928684
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Гугл, как любой коммерческий проект, ориентируется на 95% большинства, и подсказки/поиск выдает соответствующие.
Что люди ищут, то он сохраняет как релевантные запросы.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928690
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправлюсь:
Оконная функция имеет однозначную трактовку в терминологии программирования приложений ОС .
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928716
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aswsskyANA,

Гугл, как любой коммерческий проект, ориентируется на 95% большинства, и подсказки/поиск выдает соответствующие.
Что люди ищут, то он сохраняет как релевантные запросы.Из Вашех же слов и выходит, что для 95% людей термин "оконная функция" связан с цифровым спектральным анализом :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928731
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAaswsskyANA,

Гугл, как любой коммерческий проект, ориентируется на 95% большинства, и подсказки/поиск выдает соответствующие.
Что люди ищут, то он сохраняет как релевантные запросы.Из Вашех же слов и выходит, что для 95% людей термин "оконная функция" связан с цифровым спектральным анализом :)Троллите?
ТС говорил о лекциях для программирующих (в частноти на C).
Для них понятие "Оконная функция" должно быть определено сразу (если лектор это сразу не донес до студентов).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928738
an-24-111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TopSpace,

что за странный выбор. А вот java не подходит под Ваши критерии что-ли? Нет привязки к MS. Современный. Работы завались.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928743
an-24-111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aswsTopSpace...
Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.
...

Для начала независимо от языка растолкуйте/повторите студентам основные практические вещи, необходимые для небыдла:
- практически любая ООП - программа является приложением ОС;
- обработка сообщений ОС;
- понятие оконной функции;
и т.д.
Воспользуйтесь синтаксическими диаграммами (пример возьмите хоть из тех-же Borland Pascal / Delphi ).

От этой вводной информации отталкивайтесь при переходе к изучению объектов.
Как вариант, начинайте усложнять тот-же дефолтный объект оконной функции, который создает выбранная среда программирования.
О господи, да при чем тут Оконная функция и ООП. Я вот года два ни одного окна не кодировал. Пишу серверные приложения. И что - я быдло что-ли? Бредятина какая-то. Вы когда пишите про ОС Вы windows имеете ввиду, что-ли?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928749
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an-24-111,

Сколько Вам лет, и с какими технологиями знакомы?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928756
an-24-111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aswsan-24-111,

Сколько Вам лет, и с какими технологиями знакомы?

Опыт у меня более 15 лет. Достаточно? Я программировал разные приложения на разных языках - C,C++, Delphi, Java, JS, SQL, PL/SQL и т.д. Знаю UML... и еще всего дофига. Я знаю, что такое оконные сообщения и оконная процедура. Но это мне точно сейчас никак не помогает. Это вообще другая парадигма. С ООП не имеющее ничего общего.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928787
Mike7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За 8 лекций и 4 лабы трудно чему-то хорошо научить. Это даже до одного семестра по времени не дотягивает. ИМХО, C++ за это время толком не обучить.

В порядке полушутки. Дать за это время ООП студентам на примере SmallTalk =) А C++ и C#, заодно и Java пусть изучат сами, знания Си и SmallTalk для этого должно хватить.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928818
TopSpaceИ опять тема холивара. Но вдруг кто-то выскажет ценную идею?

Ситуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Вопрос: на базе чего это лучше делать - С++ или C#? (пробовал и так, и так - не могу пока понять, что лучше подходит)
И первое и второе - тупиковые и в целом бесперспективные ветви развития.

Для наглядности ООП - можно взять что-то более простое и практичное, вроде Java.

TopSpaceКритерии:
с моей точки зрения, курс должен научить студентов мыслить объектно.
Для этого, дядя, есть вот эта книга: http://www.bookwork.ru/book/shleer_mellor_ooa

Ты конечно можешь фыркнуть - типо зачем старье, и никто о ней не слышал, и там вообще не про ЯП, но покажешь себя лишь ослом.

TopSpaceВсе подробности просто не успеть охватить, но если будет хороший фундамент - они дальше сами, на практике, подтянут что нужно (кто захочет, конечно). С этой точки зрения С++ предпочтительнее, поскольку:
1. Дает более глубокое понимание того, как это все работает.

Для этого достаточно всего-лишь знания C

TopSpace2. Дает свободу дальнейшего пути: можно изучить C#\Java (после С++ это будет легче, чем идти наоборот), захотят уйти со стека MS - пожалуйста, Qt, мир Linux и пр. А с C# им будет сложно уйти в С++, и они по моей вине станут "заложниками" MS-технологий.
Для этого существуют Java, PHP, Ruby и Pyton. А под C/C++ лежит POSIX и Win32 (и всякие Qt/MFC/VCL и т.п. слабопереносимое - к примеру удачи попрограммировать на Qt под iOS или андроид)


TopSpaceС точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу.

JAVA!

Еще раз повторим: JAVA!

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

TopSpaceНачинается это уже при написании диплома в конце обучения: C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение.
Ты застрял в 90-х годах. Сейчас декстоп приложения нафиг никому не впились, кроме коробочных многотиражек - все пишут или
мобильные, или веб, или гамнокодят на Java/C#/1C. Под декстоп - разве на VB и Delphi, и то, это совсем запущенные случаи.

TopSpaceДА и в целом, на C# ряд типовых задач (формочки, БД, сеть, графика) они решат легче и быстрее, без всяких сторонних библиотек и пр. Судя по вакансиям, .net-разработчики как-то более востребованы, чем плюсовики.
Именно так. C++ ники - это high-end, там гомнокодирование смерти подобно, в отличие от. А чтоб стать вменяемым спецом по C/C++ - нужны годы практики. Годы!
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928820
TopSpaceЯ тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?)

Это и есть язык для быдла.

Более того, сам Линус Торвальдс предельно четко высказался на этот счет:

http://harmful.cat-v.org/software/c++/linus C++ leads to really really bad design choices. You invariably start using
the "nice" library features of the language like STL and Boost and other
total and utter crap,
that may "help" you program, but causes:


It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.

The fact is, C++ compilers are not trustworthy. They were even worse in
1992, but some fundamental facts haven\'t changed:

- the whole C++ exception handling thing is fundamentally broken. It\'s
_especially_ broken for kernels.
- any compiler or language that likes to hide things like memory
allocations behind your back just isn\'t a good choice for a kernel.
- you can write object-oriented code (useful for filesystems etc) in C,
_without_ the crap that is C++.



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

Почему?

Да потому что реально никто даже не тестирует поведение программ при возникновении этих исключительных ситуаций.
Вот так. Даже исключают из покрытия тестами целые куски обработчиков.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928825
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДаже с точки зрения ООП С++ вобщем-то не рулит. Его сила вовсе не в ООП а в шаблонах и мета-программировании.C++ - даже не последний язык, который я стал бы использовать ради мета-программирования. Например, задача: прочитать из БД описание бизнес-сущностей, сгенерить для них классы и загрузить их в приложение. С использованием System.Reflection и Linq.Expressions у меня это заняло строк 100. Как это сделать в C++ я весьма смутно представляю: наверное нужно писать кодогенератор и прикладывать к приложению компилятор.

Впрочем, и C# разумеется сосет в плане мета-программирования по сравнению с Lisp, Nemerle. Не понимаю в чем тут сила C++. Если говорить о преимуществах C#, то MS одним только Linq искупил все свои грехи.

Кстати, раз речь зашла о Lisp, то стоит помянуть CLOS ) И, вообще, почему такой странный выбор в теме? Для обучения могут быть более интересны интерпретируемые языки, в которых пишешь код и сразу видишь результат. Я бы выбрал, например, Oz , на котором основана самая охуенная книга по основам программирования .
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928883
Java проще?

Мне лично шарп пошел как-то легче, чем Жава.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928888
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceстуденты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.)

0. Вряд ли в Вашей ситуации стоит расчитывать на то, что у студентов имеются остаточные знания, достаточные для того чтобы можно было считать их отправной точкой, и двигаться, к тому же очень быстрото, в освоении ООП.
1. Проведите диагностику, насколько у студентов вообще имеются знания C и понимание принципов структурного программирования
2. На основе результатов диагностики сформулируйте диагностируемые цели (а не "за 8 лекций и 4 лабораторных ввести людей в мир ООП"). Возможно, максимум, что Вы реально сможете достигнуть с этой группой - это повторить C (а повторение при обучении основ - это основа преподавания ), объяснить 2-3 самых элементарных примера применения ООП, и прорешать несколько однотипных задач.
3. Учитывая 1 и 2, лучше соблюдать приемственность в обучении, и использовать C++ как пример ООП-языка

TopSpaceс моей точки зрения, курс должен научить студентов мыслить объектно

4. это недостижимая цель в Вашем случае (см. 0)

TopSpaceно если будет хороший фундамент

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

6. Или забить на все, отвести курсы, получить бабки и свалить - можно и так.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928896
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще, если ключевым словом считать Преподавать , то не имея достаточного опыта в этом, стоит лучше не над "C# или C++" заморачиваться, а посмотреть в сторону дидактики
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928913
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceИ опять тема холивара. Но вдруг кто-то выскажет ценную идею?

Ситуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).Вы их переучиваете на программистов или доучиваете, чтобы они могли что-то "пописывать" для совей предметной области? Если переучиваете, то 8 лекций и 4 лабы --- полный пшик, вы как максимум можете ещё раз проехаться по голому си, рассказать что такое класс и виртуальная таблица, и показать простейший пример vtable руками на голом си. Если доучиваете, что что у них за специальность такая, что им надо именно Си? Обычно там надо жабаскрипт/октаву/автолисп... в общем что-то приближенное к предметной области, либо вообще эксель :).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928922
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацTopSpaceЯ тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?)
Это и есть язык для быдла.
Более того, сам Линус Торвальдс предельно четко высказался на этот счет...
:) Накосячить можно на любом языке. Хорошо написать --- на почти любом. А Торвальдсу, вероятно, проще продолжать писать на голых сях, чем отбиваться от желающих нагородить "для краткости" темплеты вида T1<T2<T3<T4<X>,...>,...>,...> , как это регулярно наблюдалось, скажем, с ACE+TAO :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928943
Фотография Местный король Делфей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо, Делфи и только Делфи

он еще жив
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929019
iv_an_ruПроясним ситуацпропущено...

Это и есть язык для быдла.
Более того, сам Линус Торвальдс предельно четко высказался на этот счет...
:) Накосячить можно на любом языке. Хорошо написать --- на почти любом. А Торвальдсу, вероятно, проще продолжать писать на голых сях, чем отбиваться от желающих нагородить "для краткости" темплеты вида T1<T2<T3<T4<X>,...>,...>,...> , как это регулярно наблюдалось, скажем, с ACE+TAO :)

Дело не в том, что проще. Он таким образом просто огораживается от недопрограмистов (substandart coders).
Кроме того - весь UNIX с утилитами написан на голом C, в т.ч. с применением ООП как минимум в реализациях файловых систем, что уже ставит необходимость С++ под сильное, сильное сомнение.

Ну и конечно, STL и Boost - это действительно utterly crap, особенно последнее. Да и сам Степанов признал, что STL - это была очередная архитектурная ошибка.


Но опять-же, тут стоит определиться, что является твоей лично целью. Если дорабатывать уже навалянное кем-то на C++, это одно.
А если разрабатывать (с нуля) что-то вроде масштаба apache, redis, memcache или mysql, это уже совсем другое (это про достаточность "голого" С).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929028
Проясним ситуацНу и конечно, STL и Boost - это действительно utterly crap, особенно последнее.

Для полного понимания поясним - не реализация является crap-ом, а те парадигмы программирования, которые требуется применять при использовании этих самых ваших Boost и STL.

Тот аргумент, что для каждого вектора, дека или списка на C приходится заново писать код (а в C++ видилите возведенная в
абсолют автоматизировання копипаста темплейтами) - он просто смешон, вот честно (с т.з. и производительности конечного кода, и c т.з. производительности программиста).

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

Более того, сам Линус Торвальдс предельно четко высказался на этот счет:

Все он правильно сказал. И от любви к STL и Бусбу можно прослыть идиотом.

Но Линус не дал определения слова "быдло". И в том топике тоже толком этот вопрос не расжован. В итоге я читаю и подставляю СВОЕ определение быдла. И ужасаюсь, с кем приходится общаться...
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929034
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что, вместо того чтобы кичиться своим отношением к чужому STL-у, лучше бы пояснили - хуиз быдло, то?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929039
Edd.DragonНо Линус не дал определения слова "быдло".

Вообще-то дал:


... substandard programmers use it ....

I've come
to the conclusion that any programmer that would prefer the project to be
in C++ over C is likely a programmer that I really *would* prefer to piss
off, so that he doesn't come and screw up any project I'm involved with.

и противоставление:

And limiting your project to C means that people
don't screw that up, and also means that you get a lot of programmers that
do actually understand low-level issues
and don't screw things up with any
idiotic "object model" crap.



Говоря проще - если ты предпочитаешь C++ (а не C), то ты 99.9% но - говнокодер.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929045
Edd.DragonТак что, вместо того чтобы кичиться своим отношением к чужому STL-у, лучше бы пояснили - хуиз быдло, то?

Согласно исследований лурка - 95% населения, вне зависимости от социальной группы. Т.е. и в среде ученых 95% быдла, и в среде программистов - тоже.

Вот Торвальдс дал один из признаков - непонимание низкоуровневых архитектурных особенностей, а просто кодирование "по примерам", методом подражания - все делают так, и я тоже буду!. А как оно работает - и знать не надо (какой дурак изучает реализацию libc или stl, верно?)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929047
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВообще-то дал:


... substandard programmers use it ....
Он и слова такого не знает. Так что ОН такого определения не давал. Это вы уже прояснили ситуацию по моему запросу :)

Ну и возвращаясь к теме данного топика, C# точно такой же "для быдла" как и с++, только местами более удобный. Ну и толку-то от того, что прояснили "ситуацию", которая в свете данного топика никого не интересует?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929050
Edd.DragonавторВообще-то дал:


... substandard programmers use it ....
Он и слова такого не знает. Так что ОН такого определения не давал. Это вы уже прояснили ситуацию по моему запросу :)

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

Если цель "преподавания" - это клепание одним чуть более опытным быдлокодером пачки других, начинающих быдлокодеров - то да,
никакой разницы нет, на чем они там будут дружно учиться быдлокодить - на C++, С# и Java.

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

Он просто не сможет ничего на нем написать, на С++, хоть как-то работоспособного.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929076
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Ты застрял в 90-х годах. Сейчас декстоп приложения нафиг никому не впились, кроме коробочных многотиражек - все пишут или
> мобильные, или веб, или гамнокодят на Java/C#/1C. Под декстоп - разве на VB и Delphi, и то, это совсем запущенные случаи.
А ты застрял в 00-x. Глупенький.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929126
Застял
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kosh the best> Ты застрял в 90-х годах. Сейчас декстоп приложения нафиг никому не впились, кроме коробочных многотиражек - все пишут или
> мобильные, или веб, или гамнокодят на Java/C#/1C. Под декстоп - разве на VB и Delphi, и то, это совсем запущенные случаи.
А ты застрял в 00-x. Глупенький.А в чем нынче силла!
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929156
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ares_ekbmaytonДаже с точки зрения ООП С++ вобщем-то не рулит. Его сила вовсе не в ООП а в шаблонах и мета-программировании.C++ - даже не последний язык, который я стал бы использовать ради мета-программирования. Например, задача: прочитать из БД описание бизнес-сущностей, сгенерить для них классы и загрузить их в приложение. С использованием System.Reflection и Linq.Expressions у меня это заняло строк 100. Как это сделать в C++ я весьма смутно представляю: наверное нужно писать кодогенератор и прикладывать к приложению компилятор.

Впрочем, и C# разумеется сосет в плане мета-программирования по сравнению с Lisp, Nemerle. Не понимаю в чем тут сила C++. Если говорить о преимуществах C#, то MS одним только Linq искупил все свои грехи.
.....

На Ruby это займет строчек 10 :)
А вообще, для базового образования C++ полезнее. После него ничего уже не страшно.
С\С++ тоже были моими первыми языками и ни чуть об этом не жалею/ Это классика. До сих пор что-то на С++ пишу, в основном с QT.
К тому же, все расширения для большенства скриптовых языков (perl,ruby,python,php) пишутся именно на C\C++

Только не нужно давать студентам MFC или QT или еще что-то такое. Об этом можно раскозать обзорно, просто что это есть.
Давать нужно классический C++ и STL ... можно и boost если успеете.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929157
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AbstractionХорошо бы ссылку на конкретное мнение, ...
К тому же, Вы учите не языку, а ООП, иллюстрируя свои построения некоторым конкретным языком; большая часть сведений остаётся применима и при переходе от одного языка к другому, ....

Представьте, что два человека изучают ООП, один с иллюстрациями на "хорошем", второй на "плохом" языках. На выходе оба будут владеть неким базисом, но:
1. Второй будет подготовлен похуже, т.к. ему приходилось отвлекаться на неудачные моменты языка, бороться с его кривизной.
2. У первого, кроме ООП, будет хороший инструмент - можно в бой, а второму придется доучиваться.


Fantomny
Подход "освоят не все- ну и хорошо" мне не нравится.
Немного преподавал и уверен - что моя работа выполнена хорошо, если неглупый и старательный обучающийся все усвоил.
Ориентироваться на "таланты" неверно. Это не обучение. а "талент серч", спецподготовка...

Проблема в том, что 90% любой группы - это те, кто хочет особо ничего не делая получить оценку. Им вроде бы хочется стать программистами, но нет огня, они не сидят допоздна за кодом, стремясь сделать свой проект, не просят советов и т.п. Делают лабы с буквальной точностью, и если в методичке у меня опечатка, и любому ясно, что вот тут вот так делать - бред, нет же, они так сделают, "ибо написано".
Вопрос: стоит мне тратить силы и разжевывать материал так, чтобы у них что-то осталось в голове? Они все равно не станут программистами. При этом 10% более шарящих чуваков будут скучать. Не лучше ли подумать о тех, кому знания и опыт действительно нужны?


asws
Для начала независимо от языка растолкуйте/повторите студентам основные практические вещи, необходимые для небыдла:
- практически любая ООП - программа является приложением ОС;
- обработка сообщений ОС;
- понятие оконной функции;
и т.д.

Странный подход) Зачем при погружении в ООП знать про оконные функции? Это же GUI-специфика, первые лабы вообще под консоль. ООП - это парадигма, глобальный подход, а оконные функции - частная техническая деталь. Это в итоге нужно знать, но стоит ли с этого прям начинать? Тогда нужно будет рассказать про IDE, процесс компиляции, виды языков, стек и кучу,...


an-24-111
что за странный выбор. А вот java не подходит под Ваши критерии что-ли? Нет привязки к MS. Современный. Работы завались.

Тут все банально: я не знаю Java. Преподаю то, с чем работал не один год (C++\C#). С другой стороны, лучший способ что-то выучить - начать это рассказывать другим. Но качество, наверное, будет слишком низким.


Проясним ситуац
Ты застрял в 90-х годах. Сейчас декстоп приложения нафиг никому не впились, кроме коробочных многотиражек - все пишут или
мобильные, или веб, или гамнокодят на Java/C#/1C. Под декстоп - разве на VB и Delphi, и то, это совсем запущенные случаи.

У меня нет статистики, каких проектов сколько сейчас ведется, только личный опыт - есть, и еще долго будут проекты под десктоп. Да, лет через 10 и фотошоп будет web-приложением, но пока есть очень много legacy-кода.
Не вижу ничего плохого в разработке под десктоп на том же C# - очень много корпоративного софта, всяких утилит и т.п.

kmaw
В данной ситуации Вы, как преподаватель, а не программист, и должны определить (с оглядкой на программу курса, конечно) критерии этого хорошего, а главное - достижимого в ваших условиях, фундамента.
а вообще, если ключевым словом считать Преподавать, то не имея достаточного опыта в этом, стоит лучше не над "C# или C++" заморачиваться, а посмотреть в сторону дидактики

Не знаю, 6 лет преподавания, достаточный ли опыт? Каждый год меняю программу, ищу что-то новое.
Дидактика здесь актуальна на этапе разработки курса, но не при выборе его направленности, базовых критериев. Есть много преподов, совершенно оторванных от реальной разработки, зато дидактически сильных. Толк от такого обучения - спорный вопрос. Я хочу в первую очередь ориентироваться на тенденции рынка, т.е. не утонуть в тонкостях преподавания, а дать реально актуальные знания. Как их преподнести - второй вопрос.


iv_an_ru
Вы их переучиваете на программистов или доучиваете, чтобы они могли что-то "пописывать" для совей предметной области?
Накосячить можно на любом языке. Хорошо написать --- на почти любом.

Так тут нет предметной области. Курсы программирования, куда по идее может придти любой. Цели у них могут отличаться, но в общем понятно, что люди хотят быть программистами. Вот и получают базовые знания. Логично, что наша (ведущих курс) задача: построить программу так, чтобы в то время, которое отведено, дать самые полезные знания, чтобы дальше они могли продолжить этот путь. И как я писал выше, кроме знаний ООП (которые, понятно, применимы к любому языку), нужно дать какой-то минимум по работе с конкретным языком, о выборе которого и идет речь.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929166
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рубистТолько не нужно давать студентам MFC или QT или еще что-то такое. Об этом можно раскозать обзорно, просто что это есть.
Давать нужно классический C++ и STL ... можно и boost если успеете.

Без GUI тут никак. Им диплом нужно писать - не под консоль же. В 95% вакансий им придется иметь дело с GUI-приложениями.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929173
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceБез GUI тут никак. Им диплом нужно писать - не под консоль же.

А почему нет? Server-side какой-нибудь, тот же веб. Или библиотека обработки чего-нибудь (изображений, звука и т.п.), где важен алгоритм, а ГУЙ так, можно на коленке за пол дня на каком-нибудь tcl/tk написать или вообще не нужен.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929178
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceрубистТолько не нужно давать студентам MFC или QT или еще что-то такое. Об этом можно раскозать обзорно, просто что это есть.
Давать нужно классический C++ и STL ... можно и boost если успеете.

Без GUI тут никак. Им диплом нужно писать - не под консоль же. В 95% вакансий им придется иметь дело с GUI-приложениями.95% юниорских программистских вакансий вообще подразумевают профильное образование, а не курсы. Хочется сразу гуёв --- тогда автолисп :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929186
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проясним ситуац
Говоря проще - если ты предпочитаешь C++ (а не C), то ты 99.9% но - говнокодер.

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

Для меня выбор между C\C++ всегда в пользу второго вообще не обусловлен языком как таковым (синтаксисом, семантикой,..). Все дело в мышлении. Есть задача из некой предметной области - я сразу вижу это как систему с определенной структурой и поведением. Системный подход, если что, сие называется. Описать систему на С++ легко и естественно: нужно завести соответствующий класс. Сама идея класса, имхо, очень удачна, она четко отражает реальность. Уж куда более четко, чем просто набор функций.

Или вы хотите сказать, что ООП-парадигма уступает процедурной? Т.е. наследование, полиморфизм - толку от них никакого? И там, где можно сделать понятную кодеру (и легко масштабируемую) иерархию полиморфных классов, вы будете писать нагромождение switch'ей?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929202
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k0rvinА почему нет? Server-side какой-нибудь, тот же веб. Или библиотека обработки чего-нибудь (изображений, звука и т.п.), где важен алгоритм, а ГУЙ так, можно на коленке за пол дня на каком-нибудь tcl/tk написать или вообще не нужен.

Плюсовик, не знакомый с MFC или Qt, равно как .net-чик, не имеющий опыта работы с WinForms\WPF - это как-то странно) Т.е. хотя бы ознакомиться не помешает.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929205
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceрубистТолько не нужно давать студентам MFC или QT или еще что-то такое. Об этом можно раскозать обзорно, просто что это есть.
Давать нужно классический C++ и STL ... можно и boost если успеете.

Без GUI тут никак. Им диплом нужно писать - не под консоль же. В 95% вакансий им придется иметь дело с GUI-приложениями.

Сомневаюсь, что за 8 лекций удастся продуктивно освоить на C++ или C# ООП и еще GUI.
В таком случае путь на С# будет короче, по крайней мере есть шанс уложится в срок.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929206
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ru95% юниорских программистских вакансий вообще подразумевают профильное образование, а не курсы.

Может быть, но есть и другие примеры, хоть и мало. Люди после гуманитарного образования приходили на курсы, учились, и потом устраивались джуниорами.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929225
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рубистВ таком случае путь на С# будет короче, по крайней мере есть шанс уложится в срок.
Если задача лекций именно познакомить с ООП, то я лично не вижу разницы, на каком из двух предложенных языков их вести. Синтаксически - почти одно и то же. GUI сюда плетут - не знаю зачем, он не требуется для знакомства с ООП. Более того, считаю не слишком удачным объяснять ООП-парадигму на примере GUI-фреймворка. Хотя и вполне допустимым.

Так что, что с C++, что с C# - путь объяснения принципов ООП одинаков.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929235
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацiv_an_ruпропущено...

:) Накосячить можно на любом языке. Хорошо написать --- на почти любом. А Торвальдсу, вероятно, проще продолжать писать на голых сях, чем отбиваться от желающих нагородить "для краткости" темплеты вида T1<T2<T3<T4<X>,...>,...>,...> , как это регулярно наблюдалось, скажем, с ACE+TAO :)

Дело не в том, что проще. Он таким образом просто огораживается от недопрограмистов (substandart coders).Ну да. Это сильный довод, особенно если проект открытый и ты не можешь "не принимать" или "увольнять" людей.
Проясним ситуацКроме того - весь UNIX с утилитами написан на голом C, в т.ч. с применением ООП как минимум в реализациях файловых систем, что уже ставит необходимость С++ под сильное, сильное сомнение.Тут, я думаю, сказывается неправильная "реклама" в виде учебников для начинающих. Использование C++ не делает разработку "проще", "быстрее" и "дешевле" прям всегда и везде. Оно позволяет ценой лишних затрат мозгов, времени и ФЗП с самого начала большого проекта начать давать экономию этих самых мозгов и т.п. к тому моменту, когда проект станет не просто большим, а огроменным. Если проект не собирается разрастаться до монтрообразного вида, то "плюсовые" затраты не окупятся никогда. И если код 20-килобайтного плюсового приложения под винды выглядит очевидно лучше кода голо-сишного аналога, то только потому, что это маленькая вишенка на здоровенном торте, а не что-то работающее само по себе. Если бы микрокоды оборудования, для которого Торвальдсу захотелось бы писать ОС, весили сотни мегов, то он бы тоже, наверное, сел на плюсЫ :) А если приложение "само по себе", то вот мы сейчас доросли до 30 мегов сорцов и начинаем подумывать о неспешном переходе когда-нибудь в будущем с голого си на цэпэпэ --- это через 17 лет после начала продаж первой версии.

Страуструп работал для такого монстра, как AT&T, а теперь "те" методы почему-то норовят внедрить все мелкие головастики куда попало.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929239
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рубист,
понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это:

1. Данные, операторы, функции
2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация)
3. Классы - II (static, const, friend, композиция)
4. Перегрузка операторов
5. Наследование
6. Полиморфизм
7. Шаблоны
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929250
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Да, лет через 10 и фотошоп будет web-приложением, но пока есть очень много legacy-кода.
А ха ха. В браузере через html 5, javascript и http что ле? И конечно, все это будет в "облаке".
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929257
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceрубист,
понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это:

1. Данные, операторы, функции
2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация)
3. Классы - II (static, const, friend, композиция)
4. Перегрузка операторов
5. Наследование
6. Полиморфизм
7. ШаблоныЕсли тема - не "язык", а "ООП", то перегрузку операторов я бы сократил до замечания что в C++ оператор (за вычетом...) можно доопределить для данных типов операндов как функцию и правила работы с ним будут такие же, как и с функцией. friend опять же концепция скорее C++, нежели ООП как такового. Про функции "вообще" должны знать из курса C, если не знают - могут не знать (не понимать) и концепции указателей, что ставит крест на программе. Ну, то есть опять же вопрос условий и целей: кому, что и зачем преподаётся.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929268
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceрубист,
понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это:

1. Данные, операторы, функции
2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация)
3. Классы - II (static, const, friend, композиция)
4. Перегрузка операторов
5. Наследование
6. Полиморфизм
7. ШаблоныПункты 1,2,чуть-чуть 4, 5 и 6 может быть успеете впихнуть. "Си с классами", в общем, самое необходимое для взаимодействия с простейшими гуями.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929275
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceрубист,
понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это:

1. Данные, операторы, функции
2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация)
3. Классы - II (static, const, friend, композиция)
4. Перегрузка операторов
5. Наследование
6. Полиморфизм
7. Шаблоны

А при чем тут ООП? Слишком много специфичного для C++ и других Simula-подобных.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929282
TopSpaceПроясним ситуацГоворя проще - если ты предпочитаешь C++ (а не C), то ты 99.9% но - говнокодер.

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

Для меня выбор между C\C++ всегда в пользу второго вообще не обусловлен языком как таковым (синтаксисом, семантикой,..). Все дело в мышлении.
Ну да, у тебя просто мышление быдлокодера, можно сказать и так.

TopSpaceЕсть задача из некой предметной области - я сразу вижу это как систему с определенной структурой и поведением. Системный подход, если что, сие называется. Описать систему на С++ легко и естественно: нужно завести соответствующий класс. Сама идея класса, имхо, очень удачна, она четко отражает реальность. Уж куда более четко, чем просто набор функций.
Вот это все выше - феерическая глупость. На простом C вполне можно объектно-ориентированного программировать. Вот, просвещайся:

http://www.cs.rit.edu/~ats/books/ooc.pdf

Сказать, что C - это лишь просто набор функций - это пять.


TopSpaceИли вы хотите сказать, что ООП-парадигма уступает процедурной?
Именно так, и не только я, но и Степанов - создатель STL считает именно так:

авторТоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы приходите к тому, что вы в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле».

Плюс вот просвещайся:
http://habrahabr.ru/post/143620/

авторТ.е. наследование, полиморфизм - толку от них никакого? И там, где можно сделать понятную кодеру (и легко масштабируемую) иерархию полиморфных классов, вы будете писать нагромождение switch'ей?

Ты хоть раз на C написал что-то, кроме лабораторных? Если не секрет?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929312
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проясним ситуац,

спасибо за ссылки, почитаю. На С ничего серьезного писать не доводилось, был небольшой реальный опыт с Паскалем. Пока что ООП более удобно, смотрю в сторону функционального программирования.

P.S. вам не обязательно копировать манеру общения Ксенофефала по приведенной ссылке (если вы - не он самый). Мне не совсем понятно, почему на вопросы я получаю оскорбления? Или это такой прием - "мокнуть в грязь чтобы дошло"? Поверьте, есть люди, которые прислушиваются к точкам зрения других и без этого (я из их числа).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929331
TopSpaceПроясним ситуац,

спасибо за ссылки, почитаю. На С ничего серьезного писать не доводилось, был небольшой реальный опыт с Паскалем. Пока что ООП более удобно, смотрю в сторону функционального программирования.

P.S. вам не обязательно копировать манеру общения Ксенофефала по приведенной ссылке (если вы - не он самый). Мне не совсем понятно, почему на вопросы я получаю оскорбления?
Когда тебе говорят, что ты мыслишь или говоришь как говнокодер или быдлокодер, то можно хоть обижаться, хоть нет, но проще или смириться с этим фактом (как это делают остальные 95%), или срочно устранить недостатки.

TopSpaceИли это такой прием - "мокнуть в грязь чтобы дошло"? Поверьте, есть люди, которые прислушиваются к точкам зрения других и без этого (я из их числа).
Почему возникло ощущение макать в грязь?

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

Все относительно.

Кому-то подавай мировые рекорды, но 99.999% населения вполне устраивает и "спортивная" хотьба в парке.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929339
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац http://habrahabr.ru/post/143620/

Это всё правда. Концепция ООП методов в последнее время шатается и трещит
по швам. Она переросла свой размер так-же как и динозавры переросли
максимально допустимый рост и природа с гравитацией их уничтожила.
Но к сожалению на сегодняшний дель 99% BI кодят на серверах под
управлением JVM на Java-фремворках. Я специально гуглил и барражировал
форумы на тему ФП-имплементаций бизнес-логики но нашёл только древний
yahoo который был написан на Lisp и несколько скудных статей Душкина
в журналах ФП
где он вроде-бы приводит примеры каких-то имплементаций
чего-то и где-то. Общий рынок вакансий специалиста ФП равень чуть
более чем нуль. Это можно проверить просто погуглив спрос на
соискателей (из поиска сразу исключаем AutoList, XSLT и прочую
мистификацию которая не является ФП в общем понимании этого
слова).

Ищем только ТруЪ-ФП предложения по найму.

Я целиком и полностью поддерживаю инициативу изучения и освоения
инструментов ФП но прошу дать больше пруфов на реально
работающие проекты. Желательно open-source чтобы можно
было ознакомится. Посмотреть на best-practices. Узнать чем
живет и чем дышит сообщество ФП разработчиков. Как
решает проблемы багофиксов как дебажит ошибки как тюнит
производительность словом всё-всё что сопутствует.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929381
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, вы сильно уходите от темы, а именно "выбор языка для изучения ООП + GUI в рамках 8 лекций и 4-х лаб."
Умрет ООП или нет это мы увидим. Пока что, в силу инерции от имеющихся уже промышленных решений, ООП будет жить еще ооочень долго.

PS to "Проясним ситуац"
Общатся с незнакомым человеком на ТЫ и тыкать его носом это хуже чем "быдлокодерство" ....
Можно спорить, дискутировать, можно соглашатся или не соглашатся по каким-то вопросом, но не нужно опускатся до хамства.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929382
avlaxoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aswsmayton,

Прежде чем заниматься аналитикой, надо базовые вещи знать.

Оконная функция принимает ВСЕ сообщения ОС (события) для окна программы - работающего приложения.
Далее - как программер распорядиться поступать, так приложение и будет себя вести.
Многие современные "программисты" об этом понятия не имеют. Им видимо не мешает, а я считаю надо знать аксиомы.

А лучше с машинных кодов (пару примеров достаточно) начинать обучение, чтобы разъяснить, как работает процессор.

Помнится, у нас в универе даже домашнее задание на лето было: написать на ASMе (!!!) программу, использующую объекты (да, оказывается, даже на этом уровне есть механизм реализации всех трех "китов" ООП!) и моделирующую полет и упругое столкновение на экране шариков, отталкивающихся друг от друга и от стенок экрана (один шарик - один экземпляр объекта)...
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929387
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Вот это все выше - феерическая глупость. На простом C вполне можно объектно-ориентированного программировать. Вот, просвещайся:
> http://www.cs.rit.edu/~ats/books/ooc.pdf
Ох, сколько пафоса. Так и ждал, когда ссылку на эту книжку вбросят.
Рабочее ООП на си - это com под винду и gobject в линуксах, а в твоей книжке ранние эксперименты.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929390
maytonУзнать чем живет и чем дышит сообщество ФП разработчиков. Как
решает проблемы багофиксов как дебажит

Да ни чем они не дышат, у них очень узкая ниша применимости.

А BI (бизнес-логику) еще долго будут писать на диназавроподобных фреймворках, и ситуация будет только усугубляться (сложность, вернее энтропия там не уменьшается - struts, spring, java faces это лишь вершины айсберга).

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

А все критичные к времени выполнения компоненты давно уже переписаны, не на Java и не на C#, см., к примеру, проект:
http://www.computerworlduk.com/news/open-source/3260727/london-stock-exchange-in-historic-linux-go-live/

Заодно тут можно почитать, на предмет задержек в JVM куче

http://habrahabr.ru/company/odnoklassniki/blog/139185/
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929394
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За преподавание ооп в стиле трех китов "наследование, инкапсуляция, полиморфизм" надо кидать в лектора тапком.
Ооп - это полиморфизм и все. Наследование - один из механизмов, упрощающих реализацию полиморфизма. Инкапсуляция никоим образом к ооп не относится.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929403
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 (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929422
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kosh the bestЗа преподавание ооп в стиле трех китов "наследование, инкапсуляция, полиморфизм" надо кидать в лектора тапком.
Ооп - это полиморфизм и все. Наследование - один из механизмов, упрощающих реализацию полиморфизма. Инкапсуляция никоим образом к ооп не относится.
Насчёт кидания тапком согласен. Но выбрасывать сущности или концепции можно
только заменяя их чем-то. Чем вы их предлагаете заменять?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929423
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максимально эффективное "въезжание" в тему, чтобы как можно быстрее "встать на рельсы".
Тогда Руби! и Вы почти на рельсах.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929424
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот у меня тоже есть ощущение усложненности ООП (в С++ особенно заметно), и слышал много хвалебных отзывов о ФП. Что в этой ситуации делать - не совсем понятно. Да, почитать книжку про Хаскель, или Common Lisp, покодить для себя - не будет лишним. А дальше?

Ксеноцефал описывал некую элиту программирования, где С++ (и как я понял, ООП вообще) - далеко не основной инструмент. В почете ФП, лиспы и т.п. На сайтах вакансий такого действительно почти нет, но элита так не ищет работу - работа сама находит этих штучных профи, а чаще они работают на себя. Да, охотно верю, что такие люди есть, но каковы ступени движения к этому уровню?

Сейчас мы по уши в ООП (в смысле, что эта парадигма преобладает). Я смотрю вакансии, которые ныне есть (Новосибирск). Это мобильные приложения, казуальные игры, биллинг, CRM-системы,... - чаще всего, используется ООП. Я уже не говорю про то, что более половины всех вакансий - это поддержка существующего кода. Таким образом - где можно получить реальный опыт коммерческой разработки на всех этих супер-языках? И если они действительно такие супер, то должны быть примеры их успешного применения (в промышленном, коммерческом масштабе).

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

.... а преподавать надо то, к чему лучше присыкуются последующие курсы в том же образовательном учреждении. А заботится о том, на чем прогать удобнее, выгоднее - пустое... кому надо - сам переучится. Как я нынче понимаю - в МИФИ (выпуск 95-ого года) - так и делали. и нормально! спасибо им.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929434
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников.
строчка в резюме соискателя "изучал в институте язык .... " ЦЕЛЫХ! 8 занятий.... Большая востребованность? 1С. основы бухучета. Востребованы.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929447
TopSpaceВот у меня тоже есть ощущение усложненности ООП (в С++ особенно заметно), и слышал много хвалебных отзывов о ФП. Что в этой ситуации делать - не совсем понятно. Да, почитать книжку про Хаскель, или Common Lisp, покодить для себя - не будет лишним. А дальше?

Ксеноцефал описывал некую элиту программирования, где С++ (и как я понял, ООП вообще) - далеко не основной инструмент.
Это все пыль в глаза и его личные эротические трудности.
Профессионалы используют DSL (предметно ориентированные языки, к примеру вот тут http://en.wikipedia.org/wiki/List_of_computer_simulation_software), но там та-же самая императивщина и декларативщина.

Плюс Ксеня бил себя тапком в грудь на теме глубокого знания программирования под микроконтроллеров, но отстуствие посылов к кооперативной многозадачности, реалтайма и засилья C (а вовсе не Forth) говорит лишь о том, что и там он знаком с вопросом лишь по-наслышке.

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

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

TopSpaceЯ бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников.

ФП - это хорошая тема для мифотворчества, не более того.
...
Рейтинг: 0 / 0
Преподавать 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
Преподавать C++ или C#?
    #37929562
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацiv_an_ruПоскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :)Забавно. Т.е. ты 12 лет не практикуешь то, о чем тут якобы "экспертно" говоришь?
Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею".Вот, уже опять забавно. Наш дорогой гость забыл спросить, на чём я писал до 2000-го, и подумать, что человек может и несколько языков знать.

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

Ну элементарная же мысль, что для разных работ нужны разные инструменты и выбирать инструмент надо с умом, а не с убеждением, что один для лохов а другой нет. Почему она не до всех доходит даже со второго раза ?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929563
TopSpaceПроясним ситуац,

действительно, проясним ситуацию. ООП отстой, ФП - миф, рулит процедурное программирование, например, чистый С.
Я уже пять раз говорил - чистый С - это НЕ ТОЛЬКО процедурное программирование. И не сколько.
Там возможно и вовсю применяется и объектное, и объектно-ориентированное программирование, и обобщенное, и функциональное, и декларативное.

Просто об этом книг не пишут, потому у всех заскорузлое мышление, что дескать там, в C, только старый процедурный и структурный подход и ничего более.


TopSpace Для решения практически любой задачи (кроме веба) можно брать С и не париться. Так?
Нет, это не так.

Есть задачи (и их 99% от общего числа) - это поддержка уже написанного кем-то до тебя кода.
С огромнейшей вероятностью там будет вовсе не голый С, а один из тех самых популярных сейчас или в бытность языков - от C++, Java до Python/Ruby.

Чистый С - это лишь очень, очень пока ограниченная ниша высокопроизводительный приложений, вроде систем real-time, ulldma, hft, ну и системное программирование.

Прикладное программирование на C пока невозможно в силу крайней неразвитости прикладных библиотек (к примеру нет
приличных, т.е. достаточно простых, универсальных и надежных библиотек доступа к БД, всякие unixODBC - это просто насмешка).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929587
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацЧистый С - это лишь очень, очень пока ограниченная ниша высокопроизводительный приложений, вроде систем real-time, ulldma, hft, ну и системное программирование.Могу огорчить: как раз из high-performace сейчас си и начинает выдавливаться. Этот гадский Интел со своей гадской Parallel Studio XE стал предлагать выбор между C++ Composer XE и Visual Fortran Composer XE. И теперь если кому приспичит писать x->_->f(x,...) именно так, а не сделав нормальную декларацию и потом нормальный x->f(...), будет выглядеть просто слегка странно. А уж темплеты для GAP это вообще надругательство над голо-сишными святынями.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929594
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацнет... простых, универсальных и надежных библиотек доступа к БДВыберите два из трёх. И это не от языка зависит.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929595
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац ,
Может все же пора тебе похвастаться своими достижениями на сях, а то вдруг казачок то засрланый?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929603
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.Dragon,

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

Зая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql и остальных проектах на чистом C, а потом мы с тобой поговорим о современном программировании, ок?

Давай поговорим .... вот пример кода из Mysql из говорящего названия файла sql_base.cc

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
/* Basic functions needed by many modules */

#include "mysql_priv.h"
#include "sql_select.h"
#include "sp_head.h"
#include "sp.h"
#include "sql_trigger.h"
#include <m_ctype.h>
#include <my_dir.h>
#include <hash.h>
#ifdef	__WIN__
#include <io.h>
#endif

/**
  This internal handler is used to trap internally
  errors that can occur when executing open table
  during the prelocking phase.
*/
class Prelock_error_handler : public Internal_error_handler
{
public:
  Prelock_error_handler()
    : m_handled_errors(0), m_unhandled_errors(0)
  {}

  virtual ~Prelock_error_handler() {}

  virtual bool handle_error(uint sql_errno,
                            MYSQL_ERROR::enum_warning_level level,
                            THD *thd);

  bool safely_trapped_errors();

private:
  int m_handled_errors;
  int m_unhandled_errors;
};



Коментарий в коде перед описанием класса говорит сам за себя.
Авторы MYSQL были на столько тупы, что не осилили написание этого на чистом С.
... и О БОЖЕ, здесь есть кромольное слово "virtual" :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929607
iv_an_ruПроясним ситуацЧистый С - это лишь очень, очень пока ограниченная ниша высокопроизводительный приложений, вроде систем real-time, ulldma, hft, ну и системное программирование.Могу огорчить: как раз из high-performace сейчас си и начинает выдавливаться. Этот гадский Интел со своей гадской Parallel Studio XE стал предлагать выбор между C++ Composer XE и Visual Fortran Composer XE. И теперь если кому приспичит писать x->_->f(x,...) именно так, а не сделав нормальную декларацию и потом нормальный x->f(...), будет выглядеть просто слегка странно. А уж темплеты для GAP это вообще надругательство над голо-сишными святынями.

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

И вообще. У нас всегда будет OpenCL, который всегда будет C99, чтоб там Intel не пыжила

Миф о необходимости многотредовости, особенно в прикладных решения - это полная туфта, а pthreads - это и вовсе функциональное фиаско, которое привнесло больше вреда, чем пользы:
пример тупиковой многозадачной реализации apache vs event-driven парадигмы в nginix, squid - тому самый типичнейший пример, раз,
два - глупость о том, что для баз данных нужен конкурентный доступ (с мутексами-латчами и прочей ерундой) - настолько крепко
засела в мозг, что даже dbm подобную реализацию БЕЗ мутексов - еще поискать и поискать.

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

race condition? Сколько прикладных кодеров вообще знают о его существовании?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929611
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проясним ситуац,

тогда мне непонятно, за какой язык вы ратуете?

Я понимаю, что дело не в языке, и наверно DSL-подход рулит. Ну и хороший программист должен знать несколько языков - это тоже понятно. Но, во-первых, речь шла о преподавании, т.е. какой язык выбрать в качестве первого рабочего (остальные придут уже потом). Во-вторых, уходить в крайность тоже не стоит: если есть компания, занимающаяся к примеру десктопными приложениями, зачем ей на каждый проект свой язык? Где она такой штат специалистов найдет, если в итоге будет замес из 10 языков?

Поправьте, если ошибаюсь, мое видение реалий:

Основные направления разработки:
1. Web
2. Mobile
3. Destop
4. Embedded

Мало тех, кто работает сразу во всем, чаще у человека есть специализация (да, ее крайняя форма - ограниченность, ее следует избегать, но и разбрасываться - тоже крайность, трудно стать реальным спецом в чем-то).
Те, кто работают в Web, используют штуки вроде Java, ASP, Ruby, Python, PHP.
В Mobile видимо Java и Objective-C.
Во всяких железках и суперпроизводительных софтинах видимо С, что-то из ФП.

А вот с десктопом самая непонятная ситуация. Помирать он явно не собирается, и альтернатив технологий тут наверно больше, чем в остальных направлениях вместе взятых. Много вакансий, много legacy. В итоге, программируя под десктоп, кодер будет сталкиваться с необходимостью использовать GUI, БД, сеть. Какие технологии ему предоставят наиболее удобную реализацию подобной базы?
Мне видится 2 достойных варианта: C# (где есть все необходимое), и C++ Qt (тоже богатый фреймворк).

Неужели кто-то скажет, что Python, или С + Tk для разработки сложных десктоп-приложений (типа корпоративной CRM-системы) лучше?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929630
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceС точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу. Имхо, "легкий старт" - вред. Идея легкого старта, это рассуждение человека со средним образованием, который хочет нажимать на три кнопки в наперед заданой последовательности, и не заморачиваться. Как-раз быстрый старт плодит быдлокодеров.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929644
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceПроясним ситуац,

тогда мне непонятно, за какой язык вы ратуете?

................................


Много букв. Лучше спросить прямо и лаконично: - Чего вы добиваетесь?

Но что-то, он на прямые вопросы не очень отвечает...
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929646
рубистАвторы MYSQL были на столько тупы, что не осилили написание этого на чистом С.
... и О БОЖЕ, здесь есть кромольное слово "virtual" :)

Я даже не поленился скачать исходики mysql и посмотреть на этот handler.

Ну и?

Это просто тупо класс-обертка для одной функции, вида

bool handle_error(uint sql_errno,
MYSQL_ERROR::enum_warning_level level,
THD *thd);

Почему им захотелось функцию сделать классом? Ну блин, классическое заболевание по имени ООП мозга в действии, листать в их SVN предысторию появления этой глупости откровенно лень.

То, что там виртуальный метод ну никак ничем не оправдан, и достаточно было просто передавать указатель на функцию + контекст (сильно иногда) - это и вовсе 100% факт, как и то, что ты лишь продемонстрировал свое эдакое ослоумие.

Может еще продемонстришь чего из их кода?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929652
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Зая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql и остальных проектах на чистом C, а потом мы с тобой
> поговорим о современном программировании, ок?
Думаю, с тобой говорить бесполезно - это будет не дискуссия, а монолог. Вы хоть прочитайте, что вам тут понаписали.
В проектах, которые вы привели, полно макарон из свитчей и указателей на функции - а это не что иное, как эмуляция полиморфного кода, тех же самых виртуальных функций.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929659
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацМиф о необходимости многотредовости, особенно в прикладных решения - это полная туфтаНу-ну. Вот есть у меня маленькая платка:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 48
On-line CPU(s) list: 0-47
Thread(s) per core: 2
Core(s) per socket: 6
CPU socket(s): 4
NUMA node(s): 4
Vendor ID: GenuineIntel
CPU family: 6
Model: 45
Stepping: 7
CPU MHz: 2299.975
BogoMIPS: 4599.35
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 15360K
NUMA node0 CPU(s): 0-5,12-17
NUMA node1 CPU(s): 6-11,18-23
NUMA node2 CPU(s): 24-29,36-41
NUMA node3 CPU(s): 30-35,42-47
под одну СУБД. И как вы её сможете эффективно задействовать без нитей?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929665
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац,

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

тогда мне непонятно, за какой язык вы ратуете?

Я понимаю, что дело не в языке, и наверно DSL-подход рулит. Ну и хороший программист должен знать несколько языков - это тоже понятно. Но, во-первых, речь шла о преподавании, т.е. какой язык выбрать в качестве первого рабочего (остальные придут уже потом).
Так так и объясни задачу. У тебя на входе 20 незрелых умов, с нулевым опытом в программированиии.
И?

Ответ прост - первые два-три семестра - более чем достаточно базового C и Pascal, большего их мозг просто не осилит - нейронные связи перестраиваются не так быстро, как хотелось-бы.

Основы ООП они будут осваивать остальные три курса, и освоят его лишь 10% от общего числа (т.е. пара студентов), остальные
пойдут работать успешными продавцами пылесосов или конфигурировать 1С.

Из DSL - достаточно дать просто SQL, если его осилит 20% студентов - это будет уже мегадостижение.

TopSpace Во-вторых, уходить в крайность тоже не стоит: если есть компания, занимающаяся к примеру десктопными приложениями, зачем ей на каждый проект свой язык? Где она такой штат специалистов найдет, если в итоге будет замес из 10 языков?
Да нет никакого заместа. Нужно приложение под iOS/iPhone/iPad - нанимают со знанием ObjectiveC
Нужно и под Android? Нанимают еще и пару джавистов. Нужно под WinMobile? Нанимают C#-тов или C++ ников, отдельно
И вот три отдела пишут одно и то-же приложение, вроде Яндекс-Карты, редко общаясь между собой.

TopSpaceПоправьте, если ошибаюсь, мое видение реалий:

Основные направления разработки:
1. Web
2. Mobile
3. Destop
4. Embedded

Ты забыл про такие замечательные штуки, как 1C и SAP R/3, плюс класс задач BI/Datawarehouse/Статанализ, плюс дописывание интеграционных сервисов между SAP и Documentum или 1С, которые составляют 75% рынка вакансий.

TopSpaceА вот с десктопом самая непонятная ситуация. Помирать он явно не собирается, и альтернатив технологий тут наверно больше, чем в остальных направлениях вместе взятых. Много вакансий, много legacy. В итоге, программируя под десктоп, кодер будет сталкиваться с необходимостью использовать GUI, БД, сеть. Какие технологии ему предоставят наиболее удобную реализацию подобной базы?
Мне видится 2 достойных варианта: C# (где есть все необходимое), и C++ Qt (тоже богатый фреймворк).

С++/Qt там вообще не применяется. Забудь вообще про Qt и десктоп, это мёртвороженное все.

Применяются Java, C#, Visual Basic, FoxPro, Access, если Европа и постСССР - еще и Delphi, который умирает уже 12-й год, никак не помрет.

TopSpaceНеужели кто-то скажет, что Python, или С + Tk для разработки сложных десктоп-приложений (типа корпоративной CRM-системы) лучше?
Всем абсолютно плевать, что лучше, что хуже. Просто посмотри на вакансии - и станет +- ясно, что реально еще применяется, а что уже нет.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929679
avlaxoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceИ опять тема холивара. Но вдруг кто-то выскажет ценную идею?

Ситуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Вопрос: на базе чего это лучше делать - С++ или C#? (пробовал и так, и так - не могу пока понять, что лучше подходит)

Критерии:
с моей точки зрения, курс должен научить студентов мыслить объектно. Все подробности просто не успеть охватить, но если будет хороший фундамент - они дальше сами, на практике, подтянут что нужно (кто захочет, конечно). С этой точки зрения С++ предпочтительнее, поскольку:
1. Дает более глубокое понимание того, как это все работает.
2. Дает свободу дальнейшего пути: можно изучить C#\Java (после С++ это будет легче, чем идти наоборот), захотят уйти со стека MS - пожалуйста, Qt, мир Linux и пр. А с C# им будет сложно уйти в С++, и они по моей вине станут "заложниками" MS-технологий.

С точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу. Начинается это уже при написании диплома в конце обучения: C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение. ДА и в целом, на C# ряд типовых задач (формочки, БД, сеть, графика) они решат легче и быстрее, без всяких сторонних библиотек и пр. Судя по вакансиям, .net-разработчики как-то более востребованы, чем плюсовики.

Такая вот дилемма. Поделитесь опытом и мыслями?

На мой взгляд, предпочтительнее C++. Во-первых, он построен на базе C, а в нем опыт уже у слушателей имеется. Во-вторых, реализация ООП в плюсах более академична, имхо (возможность реализации множественного наследования плюс все тонкости работы в non-managed environment).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929681
iv_an_ruПроясним ситуацМиф о необходимости многотредовости, особенно в прикладных решения - это полная туфтаНу-ну. Вот есть у меня маленькая платка:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 48
On-line CPU(s) list: 0-47
Thread(s) per core: 2
Core(s) per socket: 6
CPU socket(s): 4
NUMA node(s): 4
Vendor ID: GenuineIntel
CPU family: 6
Model: 45
Stepping: 7
CPU MHz: 2299.975
BogoMIPS: 4599.35
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 15360K
NUMA node0 CPU(s): 0-5,12-17
NUMA node1 CPU(s): 6-11,18-23
NUMA node2 CPU(s): 24-29,36-41
NUMA node3 CPU(s): 30-35,42-47
под одну СУБД. И как вы её сможете эффективно задействовать без нитей?

На вот, просвещайся:

http://en.wikipedia.org/wiki/Sharding

http://zguide.zeromq.org/page:all#Fixing-the-World

Без дураков - мне этот Fixing-the-World помог осознать проблему того, что пора уже преодолеть это самое ООП мозга и форматированное шаблонное мышление.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929685
рубистПроясним ситуац,

Раз скачал исходники, вот сам и смотри, глядиш и чему-то новому научишся.

А ты многому новому у них научился? Примеры есть?

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

И как, спрашивается, шардинг избавит от необходимости нитей для каждого шарда?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929715
iv_an_ruПроясним ситуац,

И как, спрашивается, шардинг избавит от необходимости нитей для каждого шарда?

Одна нить на шарду, и никаких мутексов и подобного.

Открой для себя libevent и асинхронное I/O, не позорься.

И прочитай уже статью с ZMQ. Или прочитай так, чтоб понять о чем там написано.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929719
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацОдна нить на шарду, и никаких мутексов и подобного.А-а. Понятно.
Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею".
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929724
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац,

Там таких исходников с ООП и виртуальными функциями целый каталог, а не только один пример.
Надо будет, поизучаю .... если решу писать свой SQL сервер. :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929729
iv_an_ruПроясним ситуацОдна нить на шарду, и никаких мутексов и подобного.А-а. Понятно.
Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею".


В линуксе процесс - это сущность из одной нити. Кури бамбук на предмет системного вызова clone()

А со своим "слышал звон" - можешь смело в ступать в профсоюз вон с тем феноменом, который решил меня
"опустить" примером с mysql, будете рыдать друг другу в жилетку, "изобличив меня паполной" (что вам еще остается, с такими знаниями-то).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929730
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avlaxoftВо-вторых, реализация ООП в плюсах более академична.

Это в каком месте она более академична? Это, пожалуй, самая примитивная и низкоуровневая реализация из существующих, построенная без каких-либо формальных теорий.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929741
avlaxoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinavlaxoftВо-вторых, реализация ООП в плюсах более академична.

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

В том плане, что это - одна из классических реализаций ООП (Б. Страуструп, с 1980 г.), наряду со SmallTalk.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929746
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац,

Аноним, с тобой общатся больше не о чем. И не тебе судить о моих знаниях.
Здесь можно закончить только фразой "Ты кто такой? Давай, досведания!"
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929752
рубистПроясним ситуац,

Аноним, с тобой общатся больше не о чем. И не тебе судить о моих знаниях.
Здесь можно закончить только фразой "Ты кто такой? Давай, досведания!"

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

До свидания, да. Удачи тебе в твой руби, может хоть там станешь похож на профи.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929755
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извенения автору топика за оффтоп
так, для поднятия настроения, пятница как ни как :)
http://www.youtube.com/watch?v=FsLYgcB1oZo
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929765
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацВ линуксе процесс - это сущность из одной нити. Кури бамбук на предмет системного вызова clone()Ну так я жду рассказа, как один процесс может одновременно читать/писать несколько дисков И общаться с несколькими клиентами И выполнять нетривиальные вычисления, периодически требующие доступа к данным с тех самых дисков И вызывать процедурки на яве/perl/php --- всё в одной нити и без накладных расходов на IPC.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929779
iv_an_ruПроясним ситуацВ линуксе процесс - это сущность из одной нити. Кури бамбук на предмет системного вызова clone()Ну так я жду рассказа, как один процесс может одновременно читать/писать несколько дисков И общаться с несколькими клиентами И выполнять нетривиальные вычисления, периодически требующие доступа к данным с тех самых дисков И вызывать процедурки на яве/perl/php --- всё в одной нити и без накладных расходов на IPC.

В школе не рассказывали про mmap, msync(MS_ASYNC), mincore и madvise? В прочем да...

И даже про fcntl( O_NONBLOCK) ioctl(fd, FIONBIO) не рассказывали (для сокетов)?
]
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929787
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац,
Поздравляю с успешным прочтением заголовочников. Ну и чем знание умных идентификаторов вам поможет? Рантайм толстого скуля "немножко" сложнее чем фарш Xitami, его "немножко" неудобнее будет представлять в виде FSA. И что совсем порвёт вам шаблон, этот FSA будет ещё и медленнее, потому что для обеспечения нужной гранулярности вам вместо редких дорогих переключений нитей придётся срывать конвейеры проца на каждом чихе. Про цену разработки и сопровождения вообще молчу, потому что такой проект просто не будет никогда закончен. Я бы понял, если б вы, скажем, вспомнили про fibers как замену нитям, это бы показало у вас зачатки понимания проблемы, а так... тролльте поинтереснее.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929794
iv_an_ruПроясним ситуац,
Поздравляю с успешным прочтением заголовочников. Ну и чем знание умных идентификаторов вам поможет? Рантайм толстого скуля "немножко" сложнее чем фарш Xitami, его "немножко" неудобнее будет представлять в виде FSA. И что совсем порвёт вам шаблон, этот FSA будет ещё и медленнее, потому что для обеспечения нужной гранулярности вам вместо редких дорогих переключений нитей придётся срывать конвейеры проца на каждом чихе. Про цену разработки и сопровождения вообще молчу, потому что такой проект просто не будет никогда закончен. Я бы понял, если б вы, скажем, вспомнили про fibers как замену нитям, это бы показало у вас зачатки понимания проблемы, а так... тролльте поинтереснее.

iv_an_ruПроясним ситуац,
Поздравляю с успешным прочтением заголовочников. Ну и чем знание умных идентификаторов вам поможет? Рантайм толстого скуля "немножко" сложнее чем фарш Xitami, его "немножко" неудобнее будет представлять в виде FSA. И что совсем порвёт вам шаблон, этот FSA будет ещё и медленнее, потому что для обеспечения нужной гранулярности вам вместо редких дорогих переключений нитей придётся срывать конвейеры проца на каждом чихе. Про цену разработки и сопровождения вообще молчу, потому что такой проект просто не будет никогда закончен. Я бы понял, если б вы, скажем, вспомнили про fibers как замену нитям, это бы показало у вас зачатки понимания проблемы, а так... тролльте поинтереснее.


Мы не используем Xitami и не собираемся (есть собственная реализация HTTP), что такое FSA не знает даже википедия. Что это?

Про срыв конвеера проца, в сравнении с переключениями контекста - можно рассказать вот тому мальчику, который там с mysql напрышивал, он - поверит.

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

Все переключения контекста реализованы над обертками системных вызовов socket read/socket write/db.get/db.put

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

Ты просто совсем не в теме видать, и это хорошо.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929798
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceПроблема в том, что 90% любой группы - это те, кто хочет особо ничего не делая получить оценку. Им вроде бы хочется стать программистами, но нет огня, они не сидят допоздна за кодом, стремясь сделать свой проект, не просят советов и т.п. Делают лабы с буквальной точностью, и если в методичке у меня опечатка, и любому ясно, что вот тут вот так делать - бред, нет же, они так сделают, "ибо написано".
Вопрос: стоит мне тратить силы и разжевывать материал так, чтобы у них что-то осталось в голове? Они все равно не станут программистами. При этом 10% более шарящих чуваков будут скучать. Не лучше ли подумать о тех, кому знания и опыт действительно нужны?Программирование - это сугубо прикладная дисциплина. (Если мы забыли о Computer Science и говорим исключительно о кодерстве.) Какой смысл в лекциях и методичках? Единственный способ научить - это дать реальную задачу. Даже 10% шарящих чуваков, делая лабы, ничего не приобретут.

Например, у меня на практике студенты моделируют БП, пишут простенькие БД - полуфабрикаты, которые потом допиливают сотрудники. Я не даю им вообще никакого лекционного материала (очного или в виде обязательных для прочтения книг), инструкций, примеров. Только ставлю задачу, отвечаю на возникающие по ходу вопросы и критикую их решения. Если студент ленивый, то его мыслительный процесс и наш с ним диалог будут вялыми. Ну, и фиг с ним. Если он что-то делает, то даже при нулевом багаже знаний он чему-то научится.

Знания студента вообще не имеют никакого значения, только вовлеченность в процесс, интенсивность диалога с преподавателем.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929803
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рубистAres_ekbНапример, задача: прочитать из БД описание бизнес-сущностей, сгенерить для них классы и загрузить их в приложение.На Ruby это займет строчек 10 :)Если бы под Ruby ещё было что-то типа XAF ;) Иначе всё остальное займет очень много строчек кода ;(
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929834
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацчто такое FSA не знает даже википедияВикипедия знает , это вы не знаете.

Проясним ситуацгранулярность порядка сильно меньше 1 мсек на один запросИ чем гордиться? Посчитайте сами, сколько строк таблицы можно пробежать за 1 лишнюю мсек, из расчёта два такта на строку. Хотя о чём это я? Вы ж начали с того, что изувечили базу, самовольно без спросу добавив шардинг на всё подряд. Кстати, вам с вашим шардингом латентность NUMA передавала пламенный привет :)

Проясним ситуацrequest прилетает сразу (ибо меньше размера пакета), данные файла уже в замамлены в памяти, а асинхронная отправка response и вовсе ничего от workerа не требует.Если вы ничего сложнее веб-сервера не писали, то у вас тем более нет оснований поучать других.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929873
iv_an_ruПроясним ситуацчто такое FSA не знает даже википедияВикипедия знает , это вы не знаете.
Автоматы знает любой студент, который изучал дискретку. Какое отношение они имеют к вопросу событийно-ориентированного асинхронного программирования?
К чему было их упоминать? Для красного словца? Ну давай я еще с "умным" видом ляпну про автоматы с магазинной памятью, а ты сиди и думай, зачем это я сказал.

iv_an_ruПроясним ситуацгранулярность порядка сильно меньше 1 мсек на один запросИ чем гордиться? Посчитайте сами, сколько строк таблицы можно пробежать за 1 лишнюю мсек,
В фразе "меньше 1 мсек" я говорил про гарантированную гранулярность. В реальности web запросы отрабатывают за намного меньшее время, за некоторыми исключниями.

iv_an_ru из расчёта два такта на строку. Хотя о чём это я? Вы ж начали с того, что изувечили базу, самовольно без спросу добавив шардинг на всё подряд.
Чуваки из ebay применяют шардинг на базах данных Oracle, чуваки из Facebook/Twitter - тоже самое, но на mysql.
Они у тебя тоже должны были разрешения спрашивать?

iv_an_ruКстати, вам с вашим шардингом латентность NUMA передавала пламенный привет :)
Полная чушь. Как раз для NUMA шардинг прописан еще и как, потому что позволяет делать реально управляемый и эффективный affinity и к процессору, и к его локальной памяти и кешам (см на netezza как пример).

Садись два, вообще не шаришь.

iv_an_ruПроясним ситуацrequest прилетает сразу (ибо меньше размера пакета), данные файла уже в замамлены в памяти, а асинхронная отправка response и вовсе ничего от workerа не требует.Если вы ничего сложнее веб-сервера не писали, то у вас тем более нет оснований поучать других.

Все, пойду наемся с горя червячков.

Можно пример чуть более сложного, чем веб-сервис? FEA расчеты подойдут?
Если я умею считать динамические нагрузки, то я могу уже поучать? Что, все еще нет? О горе мне!

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

Ок, все прослезились, ты меня уделал паполной!
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929896
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацАвтоматы знает любой студент, который изучал дискретку. Какое отношение они имеют к вопросу событийно-ориентированного асинхронного программирования?Потому что если вы не хотите запихать всё состояние толстого рантайма в событие, то вам понадобится 1) где-то хранить это состояние и 2) предусмотреть переходы из одного класса состояний в другие. Вот вам и автомат. Тот же imatix, которым вы размахиваете, предлагал целый тулкит для написания FSA как раз по этой причине.

Проясним ситуацЧуваки из ebay применяют шардинг на базах данных Oracle, чуваки из Facebook/Twitter - тоже самое, но на mysql. Они у тебя тоже должны были разрешения спрашивать?Да нет, не должны. Просто эти "чуваки" в отличие от вас знают, когда от шардинга больше пользы, чем вреда, а когда наоборот.

Проясним ситуацiv_an_ruКстати, вам с вашим шардингом латентность NUMA передавала пламенный привет :)Полная чушь. Как раз для NUMA шардинг прописан еще и как, потому что позволяет делать реально управляемый и эффективный affinity и к процессору, и к его локальной памяти и кешам (см на netezza как пример).Щасс. Вот если б вы рассматривали шардинг строго по числу NUMA-нод, это показало бы некоторую осведомлённость, а по числу ядер БД пилят только в весьма специальных случаях.

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

я лишь посоветовал мое имхо - как на практике можно воспользоваться уже готовой оконной функцией и расширить ее средствами ООП.
Ничего более.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929904
iv_an_ruПроясним ситуацАвтоматы знает любой студент, который изучал дискретку. Какое отношение они имеют к вопросу событийно-ориентированного асинхронного программирования?Потому что если вы не хотите запихать всё состояние толстого рантайма в событие, то вам понадобится 1) где-то хранить это состояние и 2) предусмотреть переходы из одного класса состояний в другие. Вот вам и автомат. Тот же imatix, которым вы размахиваете, предлагал целый тулкит для написания FSA как раз по этой причине..
Открой для себя стандартные POSIX getcontext, setcontext (которые вызываются при условии что read/write не может быть выполнен прям сейчас, EWOULDBLOCK на выходе и SIGALARM (для heatberta, и вывода "закисшей" отдельно взятой сессии из бесконечного цикла).

И тогда не надо будет выдумывать всякую хрень вроде отого всего, что ты понаписал из головы.

iv_an_ruПроясним ситуацЧуваки из ebay применяют шардинг на базах данных Oracle, чуваки из Facebook/Twitter - тоже самое, но на mysql. Они у тебя тоже должны были разрешения спрашивать?Да нет, не должны. Просто эти "чуваки" в отличие от вас знают, когда от шардинга больше пользы, чем вреда, а когда наоборот.

Точно! Ты сейчас с ними созванивался, выяснял, что они знают, а что нет, и что они знают о том, чего я не знаю?

Просто обалдеть!

iv_an_ruПроясним ситуацпропущено...
Полная чушь. Как раз для NUMA шардинг прописан еще и как, потому что позволяет делать реально управляемый и эффективный affinity и к процессору, и к его локальной памяти и кешам (см на netezza как пример).Щасс. Вот если б вы рассматривали шардинг строго по числу NUMA-нод, это показало бы некоторую осведомлённость, а по числу ядер БД пилят только в весьма специальных случаях.


Какая-то сказочная чушь, право. Что мне мешает создать 16 шард и повесить их на одну ноду да хоть простейшим taskset/sched_setaffinity, заодно прописать set_mempolicy для mmap? Кстати, да, надо бы и FR сделать...

Ах да, сервер баз данных тоже свой, из отряда доработанного dbm (а то "понимание", что там Oracle приверчен, это лишнее, понимание т.е.)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929917
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуац...
Что мне мешает создать 16 шард и повесить их на одну ноду да хоть простейшим taskset/sched_setaffinity, заодно прописать set_mempolicy для mmap? Кстати, да, надо бы и FR сделать
...

Про ТС забыли? Эта цитата выше - для конспекта для ТС, чтобы он процитировал студентам?
Затроллили весь топик.
Создайте свою тему и обсуждайте споры, если ваших сообщений более 3-5 ...
TopSpace (ТС) наверное разочарован - задал вопрос, а вместо ответа личные споры.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929925
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проясним ситуацОткрой для себя стандартные POSIX getcontext, setcontext...тогда уж просто pthreads и заюзать, вспоминая, что "The obsolescent functions getcontext(), makecontext(), and swapcontext() can be replaced using POSIX threads functions." :)

Проясним ситуацТочно! Ты сейчас с ними созванивался, выяснял, что они знают, а что нет, и что они знают о том, чего я не знаю?Нет нужды созваниваться. Я более чем уверен, что азбуку они знают. В отличие от.

Проясним ситуацiv_an_ruпропущено...
Щасс. Вот если б вы рассматривали шардинг строго по числу NUMA-нод, это показало бы некоторую осведомлённость, а по числу ядер БД пилят только в весьма специальных случаях.
Какая-то сказочная чушь, право. Что мне мешает создать 16 шард и повесить их на одну ноду да хоть простейшим taskset/sched_setaffinity, заодно прописать set_mempolicy для mmap? Кстати, да, надо бы и FR сделать...Мешает ровно один грустный факт --- вы этим все реплицированные данные нод размножили в 16 экземплярах. А кэш проца вы не размножили. Ну и ещё куча мелочей, вроде возможности зарезервировать гигов пять на ноду под тяжёлые буферы, пока это 5*4=20 гигов на ящик, и невозможность --- если это 16*5*4 гигов на ящик.

Проясним ситуацАх да, сервер баз данных тоже свой, из отряда доработанного dbmМолодец, возьми с полки пирожок. Но есть ньюанс --- за 30 с хвостиком последних лет аппетиты приложений слегка подросли, и в возможности *дэбээм не влезают никак. соответственно и инструментарий на серверной стороне слегка поменялся.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37929933
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aswsЗатроллили весь топик.
Создайте свою тему и обсуждайте споры, если ваших сообщений более 3-5 ...
TopSpace (ТС) наверное разочарован - задал вопрос, а вместо ответа личные споры.
Логично. Переезжаем: 13062628

TopSpace, не обижайтесь, пожалуйста, на неудобства --- мы вам топик на главную страницу сайта вывесили :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930025
prepod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача почти безнадежная.
Хотя если вопрос стоит, как использовать время (8 лекций + 4 практики), чтобы это было наиболее эффективно?
Т.е. чтобы человек 10-12 из группы в 30 человек заинтересовать настолько, чтобы из них 1-2 человека продолжили это изучать самостоятельно или в контакте с лектором (ISQ,email,phone,etc.), который бы подкидывал книги, другие источники...

Наверное лучше будет эта книга.
Культин. Microsoft Visual C# в задачах и примерах.
http://www.livelib.ru/book/1000402940

Это совсем не та книга, с которой стоит начинать изучение программирования, совсем, нет, не Рихтер, не Петзольд.
Но стоит задача познакомить. Времени на то, чтобы объяснить что-то, - просто НЕТ. Наработок преподавательских, скорее всего, тоже нет.(и слава богу, давать будете что-то современное). Вот эти задачи из книги и послужат хорошим методическим материалом.

Сколько групп в потоке? Если несколько, то хорошо, на первой потренируетесь... Если планируете не один год вести, возьмите диктофон, пишите себя, потом сможете обработать свои же экспромты (они будут) и лучше представлять время.

Задачи у Культина идут сразу на формочки и на легкую логику if/else и дальше, событийно-управляемое windows-программирование , и сразу с наглядным результатом. Задачки прикольные, не оттолкнут. Самому придумать хорошие задачи сложно, да и не один год пройдет, прежде чем будете не только программистом, но и преподавателем, а Культин давно в теме.

Теорию объяснять можно, но пока писать программу не начнешь, ведь и сам не поймешь, что ты из лекции понял, а что нет. Так что если лекции иногда удастся провести в компьютерном классе, пусть даже по 4 человека за компом, это будет все равно эффективнее, чем они все в аудитории будут лекцию слушать, даже с проектором. (ага, и программу ручкой списывать с доски :-) ).

Кто будет решать все с опережением, с теми индивидуальный план, если сочтете нужным, но это уже совсем другой путь. (и другие книги).
А так за эти 24 часа нормально-то if/else и типы данных объяснить не успеешь, если они уже забыли Си напрочь.

PS. Успеха Вам, но если обнаружите, что прошло несколько лет, а Вы сами не очень-то развиваетесь, бросайте это преподавание. Тем более, что там зачастую Вы заранее ставитесь в условия типа "миссия невыполнима". Ну типа 24 часа на все!
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930076
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Prepod,
спасибо за советы, книжку гляну.

Да, интересная дискуссия получилась) Тема все-таки холиварная: в итоге так и не удается поставить точку в вопросе C++\C#, есть доводы с обоих сторон. Если немного резюмировать их:

За С++: ближе к С, поэтому более плавный переход. Второй довод "после него уже ничего не страшно".
За C#: меньше заморочек, а значит за то же время выйдет более подгтовленный джуниор.

Может быть и правильно взять Java вместо них - подскажет кто, какая книга хорошо погружает в тему?

Ну а об отказе от ООП в сторону ФП говорить пока рановато.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930110
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace,

А может оба языка преподавать?
Вернее, тот, какому отдают предпочтение сами студенты или уже имеют начальные знания или опыт?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930134
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asws,
тоже думал про оба - запутаются. Слишком много между С++ и C# тонких различий, каша будет.

Их мнение, думаю, учитывать не нужно)) Они пока еще ничего не знают (кроме С), чтобы сознательно делать выбор. Думаю, выберу все-таки C#, он на пару с Java сейчас половину вакансий составляет (а С++ там встречается все реже). Только полностью поменяю формат: выдавать лекции заранее, чтобы на занятии только пробегаться, разбирая вопросы, больше практики, и часть тем сократить до минимума (типа перегрузки операторов). Да, придется менять учебный план, билеты, но оно того стоит. Самое тут сложное -это придумывать интересные задачи! Для примеров, и для лаб.

Посоветуйте, кто может, примерные темы лаб? Чтоб было интересно и не сильно оторвано от реальности. А то надоело это классическое, встречающееся в 90% курсов:
1. Делаем класс (по вариантам, типа карточка в библиотеке, матрица, полином, геометрическая фигура,...), делаеи коллекцию объектов, вставка\редактирование\удаление.
2. Делаем класс с перегрузкой операторов, показываем как работает.
3. Делаем простенькую иерархию, показываем работу полиморфизма.
4. Пишем свою коллекцию.

Хотя может сам этот костяк и должен остаться, но что-то хочется интересное внести!
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930292
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЗа С++: ближе к С, поэтому более плавный переход. Второй довод "после него уже ничего не страшно".
За C#: меньше заморочек, а значит за то же время выйдет более подгтовленный джуниор.А вы не давайте им лишние плюсовые заморочки. Ваша задача --- дать им сделать простейшее приложеньице, и вместо темплета объяснить им что такое комментарий, что такое тест, что такое защита от дурака.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930315
TopSpaceЗа С++: ближе к С, поэтому более плавный переход. Второй довод "после него уже ничего не страшно".
Господа, а вот с этим утверждением все согласны?

Допустим если сравнить С, C# и C++ по:
фича\язык: C C# C++ООП - + +множественное наследование - - +шаблоны - +- +перегрузка операторов - + +лямбда функции - + +сборщик мусора - + +
Получается что C# стоит между С и С++ и ближе к последнему.

Кто хорошо знает C#, дополните таблицу фичами из C#, что бы получилась другая ситуация.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930329
все согласны?Господа, а вот с этим утверждением все согласны?
Тут нет господ даже близко. В основном недоученные бывшие рабоче-крестъянены с якобы дипломами

И в целом - конечно нет

Допустим если сравнить С, C# и C++ по:
фича\язык: C C# C++ООП + (есть - читай книги) + +множественное наследование ? - +шаблоны + (кури макросы) +- +перегрузка операторов - + +лямбда функции - + +сборщик мусора + (кури obstack и Boehm-Demers-Weiser conservative garbage collector for C/C++) + +
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930336
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все согласны?C# стоит между С и С++ и ближе к последнему.Трудно согласиться. Си --- это макроассемблер такой удобный. Си с двумя плюсами --- это ещё более навороченный макроассемблер. А C# --- это нечто со своей подковёрной внутренней жизнью, вроде Паскаля. Это не "достоинство" и не "недостаток", просто принципиальное отличие от двух других.
Есть, кстати, ещё C--, SAC и куча "кастрированных Си", которые ещё нагляднее показывают "макроассемблерность" Си. Особенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930346
iv_an_ruвсе согласны?C# стоит между С и С++ и ближе к последнему.Трудно согласиться. Си --- это макроассемблер такой удобный. Си с двумя плюсами --- это ещё более навороченный макроассемблер. А C# --- это нечто со своей подковёрной внутренней жизнью, вроде Паскаля. Это не "достоинство" и не "недостаток", просто принципиальное отличие от двух других.
Есть, кстати, ещё C--, SAC и куча "кастрированных Си", которые ещё нагляднее показывают "макроассемблерность" Си. Особенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг.
Ну с С - макроасемблер соглашусь. А С++ макроассемблер?
Допустим перевод кода с ASM на С чисто механический, а вот с ASM на C++ - это написать программу заново.
Я к тому, что в С++ и ООП ООПей, чем в остальных (C#, Java), и шаблоны шаблонистей :)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930347
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шаблоны шаблонистей :)Я к тому, что в С++ и ООП ООПей, чем в остальных (C#, Java), и шаблоны шаблонистей :)

Про шаблоны спорно, а вот про "ООПшность" - так по идее наоборот, С++ еще как-то допускает мешать классы с процедурами, то C# - в более полной мере реализует лозунг "все есть объект". Там без класса вообще ничего не сделать.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930356
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шаблоны шаблонистей :)Ну с С - макроасемблер соглашусь. А С++ макроассемблер?
Допустим перевод кода с ASM на С чисто механический, а вот с ASM на C++ - это написать программу заново.Макроассемблер не переводит "с ASM", так что логика непонятна.
Имея, скажем, декларации классов и функций членов, вы можете "в уме" с точностью до байта представить себе раскладку объектов в памяти, содержимое вирттаблиц, понять, во что превратятся инлайны, в какие объектные модули и как лягут инстанцияции темплетов и т.п. Можете представить себе даже содержимое карт диапазонов адресов инструкций, которую "разматывалка стека" обходит при работе обработчика исключений. Были бы терпение, родная дока компилятора и производственная необходимость. Вы можете понять, как подкрутить структуры данных или код для того или иного изменения в раскладке данных. Или можете понять, что надо выпендриться на более низком уровне, и выпендриться строго как надо. От архитектурно-специфических функций gcc до вставок на асме включительно.
Это IMHO и есть макроассемблер.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930363
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все согласны?множественное наследованиеЖуть какая, нормальное множественное наследование я видел только в CLOS. Интерфейсы уж куда более полезная штука.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930380
с ASM на С++
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruшаблоны шаблонистей :)Ну с С - макроасемблер соглашусь. А С++ макроассемблер?
Допустим перевод кода с ASM на С чисто механический, а вот с ASM на C++ - это написать программу заново.Макроассемблер не переводит "с ASM", так что логика непонятна.
Имея, скажем, декларации классов и функций членов, вы можете "в уме" с точностью до байта представить себе раскладку объектов в памяти, содержимое вирттаблиц, понять, во что превратятся инлайны, в какие объектные модули и как лягут инстанцияции темплетов и т.п. Можете представить себе даже содержимое карт диапазонов адресов инструкций, которую "разматывалка стека" обходит при работе обработчика исключений. Были бы терпение, родная дока компилятора и производственная необходимость. Вы можете понять, как подкрутить структуры данных или код для того или иного изменения в раскладке данных. Или можете понять, что надо выпендриться на более низком уровне, и выпендриться строго как надо. От архитектурно-специфических функций gcc до вставок на асме включительно.
Это IMHO и есть макроассемблер.
Я и не говорю что "Макроассемблер не переводит "с ASM"", я говорю "перевод кода с ASM на С чисто механический", т.е. вы можете легко перевести с ASM на C, а так как базовым языком макроассемблера является ассемблер и близостью языка можно назвать легкость перевода с одного на другой, то легкость перевода с ASM на другой язык и может считаться близостью его к макроассемблеру.
Думаю вы заметите существенную разницу в сложности перевода с ASM на С, против перевода с ASM на С++.
А по вашему получается любой язык компилируемый в машинный код - макроассемблером.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930385
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с ASM на С++Думаю вы заметите существенную разницу в сложности перевода с ASM на С, против перевода с ASM на С++.Не замечу.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930390
Ares_ekbвсе согласны?множественное наследованиеЖуть какая, нормальное множественное наследование я видел только в CLOS. Интерфейсы уж куда более полезная штука.
Наверняка вы просто не знаете для какой задачи подойдет множественное наследование, а если вам дать задачу, где оно применимо как нельзя лучше, то не сможете её красиво решить без него.
А о достоинствах других языков здесь никто и не спорит. Прикладные языки ставят жесткие рамки защищающие от глупых ошибок, в этом их достоинство.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930392
с С++ на ASM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruс ASM на С++Думаю вы заметите существенную разницу в сложности перевода с ASM на С, против перевода с ASM на С++.Не замечу.
Ну чтож, поздравляю, вы уникальный человек на этой планете.
А разницу в переводе с C на ASM, и с C++ на ASM наверное тоже не заметите, и не заметите разницу в сложности написания программы которая эти переводы делает, т.е компилятора С и С++?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930422
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с С++ на ASMiv_an_ruпропущено...
Не замечу.
Ну чтож, поздравляю, вы уникальный человек на этой планете.
А разницу в переводе с C на ASM, и с C++ на ASM наверное тоже не заметите, и не заметите разницу в сложности написания программы которая эти переводы делает, т.е компилятора С и С++?По сравнению с построением хорошего сишного компилятора для современного проца, "нахлобучка" в виде двух плюсов сложности уже почти не добавляет. Аннотированный С++ транслируется в аннотированное подмножество С несложной переписывалкой, которую за два семестра пишет не очень-то старательный программист в глубоко "советском" НИИ.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930427
с С++ на ASM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruс С++ на ASMпропущено...

Ну чтож, поздравляю, вы уникальный человек на этой планете.
А разницу в переводе с C на ASM, и с C++ на ASM наверное тоже не заметите, и не заметите разницу в сложности написания программы которая эти переводы делает, т.е компилятора С и С++?По сравнению с построением хорошего сишного компилятора для современного проца, "нахлобучка" в виде двух плюсов сложности уже почти не добавляет. Аннотированный С++ транслируется в аннотированное подмножество С несложной переписывалкой, которую за два семестра пишет не очень-то старательный программист в глубоко "советском" НИИ.
Да вот кстати, тут поиском находится дискуссия с вашим участием:
Сколько у вас ушло времени на освоения cpp
iv_an_ruПримерно год писал транслятор с аннотированного C++ в специальное подмножество С --- вот за тот год, стало быть, и доучил. До того трудно посчитать, суммарно, наверное, год урывками. Последние лет 10 пишу на голом си, так что сейчас в плюсах, наверное, опять чайник-чайником .

Сколько у вас ушло времени на освоения cpp
SiemarglAnatoly Moskovskyпропущено...

Зачем прикидки? Вот люди точно рассказали http://www.arbinada.com/main/node/54/606 (классика уже)
Есть прямой ответ (цитата неточная) Уолтера Брайта: "Я написал компилятор Си за год , думал еще за год написать компилятор С++. Прошло 10 лет, и я все еще далеко от завершения ."

Справедливости ради, его компилятор Digital Mars C++ не намного лучше Борланда.
Сейчас пишут D, с переменным успехом =)
Уолтер Брайт: 1 год против более чем 10 лет.

Ок, будем считать ваше мнение более профессиональным:
iv_an_ruГоды работы группы человек из пяти.
Около 5 человеколет только на транслятор. За год не написали.

А компилятор С за сколько бы вы написали?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930435
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с С++ на ASMА компилятор С за сколько бы вы написали?Нормальный вообще бы не написал, это не моя специальность.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930438
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все согласны?Наверняка вы просто не знаете для какой задачи подойдет множественное наследованиеТакой задачи нет. Наследуется либо внешнее поведение объекта (в этом случае используем абстрактные классы, интерфейсы - реализация нас не интересует), либо внутренняя реализация (в этом случае наследование всегда можно заменить композицией).

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

Конечно, композиция - это не совсем наследование. У родительского и встроенного объектов разные жизненные циклы. Но это меньшее зло.

Отсутствие множественного наследования иногда несколько увеличивает количество кода, но, уж, лучше явно прописать какие-то вещи, чем допускать неявные ошибки с МН.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930439
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с С++ на ASMУолтер Брайт: 1 год против более чем 10 лет.Разумеется. Есть принципиальная разница между построением "какого-нибудь" транслятора и построением _быстрого_ транслятора, к тому же _гарантированно_ соблюдающего стандарт.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930445
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceшаблоны шаблонистей :)Я к тому, что в С++ и ООП ООПей, чем в остальных (C#, Java), и шаблоны шаблонистей :)
Про шаблоны спорно, а вот про "ООПшность" - так по идее наоборот, С++ еще как-то допускает мешать классы с процедурами, то C# - в более полной мере реализует лозунг "все есть объект". Там без класса вообще ничего не сделать.
Если хочешь научить студентов только ООП за 4-8 лекций, то C# тогда, как сам выбрал.
(мое скромное имхо - я-б не учил этому монстру, бедные люди, им-же всю жизнь переучиваться и зависить от MS для зарабатывания $ и кормления семьи).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930525
iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг.
А можно пример?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930527
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно пример?iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг.
А можно пример?асм не заменишь никаким C, если только элементарный пример, тебе это надо?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930533
aswsА можно пример?iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг.
А можно пример?асм не заменишь никаким C, если только элементарный пример, тебе это надо?
Ну тут говорят про cmm, который javascript. Да и с С было бы интересно что там за асм инструкции в "как-бы сишном коде".
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930536
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно пример?aswsпропущено...
асм не заменишь никаким C, если только элементарный пример, тебе это надо?
Ну тут говорят про cmm, который javascript. Да и с С было бы интересно что там за асм инструкции в "как-бы сишном коде".
Не надо путать интерпретатор по-сути/или пока-еще - JavaScript ,
и машинные коды, на которых работает проц компа.

Наиболее близок к машинным кодам - Ассемблер - в нем каждая команда имеет условную мнемонику соответсвия машинному коду.

Все остальные компиляторы ЯП более высокого уровня - создают говнокодище.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930537
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После АСМа, из всех компиляторов - C создает наиболее лучший код с точки зрения машинных команд для процессора,
за ним идет наверное Pascal, н тут я уже не уверен, это предположение...
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930541
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace... ООП - это парадигма, глобальный подход, а оконные функции - частная техническая деталь. Это в итоге нужно знать, но стоит ли с этого прям начинать? Тогда нужно будет рассказать про IDE, процесс компиляции, виды языков, стек и кучу,...
а как Вы хотели?
Учить других - это талант, надо четко ЗНАТЬ на опыте и УМЕТЬ грамотно объяснить.
Иначе будут задания от Вас, сравнимые с заданием от горе-препода - типа создать ООП пример на ассемблере...
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930544
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avlaxoftПомнится, у нас в универе даже домашнее задание на лето было: написать на ASMе (!!!) программу, использующую объекты (да, оказывается, даже на этом уровне есть механизм реализации всех трех "китов" ООП!) и моделирующую полет и упругое столкновение на экране шариков, отталкивающихся друг от друга и от стенок экрана (один шарик - один экземпляр объекта)...Это Вам попался горе-учитель, который кроме "парадигмы ООП" (это только слово в языке, каждый по-своему понимает),
больше ничего не захотел изучать (или умом слабоват), и поэтому сильно ограничен.
Не повезло Вам с преподом.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930564
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно пример?iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг.
А можно пример?Вот тут пара добровольцев всё ещё поддерживают старинный Сфинкс C-- , можно и мелкие примеры посмотреть.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930569
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asws(мое скромное имхо - я-б не учил этому монстру, бедные люди, им-же всю жизнь переучиваться и зависить от MS для зарабатывания $ и кормления семьи).

Тогда чему? C++?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930637
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace,

Учите тому, что Страуструп называл "Си с классами". Остальное пусть сами потом.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930650
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чем отличаются С++ и "Cи с классами"?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930667
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace,

отличаются отсутствием темплетов, очень ограниченным использованием виртуальных базовых классов и исключений.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930711
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruTopSpace,

отличаются отсутствием темплетов, очень ограниченным использованием виртуальных базовых классов и исключений.

Что виртуальное наследование - зло, говорят многие, я тоже так думаю. Исключения - спорный момент. Вроде бы и удобно (можно в одном месте обрабатывать ошибки с целого "куста" функций), но к примеру google code style их категорически запрещает. Работал с парой игровых движков - ни одного throw.

А с темплейтами - возвращаемся к началу... без них чел не поймет как работает STL, а плюсовик без STL - это нонсенс какой-то (увы).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930715
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace,

Плюсовик за восемь лекций --- само по себе нонсенс.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930733
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruПлюсовик за восемь лекций --- само по себе нонсенс.

Ну вот об этом и речь, что быть может шарпист за это время получится более хороший? А вообще мы говорим, естественно, о самом базисе, даже не уровень джуниора, дальше все зависит от студента. Но примеры есть - люди делали диплом, мелкие проекты, и быстро дорастали до джуниорских вакансий. Очень многое от человека зависит.7056
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930744
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, смысл ваших споров мне не понятен. Человек, который знает язык программирования - бесполезен. Он может только решать задачки из учебника. Кроме языка надо знать библитеки связанные с предметной областью, надо знать операционку, надо знать тот-же SQL, структуры данных итд. В результате оказывется, что язык програмирования это 5-10% необходимых знаний. Ну и стоит ради этого спорить? Обучать надо принципам программирования. А язык при этом - вторичен. Хоть язык академика Ершова используйте
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930765
надо знать
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vromanovГоспода, смысл ваших споров мне не понятен. Человек, который знает язык программирования - бесполезен. Он может только решать задачки из учебника. Кроме языка надо знать библитеки связанные с предметной областью, надо знать операционку, надо знать тот-же SQL, структуры данных итд. В результате оказывется, что язык програмирования это 5-10% необходимых знаний. Ну и стоит ради этого спорить? Обучать надо принципам программирования. А язык при этом - вторичен. Хоть язык академика Ершова используйте
Библиотеки, да надо знать. Может и бесполезен, но днем с огнем не сыщешь человека отлично знающего язык.
А SQL разве не язык?
И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930776
надо знатьvromanovГоспода, смысл ваших споров мне не понятен. Человек, который знает язык программирования - бесполезен. Он может только решать задачки из учебника. Кроме языка надо знать библитеки связанные с предметной областью, надо знать операционку, надо знать тот-же SQL, структуры данных итд. В результате оказывется, что язык програмирования это 5-10% необходимых знаний. Ну и стоит ради этого спорить? Обучать надо принципам программирования. А язык при этом - вторичен. Хоть язык академика Ершова используйте
Библиотеки, да надо знать. Может и бесполезен, но днем с огнем не сыщешь человека отлично знающего язык.
А SQL разве не язык?
И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки?Где, где ты видел в стандарте ANSI C многопоточность? pthreads?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930789
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А SQL разве не язык?
И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки?
Под SQL подразумевается не только язык, но и многое другое..
ОС - куча вещей совсем не кроплатформенных. Начиная от регистри на Win и заканчивывая эффективной работой с сокетами под линуксом.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930791
надо знать
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я танцую пьяный на столенадо знатьпропущено...

Библиотеки, да надо знать. Может и бесполезен, но днем с огнем не сыщешь человека отлично знающего язык.
А SQL разве не язык?
И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки?Где, где ты видел в стандарте ANSI C многопоточность? pthreads?
Откройте для себя википедию:
http://ru.wikipedia.org/wiki/ANSI_C#C11
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930793
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vromanov,

то, что вопрос язык вторичен - не значит, что он не существенен. А так, думаю здесь все согласны с тем, что на примере конкретного языка преподаватель должен иллюстрировать универсальные понятия (например, принципы ООП), знакомить с типовыми решениями (разделение модели и представление, потоковая синхронизация, и т.п.), ну и давать какой-то минимум конкретных технологий (библиотеки, API, фреймворки). И спор о том, какой язык лучше сгодится на роль такой иллюстрации.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930794
надо знать
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vromanovА SQL разве не язык?
И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки?
Под SQL подразумевается не только язык, но и многое другое..
ОС - куча вещей совсем не кроплатформенных. Начиная от регистри на Win и заканчивывая эффективной работой с сокетами под линуксом.
Насчет сокеты/сеть соглашусь.
А что вы под SQL ещё понимаете?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930796
надо знатьЯ танцую пьяный на столепропущено...
Где, где ты видел в стандарте ANSI C многопоточность? pthreads?
Откройте для себя википедию:
http://ru.wikipedia.org/wiki/ANSI_C#C11 Капец! Откуда я знал, шо этот стандарт вышел, откуда он още появилсЯ???

Я пишу на С99 !!!
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930798
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если знание C и базовых алгоритмов у слушателей уже есть, то можно взять за основу "(Most) Effective C++".
Объяснить разницу между new и malloc, new и "new для массивов", что такое "буферированный new", почему не надо использовать полиморфизм в массивах, что даёт перегрузка операторов и на какие грабли (легко) наступить в этом процессе.
Что дают интеллектуальные указатели и какие проблемы создаёт их использование.
Уделить внимание преобразованиям типов и почему наследование его затрудняет.
На лабах можно "повторить пройденное" на базе STL.
"Как-то так" (ц) Винни-Пух.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930802
Диктатор II
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, да Вы с дуба рухнули!?

Какие указатели , какой к черту STL , ни в коем случае!

Либо Java, либо C#

Еще вместо выдрачивания голого ООП, я бы пустил в параллель паттерны проектирования.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930803
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диктатор IIя бы пустил в параллель паттерны проектирования.Тут вопрос, что выкинуть из курса, а не что добавить. Есть всего 8 пар, помните?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930810
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диктатор IIКакие указатели , какой к черту STL , ни в коем случае!Никто не призывает демонстрировать потроха auto_ptr или детально разбирать синтаксис и семантику шаблонов.
А вот показать, что "... вот здесь разумно использовать auto_ptr ..." и про "интеллектуальные, но не указатели" - можно и нужно.
С STL - аналогично: демонстрация того, что уже известно слушателям (списки и сортировки) покажет, что не надо изобретать велосипеды на совсем ровном месте.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930812
ininglarec11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cогласен что UPD: да, и забыл упомянуть еще и такой момент: переход C=>C++ более прост, чем C=>C# (IMHO).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930817
нельзя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovДиктатор IIКакие указатели , какой к черту STL , ни в коем случае!Никто не призывает демонстрировать потроха auto_ptr или детально разбирать синтаксис и семантику шаблонов.
А вот показать, что "... вот здесь разумно использовать auto_ptr ..." и про "интеллектуальные, но не указатели" - можно и нужно.
С STL - аналогично: демонстрация того, что уже известно слушателям (списки и сортировки) покажет, что не надо изобретать велосипеды на совсем ровном месте.
auto_ptr нельзя использовать нигде и никогда. deprecated
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930821
Дедок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нельзяBasil A. Sidorovпропущено...
Никто не призывает демонстрировать потроха auto_ptr или детально разбирать синтаксис и семантику шаблонов.
А вот показать, что "... вот здесь разумно использовать auto_ptr ..." и про "интеллектуальные, но не указатели" - можно и нужно.
С STL - аналогично: демонстрация того, что уже известно слушателям (списки и сортировки) покажет, что не надо изобретать велосипеды на совсем ровном месте.
auto_ptr нельзя использовать нигде и никогда. deprecated Ну опять, только дочитал Страуструпа, где он хвалил этот авто_птр, и тут бац, уже устарело... не успеешь за ними
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930822
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... интересненько.

http://en.cppreference.com/w/cpp/memory/unique_ptr
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930824
Фотография vromanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceИ спор о том, какой язык лучше сгодится на роль такой иллюстрации.
Для обучения лучше сгодится тот, у кого лучше отладчик, удобнее IDE, больше книг в продаже. Также важно, чтобы IDE было бесплатным. Это скорее всего все-таки С# или С++ с MS Visual Studio Express. Чистый С изучать сложенее - мало док и код слишком похож на С++.
В сыое время был крут Turbo Pascal. Сейчас его заменил Visual Studio Express C#
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930825
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзяauto_ptr нельзя использовать нигде и никогда. deprecated Это get() нельзя использовать, а от устаревания до запрета - дистанция огромного размера.

P.S. Ну и к "только что принятому" C11 - тоже пять.
Процитирую (неточно) всё того же Мейерса: "Если ваша задача - создание надёжного кода, предоставьте другим нащупывать новые пути".
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930829
Basil A. Sidorovнельзяauto_ptr нельзя использовать нигде и никогда. deprecated Это get() нельзя использовать, а от устаревания до запрета - дистанция огромного размера.

P.S. Ну и к "только что принятому" C11 - тоже пять.
Процитирую (неточно) всё того же Мейерса: "Если ваша задача - создание надёжного кода, предоставьте другим нащупывать новые пути".
А если ещё понять эту мысль, то все фишки условно делятся на 3 группы: точно годные, новые и не известно годные или нет, и точно не годные. Вы почему-то из 3 выбираете последнее.
В свое время auto_ptr был новым, пару лет, а уж сегодняшним смарт-указателям по 10 лет.
Это классика - это знать надо! (С)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930859
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понять эту мысльА если ещё понять эту мысль, то все фишки условно делятся на 3 группы: точно годные, новые и не известно годные или нет, и точно не годные. Вы почему-то из 3 выбираете последнее.
В свое время auto_ptr был новым, пару лет, а уж сегодняшним смарт-указателям по 10 лет.Интеллектуальные указатели - основа изощрённых механизмов управления памятью и доступа к данным. auto_ptr - одна из реализаций, подходящая во многих случаях.
Так что не оценил я вашу, безусловно глубокую, сентенцию.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930877
Basil A. Sidorovпонять эту мысльА если ещё понять эту мысль, то все фишки условно делятся на 3 группы: точно годные, новые и не известно годные или нет, и точно не годные. Вы почему-то из 3 выбираете последнее.
В свое время auto_ptr был новым, пару лет, а уж сегодняшним смарт-указателям по 10 лет.Интеллектуальные указатели - основа изощрённых механизмов управления памятью и доступа к данным. auto_ptr - одна из реализаций, подходящая во многих случаях.
Так что не оценил я вашу, безусловно глубокую, сентенцию.
Это потому, что вы не знаете простейших вещей: давно заменившего его unique_ptr, которому уже много лет.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37930887
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаете простейших вещейЭто потому, что вы не знаете простейших вещей: давно заменившего его unique_ptr, которому уже много лет.Шаблоны были реализованы до принятия стандарта тем же борманом, насколько мне известно. И что с того?
Есть маленькая разница между "обучать" и "использовать" - в первом случае использование устаревшего, но стандартного средства и допустимо и оправдано. Упоминать ли в процессе обучения эквиваленты из C11 или из boost-а - это уже на усмотрение преподавателя.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37933056
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
за 8 пар нереально изучить ни и ни то... Просто расталдонить концепциюю ООП можно и за одну пару. А там, если цель ввести в мир ООП, а не в язык программирования, то зачем вообще думать какой язык выбирать, можно базовые принципы ООП показать и на C++ и на C# - параллельно, как в MSDN. Только в C++ нету уборщика мусора, а в C# есть. Третьим языком можно Java прикрутить, он тоже похож на C++. И заодно показать как в Java сделать множественное наследование через интерфейсы и сравнить его с с++ множественным наследованием... Наследование все таки как никак одно из понятий ООП, но в разных языках оно как бы немножечко иногда отличается реализацией в самых тонких случаях.
Или может проще разбить на группы - кто хочет с++ а кто хочет сишарп - пусть сами студенты решают. А если сами не решат, значит еще не созрели, тогда им без разницы что им преподадут... ИМХО
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37933226
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> за 8 пар нереально изучить ни и ни то...
да, за 8 пар нереально
но если в промежутках (2 недели) еще и самостоятельно разбираться и кодить по 12 часов в день, то норм
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37935443
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kosh the best> за 8 пар нереально изучить ни и ни то...
да, за 8 пар нереально
но если в промежутках (2 недели) еще и самостоятельно разбираться и кодить по 12 часов в день, то норм

согласен - побольше практиковаться и все придет... я таким способом наизучал кучу языков и технологий, использую их чтоб студентам всякую хрень делать, а вот чтоб на работу устроится - то тут увы... тогда уже надо что-то одно хорошо изучать, так что на работе я юзаю Delphi и MS SQL Server, иногда C#... вот что-то одно я как бы потиху узнаю все лучше и лучше, так как в этом варишься каждый день...
...
Рейтинг: 0 / 0
230 сообщений из 230, показаны все 10 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Преподавать C++ или C#?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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