|
|
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
И опять тема холивара. Но вдруг кто-то выскажет ценную идею? Ситуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.). Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. Вопрос: на базе чего это лучше делать - С++ или C#? (пробовал и так, и так - не могу пока понять, что лучше подходит) Критерии: с моей точки зрения, курс должен научить студентов мыслить объектно. Все подробности просто не успеть охватить, но если будет хороший фундамент - они дальше сами, на практике, подтянут что нужно (кто захочет, конечно). С этой точки зрения С++ предпочтительнее, поскольку: 1. Дает более глубокое понимание того, как это все работает. 2. Дает свободу дальнейшего пути: можно изучить C#\Java (после С++ это будет легче, чем идти наоборот), захотят уйти со стека MS - пожалуйста, Qt, мир Linux и пр. А с C# им будет сложно уйти в С++, и они по моей вине станут "заложниками" MS-технологий. С точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу. Начинается это уже при написании диплома в конце обучения: C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение. ДА и в целом, на C# ряд типовых задач (формочки, БД, сеть, графика) они решат легче и быстрее, без всяких сторонних библиотек и пр. Судя по вакансиям, .net-разработчики как-то более востребованы, чем плюсовики. Такая вот дилемма. Поделитесь опытом и мыслями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 11:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
UPD: да, и забыл упомянуть еще и такой момент: переход C=>C++ более прост, чем C=>C# (IMHO). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 11:59 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
ИМХО 8 лекций - не так уж и много, чтобы забивать им еще голову новым языком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 12:04 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Может, конечно, "C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение", но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 12:11 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace, Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную". Для формочек, положим, Qt - с него на C# тоже несложно. Хотя, воля Ваша, "цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи и при разных её трактовках будут получаться разные советы. Скажем, C++ позволяет хотя бы пунктиром наметить, как всё то же самое можно было бы получить на чистом C, что полезно для понимания подлежащей механики, но хороший вопрос, насколько оно в Вашем случае надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 12:14 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
HettИМХО 8 лекций - не так уж и много, чтобы забивать им еще голову новым языком. ООП стоит в программе, ну и штука это нужная. Как его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 13:29 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
pirovindos, но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++. Вы поставьте себя на место человека, который пока не знает почти ничего! Ему придется очень попотеть, чтобы подключить boost и пр. Да, опыт этот нужен - но не все сразу. Зачем сейчас человеку заморачиваться с поиском хорошей библиотеки для UI, качать какие-то фреймворки для работы с сетью (тот же boost::asio), когда в .net это все есть, и используется одним кликом мыши? Скажу больше. А может для лучшего усвоения ООП человеку и не нужно отвлекаться на технические заморочки? Преимущество .net на C++ в богатстве стандартной библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 13:33 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
AbstractionTopSpace, Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную". В C# подобные вещи есть, просто слегка завуалировано. Есть value-types и reference-types. И в чем-то это даже проще: класс - это всегда ссылка на объект, число - это всегда значение, и всего делов. AbstractionTopSpace, "цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи Да, а что делать? Есть примерная программа, и никто не скажет, как оно должно быть, из каких критериев исходить. Отсюда и вопросы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 13:37 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpacepirovindos, но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++. Вы поставьте себя на место человека, который пока не знает почти ничего! Ему придется очень попотеть, чтобы подключить boost и пр. Да, опыт этот нужен - но не все сразу. Зачем сейчас человеку заморачиваться с поиском хорошей библиотеки для UI, качать какие-то фреймворки для работы с сетью (тот же boost::asio), когда в .net это все есть, и используется одним кликом мыши? Скажу больше. А может для лучшего усвоения ООП человеку и не нужно отвлекаться на технические заморочки? Преимущество .net на C++ в богатстве стандартной библиотеки. Согласен, если про "БД, сеть", то здесь есть преимущество в стандартных библиотеках у .net. Я в посте прямо написал, что не вижу преимуществ для "быстро наклепать симпатичное Desktop-приложение". Но если TopSpace Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП то при чем тут БД и сеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 13:42 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceКак его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально. по крайней мере у С и С++ базовая часть как-никак общая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 13:45 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceЦель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. Имхо С# проще для старта. Это даст возможность быстро и просто применить навыки и получить толк . На чистые плюсы - очень мало времени. Уровень их знаний будет "совсем не коммерческим" То есть курс прошел, экзамен сдал - но написать толком ничего не могу Вопрос, насколько они знают С. Если тоже "по верхам" - то эти базовые знания подойдут для обоих языков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 13:54 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
pirovindos Согласен, если про "БД, сеть", то здесь есть преимущество в стандартных библиотеках у .net. Я в посте прямо написал, что не вижу преимуществ для "быстро наклепать симпатичное Desktop-приложение". Но если TopSpace Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП то при чем тут БД и сеть? Да вот даже просто наклепать формочку - на C# в разы проще, чем в MFC. А БД и сеть - это просто то, что понадобится вскоре после формочек. Про UI: можно бы взять Qt, но.. Изучить MFC и Qt - не успеть. Только Qt - сомнительная идея, по причине того, что MFC (да, до сих пор!) чаще встречается на старых проектах, некоторые работодатели выставляют даже требования в вакансии: опыт работы в Visual Studio (какой блин там опыт!). Тут опять история повторяется: как освоивший С++ легко справится с C#, так освоивший MFC будет петь от счастья работая с Qt. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:01 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace А БД и сеть - это просто то, что понадобится вскоре после формочек. Тогда не вводите людей в заблуждение, поменяйте Цель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:03 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
HettTopSpaceКак его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально. по крайней мере у С и С++ базовая часть как-никак общая. Вот я тоже про это думал, как сделать переход? В С++ можно первую лекцию вообще не говорить про классы, и рассмотреть отличия С++ от С (перегрузка функций, оператор new, модификаторы static, inline и т.п.). Потом плавно перейти к классам. А в C# даже строку на экран не вывести без объявления класса со public static void Main. Но может это только мне кажется проблемным? Есть ведь и обратный эффект: трудно учить похожие языки. Попробуйте параллельно выучить испанский и итальянский, например) Путаница. Студенты часто путаются между C и C++, а C# все-таки подальше от С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:05 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
FantomnyИмхо С# проще для старта. Это даст возможность быстро и просто применить навыки и получить толк . На чистые плюсы - очень мало времени. Уровень их знаний будет "совсем не коммерческим" То есть курс прошел, экзамен сдал - но написать толком ничего не могу Согласен, но тут тоже палка о двух концах. Да, почему бы не давать людям легкий и мощный инструмент, позволяющий клепать программы - они быстро найдут себе хоть какую-то работу. Зато это вбросит в индустрию очередную порцию низкоквалифицированных разработчиков, от чего индустрия только страдает. С другой стороны: а может давать мощную основу (С++ за 8 супер-наполненных лекций и 4 лабы, сложностью как курсовик каждая) - тогда произойдет отсев, экзамен сдадут только те, кому это действительно интересно. Вариант хорош для общего блага, но не приятен желающим "легкого старта". Ну и сквозь такое сито могут не пройти потенциальные таланты, которые раскрылись бы позднее (видел пару примеров таких людей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:12 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceAbstractionTopSpace, Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную". В C# подобные вещи есть, просто слегка завуалировано. Есть value-types и reference-types. И в чем-то это даже проще: класс - это всегда ссылка на объект, число - это всегда значение, и всего делов. AbstractionTopSpace, "цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи Да, а что делать? Есть примерная программа, и никто не скажет, как оно должно быть, из каких критериев исходить. Отсюда и вопросы)По первому - не проще. Особенно когда добавляется ключевое слово ref . То есть, объяснить-то можно, но как бы при этом не пришлось привлекать аргумент "it's magic" в значимых объёмах. По второму - значит, надо конкретизировать. Если критериев нет, придумать какие угодно. Потолок наш лучший источник информации, в конце концов. Скажем, "целью программы обучения является ознакомление студентов с объектной парадигмой; разъяснение (технических, эстетических) преимуществ объектного программирования по сравнению с процедурным; краткое ознакомление с UML-нотацией; обучение рассмотрению задач в терминах объектов и их взаимодействия, основам написания программ на поддерживающем ООП языке; первичное ознакомление с понятием шаблонов проектирования" - тогда это C#/Java. Или "цель программы - ознакомление с принципами ООП, их реализацией на примере популярного языка программирования, понятий раннего и позднего связывания, их различий и преимуществ первого и второго; ознакомление с механиками обобщения алгоритмов (через наследование; через шаблоны); подробное рассмотрение механики динамического выделения ресурсов (памяти), освещение возникающих проблем и ООП-методов их разрешения; ознакомление с понятием библиотек классов, обучение их использованию в своих разработках" - тогда это C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
pirovindosTopSpace А БД и сеть - это просто то, что понадобится вскоре после формочек. Тогда не вводите людей в заблуждение, поменяйте Цель. Цель - ввести людей в ООП, но рисуя диаграммы и рассуждая о паттернах! Вспомните сами, с чего начинали. Нужен фан! Интересные примеры, прикольные задачи. Это в институте мы могли убить день ради реализации хитрого алгоритма для B-дерева. А тут - взрослые люди, выкраивающие свободное время на самообразование, не нужна им сухая теория, "такова селяви". Штуки вроде сетевого чата, клиента твиттера, простой игры, видеозахвата и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:21 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
(видел пару примеров таких людей). У нас в физмат гимназии преподавали примерно так... В результате кто "понимал и тянул" почти все стали тру-программерами Но, удивительно, из тех кто не понимал (не успевал) и не тянул - половина стала тоже программировать :) Зато это вбросит в индустрию очередную порцию низкоквалифицированных разработчиков, от чего индустрия только страдает По моему, все кто хочет - прогрессируют. Просто так проще начать... Если бы у вас был годовой курс - то можно подготовить хороших плюсовиков. В вашем формате - имхо это сомнительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:33 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Abstraction, это уже довольно детальное описание цели. Это скорее не цель, а краткое содержание программы, т.к. остается вопрос: а ЗАЧЕМ человеку знать то-то и то-то? Да, изучение ООП само по себе целью быть не может. Так что, речь может идти о: а) Максимально эффективное "въезжание" в тему, чтобы как можно быстрее "встать на рельсы". Если не устроиться junior'ом, то хотя бы понять основы, и самостоятельно уже себя дотянуть. При этом подходе в курсе можно затрагивать элементы "профессиальной разработки", т.е. какие-то best practiсe на типичные ситуации, codestyle, методологии разработки, контроль версий и багтрекинг и т.п. b) Получить максимуально фундаментальную подготовку, т.е. глубоко изучить "недры" ООП, не затрагивая "профессиональные реалии". С одной стороны, первое человек получит уже на работе. С другой - оно ценнее, поскольку отражает реальный опыт, а не только толстые книги (которые они и так могут прочитать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:34 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
FantomnyЕсли бы у вас был годовой курс - то можно подготовить хороших плюсовиков. В вашем формате - имхо это сомнительно. Т.е. квалификация .net-чиков будет выше, чем у плюсовиков, подготовленных за равное время? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:38 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceОни уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.). Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. Objective-C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:42 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
товарищ лектор, сам то как, ответишь за полиморфизм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:53 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
k0rvinTopSpaceОни уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.). Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. Objective-CИМХО, сомнительно. "Чистые" сигналы и концепция "класс как объект" - это хорошо, а вот отсутствие пространств имён, двойное именование аргументов методов, невозможность перегрузки функций - уже не айс. Есть риск застрять в этих частностях и деталях синтаксиса (только на объяснение того, что значит @property(weak, nonatomic) может уйти неприлично много времени). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 14:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceЦель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. Если изучить ООП и клепать веб-интерфейсы и обычные казуальные Windows-формочки то пускай изучают С#. Это реально быстрый старт. Даже с точки зрения ООП С++ вобщем-то не рулит. Его сила вовсе не в ООП а в шаблонах и мета-программировании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 15:14 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Я тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 15:19 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Мнение Луговского весьма интересно к рассмотрению. Только оно рвёт шаблон в разрезе рынка вакансий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 15:24 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceЯ тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?)Хорошо бы ссылку на конкретное мнение, а не на тему на много страниц. В любом случае, нет понятия "язык быдла", потому что оно не изобретает языков. К тому же, Вы учите не языку, а ООП, иллюстрируя свои построения некоторым конкретным языком; большая часть сведений остаётся применима и при переходе от одного языка к другому, так что вопрос, как мне видится, в первую очередь в том, какой язык лучше всего подходит для иллюстрации того, о чём Вы собираетесь рассказывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 15:25 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Abstraction, ты зарегался в 2011 году и поэтому невкурсе. Это эпичный топик который вошёл в историю дискурсов о С++ и вышел за пределы скруля по цитатам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 15:54 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Т.е. квалификация .net-чиков будет выше, чем у плюсовиков, подготовленных за равное время? За полгода - точно Плюс эта квалификация позволит им применять знания, а это - повод к ее повышению. Пример - многих экономистов учат С по полгода. толку =0. Лучше бы vba научили Ps Подход "освоят не все- ну и хорошо" мне не нравится. Немного преподавал и уверен - что моя работа выполнена хорошо, если неглупый и старательный обучающийся все усвоил. Ориентироваться на "таланты" неверно. Это не обучение. а "талент серч", спецподготовка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 16:34 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceЯ тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?) ОМГ, ну тогда и преподавай ООП по CLOS =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 17:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace... Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. ... Для начала независимо от языка растолкуйте/повторите студентам основные практические вещи, необходимые для небыдла: - практически любая ООП - программа является приложением ОС; - обработка сообщений ОС; - понятие оконной функции; и т.д. Воспользуйтесь синтаксическими диаграммами (пример возьмите хоть из тех-же Borland Pascal / Delphi ). От этой вводной информации отталкивайтесь при переходе к изучению объектов. Как вариант, начинайте усложнять тот-же дефолтный объект оконной функции, который создает выбранная среда программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 18:44 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
asws- понятие оконной функции; Ты хоть поясни. Я то понял из какой это предметной области но многие найдут более релевантное: аналитику в SQL, и спектральные фильтры из методов обработки сигналов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 18:47 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
mayton, Прежде чем заниматься аналитикой, надо базовые вещи знать. Оконная функция принимает ВСЕ сообщения ОС (события) для окна программы - работающего приложения. Далее - как программер распорядиться поступать, так приложение и будет себя вести. Многие современные "программисты" об этом понятия не имеют. Им видимо не мешает, а я считаю надо знать аксиомы. А лучше с машинных кодов (пару примеров достаточно) начинать обучение, чтобы разъяснить, как работает процессор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 19:07 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
aswsmayton, Прежде чем заниматься аналитикой, надо базовые вещи знать. Парень, когда ты даёшь новичку термин - ты дай ему ключевые слова чтобы он хотя-бы это нашёл. Твой термин на первых страницах google-поиска находит всё что угодно но только не оконную функцию windows приложения. Надо было просто добавить WndProc. Я это делаю за тебя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 19:20 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
mayton, ниче подобного, google предлагает вариант "оконная функция winapi" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 19:32 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
mayton... но многие найдут более релевантное: аналитику в SQL, и спектральные фильтры из методов обработки сигналов.с какой стати ты свое личное мнение считаешь как мнение всех? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 19:35 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
мнение многих? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 19:36 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Ладно гуляй себе с богом. В следующий раз пиши явно все ключевые слова. И не забывай что google персонализирует любой поиск для каждого юзера лично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 19:37 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
и тебе того-же. Оконная функция имеет однозначную трактовку в терминологии. Не путай людей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 19:41 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
asws, мне гугл выдал кучу информации по использованию оконных функций в задачах цифрового спектрального анализа. Это подтверждает высказывание тов. mayton, о том что многие подумают про спектральные фильтры из методов обработки сигналов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 20:01 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
skyANA, Гугл, как любой коммерческий проект, ориентируется на 95% большинства, и подсказки/поиск выдает соответствующие. Что люди ищут, то он сохраняет как релевантные запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 20:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Поправлюсь: Оконная функция имеет однозначную трактовку в терминологии программирования приложений ОС . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 20:17 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
aswsskyANA, Гугл, как любой коммерческий проект, ориентируется на 95% большинства, и подсказки/поиск выдает соответствующие. Что люди ищут, то он сохраняет как релевантные запросы.Из Вашех же слов и выходит, что для 95% людей термин "оконная функция" связан с цифровым спектральным анализом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 20:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
skyANAaswsskyANA, Гугл, как любой коммерческий проект, ориентируется на 95% большинства, и подсказки/поиск выдает соответствующие. Что люди ищут, то он сохраняет как релевантные запросы.Из Вашех же слов и выходит, что для 95% людей термин "оконная функция" связан с цифровым спектральным анализом :)Троллите? ТС говорил о лекциях для программирующих (в частноти на C). Для них понятие "Оконная функция" должно быть определено сразу (если лектор это сразу не донес до студентов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 21:32 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace, что за странный выбор. А вот java не подходит под Ваши критерии что-ли? Нет привязки к MS. Современный. Работы завались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 21:48 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
aswsTopSpace... Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. ... Для начала независимо от языка растолкуйте/повторите студентам основные практические вещи, необходимые для небыдла: - практически любая ООП - программа является приложением ОС; - обработка сообщений ОС; - понятие оконной функции; и т.д. Воспользуйтесь синтаксическими диаграммами (пример возьмите хоть из тех-же Borland Pascal / Delphi ). От этой вводной информации отталкивайтесь при переходе к изучению объектов. Как вариант, начинайте усложнять тот-же дефолтный объект оконной функции, который создает выбранная среда программирования. О господи, да при чем тут Оконная функция и ООП. Я вот года два ни одного окна не кодировал. Пишу серверные приложения. И что - я быдло что-ли? Бредятина какая-то. Вы когда пишите про ОС Вы windows имеете ввиду, что-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 22:02 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
an-24-111, Сколько Вам лет, и с какими технологиями знакомы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 22:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
aswsan-24-111, Сколько Вам лет, и с какими технологиями знакомы? Опыт у меня более 15 лет. Достаточно? Я программировал разные приложения на разных языках - C,C++, Delphi, Java, JS, SQL, PL/SQL и т.д. Знаю UML... и еще всего дофига. Я знаю, что такое оконные сообщения и оконная процедура. Но это мне точно сейчас никак не помогает. Это вообще другая парадигма. С ООП не имеющее ничего общего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 22:40 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
За 8 лекций и 4 лабы трудно чему-то хорошо научить. Это даже до одного семестра по времени не дотягивает. ИМХО, C++ за это время толком не обучить. В порядке полушутки. Дать за это время ООП студентам на примере SmallTalk =) А C++ и C#, заодно и Java пусть изучат сами, знания Си и SmallTalk для этого должно хватить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2012, 23:53 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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++ - нужны годы практики. Годы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 03:26 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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++. И он чертовски прав. Сама идея исключительных ситуаций - это именно принципиальная и фундаментальная ошибка, которая прочно зас....ла всем мозг. Почему? Да потому что реально никто даже не тестирует поведение программ при возникновении этих исключительных ситуаций. Вот так. Даже исключают из покрытия тестами целые куски обработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 03:34 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
maytonДаже с точки зрения ООП С++ вобщем-то не рулит. Его сила вовсе не в ООП а в шаблонах и мета-программировании.C++ - даже не последний язык, который я стал бы использовать ради мета-программирования. Например, задача: прочитать из БД описание бизнес-сущностей, сгенерить для них классы и загрузить их в приложение. С использованием System.Reflection и Linq.Expressions у меня это заняло строк 100. Как это сделать в C++ я весьма смутно представляю: наверное нужно писать кодогенератор и прикладывать к приложению компилятор. Впрочем, и C# разумеется сосет в плане мета-программирования по сравнению с Lisp, Nemerle. Не понимаю в чем тут сила C++. Если говорить о преимуществах C#, то MS одним только Linq искупил все свои грехи. Кстати, раз речь зашла о Lisp, то стоит помянуть CLOS ) И, вообще, почему такой странный выбор в теме? Для обучения могут быть более интересны интерпретируемые языки, в которых пишешь код и сразу видишь результат. Я бы выбрал, например, Oz , на котором основана самая охуенная книга по основам программирования . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 04:29 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Java проще? Мне лично шарп пошел как-то легче, чем Жава. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 08:10 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceстуденты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.) 0. Вряд ли в Вашей ситуации стоит расчитывать на то, что у студентов имеются остаточные знания, достаточные для того чтобы можно было считать их отправной точкой, и двигаться, к тому же очень быстрото, в освоении ООП. 1. Проведите диагностику, насколько у студентов вообще имеются знания C и понимание принципов структурного программирования 2. На основе результатов диагностики сформулируйте диагностируемые цели (а не "за 8 лекций и 4 лабораторных ввести людей в мир ООП"). Возможно, максимум, что Вы реально сможете достигнуть с этой группой - это повторить C (а повторение при обучении основ - это основа преподавания ), объяснить 2-3 самых элементарных примера применения ООП, и прорешать несколько однотипных задач. 3. Учитывая 1 и 2, лучше соблюдать приемственность в обучении, и использовать C++ как пример ООП-языка TopSpaceс моей точки зрения, курс должен научить студентов мыслить объектно 4. это недостижимая цель в Вашем случае (см. 0) TopSpaceно если будет хороший фундамент 5. В данной ситуации Вы, как преподаватель, а не программист , и должны определить (с оглядкой на программу курса, конечно) критерии этого хорошего, а главное - достижимого в ваших условиях, фундамента. Ставьте реальные цели обучения и ищите сообразные уровню аудитории средства их достижения. 6. Или забить на все, отвести курсы, получить бабки и свалить - можно и так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 08:30 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
а вообще, если ключевым словом считать Преподавать , то не имея достаточного опыта в этом, стоит лучше не над "C# или C++" заморачиваться, а посмотреть в сторону дидактики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 08:43 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceИ опять тема холивара. Но вдруг кто-то выскажет ценную идею? Ситуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).Вы их переучиваете на программистов или доучиваете, чтобы они могли что-то "пописывать" для совей предметной области? Если переучиваете, то 8 лекций и 4 лабы --- полный пшик, вы как максимум можете ещё раз проехаться по голому си, рассказать что такое класс и виртуальная таблица, и показать простейший пример vtable руками на голом си. Если доучиваете, что что у них за специальность такая, что им надо именно Си? Обычно там надо жабаскрипт/октаву/автолисп... в общем что-то приближенное к предметной области, либо вообще эксель :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 09:03 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацTopSpaceЯ тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?) Это и есть язык для быдла. Более того, сам Линус Торвальдс предельно четко высказался на этот счет... :) Накосячить можно на любом языке. Хорошо написать --- на почти любом. А Торвальдсу, вероятно, проще продолжать писать на голых сях, чем отбиваться от желающих нагородить "для краткости" темплеты вида T1<T2<T3<T4<X>,...>,...>,...> , как это регулярно наблюдалось, скажем, с ACE+TAO :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 09:34 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Имхо, Делфи и только Делфи он еще жив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 09:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацпропущено... Это и есть язык для быдла. Более того, сам Линус Торвальдс предельно четко высказался на этот счет... :) Накосячить можно на любом языке. Хорошо написать --- на почти любом. А Торвальдсу, вероятно, проще продолжать писать на голых сях, чем отбиваться от желающих нагородить "для краткости" темплеты вида T1<T2<T3<T4<X>,...>,...>,...> , как это регулярно наблюдалось, скажем, с ACE+TAO :) Дело не в том, что проще. Он таким образом просто огораживается от недопрограмистов (substandart coders). Кроме того - весь UNIX с утилитами написан на голом C, в т.ч. с применением ООП как минимум в реализациях файловых систем, что уже ставит необходимость С++ под сильное, сильное сомнение. Ну и конечно, STL и Boost - это действительно utterly crap, особенно последнее. Да и сам Степанов признал, что STL - это была очередная архитектурная ошибка. Но опять-же, тут стоит определиться, что является твоей лично целью. Если дорабатывать уже навалянное кем-то на C++, это одно. А если разрабатывать (с нуля) что-то вроде масштаба apache, redis, memcache или mysql, это уже совсем другое (это про достаточность "голого" С). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 10:51 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацНу и конечно, STL и Boost - это действительно utterly crap, особенно последнее. Для полного понимания поясним - не реализация является crap-ом, а те парадигмы программирования, которые требуется применять при использовании этих самых ваших Boost и STL. Тот аргумент, что для каждого вектора, дека или списка на C приходится заново писать код (а в C++ видилите возведенная в абсолют автоматизировання копипаста темплейтами) - он просто смешон, вот честно (с т.з. и производительности конечного кода, и c т.з. производительности программиста). Что там сложного, в деке и списке? Пара заготовочных макросов и функций, и вуаля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 10:55 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацЭто и есть язык для быдла. Более того, сам Линус Торвальдс предельно четко высказался на этот счет: Все он правильно сказал. И от любви к STL и Бусбу можно прослыть идиотом. Но Линус не дал определения слова "быдло". И в том топике тоже толком этот вопрос не расжован. В итоге я читаю и подставляю СВОЕ определение быдла. И ужасаюсь, с кем приходится общаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 10:56 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Так что, вместо того чтобы кичиться своим отношением к чужому STL-у, лучше бы пояснили - хуиз быдло, то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 10:58 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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% но - говнокодер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 11:01 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonТак что, вместо того чтобы кичиться своим отношением к чужому STL-у, лучше бы пояснили - хуиз быдло, то? Согласно исследований лурка - 95% населения, вне зависимости от социальной группы. Т.е. и в среде ученых 95% быдла, и в среде программистов - тоже. Вот Торвальдс дал один из признаков - непонимание низкоуровневых архитектурных особенностей, а просто кодирование "по примерам", методом подражания - все делают так, и я тоже буду!. А как оно работает - и знать не надо (какой дурак изучает реализацию libc или stl, верно?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 11:05 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
авторВообще-то дал: ... substandard programmers use it .... Он и слова такого не знает. Так что ОН такого определения не давал. Это вы уже прояснили ситуацию по моему запросу :) Ну и возвращаясь к теме данного топика, C# точно такой же "для быдла" как и с++, только местами более удобный. Ну и толку-то от того, что прояснили "ситуацию", которая в свете данного топика никого не интересует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 11:09 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonавторВообще-то дал: ... substandard programmers use it .... Он и слова такого не знает. Так что ОН такого определения не давал. Это вы уже прояснили ситуацию по моему запросу :) Ну и возвращаясь к теме данного топика, C# точно такой же "для быдла" как и с++, только местами более удобный. Ну и толку-то от того, что прояснили "ситуацию", которая в свете данного топика никого не интересует? Если цель "преподавания" - это клепание одним чуть более опытным быдлокодером пачки других, начинающих быдлокодеров - то да, никакой разницы нет, на чем они там будут дружно учиться быдлокодить - на C++, С# и Java. Просто C# и Java - изначально быдлокодерские языки, от дизайна (со встроенными средствами защиты от идиотов - сборщик мусора, проверка границ массивов и т.п.). С++ же к быдлокодерам особенно беспощаден, потому его изучение - просто потеря времени, с т.з. типового быдлокодера, который хочет через 2 года практики получать 150к рублей на руки. Он просто не сможет ничего на нем написать, на С++, хоть как-то работоспособного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 11:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Ты застрял в 90-х годах. Сейчас декстоп приложения нафиг никому не впились, кроме коробочных многотиражек - все пишут или > мобильные, или веб, или гамнокодят на Java/C#/1C. Под декстоп - разве на VB и Delphi, и то, это совсем запущенные случаи. А ты застрял в 00-x. Глупенький. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 11:33 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
kosh the best> Ты застрял в 90-х годах. Сейчас декстоп приложения нафиг никому не впились, кроме коробочных многотиражек - все пишут или > мобильные, или веб, или гамнокодят на Java/C#/1C. Под декстоп - разве на VB и Delphi, и то, это совсем запущенные случаи. А ты застрял в 00-x. Глупенький.А в чем нынче силла! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:02 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 если успеете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 Вы их переучиваете на программистов или доучиваете, чтобы они могли что-то "пописывать" для совей предметной области? Накосячить можно на любом языке. Хорошо написать --- на почти любом. Так тут нет предметной области. Курсы программирования, куда по идее может придти любой. Цели у них могут отличаться, но в общем понятно, что люди хотят быть программистами. Вот и получают базовые знания. Логично, что наша (ведущих курс) задача: построить программу так, чтобы в то время, которое отведено, дать самые полезные знания, чтобы дальше они могли продолжить этот путь. И как я писал выше, кроме знаний ООП (которые, понятно, применимы к любому языку), нужно дать какой-то минимум по работе с конкретным языком, о выборе которого и идет речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:17 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистТолько не нужно давать студентам MFC или QT или еще что-то такое. Об этом можно раскозать обзорно, просто что это есть. Давать нужно классический C++ и STL ... можно и boost если успеете. Без GUI тут никак. Им диплом нужно писать - не под консоль же. В 95% вакансий им придется иметь дело с GUI-приложениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:22 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceБез GUI тут никак. Им диплом нужно писать - не под консоль же. А почему нет? Server-side какой-нибудь, тот же веб. Или библиотека обработки чего-нибудь (изображений, звука и т.п.), где важен алгоритм, а ГУЙ так, можно на коленке за пол дня на каком-нибудь tcl/tk написать или вообще не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:29 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceрубистТолько не нужно давать студентам MFC или QT или еще что-то такое. Об этом можно раскозать обзорно, просто что это есть. Давать нужно классический C++ и STL ... можно и boost если успеете. Без GUI тут никак. Им диплом нужно писать - не под консоль же. В 95% вакансий им придется иметь дело с GUI-приложениями.95% юниорских программистских вакансий вообще подразумевают профильное образование, а не курсы. Хочется сразу гуёв --- тогда автолисп :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:32 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац Говоря проще - если ты предпочитаешь C++ (а не C), то ты 99.9% но - говнокодер. Т.е. уровень кодера определяется выбором языка? Тогда язык - это не иструмент, а нечто большее (вот это, пожалуй, более объективный признак быдлокодера). Для меня выбор между C\C++ всегда в пользу второго вообще не обусловлен языком как таковым (синтаксисом, семантикой,..). Все дело в мышлении. Есть задача из некой предметной области - я сразу вижу это как систему с определенной структурой и поведением. Системный подход, если что, сие называется. Описать систему на С++ легко и естественно: нужно завести соответствующий класс. Сама идея класса, имхо, очень удачна, она четко отражает реальность. Уж куда более четко, чем просто набор функций. Или вы хотите сказать, что ООП-парадигма уступает процедурной? Т.е. наследование, полиморфизм - толку от них никакого? И там, где можно сделать понятную кодеру (и легко масштабируемую) иерархию полиморфных классов, вы будете писать нагромождение switch'ей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:35 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
k0rvinА почему нет? Server-side какой-нибудь, тот же веб. Или библиотека обработки чего-нибудь (изображений, звука и т.п.), где важен алгоритм, а ГУЙ так, можно на коленке за пол дня на каком-нибудь tcl/tk написать или вообще не нужен. Плюсовик, не знакомый с MFC или Qt, равно как .net-чик, не имеющий опыта работы с WinForms\WPF - это как-то странно) Т.е. хотя бы ознакомиться не помешает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:40 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceрубистТолько не нужно давать студентам MFC или QT или еще что-то такое. Об этом можно раскозать обзорно, просто что это есть. Давать нужно классический C++ и STL ... можно и boost если успеете. Без GUI тут никак. Им диплом нужно писать - не под консоль же. В 95% вакансий им придется иметь дело с GUI-приложениями. Сомневаюсь, что за 8 лекций удастся продуктивно освоить на C++ или C# ООП и еще GUI. В таком случае путь на С# будет короче, по крайней мере есть шанс уложится в срок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:41 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ru95% юниорских программистских вакансий вообще подразумевают профильное образование, а не курсы. Может быть, но есть и другие примеры, хоть и мало. Люди после гуманитарного образования приходили на курсы, учились, и потом устраивались джуниорами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:42 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистВ таком случае путь на С# будет короче, по крайней мере есть шанс уложится в срок. Если задача лекций именно познакомить с ООП, то я лично не вижу разницы, на каком из двух предложенных языков их вести. Синтаксически - почти одно и то же. GUI сюда плетут - не знаю зачем, он не требуется для знакомства с ООП. Более того, считаю не слишком удачным объяснять ООП-парадигму на примере GUI-фреймворка. Хотя и вполне допустимым. Так что, что с C++, что с C# - путь объяснения принципов ООП одинаков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:53 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацiv_an_ruпропущено... :) Накосячить можно на любом языке. Хорошо написать --- на почти любом. А Торвальдсу, вероятно, проще продолжать писать на голых сях, чем отбиваться от желающих нагородить "для краткости" темплеты вида T1<T2<T3<T4<X>,...>,...>,...> , как это регулярно наблюдалось, скажем, с ACE+TAO :) Дело не в том, что проще. Он таким образом просто огораживается от недопрограмистов (substandart coders).Ну да. Это сильный довод, особенно если проект открытый и ты не можешь "не принимать" или "увольнять" людей. Проясним ситуацКроме того - весь UNIX с утилитами написан на голом C, в т.ч. с применением ООП как минимум в реализациях файловых систем, что уже ставит необходимость С++ под сильное, сильное сомнение.Тут, я думаю, сказывается неправильная "реклама" в виде учебников для начинающих. Использование C++ не делает разработку "проще", "быстрее" и "дешевле" прям всегда и везде. Оно позволяет ценой лишних затрат мозгов, времени и ФЗП с самого начала большого проекта начать давать экономию этих самых мозгов и т.п. к тому моменту, когда проект станет не просто большим, а огроменным. Если проект не собирается разрастаться до монтрообразного вида, то "плюсовые" затраты не окупятся никогда. И если код 20-килобайтного плюсового приложения под винды выглядит очевидно лучше кода голо-сишного аналога, то только потому, что это маленькая вишенка на здоровенном торте, а не что-то работающее само по себе. Если бы микрокоды оборудования, для которого Торвальдсу захотелось бы писать ОС, весили сотни мегов, то он бы тоже, наверное, сел на плюсЫ :) А если приложение "само по себе", то вот мы сейчас доросли до 30 мегов сорцов и начинаем подумывать о неспешном переходе когда-нибудь в будущем с голого си на цэпэпэ --- это через 17 лет после начала продаж первой версии. Страуструп работал для такого монстра, как AT&T, а теперь "те" методы почему-то норовят внедрить все мелкие головастики куда попало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:55 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубист, понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это: 1. Данные, операторы, функции 2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация) 3. Классы - II (static, const, friend, композиция) 4. Перегрузка операторов 5. Наследование 6. Полиморфизм 7. Шаблоны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 12:56 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Да, лет через 10 и фотошоп будет web-приложением, но пока есть очень много legacy-кода. А ха ха. В браузере через html 5, javascript и http что ле? И конечно, все это будет в "облаке". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:01 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceрубист, понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это: 1. Данные, операторы, функции 2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация) 3. Классы - II (static, const, friend, композиция) 4. Перегрузка операторов 5. Наследование 6. Полиморфизм 7. ШаблоныЕсли тема - не "язык", а "ООП", то перегрузку операторов я бы сократил до замечания что в C++ оператор (за вычетом...) можно доопределить для данных типов операндов как функцию и правила работы с ним будут такие же, как и с функцией. friend опять же концепция скорее C++, нежели ООП как такового. Про функции "вообще" должны знать из курса C, если не знают - могут не знать (не понимать) и концепции указателей, что ставит крест на программе. Ну, то есть опять же вопрос условий и целей: кому, что и зачем преподаётся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:07 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceрубист, понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это: 1. Данные, операторы, функции 2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация) 3. Классы - II (static, const, friend, композиция) 4. Перегрузка операторов 5. Наследование 6. Полиморфизм 7. ШаблоныПункты 1,2,чуть-чуть 4, 5 и 6 может быть успеете впихнуть. "Си с классами", в общем, самое необходимое для взаимодействия с простейшими гуями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:11 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceрубист, понимаю, UI уходит на лабы, с самостоятельным изучением. Скажем так: за 8 лекций удается пройтись по основам языка, примерно как семестр ВУЗа. Темы стандартные, многие учебники строят аналогично. Для С++ это: 1. Данные, операторы, функции 2. Классы - I (инкапсуляция, конструктор\деструктор, пространства имен, интерфейс и реализация) 3. Классы - II (static, const, friend, композиция) 4. Перегрузка операторов 5. Наследование 6. Полиморфизм 7. Шаблоны А при чем тут ООП? Слишком много специфичного для C++ и других Simula-подобных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 написал что-то, кроме лабораторных? Если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:20 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, спасибо за ссылки, почитаю. На С ничего серьезного писать не доводилось, был небольшой реальный опыт с Паскалем. Пока что ООП более удобно, смотрю в сторону функционального программирования. P.S. вам не обязательно копировать манеру общения Ксенофефала по приведенной ссылке (если вы - не он самый). Мне не совсем понятно, почему на вопросы я получаю оскорбления? Или это такой прием - "мокнуть в грязь чтобы дошло"? Поверьте, есть люди, которые прислушиваются к точкам зрения других и без этого (я из их числа). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:37 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceПроясним ситуац, спасибо за ссылки, почитаю. На С ничего серьезного писать не доводилось, был небольшой реальный опыт с Паскалем. Пока что ООП более удобно, смотрю в сторону функционального программирования. P.S. вам не обязательно копировать манеру общения Ксенофефала по приведенной ссылке (если вы - не он самый). Мне не совсем понятно, почему на вопросы я получаю оскорбления? Когда тебе говорят, что ты мыслишь или говоришь как говнокодер или быдлокодер, то можно хоть обижаться, хоть нет, но проще или смириться с этим фактом (как это делают остальные 95%), или срочно устранить недостатки. TopSpaceИли это такой прием - "мокнуть в грязь чтобы дошло"? Поверьте, есть люди, которые прислушиваются к точкам зрения других и без этого (я из их числа). Почему возникло ощущение макать в грязь? Большинство (95%) вполне счастливы тем положением, в котором они находятся - в конце концов это все - лишь ненавистная работа, а так они вполне уважаемые члены общества, семьянины, ценимые работники и все такое прочее, не смотря на то, что профессиональный уровень их, мягко говоря, оставляет желать лучшего. Все относительно. Кому-то подавай мировые рекорды, но 99.999% населения вполне устраивает и "спортивная" хотьба в парке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:42 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац http://habrahabr.ru/post/143620/ Это всё правда. Концепция ООП методов в последнее время шатается и трещит по швам. Она переросла свой размер так-же как и динозавры переросли максимально допустимый рост и природа с гравитацией их уничтожила. Но к сожалению на сегодняшний дель 99% BI кодят на серверах под управлением JVM на Java-фремворках. Я специально гуглил и барражировал форумы на тему ФП-имплементаций бизнес-логики но нашёл только древний yahoo который был написан на Lisp и несколько скудных статей Душкина в журналах ФП где он вроде-бы приводит примеры каких-то имплементаций чего-то и где-то. Общий рынок вакансий специалиста ФП равень чуть более чем нуль. Это можно проверить просто погуглив спрос на соискателей (из поиска сразу исключаем AutoList, XSLT и прочую мистификацию которая не является ФП в общем понимании этого слова). Ищем только ТруЪ-ФП предложения по найму. Я целиком и полностью поддерживаю инициативу изучения и освоения инструментов ФП но прошу дать больше пруфов на реально работающие проекты. Желательно open-source чтобы можно было ознакомится. Посмотреть на best-practices. Узнать чем живет и чем дышит сообщество ФП разработчиков. Как решает проблемы багофиксов как дебажит ошибки как тюнит производительность словом всё-всё что сопутствует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 13:49 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Господа, вы сильно уходите от темы, а именно "выбор языка для изучения ООП + GUI в рамках 8 лекций и 4-х лаб." Умрет ООП или нет это мы увидим. Пока что, в силу инерции от имеющихся уже промышленных решений, ООП будет жить еще ооочень долго. PS to "Проясним ситуац" Общатся с незнакомым человеком на ТЫ и тыкать его носом это хуже чем "быдлокодерство" .... Можно спорить, дискутировать, можно соглашатся или не соглашатся по каким-то вопросом, но не нужно опускатся до хамства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:12 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
aswsmayton, Прежде чем заниматься аналитикой, надо базовые вещи знать. Оконная функция принимает ВСЕ сообщения ОС (события) для окна программы - работающего приложения. Далее - как программер распорядиться поступать, так приложение и будет себя вести. Многие современные "программисты" об этом понятия не имеют. Им видимо не мешает, а я считаю надо знать аксиомы. А лучше с машинных кодов (пару примеров достаточно) начинать обучение, чтобы разъяснить, как работает процессор. Помнится, у нас в универе даже домашнее задание на лето было: написать на ASMе (!!!) программу, использующую объекты (да, оказывается, даже на этом уровне есть механизм реализации всех трех "китов" ООП!) и моделирующую полет и упругое столкновение на экране шариков, отталкивающихся друг от друга и от стенок экрана (один шарик - один экземпляр объекта)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Вот это все выше - феерическая глупость. На простом C вполне можно объектно-ориентированного программировать. Вот, просвещайся: > http://www.cs.rit.edu/~ats/books/ooc.pdf Ох, сколько пафоса. Так и ждал, когда ссылку на эту книжку вбросят. Рабочее ООП на си - это com под винду и gobject в линуксах, а в твоей книжке ранние эксперименты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:18 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:20 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
За преподавание ооп в стиле трех китов "наследование, инкапсуляция, полиморфизм" надо кидать в лектора тапком. Ооп - это полиморфизм и все. Наследование - один из механизмов, упрощающих реализацию полиморфизма. Инкапсуляция никоим образом к ооп не относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:21 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:26 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
kosh the bestЗа преподавание ооп в стиле трех китов "наследование, инкапсуляция, полиморфизм" надо кидать в лектора тапком. Ооп - это полиморфизм и все. Наследование - один из механизмов, упрощающих реализацию полиморфизма. Инкапсуляция никоим образом к ооп не относится. Насчёт кидания тапком согласен. Но выбрасывать сущности или концепции можно только заменяя их чем-то. Чем вы их предлагаете заменять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:39 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Максимально эффективное "въезжание" в тему, чтобы как можно быстрее "встать на рельсы". Тогда Руби! и Вы почти на рельсах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:40 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Вот у меня тоже есть ощущение усложненности ООП (в С++ особенно заметно), и слышал много хвалебных отзывов о ФП. Что в этой ситуации делать - не совсем понятно. Да, почитать книжку про Хаскель, или Common Lisp, покодить для себя - не будет лишним. А дальше? Ксеноцефал описывал некую элиту программирования, где С++ (и как я понял, ООП вообще) - далеко не основной инструмент. В почете ФП, лиспы и т.п. На сайтах вакансий такого действительно почти нет, но элита так не ищет работу - работа сама находит этих штучных профи, а чаще они работают на себя. Да, охотно верю, что такие люди есть, но каковы ступени движения к этому уровню? Сейчас мы по уши в ООП (в смысле, что эта парадигма преобладает). Я смотрю вакансии, которые ныне есть (Новосибирск). Это мобильные приложения, казуальные игры, биллинг, CRM-системы,... - чаще всего, используется ООП. Я уже не говорю про то, что более половины всех вакансий - это поддержка существующего кода. Таким образом - где можно получить реальный опыт коммерческой разработки на всех этих супер-языках? И если они действительно такие супер, то должны быть примеры их успешного применения (в промышленном, коммерческом масштабе). Я бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:40 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
авторСитуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.). .... а преподавать надо то, к чему лучше присыкуются последующие курсы в том же образовательном учреждении. А заботится о том, на чем прогать удобнее, выгоднее - пустое... кому надо - сам переучится. Как я нынче понимаю - в МИФИ (выпуск 95-ого года) - так и делали. и нормально! спасибо им. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:47 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
авторЯ бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников. строчка в резюме соискателя "изучал в институте язык .... " ЦЕЛЫХ! 8 занятий.... Большая востребованность? 1С. основы бухучета. Востребованы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:51 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceВот у меня тоже есть ощущение усложненности ООП (в С++ особенно заметно), и слышал много хвалебных отзывов о ФП. Что в этой ситуации делать - не совсем понятно. Да, почитать книжку про Хаскель, или Common Lisp, покодить для себя - не будет лишним. А дальше? Ксеноцефал описывал некую элиту программирования, где С++ (и как я понял, ООП вообще) - далеко не основной инструмент. Это все пыль в глаза и его личные эротические трудности. Профессионалы используют DSL (предметно ориентированные языки, к примеру вот тут http://en.wikipedia.org/wiki/List_of_computer_simulation_software), но там та-же самая императивщина и декларативщина. Плюс Ксеня бил себя тапком в грудь на теме глубокого знания программирования под микроконтроллеров, но отстуствие посылов к кооперативной многозадачности, реалтайма и засилья C (а вовсе не Forth) говорит лишь о том, что и там он знаком с вопросом лишь по-наслышке. Да и сам наш Ксеня - скатился в результате в какое-то унылое написание библиотек для .NET, что говорит о многом. TopSpace В почете ФП, лиспы и т.п. На сайтах вакансий такого действительно почти нет, но элита так не ищет работу - работа сама находит этих штучных профи, а чаще они работают на себя. Да, охотно верю, что такие люди есть, но каковы ступени движения к этому уровню? Это все мифотворчество, про этих профи. Если они такие супер-пупер мега, то где результаты их деятельности? Тщательно скрываются от публикации? Т.е. у авторов чудесных библиотек на ФП не возникает желания выложить их на всеобщее восхищение и преклонение перед их величием? TopSpaceЯ бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников. ФП - это хорошая тема для мифотворчества, не более того. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:56 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацвсе что нужно - это лишь починить собственный мозг, в части понимания того, что 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, потому что выбор между правкой пары темплетов в плюсовом коде и взрывом мозга в сишном будет очень болезненным пинком по самолюбию си-зацикленного кодера. Ну элементарная же мысль, что для разных работ нужны разные инструменты и выбирать инструмент надо с умом, а не с убеждением, что один для лохов а другой нет. Почему она не до всех доходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceКсеноцефал описывал некую элиту программирования, где С++ (и как я понял, ООП вообще) - далеко не основной инструмент. В почете ФП, лиспы и т.п. Ксеноцефал-Луговский - ЕМНИП ембедщик. Он сам о себе так говорил. И вообще я-бы не воспринимал слишком серъёзно его вбросы. Он - не та истина в последней инстанции. Хотя общую характеристику рынка специалистов он давал правильную. Я бы даже попробовал убедить руководство о пересмотре учебной программы, и замене ООП на ФП, если бы это гарантировало бОльшую востребованность выпускников. Время само всё расставит на свои места. Если потребность в ФП-кодинге будет (будут задачи) то и будут нужны специалисты. На самом деле ФП существует вокруг нас (к примеру любая грамматика описываемая в терминах Бэкуса-Науэра требует применения ФП парадигмы для создания транслятора. Хороший годный парсинг HTML и XSL-transform это тоже задачи из этой области и работа с regexp. Можно брать Python и громогласно заявить что вы функционально-программируете. Где-то в документации было заявлено что питон - ЯФП. Как и насколько функционально это вопрос спорный но главное - начать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:58 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац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-ы, только функции-операторы. Вот что бы я подверг сомнению (в С++ в частности) так это множественное наследование. Оно чрезмерно усложняет язык не давая соизмеримых приемуществ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:58 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Чем вы их предлагаете заменять? Ну вот, например, наследование в других языках заменено интерфейсами или вообще прототипами. Типа другой механизм реализации полиморфизма. В с++ - используем иерархии наследования + механизм виртуальных функций - получаем рабочий полиморфизм. В других системах по другому это сделано. Опять же инкапсуляцию лучше реализовывать отдельно от ооп-подсистемы в языке. Например, посредством модулей. Ну как сделано в common lisp. Ооп там - clos, инкапсуляция - пакеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 14:59 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить собственный мозг, Ну так и в ушах можно отверткой ковырять. И вовсе от этого уши не обязаны истечь кровью. Но вы ковыряйте хоть отверткой, хоть дрелью. А я, как нормальный человек, сделаю, по сути тоже самое, ватными палочками (которые, по ходу, тоже не рекомендуются для данного действия). Зато у вас мозг починен и вы можете выложить результат на ютуб на радость всем завидующим! От невидаль, реализовать вручную на СИ объектно-ориентированные принципы. Чем бы дитя не тешилось. Но зачем предлагать страдать херней остальным? Страдайте молча. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:06 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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++ происходит строго обратное - сначала выбирается "инструмент", а потом происходит его натягивание на задачу (хотя начинать нужно с концептуальной модели, где вообще нет речи про классы, методы и темплейты). Хотя тебе пока, возможно, это не понять (и возможно никогда уже - ООП мозга - редко излечимо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:07 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистООП можно написать на С, наверно можно и полиморфизм реализовать через указатели на функции. Но ООП язык от не-ООП отличает то, что все эти возможности встроены в семантику языка и их не нужно реализовывать искуственно. Ни кто в здравом уме не будет преподавать ООП на С. Я позволю себе добавить что ОО-программировать можно почти на любом современном языке. Вопрос только в том позиционируется ли этот язык изначально как поддерживающий ООП (ключевые слова virtual, interface, implements, extends e.t.c) или нет. Очевидно что С - это вобщем-то портабельный ассемблер на котором вы можете сделать ВСЁ. Но когда этого ВСЕГО становится много вы начинаете думать об удобстве и об автоматизации процесса. И здесь не надо быть гиком. Надо здраво считать количество символов которые должен набить разработчик чтобы получить эффект ООП и надо учитывать вероятность ошибки. Ведь её исправлять возможно будет другой из команды e.t.c. А ошибки в программа как и "налоги" и "смерть" будут всегда. Они - вечны. P.S. В прошлом году купил себе двухтомник Седжвика (Алгоритмы) в примерах на С. И именно искал на С а не на С++. У меня стояла задача углубить некоторые знания в предметной области а не брейн-факать себе мозги очередными шаблонами и функторами и прочими сладостями плюсов. Мне нужен был рафинированный алгоритм в чистом виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:07 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> А в "моей" книжке просто показано - что для ООП в C даже никакие библиотеки не нужны, все что нужно - это лишь починить > собственный мозг, в части понимания того, что > object->method(x, y) > мало чем отличается от > class_method(object, x, y) > ну и class от struct (беря поправку на то, что наследование - это концептуальный миф и ментальная ловушка, а в реальных проектах от него больше вреда, чем пользы). Да ну. Что ты говоришь. Прочитай ее сначала, прежде чем ссылками бросаться. Там чуваку в конце все равно пришлось внешний препроцессор заюзать. Одним встроенным препроцессором и магией void* ему не получилось обойтись. > И COM и gobject - это еще одно overbloating, применять которые можно лишь в исключительных случаях, когда по другому > ну никак к какой библиотеке подключиться нельзя. О да. Готовые отработанные механизмы для вас - overbloating, а велосипедить свой ооп на си - типа норм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:08 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Виртуальный методы, как и механизм exception - это дыра в голове. Думаю, дискуссию с данным товарищем на этом можно закрывать. Виртуальные методы ему не нужны. Ок. Пофиг, что на этом основано вообще все современное программирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистНе соглашучь с вами. Совсем без наследование именно в реальных проектах обойтись нельзя. а) всем плевать на твое лично несогласие, не подкрепленное вообще ничем рациональным б) обойтись вполне можно и нужно - если ты используешь ООП в прикладном коде (а не в библиотеках) это означает только одно - или поражение мышления, или крайне кривые и недоделанные эти самые библиотеки. А чаще всего - оба симптома. рубистПросто сейчас в разных языках появились альтернативы, такие как mixins и наследование в его изначальном виде можно и не использовать. В структура на С, на сколько я помню, нет возможности использовать mixin-ы, только функции-операторы. Нет ни одной разумной причины для обязательного использования mixin, начнем с этого? рубистВот что бы я подверг сомнению (в С++ в частности) так это множественное наследование. Оно чрезмерно усложняет язык не давая соизмеримых приемуществ. mixin - это очередная вариация на тему множественного наследования. Говоря проще - натягивания задачи на инструмент, притягивания за уши очередного проходного синтаксического сахара, который только усложняет реализацию и сопровождение. В топку. Идите поищите еще какую-нибудь гадость на полу, попробуйте на вкус, вдруг понравится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:14 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
kosh the best> Виртуальный методы, как и механизм exception - это дыра в голове. Думаю, дискуссию с данным товарищем на этом можно закрывать. Виртуальные методы ему не нужны. Ок. Пофиг, что на этом основано вообще все современное программирование. Зая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql и остальных проектах на чистом C, а потом мы с тобой поговорим о современном программировании, ок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацА вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза. А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а?В изрядном большинстве случаев устраивает. Но если, чьорт пабьерьи, мне надо именно наследование и именно ради vtable, то зачем мне портить код корявостями, если я могу просто взять чуть-чуть другой компилятор? И вы мою пуговицу или оставьте в покое, или купите её у меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:18 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 в своей книжке для самых маленьких ничего не написали про ООП, и что с того? Читай другие книги, много думай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:23 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацА вот тут нужно авторов виртуальных методов взять за пуговицу, и очень, очень внимательно посмотреть им в глаза. А заодно спросить - а чем тебя, любезный, обычный вызов фунции не устраивает, а?В изрядном большинстве случаев устраивает. Но если, чьорт пабьерьи, мне надо именно наследование и именно ради vtable, В 100% случаев оно тебе на самом деле не нужно, просто у тебя голова отформатирована (приняла форму куба, к примеру) на виртуальные методы. Это нормально - люди в 18-м веке носили букли и парики пудрили, все думали что по другому ну никак нельзя! Все же ходят в париках, а вдруг я без парика, как-же так, да? Неудобно, не современно, засмеют ведь! iv_an_ru то зачем мне портить код корявостями, если я могу просто взять чуть-чуть другой компилятор? И вы мою пуговицу или оставьте в покое, или купите её у меня. Тебе - незачем, поверь. Оставайся в рамках ограниченности своего мышления, бог с тобой, не велика потеря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:26 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацЗая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql[хамский режим on]Зая, ты сначала покажи свой код, закоммиченный в linux kernel или mysql, а потом гни пальцы.[хамский режим off] Потому что люди, у которых квалификации хватало коммитить и туда и туда, относятся к вопросу куда более спокойно, и вряд ли все стройными рядами пойдут подписываться под вашими текстами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:27 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуаца чем тебя, любезный, обычный вызов фунции не устраивает, а? А чем тебя не устраивает большой коробок для хранения одежды и прочего хлама вместо гардероба с отделами и полками? Не нравится, когда все в кучу сброшено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:32 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацЗая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql[хамский режим on]Зая, ты сначала покажи свой код, закоммиченный в linux kernel или mysql, а потом гни пальцы.[хамский режим off] И что, это починит твои мозговые ограничения? Избавит от форматированного шаблонированного мышления? Сильно сомневаюсь. iv_an_ruПотому что люди, у которых квалификации хватало коммитить и туда и туда, относятся к вопросу куда более спокойно, и вряд ли все стройными рядами пойдут подписываться под вашими текстами :) Ну и зачем ты это написал? Для самоуспокоения, дескать ограничения мышления теперь чинить у себя не надо, раз некий аноним не вписывается в твои моральные нормы? Ну ок, не чини, продолжай писать виртуальные методы на C++, на радость окружающим тебя и уважающий тебя лично, морально совместимых с тобой людей, в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:34 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац , ручник дерни - ты уже выдохся и из тебя попер троллизм дедсадовского уровня. Поди передохни чтоль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:35 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Edd.DragonПроясним ситуаца чем тебя, любезный, обычный вызов фунции не устраивает, а? А чем тебя не устраивает большой коробок для хранения одежды и прочего хлама вместо гардероба с отделами и полками? Не нравится, когда все в кучу сброшено? Ну и к чему ты это понаписал? Для программ на C отменили функциональную, структурную декомпозицию, сокрытие области видимости? Давно? Однако сколько нового узнаешь порой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:36 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon Проясним ситуац , ручник дерни - ты уже выдохся и из тебя попер троллизм дедсадовского уровня. Поди передохни чтоль. Троллизм детского уровня - это ты про себя точно подметил. Ничего умнее, чем про гардероб с полками выдавить из себя не смог, но виноват в этом - вот тот самый противный чувак, который нагло смется надо мной. Давай-ка я ему скажу "Дерни ручник", тогда мое "разоблачение" про "гардероб" будет выглядеть не так глупо, ага. Еще чего дернуть присоветуешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:39 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Поскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:44 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, действительно, проясним ситуацию. ООП отстой, ФП - миф, рулит процедурное программирование, например, чистый С. Для решения практически любой задачи (кроме веба) можно брать С и не париться. Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:45 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацНу и к чему ты это понаписал? Давай посчитаем, сколько раз ты этот вопрос написал в этом топике. А потом ты рассуждаешь о шаблонности мышления других. Сначала со своим разберись и с его рамками, прежде чем других носом неизвестно куда тыкать. А касательно функционального программирования, так тоже можно испросить - на кой ляд вообще делить код на функции и распихивать по сотням файлов проекта? Что тебе дают эти вызовы функций? В чем профит? Пиши одну простыню. Не проблема в ней серфить и смотреть ее отдельные куски одновременно в нескольких окошках. - Нафига трусы! Можно ходить в штанах и без трусов! Вы какие-то ограниченные! - Чувак, можно ходить вовсе без одежды. Вот и вся полемика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:46 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацТроллизм детского уровня - это ты про себя точно подметил. Пойду застрелюсь что ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:50 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПоскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :) Забавно. Т.е. ты 12 лет не практикуешь то, о чем тут якобы "экспертно" говоришь? Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею". Зачем это тебе? Решил поиграть в доказательства от противного? Я и сам могу сейчас включить задний ход и последовательно "опустить" сам себя, во всех постах про тупиковость С++, оперируя явно осмысленными "доказательствами" того, что виртуальные функции и темплейты - это венец творения человеческой мысли, незаменимый инструмент, а те кто их принципиально не использует - лишь необразованный тупица, видно плохо читал мануалы. Все в мире используют наследование и обобщенное программирование! Только мамонты, доживающие свои последние годы - не в теме, но они уйдут сами, как динозавры и ламповые телевизоры. И что с того? Учите дети Java и C++, не прогадаете! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 15:52 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацiv_an_ruПоскольку наш дорогой гость все равно уже полностью раскрылся и ничего забавного уже не выдаёт, попробую чуть-чуть надорвать ему шаблон и сообщить, что пишу я как раз на голых сях с 2000-го года. Что никак не отменяет написанного мной выше :)Забавно. Т.е. ты 12 лет не практикуешь то, о чем тут якобы "экспертно" говоришь? Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею".Вот, уже опять забавно. Наш дорогой гость забыл спросить, на чём я писал до 2000-го, и подумать, что человек может и несколько языков знать. Проясним ситуацЯ и сам могу сейчас включить задний ход и последовательно "опустить" сам себя, во всех постах про тупиковость С++, оперируя явно осмысленными "доказательствами" того, что виртуальные функции и темплейты - это венец творения человеческой мысли, незаменимый инструмент Не утруждайте себя. Ну элементарная же мысль, что для разных работ нужны разные инструменты и выбирать инструмент надо с умом, а не с убеждением, что один для лохов а другой нет. Почему она не до всех доходит даже со второго раза ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:02 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceПроясним ситуац, действительно, проясним ситуацию. ООП отстой, ФП - миф, рулит процедурное программирование, например, чистый С. Я уже пять раз говорил - чистый С - это НЕ ТОЛЬКО процедурное программирование. И не сколько. Там возможно и вовсю применяется и объектное, и объектно-ориентированное программирование, и обобщенное, и функциональное, и декларативное. Просто об этом книг не пишут, потому у всех заскорузлое мышление, что дескать там, в C, только старый процедурный и структурный подход и ничего более. TopSpace Для решения практически любой задачи (кроме веба) можно брать С и не париться. Так? Нет, это не так. Есть задачи (и их 99% от общего числа) - это поддержка уже написанного кем-то до тебя кода. С огромнейшей вероятностью там будет вовсе не голый С, а один из тех самых популярных сейчас или в бытность языков - от C++, Java до Python/Ruby. Чистый С - это лишь очень, очень пока ограниченная ниша высокопроизводительный приложений, вроде систем real-time, ulldma, hft, ну и системное программирование. Прикладное программирование на C пока невозможно в силу крайней неразвитости прикладных библиотек (к примеру нет приличных, т.е. достаточно простых, универсальных и надежных библиотек доступа к БД, всякие unixODBC - это просто насмешка). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:02 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацЧистый С - это лишь очень, очень пока ограниченная ниша высокопроизводительный приложений, вроде систем real-time, ulldma, hft, ну и системное программирование.Могу огорчить: как раз из high-performace сейчас си и начинает выдавливаться. Этот гадский Интел со своей гадской Parallel Studio XE стал предлагать выбор между C++ Composer XE и Visual Fortran Composer XE. И теперь если кому приспичит писать x->_->f(x,...) именно так, а не сделав нормальную декларацию и потом нормальный x->f(...), будет выглядеть просто слегка странно. А уж темплеты для GAP это вообще надругательство над голо-сишными святынями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:12 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацнет... простых, универсальных и надежных библиотек доступа к БДВыберите два из трёх. И это не от языка зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац , Может все же пора тебе похвастаться своими достижениями на сях, а то вдруг казачок то засрланый? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Edd.Dragon, Мальчик сегодня заявил, что "Есть два типа программ. Или быстрые (и/или в работе, и/или в написании), или надежные. Исключения крайне редки." Вот он наверное сейчас выбирает, каким достижением похвастаться --- то ли быстрой программой, то ли надёжной :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:18 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац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. Коментарий в коде перед описанием класса говорит сам за себя. Авторы MYSQL были на столько тупы, что не осилили написание этого на чистом С. ... и О БОЖЕ, здесь есть кромольное слово "virtual" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:19 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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? Сколько прикладных кодеров вообще знают о его существовании? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:21 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, тогда мне непонятно, за какой язык вы ратуете? Я понимаю, что дело не в языке, и наверно 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-системы) лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:22 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceС точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу. Имхо, "легкий старт" - вред. Идея легкого старта, это рассуждение человека со средним образованием, который хочет нажимать на три кнопки в наперед заданой последовательности, и не заморачиваться. Как-раз быстрый старт плодит быдлокодеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:34 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceПроясним ситуац, тогда мне непонятно, за какой язык вы ратуете? ................................ Много букв. Лучше спросить прямо и лаконично: - Чего вы добиваетесь? Но что-то, он на прямые вопросы не очень отвечает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:40 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистАвторы MYSQL были на столько тупы, что не осилили написание этого на чистом С. ... и О БОЖЕ, здесь есть кромольное слово "virtual" :) Я даже не поленился скачать исходики mysql и посмотреть на этот handler. Ну и? Это просто тупо класс-обертка для одной функции, вида bool handle_error(uint sql_errno, MYSQL_ERROR::enum_warning_level level, THD *thd); Почему им захотелось функцию сделать классом? Ну блин, классическое заболевание по имени ООП мозга в действии, листать в их SVN предысторию появления этой глупости откровенно лень. То, что там виртуальный метод ну никак ничем не оправдан, и достаточно было просто передавать указатель на функцию + контекст (сильно иногда) - это и вовсе 100% факт, как и то, что ты лишь продемонстрировал свое эдакое ослоумие. Может еще продемонстришь чего из их кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:41 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> Зая, ты сначала покажи на виртуальные методы в linux kernel, nginx, mysql и остальных проектах на чистом C, а потом мы с тобой > поговорим о современном программировании, ок? Думаю, с тобой говорить бесполезно - это будет не дискуссия, а монолог. Вы хоть прочитайте, что вам тут понаписали. В проектах, которые вы привели, полно макарон из свитчей и указателей на функции - а это не что иное, как эмуляция полиморфного кода, тех же самых виртуальных функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:43 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацМиф о необходимости многотредовости, особенно в прикладных решения - это полная туфтаНу-ну. Вот есть у меня маленькая платка: $ 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 под одну СУБД. И как вы её сможете эффективно задействовать без нитей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:45 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, Раз скачал исходники, вот сам и смотри, глядиш и чему-то новому научишся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:49 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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-системы) лучше? Всем абсолютно плевать, что лучше, что хуже. Просто посмотри на вакансии - и станет +- ясно, что реально еще применяется, а что уже нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:53 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceИ опять тема холивара. Но вдруг кто-то выскажет ценную идею? Ситуация: курсы проф. переподготовки, т.е. студенты в основном имеют высшее образование, но решили обучиться программированию. Они уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.). Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП. Вопрос: на базе чего это лучше делать - С++ или C#? (пробовал и так, и так - не могу пока понять, что лучше подходит) Критерии: с моей точки зрения, курс должен научить студентов мыслить объектно. Все подробности просто не успеть охватить, но если будет хороший фундамент - они дальше сами, на практике, подтянут что нужно (кто захочет, конечно). С этой точки зрения С++ предпочтительнее, поскольку: 1. Дает более глубокое понимание того, как это все работает. 2. Дает свободу дальнейшего пути: можно изучить C#\Java (после С++ это будет легче, чем идти наоборот), захотят уйти со стека MS - пожалуйста, Qt, мир Linux и пр. А с C# им будет сложно уйти в С++, и они по моей вине станут "заложниками" MS-технологий. С точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу. Начинается это уже при написании диплома в конце обучения: C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение. ДА и в целом, на C# ряд типовых задач (формочки, БД, сеть, графика) они решат легче и быстрее, без всяких сторонних библиотек и пр. Судя по вакансиям, .net-разработчики как-то более востребованы, чем плюсовики. Такая вот дилемма. Поделитесь опытом и мыслями? На мой взгляд, предпочтительнее C++. Во-первых, он построен на базе C, а в нем опыт уже у слушателей имеется. Во-вторых, реализация ООП в плюсах более академична, имхо (возможность реализации множественного наследования плюс все тонкости работы в non-managed environment). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:56 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 помог осознать проблему того, что пора уже преодолеть это самое ООП мозга и форматированное шаблонное мышление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 16:56 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистПроясним ситуац, Раз скачал исходники, вот сам и смотри, глядиш и чему-то новому научишся. А ты многому новому у них научился? Примеры есть? Ну кроме твоего адски глупого примера про то, как указатель на функцию нужно делать в виде класса с одним виртуальными методом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:00 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, И как, спрашивается, шардинг избавит от необходимости нитей для каждого шарда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:05 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуац, И как, спрашивается, шардинг избавит от необходимости нитей для каждого шарда? Одна нить на шарду, и никаких мутексов и подобного. Открой для себя libevent и асинхронное I/O, не позорься. И прочитай уже статью с ZMQ. Или прочитай так, чтоб понять о чем там написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:21 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацОдна нить на шарду, и никаких мутексов и подобного.А-а. Понятно. Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:24 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, Там таких исходников с ООП и виртуальными функциями целый каталог, а не только один пример. Надо будет, поизучаю .... если решу писать свой SQL сервер. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:26 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацОдна нить на шарду, и никаких мутексов и подобного.А-а. Понятно. Вообще-то это называется просто - "Слышал звон, не понял о чем он, но мнение свое на это счет имею". В линуксе процесс - это сущность из одной нити. Кури бамбук на предмет системного вызова clone() А со своим "слышал звон" - можешь смело в ступать в профсоюз вон с тем феноменом, который решил меня "опустить" примером с mysql, будете рыдать друг другу в жилетку, "изобличив меня паполной" (что вам еще остается, с такими знаниями-то). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:30 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
avlaxoftВо-вторых, реализация ООП в плюсах более академична. Это в каком месте она более академична? Это, пожалуй, самая примитивная и низкоуровневая реализация из существующих, построенная без каких-либо формальных теорий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:33 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
k0rvinavlaxoftВо-вторых, реализация ООП в плюсах более академична. Это в каком месте она более академична? Это, пожалуй, самая примитивная и низкоуровневая реализация из существующих, построенная без каких-либо формальных теорий. В том плане, что это - одна из классических реализаций ООП (Б. Страуструп, с 1980 г.), наряду со SmallTalk. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:42 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, Аноним, с тобой общатся больше не о чем. И не тебе судить о моих знаниях. Здесь можно закончить только фразой "Ты кто такой? Давай, досведания!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:43 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистПроясним ситуац, Аноним, с тобой общатся больше не о чем. И не тебе судить о моих знаниях. Здесь можно закончить только фразой "Ты кто такой? Давай, досведания!" Да, все верно, самозабанься из этого топика, будь добр, все равно генерируемый тобой шум никакого интереса, кроме как ходячий пример неизлечимого "ООП мозга", с крайне слабой теоретической и практической подготовкой - уже не представляет. До свидания, да. Удачи тебе в твой руби, может хоть там станешь похож на профи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:48 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Извенения автору топика за оффтоп так, для поднятия настроения, пятница как ни как :) http://www.youtube.com/watch?v=FsLYgcB1oZo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:49 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацВ линуксе процесс - это сущность из одной нити. Кури бамбук на предмет системного вызова clone()Ну так я жду рассказа, как один процесс может одновременно читать/писать несколько дисков И общаться с несколькими клиентами И выполнять нетривиальные вычисления, периодически требующие доступа к данным с тех самых дисков И вызывать процедурки на яве/perl/php --- всё в одной нити и без накладных расходов на IPC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 17:59 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПроясним ситуацВ линуксе процесс - это сущность из одной нити. Кури бамбук на предмет системного вызова clone()Ну так я жду рассказа, как один процесс может одновременно читать/писать несколько дисков И общаться с несколькими клиентами И выполнять нетривиальные вычисления, периодически требующие доступа к данным с тех самых дисков И вызывать процедурки на яве/perl/php --- всё в одной нити и без накладных расходов на IPC. В школе не рассказывали про mmap, msync(MS_ASYNC), mincore и madvise? В прочем да... И даже про fcntl( O_NONBLOCK) ioctl(fd, FIONBIO) не рассказывали (для сокетов)? ] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 18:19 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац, Поздравляю с успешным прочтением заголовочников. Ну и чем знание умных идентификаторов вам поможет? Рантайм толстого скуля "немножко" сложнее чем фарш Xitami, его "немножко" неудобнее будет представлять в виде FSA. И что совсем порвёт вам шаблон, этот FSA будет ещё и медленнее, потому что для обеспечения нужной гранулярности вам вместо редких дорогих переключений нитей придётся срывать конвейеры проца на каждом чихе. Про цену разработки и сопровождения вообще молчу, потому что такой проект просто не будет никогда закончен. Я бы понял, если б вы, скажем, вспомнили про fibers как замену нитям, это бы показало у вас зачатки понимания проблемы, а так... тролльте поинтереснее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 18:42 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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а не требует. Ты просто совсем не в теме видать, и это хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 18:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceПроблема в том, что 90% любой группы - это те, кто хочет особо ничего не делая получить оценку. Им вроде бы хочется стать программистами, но нет огня, они не сидят допоздна за кодом, стремясь сделать свой проект, не просят советов и т.п. Делают лабы с буквальной точностью, и если в методичке у меня опечатка, и любому ясно, что вот тут вот так делать - бред, нет же, они так сделают, "ибо написано". Вопрос: стоит мне тратить силы и разжевывать материал так, чтобы у них что-то осталось в голове? Они все равно не станут программистами. При этом 10% более шарящих чуваков будут скучать. Не лучше ли подумать о тех, кому знания и опыт действительно нужны?Программирование - это сугубо прикладная дисциплина. (Если мы забыли о Computer Science и говорим исключительно о кодерстве.) Какой смысл в лекциях и методичках? Единственный способ научить - это дать реальную задачу. Даже 10% шарящих чуваков, делая лабы, ничего не приобретут. Например, у меня на практике студенты моделируют БП, пишут простенькие БД - полуфабрикаты, которые потом допиливают сотрудники. Я не даю им вообще никакого лекционного материала (очного или в виде обязательных для прочтения книг), инструкций, примеров. Только ставлю задачу, отвечаю на возникающие по ходу вопросы и критикую их решения. Если студент ленивый, то его мыслительный процесс и наш с ним диалог будут вялыми. Ну, и фиг с ним. Если он что-то делает, то даже при нулевом багаже знаний он чему-то научится. Знания студента вообще не имеют никакого значения, только вовлеченность в процесс, интенсивность диалога с преподавателем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 18:59 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
рубистAres_ekbНапример, задача: прочитать из БД описание бизнес-сущностей, сгенерить для них классы и загрузить их в приложение.На Ruby это займет строчек 10 :)Если бы под Ruby ещё было что-то типа XAF ;) Иначе всё остальное займет очень много строчек кода ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 19:06 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацчто такое FSA не знает даже википедияВикипедия знает , это вы не знаете. Проясним ситуацгранулярность порядка сильно меньше 1 мсек на один запросИ чем гордиться? Посчитайте сами, сколько строк таблицы можно пробежать за 1 лишнюю мсек, из расчёта два такта на строку. Хотя о чём это я? Вы ж начали с того, что изувечили базу, самовольно без спросу добавив шардинг на всё подряд. Кстати, вам с вашим шардингом латентность NUMA передавала пламенный привет :) Проясним ситуацrequest прилетает сразу (ибо меньше размера пакета), данные файла уже в замамлены в памяти, а асинхронная отправка response и вовсе ничего от workerа не требует.Если вы ничего сложнее веб-сервера не писали, то у вас тем более нет оснований поучать других. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 19:49 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 расчеты подойдут? Если я умею считать динамические нагрузки, то я могу уже поучать? Что, все еще нет? О горе мне! Так ото, сидя в луже со своими тредами, других аргументов, кроме загадочной виртуальной безымянной сложности чего-то там совсем не нашел? Ок, все прослезились, ты меня уделал паполной! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 20:51 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацАвтоматы знает любой студент, который изучал дискретку. Какое отношение они имеют к вопросу событийно-ориентированного асинхронного программирования?Потому что если вы не хотите запихать всё состояние толстого рантайма в событие, то вам понадобится 1) где-то хранить это состояние и 2) предусмотреть переходы из одного класса состояний в другие. Вот вам и автомат. Тот же imatix, которым вы размахиваете, предлагал целый тулкит для написания FSA как раз по этой причине. Проясним ситуацЧуваки из ebay применяют шардинг на базах данных Oracle, чуваки из Facebook/Twitter - тоже самое, но на mysql. Они у тебя тоже должны были разрешения спрашивать?Да нет, не должны. Просто эти "чуваки" в отличие от вас знают, когда от шардинга больше пользы, чем вреда, а когда наоборот. Проясним ситуацiv_an_ruКстати, вам с вашим шардингом латентность NUMA передавала пламенный привет :)Полная чушь. Как раз для NUMA шардинг прописан еще и как, потому что позволяет делать реально управляемый и эффективный affinity и к процессору, и к его локальной памяти и кешам (см на netezza как пример).Щасс. Вот если б вы рассматривали шардинг строго по числу NUMA-нод, это показало бы некоторую осведомлённость, а по числу ядер БД пилят только в весьма специальных случаях. Проясним ситуацВсе, пойду наемся с горя червячков.Не надо, подождите хотя бы окончания грибов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 21:39 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Понятно, что здесь большинство все опытные, знающие, умные, но студентам надо систематизированные знания давать, по порядку, начиная от работы процессоров и устрйства компьютера, далее - понятие оконной функции в терминах работы приложения (программирования в частном случае), далее - стили и виды построения приложений (процедурное программирование, затем уже понятие ООП). я лишь посоветовал мое имхо - как на практике можно воспользоваться уже готовой оконной функцией и расширить ее средствами ООП. Ничего более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 21:48 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 приверчен, это лишнее, понимание т.е.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 21:55 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуац... Что мне мешает создать 16 шард и повесить их на одну ноду да хоть простейшим taskset/sched_setaffinity, заодно прописать set_mempolicy для mmap? Кстати, да, надо бы и FR сделать ... Про ТС забыли? Эта цитата выше - для конспекта для ТС, чтобы он процитировал студентам? Затроллили весь топик. Создайте свою тему и обсуждайте споры, если ваших сообщений более 3-5 ... TopSpace (ТС) наверное разочарован - задал вопрос, а вместо ответа личные споры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 22:22 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Проясним ситуацОткрой для себя стандартные 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 с хвостиком последних лет аппетиты приложений слегка подросли, и в возможности *дэбээм не влезают никак. соответственно и инструментарий на серверной стороне слегка поменялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 22:27 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
aswsЗатроллили весь топик. Создайте свою тему и обсуждайте споры, если ваших сообщений более 3-5 ... TopSpace (ТС) наверное разочарован - задал вопрос, а вместо ответа личные споры. Логично. Переезжаем: 13062628 TopSpace, не обижайтесь, пожалуйста, на неудобства --- мы вам топик на главную страницу сайта вывесили :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2012, 22:36 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Задача почти безнадежная. Хотя если вопрос стоит, как использовать время (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 часа на все! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 01:14 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Prepod, спасибо за советы, книжку гляну. Да, интересная дискуссия получилась) Тема все-таки холиварная: в итоге так и не удается поставить точку в вопросе C++\C#, есть доводы с обоих сторон. Если немного резюмировать их: За С++: ближе к С, поэтому более плавный переход. Второй довод "после него уже ничего не страшно". За C#: меньше заморочек, а значит за то же время выйдет более подгтовленный джуниор. Может быть и правильно взять Java вместо них - подскажет кто, какая книга хорошо погружает в тему? Ну а об отказе от ООП в сторону ФП говорить пока рановато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 07:26 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace, А может оба языка преподавать? Вернее, тот, какому отдают предпочтение сами студенты или уже имеют начальные знания или опыт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 10:17 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
asws, тоже думал про оба - запутаются. Слишком много между С++ и C# тонких различий, каша будет. Их мнение, думаю, учитывать не нужно)) Они пока еще ничего не знают (кроме С), чтобы сознательно делать выбор. Думаю, выберу все-таки C#, он на пару с Java сейчас половину вакансий составляет (а С++ там встречается все реже). Только полностью поменяю формат: выдавать лекции заранее, чтобы на занятии только пробегаться, разбирая вопросы, больше практики, и часть тем сократить до минимума (типа перегрузки операторов). Да, придется менять учебный план, билеты, но оно того стоит. Самое тут сложное -это придумывать интересные задачи! Для примеров, и для лаб. Посоветуйте, кто может, примерные темы лаб? Чтоб было интересно и не сильно оторвано от реальности. А то надоело это классическое, встречающееся в 90% курсов: 1. Делаем класс (по вариантам, типа карточка в библиотеке, матрица, полином, геометрическая фигура,...), делаеи коллекцию объектов, вставка\редактирование\удаление. 2. Делаем класс с перегрузкой операторов, показываем как работает. 3. Делаем простенькую иерархию, показываем работу полиморфизма. 4. Пишем свою коллекцию. Хотя может сам этот костяк и должен остаться, но что-то хочется интересное внести! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 11:20 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceЗа С++: ближе к С, поэтому более плавный переход. Второй довод "после него уже ничего не страшно". За C#: меньше заморочек, а значит за то же время выйдет более подгтовленный джуниор.А вы не давайте им лишние плюсовые заморочки. Ваша задача --- дать им сделать простейшее приложеньице, и вместо темплета объяснить им что такое комментарий, что такое тест, что такое защита от дурака. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 16:09 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceЗа С++: ближе к С, поэтому более плавный переход. Второй довод "после него уже ничего не страшно". Господа, а вот с этим утверждением все согласны? Допустим если сравнить С, C# и C++ по: фича\язык: C C# C++ООП - + +множественное наследование - - +шаблоны - +- +перегрузка операторов - + +лямбда функции - + +сборщик мусора - + + Получается что C# стоит между С и С++ и ближе к последнему. Кто хорошо знает C#, дополните таблицу фичами из C#, что бы получилась другая ситуация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 17:14 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
все согласны?Господа, а вот с этим утверждением все согласны? Тут нет господ даже близко. В основном недоученные бывшие рабоче-крестъянены с якобы дипломами И в целом - конечно нет Допустим если сравнить С, C# и C++ по: фича\язык: C C# C++ООП + (есть - читай книги) + +множественное наследование ? - +шаблоны + (кури макросы) +- +перегрузка операторов - + +лямбда функции - + +сборщик мусора + (кури obstack и Boehm-Demers-Weiser conservative garbage collector for C/C++) + + ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 17:46 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
все согласны?C# стоит между С и С++ и ближе к последнему.Трудно согласиться. Си --- это макроассемблер такой удобный. Си с двумя плюсами --- это ещё более навороченный макроассемблер. А C# --- это нечто со своей подковёрной внутренней жизнью, вроде Паскаля. Это не "достоинство" и не "недостаток", просто принципиальное отличие от двух других. Есть, кстати, ещё C--, SAC и куча "кастрированных Си", которые ещё нагляднее показывают "макроассемблерность" Си. Особенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 18:01 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruвсе согласны?C# стоит между С и С++ и ближе к последнему.Трудно согласиться. Си --- это макроассемблер такой удобный. Си с двумя плюсами --- это ещё более навороченный макроассемблер. А C# --- это нечто со своей подковёрной внутренней жизнью, вроде Паскаля. Это не "достоинство" и не "недостаток", просто принципиальное отличие от двух других. Есть, кстати, ещё C--, SAC и куча "кастрированных Си", которые ещё нагляднее показывают "макроассемблерность" Си. Особенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг. Ну с С - макроасемблер соглашусь. А С++ макроассемблер? Допустим перевод кода с ASM на С чисто механический, а вот с ASM на C++ - это написать программу заново. Я к тому, что в С++ и ООП ООПей, чем в остальных (C#, Java), и шаблоны шаблонистей :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 18:20 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
шаблоны шаблонистей :)Я к тому, что в С++ и ООП ООПей, чем в остальных (C#, Java), и шаблоны шаблонистей :) Про шаблоны спорно, а вот про "ООПшность" - так по идее наоборот, С++ еще как-то допускает мешать классы с процедурами, то C# - в более полной мере реализует лозунг "все есть объект". Там без класса вообще ничего не сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 18:26 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
шаблоны шаблонистей :)Ну с С - макроасемблер соглашусь. А С++ макроассемблер? Допустим перевод кода с ASM на С чисто механический, а вот с ASM на C++ - это написать программу заново.Макроассемблер не переводит "с ASM", так что логика непонятна. Имея, скажем, декларации классов и функций членов, вы можете "в уме" с точностью до байта представить себе раскладку объектов в памяти, содержимое вирттаблиц, понять, во что превратятся инлайны, в какие объектные модули и как лягут инстанцияции темплетов и т.п. Можете представить себе даже содержимое карт диапазонов адресов инструкций, которую "разматывалка стека" обходит при работе обработчика исключений. Были бы терпение, родная дока компилятора и производственная необходимость. Вы можете понять, как подкрутить структуры данных или код для того или иного изменения в раскладке данных. Или можете понять, что надо выпендриться на более низком уровне, и выпендриться строго как надо. От архитектурно-специфических функций gcc до вставок на асме включительно. Это IMHO и есть макроассемблер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 18:43 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
все согласны?множественное наследованиеЖуть какая, нормальное множественное наследование я видел только в CLOS. Интерфейсы уж куда более полезная штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 19:22 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruшаблоны шаблонистей :)Ну с С - макроасемблер соглашусь. А С++ макроассемблер? Допустим перевод кода с ASM на С чисто механический, а вот с ASM на C++ - это написать программу заново.Макроассемблер не переводит "с ASM", так что логика непонятна. Имея, скажем, декларации классов и функций членов, вы можете "в уме" с точностью до байта представить себе раскладку объектов в памяти, содержимое вирттаблиц, понять, во что превратятся инлайны, в какие объектные модули и как лягут инстанцияции темплетов и т.п. Можете представить себе даже содержимое карт диапазонов адресов инструкций, которую "разматывалка стека" обходит при работе обработчика исключений. Были бы терпение, родная дока компилятора и производственная необходимость. Вы можете понять, как подкрутить структуры данных или код для того или иного изменения в раскладке данных. Или можете понять, что надо выпендриться на более низком уровне, и выпендриться строго как надо. От архитектурно-специфических функций gcc до вставок на асме включительно. Это IMHO и есть макроассемблер. Я и не говорю что "Макроассемблер не переводит "с ASM"", я говорю "перевод кода с ASM на С чисто механический", т.е. вы можете легко перевести с ASM на C, а так как базовым языком макроассемблера является ассемблер и близостью языка можно назвать легкость перевода с одного на другой, то легкость перевода с ASM на другой язык и может считаться близостью его к макроассемблеру. Думаю вы заметите существенную разницу в сложности перевода с ASM на С, против перевода с ASM на С++. А по вашему получается любой язык компилируемый в машинный код - макроассемблером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 20:11 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
с ASM на С++Думаю вы заметите существенную разницу в сложности перевода с ASM на С, против перевода с ASM на С++.Не замечу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 20:21 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Ares_ekbвсе согласны?множественное наследованиеЖуть какая, нормальное множественное наследование я видел только в CLOS. Интерфейсы уж куда более полезная штука. Наверняка вы просто не знаете для какой задачи подойдет множественное наследование, а если вам дать задачу, где оно применимо как нельзя лучше, то не сможете её красиво решить без него. А о достоинствах других языков здесь никто и не спорит. Прикладные языки ставят жесткие рамки защищающие от глупых ошибок, в этом их достоинство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 20:27 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruс ASM на С++Думаю вы заметите существенную разницу в сложности перевода с ASM на С, против перевода с ASM на С++.Не замечу. Ну чтож, поздравляю, вы уникальный человек на этой планете. А разницу в переводе с C на ASM, и с C++ на ASM наверное тоже не заметите, и не заметите разницу в сложности написания программы которая эти переводы делает, т.е компилятора С и С++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 20:33 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
с С++ на ASMiv_an_ruпропущено... Не замечу. Ну чтож, поздравляю, вы уникальный человек на этой планете. А разницу в переводе с C на ASM, и с C++ на ASM наверное тоже не заметите, и не заметите разницу в сложности написания программы которая эти переводы делает, т.е компилятора С и С++?По сравнению с построением хорошего сишного компилятора для современного проца, "нахлобучка" в виде двух плюсов сложности уже почти не добавляет. Аннотированный С++ транслируется в аннотированное подмножество С несложной переписывалкой, которую за два семестра пишет не очень-то старательный программист в глубоко "советском" НИИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 21:41 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
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 человеколет только на транслятор. За год не написали. А компилятор С за сколько бы вы написали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 21:58 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
с С++ на ASMА компилятор С за сколько бы вы написали?Нормальный вообще бы не написал, это не моя специальность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:08 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
все согласны?Наверняка вы просто не знаете для какой задачи подойдет множественное наследованиеТакой задачи нет. Наследуется либо внешнее поведение объекта (в этом случае используем абстрактные классы, интерфейсы - реализация нас не интересует), либо внутренняя реализация (в этом случае наследование всегда можно заменить композицией). Потребность во множественном наследовании возникнет только тогда, когда нужно одновременно унаследовать и внешнее поведение, и внутреннюю реализацию. Но эти два вида наследования на столько различны, и потребность их смешения возникает на столько редко, что во множественном наследовании нет никакого смысла. Конечно, композиция - это не совсем наследование. У родительского и встроенного объектов разные жизненные циклы. Но это меньшее зло. Отсутствие множественного наследования иногда несколько увеличивает количество кода, но, уж, лучше явно прописать какие-то вещи, чем допускать неявные ошибки с МН. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:12 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
с С++ на ASMУолтер Брайт: 1 год против более чем 10 лет.Разумеется. Есть принципиальная разница между построением "какого-нибудь" транслятора и построением _быстрого_ транслятора, к тому же _гарантированно_ соблюдающего стандарт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceшаблоны шаблонистей :)Я к тому, что в С++ и ООП ООПей, чем в остальных (C#, Java), и шаблоны шаблонистей :) Про шаблоны спорно, а вот про "ООПшность" - так по идее наоборот, С++ еще как-то допускает мешать классы с процедурами, то C# - в более полной мере реализует лозунг "все есть объект". Там без класса вообще ничего не сделать. Если хочешь научить студентов только ООП за 4-8 лекций, то C# тогда, как сам выбрал. (мое скромное имхо - я-б не учил этому монстру, бедные люди, им-же всю жизнь переучиваться и зависить от MS для зарабатывания $ и кормления семьи). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:33 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг. А можно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 01:03 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
А можно пример?iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг. А можно пример?асм не заменишь никаким C, если только элементарный пример, тебе это надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 01:06 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
aswsА можно пример?iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг. А можно пример?асм не заменишь никаким C, если только элементарный пример, тебе это надо? Ну тут говорят про cmm, который javascript. Да и с С было бы интересно что там за асм инструкции в "как-бы сишном коде". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 01:35 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
А можно пример?aswsпропущено... асм не заменишь никаким C, если только элементарный пример, тебе это надо? Ну тут говорят про cmm, который javascript. Да и с С было бы интересно что там за асм инструкции в "как-бы сишном коде". Не надо путать интерпретатор по-сути/или пока-еще - JavaScript , и машинные коды, на которых работает проц компа. Наиболее близок к машинным кодам - Ассемблер - в нем каждая команда имеет условную мнемонику соответсвия машинному коду. Все остальные компиляторы ЯП более высокого уровня - создают говнокодище. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 01:45 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
После АСМа, из всех компиляторов - C создает наиболее лучший код с точки зрения машинных команд для процессора, за ним идет наверное Pascal, н тут я уже не уверен, это предположение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 01:49 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace... ООП - это парадигма, глобальный подход, а оконные функции - частная техническая деталь. Это в итоге нужно знать, но стоит ли с этого прям начинать? Тогда нужно будет рассказать про IDE, процесс компиляции, виды языков, стек и кучу,... а как Вы хотели? Учить других - это талант, надо четко ЗНАТЬ на опыте и УМЕТЬ грамотно объяснить. Иначе будут задания от Вас, сравнимые с заданием от горе-препода - типа создать ООП пример на ассемблере... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 02:00 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
avlaxoftПомнится, у нас в универе даже домашнее задание на лето было: написать на ASMе (!!!) программу, использующую объекты (да, оказывается, даже на этом уровне есть механизм реализации всех трех "китов" ООП!) и моделирующую полет и упругое столкновение на экране шариков, отталкивающихся друг от друга и от стенок экрана (один шарик - один экземпляр объекта)...Это Вам попался горе-учитель, который кроме "парадигмы ООП" (это только слово в языке, каждый по-своему понимает), больше ничего не захотел изучать (или умом слабоват), и поэтому сильно ограничен. Не повезло Вам с преподом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 02:06 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
А можно пример?iv_an_ruОсобенно С-- показывает, в котором асмовые инструкции пишутся в как-бы сишный код даже без _asm {...} вокруг. А можно пример?Вот тут пара добровольцев всё ещё поддерживают старинный Сфинкс C-- , можно и мелкие примеры посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 06:03 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
asws(мое скромное имхо - я-б не учил этому монстру, бедные люди, им-же всю жизнь переучиваться и зависить от MS для зарабатывания $ и кормления семьи). Тогда чему? C++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 08:04 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace, Учите тому, что Страуструп называл "Си с классами". Остальное пусть сами потом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 11:48 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Чем отличаются С++ и "Cи с классами"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 12:17 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace, отличаются отсутствием темплетов, очень ограниченным использованием виртуальных базовых классов и исключений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 12:42 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruTopSpace, отличаются отсутствием темплетов, очень ограниченным использованием виртуальных базовых классов и исключений. Что виртуальное наследование - зло, говорят многие, я тоже так думаю. Исключения - спорный момент. Вроде бы и удобно (можно в одном месте обрабатывать ошибки с целого "куста" функций), но к примеру google code style их категорически запрещает. Работал с парой игровых движков - ни одного throw. А с темплейтами - возвращаемся к началу... без них чел не поймет как работает STL, а плюсовик без STL - это нонсенс какой-то (увы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 14:04 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpace, Плюсовик за восемь лекций --- само по себе нонсенс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 14:15 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПлюсовик за восемь лекций --- само по себе нонсенс. Ну вот об этом и речь, что быть может шарпист за это время получится более хороший? А вообще мы говорим, естественно, о самом базисе, даже не уровень джуниора, дальше все зависит от студента. Но примеры есть - люди делали диплом, мелкие проекты, и быстро дорастали до джуниорских вакансий. Очень многое от человека зависит.7056 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 14:49 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Господа, смысл ваших споров мне не понятен. Человек, который знает язык программирования - бесполезен. Он может только решать задачки из учебника. Кроме языка надо знать библитеки связанные с предметной областью, надо знать операционку, надо знать тот-же SQL, структуры данных итд. В результате оказывется, что язык програмирования это 5-10% необходимых знаний. Ну и стоит ради этого спорить? Обучать надо принципам программирования. А язык при этом - вторичен. Хоть язык академика Ершова используйте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 15:18 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
vromanovГоспода, смысл ваших споров мне не понятен. Человек, который знает язык программирования - бесполезен. Он может только решать задачки из учебника. Кроме языка надо знать библитеки связанные с предметной областью, надо знать операционку, надо знать тот-же SQL, структуры данных итд. В результате оказывется, что язык програмирования это 5-10% необходимых знаний. Ну и стоит ради этого спорить? Обучать надо принципам программирования. А язык при этом - вторичен. Хоть язык академика Ершова используйте Библиотеки, да надо знать. Может и бесполезен, но днем с огнем не сыщешь человека отлично знающего язык. А SQL разве не язык? И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:04 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
надо знатьvromanovГоспода, смысл ваших споров мне не понятен. Человек, который знает язык программирования - бесполезен. Он может только решать задачки из учебника. Кроме языка надо знать библитеки связанные с предметной областью, надо знать операционку, надо знать тот-же SQL, структуры данных итд. В результате оказывется, что язык програмирования это 5-10% необходимых знаний. Ну и стоит ради этого спорить? Обучать надо принципам программирования. А язык при этом - вторичен. Хоть язык академика Ершова используйте Библиотеки, да надо знать. Может и бесполезен, но днем с огнем не сыщешь человека отлично знающего язык. А SQL разве не язык? И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки?Где, где ты видел в стандарте ANSI C многопоточность? pthreads? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:29 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
А SQL разве не язык? И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки? Под SQL подразумевается не только язык, но и многое другое.. ОС - куча вещей совсем не кроплатформенных. Начиная от регистри на Win и заканчивывая эффективной работой с сокетами под линуксом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:48 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Я танцую пьяный на столенадо знатьпропущено... Библиотеки, да надо знать. Может и бесполезен, но днем с огнем не сыщешь человека отлично знающего язык. А SQL разве не язык? И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки?Где, где ты видел в стандарте ANSI C многопоточность? pthreads? Откройте для себя википедию: http://ru.wikipedia.org/wiki/ANSI_C#C11 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:51 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
vromanov, то, что вопрос язык вторичен - не значит, что он не существенен. А так, думаю здесь все согласны с тем, что на примере конкретного языка преподаватель должен иллюстрировать универсальные понятия (например, принципы ООП), знакомить с типовыми решениями (разделение модели и представление, потоковая синхронизация, и т.п.), ну и давать какой-то минимум конкретных технологий (библиотеки, API, фреймворки). И спор о том, какой язык лучше сгодится на роль такой иллюстрации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:53 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
vromanovА SQL разве не язык? И зачем знать ОС если работа с файлами и многопоточность - стандарт языка, а работа с графикой - это кроссплатформенные библиотеки? Под SQL подразумевается не только язык, но и многое другое.. ОС - куча вещей совсем не кроплатформенных. Начиная от регистри на Win и заканчивывая эффективной работой с сокетами под линуксом. Насчет сокеты/сеть соглашусь. А что вы под SQL ещё понимаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:53 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
надо знатьЯ танцую пьяный на столепропущено... Где, где ты видел в стандарте ANSI C многопоточность? pthreads? Откройте для себя википедию: http://ru.wikipedia.org/wiki/ANSI_C#C11 Капец! Откуда я знал, шо этот стандарт вышел, откуда он още появилсЯ??? Я пишу на С99 !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:56 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Если знание C и базовых алгоритмов у слушателей уже есть, то можно взять за основу "(Most) Effective C++". Объяснить разницу между new и malloc, new и "new для массивов", что такое "буферированный new", почему не надо использовать полиморфизм в массивах, что даёт перегрузка операторов и на какие грабли (легко) наступить в этом процессе. Что дают интеллектуальные указатели и какие проблемы создаёт их использование. Уделить внимание преобразованиям типов и почему наследование его затрудняет. На лабах можно "повторить пройденное" на базе STL. "Как-то так" (ц) Винни-Пух. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 16:57 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, да Вы с дуба рухнули!? Какие указатели , какой к черту STL , ни в коем случае! Либо Java, либо C# Еще вместо выдрачивания голого ООП, я бы пустил в параллель паттерны проектирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:03 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Диктатор IIя бы пустил в параллель паттерны проектирования.Тут вопрос, что выкинуть из курса, а не что добавить. Есть всего 8 пар, помните? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:04 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Диктатор IIКакие указатели , какой к черту STL , ни в коем случае!Никто не призывает демонстрировать потроха auto_ptr или детально разбирать синтаксис и семантику шаблонов. А вот показать, что "... вот здесь разумно использовать auto_ptr ..." и про "интеллектуальные, но не указатели" - можно и нужно. С STL - аналогично: демонстрация того, что уже известно слушателям (списки и сортировки) покажет, что не надо изобретать велосипеды на совсем ровном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:25 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Cогласен что UPD: да, и забыл упомянуть еще и такой момент: переход C=>C++ более прост, чем C=>C# (IMHO). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:28 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovДиктатор IIКакие указатели , какой к черту STL , ни в коем случае!Никто не призывает демонстрировать потроха auto_ptr или детально разбирать синтаксис и семантику шаблонов. А вот показать, что "... вот здесь разумно использовать auto_ptr ..." и про "интеллектуальные, но не указатели" - можно и нужно. С STL - аналогично: демонстрация того, что уже известно слушателям (списки и сортировки) покажет, что не надо изобретать велосипеды на совсем ровном месте. auto_ptr нельзя использовать нигде и никогда. deprecated ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:38 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
нельзяBasil A. Sidorovпропущено... Никто не призывает демонстрировать потроха auto_ptr или детально разбирать синтаксис и семантику шаблонов. А вот показать, что "... вот здесь разумно использовать auto_ptr ..." и про "интеллектуальные, но не указатели" - можно и нужно. С STL - аналогично: демонстрация того, что уже известно слушателям (списки и сортировки) покажет, что не надо изобретать велосипеды на совсем ровном месте. auto_ptr нельзя использовать нигде и никогда. deprecated Ну опять, только дочитал Страуструпа, где он хвалил этот авто_птр, и тут бац, уже устарело... не успеешь за ними ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:46 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
TopSpaceИ спор о том, какой язык лучше сгодится на роль такой иллюстрации. Для обучения лучше сгодится тот, у кого лучше отладчик, удобнее IDE, больше книг в продаже. Также важно, чтобы IDE было бесплатным. Это скорее всего все-таки С# или С++ с MS Visual Studio Express. Чистый С изучать сложенее - мало док и код слишком похож на С++. В сыое время был крут Turbo Pascal. Сейчас его заменил Visual Studio Express C# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:53 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
нельзяauto_ptr нельзя использовать нигде и никогда. deprecated Это get() нельзя использовать, а от устаревания до запрета - дистанция огромного размера. P.S. Ну и к "только что принятому" C11 - тоже пять. Процитирую (неточно) всё того же Мейерса: "Если ваша задача - создание надёжного кода, предоставьте другим нащупывать новые пути". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 17:54 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovнельзяauto_ptr нельзя использовать нигде и никогда. deprecated Это get() нельзя использовать, а от устаревания до запрета - дистанция огромного размера. P.S. Ну и к "только что принятому" C11 - тоже пять. Процитирую (неточно) всё того же Мейерса: "Если ваша задача - создание надёжного кода, предоставьте другим нащупывать новые пути". А если ещё понять эту мысль, то все фишки условно делятся на 3 группы: точно годные, новые и не известно годные или нет, и точно не годные. Вы почему-то из 3 выбираете последнее. В свое время auto_ptr был новым, пару лет, а уж сегодняшним смарт-указателям по 10 лет. Это классика - это знать надо! (С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 18:09 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
понять эту мысльА если ещё понять эту мысль, то все фишки условно делятся на 3 группы: точно годные, новые и не известно годные или нет, и точно не годные. Вы почему-то из 3 выбираете последнее. В свое время auto_ptr был новым, пару лет, а уж сегодняшним смарт-указателям по 10 лет.Интеллектуальные указатели - основа изощрённых механизмов управления памятью и доступа к данным. auto_ptr - одна из реализаций, подходящая во многих случаях. Так что не оценил я вашу, безусловно глубокую, сентенцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 19:27 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovпонять эту мысльА если ещё понять эту мысль, то все фишки условно делятся на 3 группы: точно годные, новые и не известно годные или нет, и точно не годные. Вы почему-то из 3 выбираете последнее. В свое время auto_ptr был новым, пару лет, а уж сегодняшним смарт-указателям по 10 лет.Интеллектуальные указатели - основа изощрённых механизмов управления памятью и доступа к данным. auto_ptr - одна из реализаций, подходящая во многих случаях. Так что не оценил я вашу, безусловно глубокую, сентенцию. Это потому, что вы не знаете простейших вещей: давно заменившего его unique_ptr, которому уже много лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 20:13 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
не знаете простейших вещейЭто потому, что вы не знаете простейших вещей: давно заменившего его unique_ptr, которому уже много лет.Шаблоны были реализованы до принятия стандарта тем же борманом, насколько мне известно. И что с того? Есть маленькая разница между "обучать" и "использовать" - в первом случае использование устаревшего, но стандартного средства и допустимо и оправдано. Упоминать ли в процессе обучения эквиваленты из C11 или из boost-а - это уже на усмотрение преподавателя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 20:33 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
за 8 пар нереально изучить ни и ни то... Просто расталдонить концепциюю ООП можно и за одну пару. А там, если цель ввести в мир ООП, а не в язык программирования, то зачем вообще думать какой язык выбирать, можно базовые принципы ООП показать и на C++ и на C# - параллельно, как в MSDN. Только в C++ нету уборщика мусора, а в C# есть. Третьим языком можно Java прикрутить, он тоже похож на C++. И заодно показать как в Java сделать множественное наследование через интерфейсы и сравнить его с с++ множественным наследованием... Наследование все таки как никак одно из понятий ООП, но в разных языках оно как бы немножечко иногда отличается реализацией в самых тонких случаях. Или может проще разбить на группы - кто хочет с++ а кто хочет сишарп - пусть сами студенты решают. А если сами не решат, значит еще не созрели, тогда им без разницы что им преподадут... ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 10:40 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
> за 8 пар нереально изучить ни и ни то... да, за 8 пар нереально но если в промежутках (2 недели) еще и самостоятельно разбираться и кодить по 12 часов в день, то норм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 12:02 |
|
||
|
Преподавать C++ или C#?
|
|||
|---|---|---|---|
|
#18+
kosh the best> за 8 пар нереально изучить ни и ни то... да, за 8 пар нереально но если в промежутках (2 недели) еще и самостоятельно разбираться и кодить по 12 часов в день, то норм согласен - побольше практиковаться и все придет... я таким способом наизучал кучу языков и технологий, использую их чтоб студентам всякую хрень делать, а вот чтоб на работу устроится - то тут увы... тогда уже надо что-то одно хорошо изучать, так что на работе я юзаю Delphi и MS SQL Server, иногда C#... вот что-то одно я как бы потиху узнаю все лучше и лучше, так как в этом варишься каждый день... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 14:46 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1342152]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
130ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 542ms |

| 0 / 0 |
