Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они?
Здравствуйте, maeth, Вы писали:
M>Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они?
А если не секрет, какой вуз?
И предмет так и зовётся "основы MFC/COM"?
Здравствуйте, maeth, Вы писали:
M>Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они?
В ознакомительном режиме для расширения кругозорапочему бы и нет.
Здравствуйте, Aviator, Вы писали:
A>Здравствуйте, maeth, Вы писали:
M>>Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они? A>В ознакомительном режиме для расширения кругозорапочему бы и нет.
Здравствуйте, maeth, Вы писали:
M>Здравствуйте, Aviator, Вы писали: A>>В ознакомительном режиме для расширения кругозорапочему бы и нет. M>И потратить на это полгода???
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, maeth, Вы писали:
M>>Здравствуйте, Aviator, Вы писали: A>>>В ознакомительном режиме для расширения кругозорапочему бы и нет. M>>И потратить на это полгода???
К>А преподаватель мотивацию не объясняет?
А какая тут может быть мотивация? Дело предпочтений конкретных людей.
Здравствуйте, maeth, Вы писали:
M>И потратить на это полгода???
Нафига полгода тратить? Прочитать статьи по СОМ на этом сайте, попробовать создать пару КОМ серверов. Для ознакомления хватит. Главное суть уловить. ИМХО все конечно
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Здравствуйте, maeth, Вы писали:
M>Здравствуйте, Aviator, Вы писали:
A>>Здравствуйте, maeth, Вы писали:
M>>>Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они? A>>В ознакомительном режиме для расширения кругозорапочему бы и нет.
M>И потратить на это полгода???
Если усиленно кодить в поте лица полгода то наверно не оправданно , послушать полугодичный курс 2 часа в неделю почему бы и нет, я считаю вполне нормально.
Здравствуйте, ZevS, Вы писали:
ZS>А какая тут может быть мотивация? Дело предпочтений конкретных людей.
Это, конечно, ИМХО, но вот образование должно давать базис, т.е. общие основы и принципы, а полгода учить людей конкретной проприетарной + устаревающей технологии очень подозрительный вариант, другое дело, если технология рассматривается в свете какого-нибудь предмета (e.g. основы проектирования и ООП)
Здравствуйте, maeth, Вы писали:
M>Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они?
MFC изучать смысла нет практически никакого. Это всего лишь одна не самая удачная библиотека для С++.
КОМ — это универсальная компонентная модель на которой построено пол Виндвос. Тлько она подразумевает не только модель, но и кучу частных реализаций, WMI, например.
Изучить КОМ как модель имеет смысл если уж вас все равно мозг С++-ом насилуют. Изучать все тонкости технологий на базе КОМ-а реализованных смысла нет. Понадобятся — изучат.
На мой взгляд, самое важное, чтобы при таком обучении вши мозги не превратились в стиральные доски и чтобы море мелких низкоуровневых подробностей которыми изобилуют КОМ и С++ не забили ваш мозг окончательно. Посему в обязательном порядке нужно изучить альтернативные вещи. Например, те же компонентные технологии реализованы в .NET и Яве намного лучше. А кроме компонентного похода есть еще функциональное программирование, метапрограммирование, аспектное программирование и много других интересных и вазныс способов делать решение сложных задач проще. Вот если их не пропустите, то можете изучать хоть черта лысого.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Курилка, Вы писали:
К>Это, конечно, ИМХО, но вот образование должно давать базис, т.е. общие основы и принципы, а полгода учить людей конкретной проприетарной + устаревающей технологии очень подозрительный вариант, другое дело, если технология рассматривается в свете какого-нибудь предмета (e.g. основы проектирования и ООП)
Да. Но:
1) Практику ничем не заменишь.
2) Через 2 года любая современная технология будет уже устаревшей, так что — без разницы. Хотя MFC имхо не лучший пример для освешения предметами...
3) Поставь себя на место человека, принимающего решения... и получишь тот же результат, в том смысле, что многие твой выбор не поймут / одобрят
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, ZevS, Вы писали:
ZS>>А какая тут может быть мотивация? Дело предпочтений конкретных людей.
К>Это, конечно, ИМХО, но вот образование должно давать базис, т.е. общие основы и принципы, а полгода учить людей конкретной проприетарной + устаревающей технологии очень подозрительный вариант, другое дело, если технология рассматривается в свете какого-нибудь предмета (e.g. основы проектирования и ООП)
про COM этого не скажешь. Он и щас живее всех живых.
Здравствуйте, ZevS, Вы писали:
ZS>Да. Но: ZS>1) Практику ничем не заменишь. ZS>2) Через 2 года любая современная технология будет уже устаревшей, так что — без разницы. Хотя MFC имхо не лучший пример для освешения предметами... ZS>3) Поставь себя на место человека, принимающего решения... и получишь тот же результат, в том смысле, что многие твой выбор не поймут / одобрят
Повторяю ещё раз: тут было только про MFC/COM, даже упоминания о том, в свете чего изучается, не было
Так что недостаточно данных.
Практика без каких-либо теоретических основ — вот что меня смущает.
А человек, принимающий решения, должен хотябы понимать, что именно на примере этих MFC/COM хочет показать студентам, ну и в рамках теор. части показать другие возможные варианты хотябы вкратце.
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, ZevS, Вы писали:
ZS>>Да. Но: ZS>>1) Практику ничем не заменишь. ZS>>2) Через 2 года любая современная технология будет уже устаревшей, так что — без разницы. Хотя MFC имхо не лучший пример для освешения предметами...
Для общего развития представление о MFC надо иметь. Это позволит лучше понять эволюцию библиотек, языков программирования. COM ещё актуален, широко используется в винде. Эта технология хорошо показывает, что работать в ней — мазохизм и для чего придумали .NET.
Здравствуйте, Курилка, Вы писали:
К>Практика без каких-либо теоретических основ — вот что меня смущает.
Разве освоение теории и практику нельзя восмещать? Часто, если не всегда, теория лучше понимается через примеры...
Так что, я — за баланс.
К>А человек, принимающий решения, должен хотябы понимать, что именно на примере этих MFC/COM хочет показать студентам, ну и в рамках теор. части показать другие возможные варианты хотябы вкратце.
Здравствуйте, ZevS, Вы писали:
ZS>Разве освоение теории и практику нельзя восмещать? Часто, если не всегда, теория лучше понимается через примеры... ZS>Так что, я — за баланс.
А я против?
К>>А человек, принимающий решения, должен хотябы понимать, что именно на примере этих MFC/COM хочет показать студентам, ну и в рамках теор. части показать другие возможные варианты хотябы вкратце.
ZS>Безусловно, так быть и должно. Угадай как есть?
Смысла гадать не вижу, вопрос к maeth и к его преподавателю.
Здравствуйте, maeth, Вы писали:
M>А на сколько нужны на рынке труда, программисты пишущие на чистом C/C++. Или точнее на С++
На рынке существует большая востребованность в программистах программирующих не на языке С++, а с использованием языка С++, как впрочем и любого другого, у которых мышление не ограниченно теми концепциями, которые непосредственно поддерживаются языком. Программисты пишущие на чистом C/C++ в наше время это скорее утопия, так как практически в любом случае помимо знания и использования языка небоходимы знания используемых технологий и всевозможных сопутствующих API и фреймворков. поэтому понятие "чистый С++" в данном случае как то не совсем корректно.
Задач которые сейчас решаются на С++ море и востребованность языка огромная, и никакие мифы относительно того что пришел какой-то там шарп-убийца или та же ява, и изза этого потребность в высококвалифицированных С++-специалистах уменьшается не имеет и не будет иметь место в действительности. У С++ как и у всех других существующих языков есть как и достоинства так и недостатки и в соответствии с этим своя ниша где он применяется.
Здравствуйте, sharcUs, Вы писали:
U>На рынке существует большая востребованность в программистах программирующих не на языке С++, а с использованием языка С++, как впрочем и любого другого, у которых мышление не ограниченно теми концепциями, которые непосредственно поддерживаются языком. Программисты пишущие на чистом C/C++ в наше время это скорее утопия, так как практически в любом случае помимо знания и использования языка небоходимы знания используемых технологий и всевозможных сопутствующих API и фреймворков. поэтому понятие "чистый С++" в данном случае как то не совсем корректно. U>Задач которые сейчас решаются на С++ море и востребованность языка огромная, и никакие мифы относительно того что пришел какой-то там шарп-убийца или та же ява, и изза этого потребность в высококвалифицированных С++-специалистах уменьшается не имеет и не будет иметь место в действительности. У С++ как и у всех других существующих языков есть как и достоинства так и недостатки и в соответствии с этим своя ниша где он применяется.
Здравствуйте, ZevS, Вы писали:
ZS>Здравствуйте, maeth, Вы писали:
M>>Вывод, алгоритмы, оптимизация, еще раз алгоритмы
ZS>Первое правило оптимизации — не оптимизируй. ZS>Так что, специально заморачиваться ею не стоит. Только когда припрет...
Это да...
И еще:
1. Работает — не трогай!
2. Работает, но очень медленно — оптимизируй!
3. Не переписуй на асме ради оптимизации — быстрее не будет, все проблемы в алгоритме!
Здравствуйте, ZevS, Вы писали:
К>>Это, конечно, ИМХО, но вот образование должно давать базис, т.е. общие основы и принципы, а полгода учить людей конкретной проприетарной + устаревающей технологии очень подозрительный вариант, другое дело, если технология рассматривается в свете какого-нибудь предмета (e.g. основы проектирования и ООП)
ZS>Да. Но: ZS>1) Практику ничем не заменишь. ZS>2) Через 2 года любая современная технология будет уже устаревшей, так что — без разницы. Хотя MFC имхо не лучший пример для освешения предметами...
А у нас на факультете вообще не учили ни одной практической технологии в обязательном порядке (спецкурсы и семинары — это да, пожалуйста). И из ЯП учили, насколько я помню, только Паскалю и Ассемблеру на первом курсе. Тот же С шел уже в контексте курса "Операционные Системы" и предполагался быть изученнм самостоятельно.
В общем я полностью согласен с Курилкой, что какие либо "современные технологии" в курсе обучения стоит применять только как иллюстрация применения теории, но не концентрироваться на самой технологии. Именно потому что она запросто может устареть к окончанию обучения
Здравствуйте, maeth, Вы писали:
M>Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они?
Ерунда какая-то. Если они в обязательной программе — то учить явно стоит. И придется
Или от того, что тут скажут, что учить эти технологии не стоит, то их сразу уберут из программы?
Моя точка зрения всегда была такова, что преподавать конкретные технологии в университете — это излишне. Нужно преподавать максимально широкий теоретический базис, используя который можно потом изучить ту технологию, коорая потребуется. Описание конкретных технологий и языков программирования может быть как иллюстрация и практика для применения теории, но не как самоцель.
Но это мое мнение, а тебе сейчас придется считаться с мнением твоего университета
Реальное применение MFC и СОМ сейчас находят (особенно СОМ), но это не значит, что в своей работе ты обязательно будешь их использовать.
Но знать (опять же особенно СОМ) — будет полезно в любом случае. Хуже явно не станет.
Здравствуйте, maeth, Вы писали:
M>Уважаемые, заранее извиняюсь если это уже обсуждалось. Если смысл учить технологию COM, MFC так как повсеместно переходят на .NET. У нас в университете это в обязательной программе. И реально применяется ли они?
Если будешь писать под винду, то с вероятностью 80% тебе придется столкнуться с COM.
Если MFC будет преподаваться нормально, то ты получишь представление об оконной системе винды, что очень полезно.
Здравствуйте, Константин Л., Вы писали:
КЛ>Если MFC будет преподаваться нормально, то ты получишь представление об оконной системе винды, что очень полезно.
Чем полезно-то? Мало того, что MFC только одна из многих С++ библиотек даже под Винды (при этом одна из худших), так еще и тенденция есть во всем мире использовать кроссплатформенные библиотеки или переходить вообще на Web. Некоторые ГУИ уже на Флеше пишут и очень рады.
Короче, опять у нас скармливают какое-то старье студентам. Если раньше преподавали Паскаль, то теперь MFC — тоже мне нашли идеал дизайна. Лучше бы тогда Qt преподавали, и библиотека хорошая и лицензии на некомерческое использование не надо.
Здравствуйте, Quintanar, Вы писали:
Q>Здравствуйте, Константин Л., Вы писали:
КЛ>>Если MFC будет преподаваться нормально, то ты получишь представление об оконной системе винды, что очень полезно.
Q>Чем полезно-то? Мало того, что MFC только одна из многих С++ библиотек даже под Винды (при этом одна из худших), так еще и тенденция есть во всем мире использовать кроссплатформенные библиотеки или переходить вообще на Web. Некоторые ГУИ уже на Флеше пишут и очень рады. Q>Короче, опять у нас скармливают какое-то старье студентам. Если раньше преподавали Паскаль, то теперь MFC — тоже мне нашли идеал дизайна. Лучше бы тогда Qt преподавали, и библиотека хорошая и лицензии на некомерческое использование не надо.
Ну кто говорит про идеальный дизайн? Просто если препод с умом, он не просто расскажет о внутреннем устройстве MFC, а расскажет о внутреннем устройстве оконной подсистемы.
Кроме того, ты считаешь, что писать на Qt не зная внутреннего устройства Windows/Linux и messaging'a есть круто и это плюс? Ну-ну. Пусть они пишут на флэшэ и пусть очень рады, нам такие не нужны. Любой уважаищий себя разработчик WinForms приложений должен знать WINAPI.
Здравствуйте, Константин Л., Вы писали:
КЛ>Ну кто говорит про идеальный дизайн? Просто если препод с умом, он не просто расскажет о внутреннем устройстве MFC, а расскажет о внутреннем устройстве оконной подсистемы.
Препод с умом расскажет о принципах построения оконных подсистем, и в качестве примеров рассмотрит (и сравнит) реализацию этих принципов в MFC/Qt/WinForms/Swing/whatever.
КЛ>Кроме того, ты считаешь, что писать на Qt не зная внутреннего устройства Windows/Linux и messaging'a есть круто и это плюс? Ну-ну. Пусть они пишут на флэшэ и пусть очень рады, нам такие не нужны. Любой уважаищий себя разработчик WinForms приложений должен знать WINAPI.
А я так не считаю. WinForms — это часть .NET API, и его реализация есть также и под Linux в Mono. Это вполне определенный абстрактный API, который не требует знания WinAPI.
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Здравствуйте, Константин Л., Вы писали:
КЛ>>Ну кто говорит про идеальный дизайн? Просто если препод с умом, он не просто расскажет о внутреннем устройстве MFC, а расскажет о внутреннем устройстве оконной подсистемы.
АХ>Препод с умом расскажет о принципах построения оконных подсистем, и в качестве примеров рассмотрит (и сравнит) реализацию этих принципов в MFC/Qt/WinForms/Swing/whatever.
Я надеюсь!
КЛ>>Кроме того, ты считаешь, что писать на Qt не зная внутреннего устройства Windows/Linux и messaging'a есть круто и это плюс? Ну-ну. Пусть они пишут на флэшэ и пусть очень рады, нам такие не нужны. Любой уважаищий себя разработчик WinForms приложений должен знать WINAPI.
АХ>А я так не считаю. WinForms — это часть .NET API, и его реализация есть также и под Linux в Mono. Это вполне определенный абстрактный API, который не требует знания WinAPI.
Ты писал WinForms приложения? Если да, то тогда должен знать, что если хочется сделать шаг влево — пиши свой WindowProc. Абстракция там условная.
КЛ>Ты писал WinForms приложения? Если да, то тогда должен знать, что если хочется сделать шаг влево — пиши свой WindowProc. Абстракция там условная.
+
Только imho лучше уже если приходится напрямую вызывать нативные ф-ции, сделать обертку COM-овую или C++/Cli, и уже оттуда звать что хочешь.
Imho MFC давно уже мертва, используется только в старых (или начатых до ~2002г) проектах. Как обертка для COM-а она сливает по полной программе перед ATL.
Учить MFC в инст-те щас- все равно что 5 лет назад учить Turbo Pascal-ю.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Здравствуйте, Константин Л., Вы писали:
КЛ>>Ты писал WinForms приложения? Если да, то тогда должен знать, что если хочется сделать шаг влево — пиши свой WindowProc. Абстракция там условная. AG>+
AG>Только imho лучше уже если приходится напрямую вызывать нативные ф-ции, сделать обертку COM-овую или C++/Cli, и уже оттуда звать что хочешь.
+1
AG>Imho MFC давно уже мертва, используется только в старых (или начатых до ~2002г) проектах. Как обертка для COM-а она сливает по полной программе перед ATL.
А на чем же щас десктопный гуй пишут? На WinForms? Очень мало. Сам пишу на WTL, но это не значит, что MFC мертва. Далеко нет. И будет жить, пока есть всякие CodeJoke (оно?) и т.п. WinForms банально тормозит (с). Как перестанет и у 90% будет стоять .net fw — попрут аппликухи.
Про COM в MFC мог и не говорить
AG>Учить MFC в инст-те щас- все равно что 5 лет назад учить Turbo Pascal-ю.
Так пять лет назад и учили ему. И еще хрен знает скока времени будут.
А учить надо не MFC, а windows "windows subsystem"