Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 11.12.04 03:13
Оценка: 158 (22) +3 :)))
Эпиграф: не флейма ради.

Precondition: я не являюсь противником .NET и (или) WTL; я не воспринимаю boost и Loki как "игрушку для эстетов"; я не считаю Delphi'ян людьми второго сорта; мой родной язык C++; мое место под солнцем ("в виде отдельного гаража") — технологии Microsoft. И самое главное — все сказанное ниже, это одно такое махровое имхоистое ИМХО.

Лирика:
"Любая песня изначально благая —
Просто ты к этому еще не привык..."
(с) БГ

Содержательная часть: итак — почему же?

"Могу назвать миллион причин — и все лживые..." (с) "На игле". А правда в том, что я подлец... тьфу, черт! как въелось-то!.. Так все-таки — почему?

Вклинившаяся важная аксиома: это не "наезд" на .NET, благодаря которому крутится наш сайт и под которым работает программа, заботливо предоставляющая доступ к моему посту всем желающим.

Реалии моей работы (система интернет-трейдинга) таковы, что часть "заказчиков" (клиентов) до сих пор сидит под Windows 98 на компах с 64-я метрами мозгов... ставить им .NET Framework нереально, а прогонять — убыточно для бизнеса организации, на которую я работаю.

Циничное наблюдение: уровень твоего дохода прямо пропорционален количеству средств, которое клиент готов вложить в соответствующее ПО и "железо".

Главное требование, которое предъявляется к тому софту, что я сейчас пишу — максимальная скорость работы любой ценой, на самом паршивом железе... максимальная стабильность — под любой ОСью, какой бы неустойчивой она ни была. Не думаю, что я единственный, перед кем ставят подобные задачи. Таким образом, .NET отпадает (клиентского железа на него не хватит).

Циничное наблюдение №2: люди, у которых ы руках "миллионы", не дадут и копейки "на скорость", "на стабильность", "на качество" — им нужен максимум прибыли при минимуме затрат.

Забавно, но факт — интернет-трейдинг сродни современным игрушкам: доли секунд решают все. Чья-то заявка (на покупку/продажу ЦБ) прошла раньше — и ты (может быть) разорен. Быстрый ГУЙ — одно из неотъемлемых требований к системе. И на .NET-е я его не добьюсь (пока). Нет, не правильно... не Я — а клиент, заказчик. Уровень его доходов гораздо выше моего — но он (в отличие от меня) не будет ставить в свой комп еще 512 метров DDR (SDRAM... какие там еще современные аббревиатуры есть) и хороший графический акселератор. Ему нужно "быстро и сейчас", на его железе. Таким образом, .NET приходится отбросить.

И тут наш взгляд падает на WTL. Она красива! "WTL rocks. It does." (с) Michael Dunn. Она логична и близка к API, от которого пока все равно никуда не уйти (исходники Януса — лучшее тому подтверждение). Одна беда — в ней нет классов, реализующих работу с БД.

Снобское отступление: про директиву #import я знаю.

"Машина на имя жены... дача на мое имя... ничего у тебя нет! ты голодранец!.." (с) "Берегись автомобиля"

Итак, что же я имею?.. 10 лет программируя под винду... Я могу писать на "голом" API, благо "со времен Аристотеля человеческий мозг почти не изменился"... могу использовать нативные интерфейсы доступа к БД (оракловый OCI рулит форева, потому как быстр до безумия)... если я их не знаю — могу подняться на один(!) уровень выше, и использовать ODBC, для которой в MFC реализована довольно мощная поддержка.

А что имеют с меня мои "клиенты"? Быстрый ГУЙ, быструю связь с БД, в которую сыплется информация об их сделках. Придет время — и .NET будет везде. Но пока этого не случилось — я не собираюсь приближать "светлое будущее". "У меня есть все" — и потери клиента от неисполневшейся сделки существенно важнее потерь в "прогрессивности".
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Motorhead — Orgasmatron ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Почему я до сих пор пишу на MFC (заметки "старовера")
От: c-smile Канада http://terrainformatica.com
Дата: 11.12.04 07:31
Оценка: +2 :))) :)
Здравствуйте, SchweinDeBurg, Вы писали:


Мои три копейки:

На самом деле MFC лучшая из классовых библиотек что я видел.

Лучшая имеется ввиду быстрая, внешне аккуратная и внутри human readable. Надежная библотека для промышленных апликаций короче.

Имхо наиболее естественная я бы сказал это VCL от Borland
но как всегда у них "ну и шо? а зато душа красивая..."

WTL... Это для небольших апликаций. Исходники достаточно больших вещей которые я видел можно использовать в качестве рвотного средства. Не потому что авторы неграмотные а просто архитектура такая. Эти руками прописываемые REFLECT_NOTIFICATIONS просто катастрофа. Я у себя в ATL/WTL REFLECT_NOTIFICATIONS() макро переименовал в OOP_DEATH() и теперь точно не забываю где у меня грабли будут.

.NET WinForms... считаю что выбранная схема использования оберток вокруг HWND — дрова.
Тут или все в managed нужно переводить или ничего. Я так думаю. Почему было принято HWND решение — не знаю.
"Тайна сия мраком покрытая есмь". Вообще судя по тому что в качестве Graphics используется GDI+ авторы не предполагали серьезных GUI задач.


В принципе из известных мне примерно 20 всяких window toolkit след в памяти оставили всего ничего...
Даже вот так и не скажу сразу. Мой J-SMILE наверное the best Действительна классная штука — проста как двери, эффективна и классово правильная. ООП так и брыжжит. Так.. себя я уже похвалил... что осталось написать?

Кого-нить другого теперь надо...

Ах да! Брату Schwein'у спаисибо большое за пост. Правильный он. Только .NET и MFC противопоставление (или.или) имхо не совсем корректно.

Ну и конечно же Владу наше глубокое и искреннее почтение.
Re[2]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 11.12.04 10:06
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Мои три копейки:


Да тут целый рупь!

CS>На самом деле MFC лучшая из классовых библиотек что я видел.


При всей моей любви к MFC — я бы не употреблял "термин" "лучшая". Наиболее юзабельная, ИМХО так будет правильнее. Давно еще читал статью (хоть убей Бог не помню чью и где), в которой ставился вопрос: что для библиотеки важнее — красота архитектуры или юзабилити? Автор, основываясь на мнении энного количества программистов, утверждал, что второе. И в этом я с ним полностью согласен. Хотя здесь есть одно очень существенное "но" — восприятие красоты и ощущение юзабилити есть очень субъективные категории.

CS>Лучшая имеется ввиду быстрая, внешне аккуратная и внутри human readable. Надежная библотека для промышленных апликаций короче.


Быстрая — согласен. А вот насчет "внешней аккуратности" и "читабельности" на самом деле можно поспорить. Но Юнусов Булат в одном из своих постов очень правильно (ИМХО) сказал:

Были бы тогда копиляторы нормальные из нативного фрейммворка такого класса можно было бы конфетку сделать. Благо идеи туда заложены хорошие.
Если непредвзято посмотреть — то в мфц уже в 92 году использовалось изрядное количество паттернов проектирования — одна серилизация чего стоит, тут тебе и фабрика и регистрация и двойная диспатчеризация и это повторяю в 92 году (книга Гаммы с сотоварищами, кстати, вышла много позже).
Кстати мфцшная серилизация при всей своей некрасивости работает без радикальных изменений уже больше 10 лет. а бустовскую мы уже три года ждем
Вдогонку MFC-шний документ-вид практически пинками заставляет разделять данные и собственно гуй, не ахти какой паттерн, но много лучше чем тысячистроковые обработчики кликов в борландовских радостях.


(это было в ветке Литература для начинающих
Автор: bruth
Дата: 07.04.04
от 8 апреля этого года)

CS>Имхо наиболее естественная я бы сказал это VCL от Borland

CS>но как всегда у них "ну и шо? а зато душа красивая..."

Согласен.

CS>WTL... Это для небольших апликаций. Исходники достаточно больших вещей которые я видел можно использовать в качестве рвотного средства. Не потому что авторы неграмотные а просто архитектура такая. Эти руками прописываемые REFLECT_NOTIFICATIONS просто катастрофа. Я у себя в ATL/WTL REFLECT_NOTIFICATIONS() макро переименовал в OOP_DEATH() и теперь точно не забываю где у меня грабли будут.


А Вы не могли бы более подробно и с примерами кода пояснить? Я в некотором недоумении... у них рефлекция сделана хуже, чем в MFC?

CS>.NET WinForms... считаю что выбранная схема использования оберток вокруг HWND — дрова.

CS>Тут или все в managed нужно переводить или ничего. Я так думаю. Почему было принято HWND решение — не знаю.

Гх-м-м... а как же без HWND-то? "Деньги, товарищи, еще никто не отменял!.." (с) "Берегись автомобиля". В смысле — Винда как ни крути, только дескриптор нам отдает, да и сама его пользует.

CS>"Тайна сия мраком покрытая есмь". Вообще судя по тому что в качестве Graphics используется GDI+ авторы не предполагали серьезных GUI задач.


Ну, GDI+ — это неплохая штука. "Я попробовала — и мне понравилось..." (Чур не надо только про "девочек"
Автор: Amon-RA
Дата: 09.12.04
, это цитата из рекламы!) Хотя пока что работает немного медленнее, чем "простой" GDI. Но AFAIR в ближайшем будущем в нее обещались встроить использование всей мощности современных графических акселераторов.

CS>Так.. себя я уже похвалил... что осталось написать?


Сам себя не похвалишь...

CS>Ах да! Брату Schwein'у спаисибо большое за пост. Правильный он.


Брат Schwein или пост?

CS>Только .NET и MFC противопоставление (или.или) имхо не совсем корректно.


Так я и не противопоставлял! Я объяснял свой выбор и не более того. Хотя обяъснять причины любви — затея неблагодарная.

CS>Ну и конечно же Владу наше глубокое и искреннее почтение.


А куда же без этого. Он конечно резковат бывает, но... "у каждого свои недостатки..." (с) "В джазе только девушки"
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Electric Light Orchestra — The Lights Go Down ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[2]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.12.04 10:12
Оценка: +2
Здравствуйте, c-smile, Вы писали:

CS>.NET WinForms... считаю что выбранная схема использования оберток вокруг HWND — дрова.


Ну собственно все то же что и в VCL, MFC

CS>Тут или все в managed нужно переводить или ничего. Я так думаю.

CS> Почему было принято HWND решение — не знаю.

Скорее всего просто не хватало ресурсов на разработку нового GUI с нуля. Вон Авалон даже к 2.0 не выйдет.
... << RSDN@Home 1.1.4 beta 3 rev. 255>>
AVK Blog
Резковатый пост-скриптум (надеюсь, что лишний)
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 11.12.04 10:26
Оценка:
Данная ветка затеята исключительно с целью спокойно и конструктивно обсудить с коллегами причины выбора той или иной технологии, так что любителей "пихаться копчиками" и воевать я бы очень просил сюда не поститься.

"Есть, чем платить, но я не хочу
Победы любой ценой.
Я никому
Не хочу ставить ногу на грудь..."
(с) Цоюшка

"Патриотизм — религия бешеных..." (с) Вальтер Скотт

[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Кино — Группа крови ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[3]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 11.12.04 10:31
Оценка:
Здравствуйте, AndrewVK, Вы писали:

CS>>.NET WinForms... считаю что выбранная схема использования оберток вокруг HWND — дрова.


AVK>Ну собственно все то же что и в VCL, MFC


Вот-вот... я поэтому и попросил у c-smile уточнений:

Гх-м-м... а как же без HWND-то? "Деньги, товарищи, еще никто не отменял!.." (с) "Берегись автомобиля". В смысле — Винда как ни крути, только дескриптор нам отдает, да и сама его пользует.


AVK>Скорее всего просто не хватало ресурсов на разработку нового GUI с нуля. Вон Авалон даже к 2.0 не выйдет.


Согласен. Создать совершенно новую базу, по скорости и функциональности не уступающую GDI, да еще и поддерживающую обратную совместимость — задача очень нетривиальная ИМХО.
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Кино — Война ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[4]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 11.12.04 10:36
Оценка:
М-дя... таглайн офигенно соответствует Резковатый пост-скриптум (надеюсь, что лишний)
Автор: SchweinDeBurg
Дата: 11.12.04
... Нарочно не придумаешь...
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Кино — Спокойная ночь ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Почему я до сих пор пишу на MFC (заметки "старовера")
От: GlebZ Россия  
Дата: 11.12.04 13:57
Оценка: +1
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Циничное наблюдение №2: люди, у которых ы руках "миллионы", не дадут и копейки "на скорость", "на стабильность", "на качество" — им нужен максимум прибыли при минимуме затрат.


Со всем согласен, кроме данного заявления.
Я не спец в маркетинге, но когда-то очень давно, мне попалась книжка "Основы маркетинга" Котлера. Там был замечательный пример того, что хорошо продается не только продукт который меньше стоит за те же деньги, но и дорогие продукты с теми же возможностями. Надо его всего лишь представить как VIP продукт. Когда работал на себя, этот приемчик очень хорошо прокатывал. Безусловно, нельзя обманывать клиента. Нужно говорить правду и только правду, какой бы она не была, и не скрывая ничего, иначе это обходится очень дорого. Но объяснить ему что такое процесс производства программного продукта и чем обходится скорость, стабильность и качество нужно. Если правильно объяснить, что ты делаешь VIP продукт, что он должен быть в чем-то лучше чем конкуренты могут себе позволить, то что он сможет им гордится и даже использовать в рекламных целях (может быть и такое). Так что, про минимум затрат я не очень согласен. Такие люди очень легко дают деньги для снижения рисков. Есть немного сфер где программные продукты дают увеличение прибылей. Значительно больше сфер, где они снижают риски бизнеса. Вот под это, и стоит брать деньги. А то что деньги у таких людей лишними не бывают, это правда.

С уважением, Gleb.
Re[2]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 11.12.04 14:13
Оценка:
Здравствуйте, GlebZ, Вы писали:

SDB>>Циничное наблюдение №2: люди, у которых ы руках "миллионы", не дадут и копейки "на скорость", "на стабильность", "на качество" — им нужен максимум прибыли при минимуме затрат.


GZ>Со всем согласен, кроме данного заявления.


Бывает...

GZ>Я не спец в маркетинге, но когда-то очень давно, мне попалась книжка "Основы маркетинга" Котлера.


А я "по ней" аж экзамен сдавал (по специальности — инженер-экономист).

GZ>...

<прочитано и перечитано внимательно, но скипнуто, чтобы не оверквотить>

Вы знаете, Глеб — в теории все выглядит очень гладко и приятно... но потом наступает время практики — и случаи оказываются совсем разными. Кто-то рассуждает "по книжке" (это я в позитивном смысле), а кто-то — строго наоборот. Далеко не все "коммерсанты" в нашей стране придерживаются западных моделей и западного опыта. Я работаю с ними уже третий год и не устаю веселиться (иногда — сквозь слезы). Так что написанное мной было лишь отражением собственного опыта... и я не уверен, считать ли его горьким или успешным. Но —

"И я счастлив тем, как сложилось все,
Даже тем, что было не так..."
(с) БГ
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Artist — Track 3 ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[3]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: GlebZ Россия  
Дата: 11.12.04 15:07
Оценка: 2 (2) +1 :)
Здравствуйте, SchweinDeBurg, Вы писали:

GZ>>Я не спец в маркетинге, но когда-то очень давно, мне попалась книжка "Основы маркетинга" Котлера.


SDB>А я "по ней" аж экзамен сдавал (по специальности — инженер-экономист).

Везука, у меня не было такого. Да и жалею что положил на некоторые предметы, которые тогда изучал, но считал не нужными.


SDB>Вы знаете, Глеб — в теории все выглядит очень гладко и приятно... но потом наступает время практики — и случаи оказываются совсем разными. Кто-то рассуждает "по книжке" (это я в позитивном смысле), а кто-то — строго наоборот. Далеко не все "коммерсанты" в нашей стране придерживаются западных моделей и западного опыта.

Судя по отзывам моих товарищей, не все коммерсанты на западе придерживаются западных моделей и западного опыта. А это, я описал не по книжке, а по собственному опыту. В конце 90-х фрилансил.
SDB>Я работаю с ними уже третий год и не устаю веселиться (иногда — сквозь слезы).
Значит не будет тебе откровением, что это происходит не только с тобой. Судя по всему, это происходит везде, где существует связь продавец-клиент. Наверное, потому что у всех разные цели, или существует непонимание между акторами.
SDB>Так что написанное мной было лишь отражением собственного опыта... и я не уверен, считать ли его горьким или успешным. Но -
Лично мое мнение, что опыт всегда успешен.
А выход у меня из подобной ситуации, всегда был простой. Выбераю ключевую фигуру в проекте (в крупной организации ключевой может быть группа поскольку от нее зависит санкция на оплату). Делаю так, чтобы он считал что является главой проекта, а я являюсь техническим исполнителем (руководителем). И именно он его создает. Любой вопрос относительно аналитики, решаю только по согласованию с ним. Создаваю документы которые он может визировать или корректировать. Ессно, коррективы фильтрую, пользуясь отписками, что это например нереализуемо или другими обоснованными причинами. Всегда помню, что я деньги зарабатываю, а не пишу гениальные программы.(для гениальных программ есть личное время). Если я не могу обосновать причину, значит ошибаюсь именно я. На себя, таким людям денег не жалко. Ну и программист не умрет голодным. Однажды, удалось даже выбить деньги на рефакторинг.

Прошу это считать моим субъективным мнением. Я не в коем случае, не хотел кого-то поучить, ни сам, ни с помощью господина Котлера. Учитель из меня, прямо таки скажем, хреновый.

С уважением, Gleb.
Re: Почему я до сих пор пишу на MFC (заметки "старовера")
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.12.04 21:30
Оценка: +1 :))) :))) :)))
Здравствуйте, SchweinDeBurg, Вы писали:

Сабж вроде намекал, что речь пойдет про МФЦ, а на поверку получились очередные оправдания почему не .Net.

Симптоматично, однако.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: c-smile Канада http://terrainformatica.com
Дата: 11.12.04 22:32
Оценка: 7 (1) +1
Здравствуйте, SchweinDeBurg, Вы писали:


CS>>WTL... Это для небольших апликаций. Исходники достаточно больших вещей которые я видел можно использовать в качестве рвотного средства. Не потому что авторы неграмотные а просто архитектура такая. Эти руками прописываемые REFLECT_NOTIFICATIONS просто катастрофа. Я у себя в ATL/WTL REFLECT_NOTIFICATIONS() макро переименовал в OOP_DEATH() и теперь точно не забываю где у меня грабли будут.


SDB>А Вы не могли бы более подробно и с примерами кода пояснить? Я в некотором недоумении... у них рефлекция сделана хуже, чем в MFC?


Типовая цитата "Для того чтобы мой компонент работал вставьте в свой контейнер REFLECT_NOTIFICATION".
Не способствует модульному программированию, правда?

WTL это библитека для шароварщика. Одного. Без ансамбля. Эдакого волчары-одиночки.

CS>>.NET WinForms... считаю что выбранная схема использования оберток вокруг HWND — дрова.

CS>>Тут или все в managed нужно переводить или ничего. Я так думаю. Почему было принято HWND решение — не знаю.

SDB>Гх-м-м... а как же без HWND-то? "Деньги, товарищи, еще никто не отменял!.." (с) "Берегись автомобиля". В смысле — Винда как ни крути, только дескриптор нам отдает, да и сама его пользует.


Примеров — валом. Тот же замечательный MSForms компонент. Прэлэсть как работает.
Открываем в IE любую страницу с input elements и смотрим Spy++. Нет там HWND.
То же в Mozilla и Opera.

J-SMILE опять же. Запускаем аппликацию и опять смотрим Spy++.

Как только чуть чуть сложнее ирерхия окон — все — абздольц — HWND только мешают.
Например tab controls — ну это ж просто изврат какой-то постоянно.

А ComboBox? уже 10 лет обсчествнность пляски с бубном вокруг него пляшет. Как его сделать borderless? Как ему установить высоту? Как ему поставить высоту dropdown? Только в XP API появился, наконец-то! В MSForms же он сделан нормально...

Почему было не спортирвать MSForms в WinForms? Имхо, на порядок бы полезность gui.NET выросла.
Re: Почему я до сих пор пишу на MFC (заметки "старовера")
От: _FRED_ Черногория
Дата: 12.12.04 00:01
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Главное требование, которое предъявляется к тому софту, что я сейчас пишу — максимальная скорость работы любой ценой, на самом паршивом железе... максимальная стабильность — под любой ОСью, какой бы неустойчивой она ни была. Не думаю, что я единственный, перед кем ставят подобные задачи. Таким образом, .NET отпадает (клиентского железа на него не хватит).


Что-то я не разобрался, при чём тут МФЦ
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: _FRED_ Черногория
Дата: 12.12.04 00:40
Оценка: +1
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, c-smile, Вы писали:

CS>>На самом деле MFC лучшая из классовых библиотек что я видел.
Из моего скромного опыта — "шаг вправо-шаг влево — расстрел", то есть очень жёстко заточена на то, что при её использовании должно получаться и как это должно работать. Можно и к плюсам отнести, но до тех пор, пока не потребуется чего-то "этакого".

SDB>Наиболее юзабельная, ИМХО так будет правильнее.

Да, покопавшись в исходниках и МСДНе можно многое подправить и добиться в конце-концов желаемого. Но, подчас, залезать приходится в такие дебри...
Самый, наверное, простой пример — в SDI получить возможность работать с документами нескольких типов (Хм... в семёрке подправлено, ну ладно, а сколько примеров того, как на диалог панель инструментов втащить?). И таких мелочей много, но беда не в их количестве (даже в .НЕТе подобных ... паттернов практически или даже совсем нету) а в том, что для исправления ситуации необходимо лезть глубоко в потроха самой библиотеки, смотреть что и как она делает для того чтоб своими действиями не навредить ей.

CS>>Лучшая имеется ввиду быстрая, внешне аккуратная и внутри human readable. Надежная библотека для промышленных апликаций короче.


SDB>Быстрая — согласен. А вот насчет "внешней аккуратности" и "читабельности" на самом деле можно поспорить. Но Юнусов Булат в одном из своих постов очень правильно (ИМХО) сказал:

SDB>

SDB>Были бы тогда копиляторы нормальные из нативного фрейммворка такого класса можно было бы конфетку сделать. Благо идеи туда заложены хорошие.
SDB>Если непредвзято посмотреть — то в мфц уже в 92 году использовалось изрядное количество паттернов проектирования — одна серилизация чего стоит, тут тебе и фабрика и регистрация и двойная диспатчеризация и это повторяю в 92 году (книга Гаммы с сотоварищами, кстати, вышла много позже).
SDB>Кстати мфцшная серилизация при всей своей некрасивости работает без радикальных изменений уже больше 10 лет. а бустовскую мы уже три года ждем
SDB>Вдогонку MFC-шний документ-вид практически пинками заставляет разделять данные и собственно гуй, не ахти какой паттерн, но много лучше чем тысячистроковые обработчики кликов в борландовских радостях.

SDB>(это было в ветке Литература для начинающих
Автор: bruth
Дата: 07.04.04
от 8 апреля этого года)


Тут не поспоришь. Разве что засомневаешься в актуальности сегодня тогдашних подходов и реализаций.

CS>>Имхо наиболее естественная я бы сказал это VCL от Borland

CS>>но как всегда у них "ну и шо? а зато душа красивая..."
SDB>Согласен.
Это не то, что с пионерскими галочками и крестиками у кнопок ОК и Отмена?

CS>>.NET WinForms... считаю что выбранная схема использования оберток вокруг HWND — дрова.

CS>>Тут или все в managed нужно переводить или ничего. Я так думаю. Почему было принято HWND решение — не знаю.
SDB>Гх-м-м... а как же без HWND-то? "Деньги, товарищи, еще никто не отменял!.." (с) "Берегись автомобиля". В смысле — Винда как ни крути, только дескриптор нам отдает, да и сама его пользует.


CS>>Только .NET и MFC противопоставление (или.или) имхо не совсем корректно.

SDB>Так я и не противопоставлял! Я объяснял свой выбор и не более того. Хотя обяъснять причины любви — затея неблагодарная.
Боюсь показаться грубым, но есть ли уверенность, что МФЦ и дальше будет развиваться, стремиться быть ближе к своим поклонникам, а не застынет в ближайшем будущем? Тогда уж либо другой предмет поклонения искать (а годы идут...) или переходить в отношения платонические...
Help will always be given at Hogwarts to those who ask for it.
Re: Почему я до сих пор пишу на MFC (заметки "старовера")
От: alexeiz  
Дата: 12.12.04 01:13
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>И тут наш взгляд падает на WTL. Она красива! "WTL rocks. It does." (с) Michael Dunn. Она логична и близка к API, от которого пока все равно никуда не уйти (исходники Януса — лучшее тому подтверждение). Одна беда — в ней нет классов, реализующих работу с БД.


ATL OLEDB consumer templates в зубы и вперед. Для непосвященных может выглядеть жутковато, но для сторонников WTL это тот же самый привычный подход.
Re: Почему я до сих пор пишу на MFC (заметки "старовера")
От: Ligen Украина http://zone-of-ambiguity.blogspot.com/
Дата: 12.12.04 20:36
Оценка: :))
Приветствую, SchweinDeBurg,

Не единожды приходили в голову подобные мысли )) Есть такая басня, что в момент выпуска Вин95, в очередях стояли даже люди, не имеющие компов... Сила рекламы! Так вот, при выпуске .Нет знакомые челы переписывали оттестеные, рабочие проекты.. скажем, для среднего бизнеса под .Нет аж досих пор стараюцца
Viva el Junta Militar! Viva el Presidente!
Re[2]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: Nick Notabene Россия  
Дата: 12.12.04 23:29
Оценка: 26 (3) +3 -1
Здравствуйте, VladD2, Вы писали:

VD>Сабж вроде намекал, что речь пойдет про МФЦ, а на поверку получились очередные оправдания почему не .Net.

VD>Симптоматично, однако.

Ну и не мудрено, однако при такой-то рекламе. Как тут у кого-то ориджин был — "Вы еще не программируете на .Net ??? Мне вас жаль. " Противопоставление-то навязанное. При выборе платформы разработки вопрос ".Net или не .Net" возникает сам собой. И если не .Net, то сразу вопрос — почему ? это же модно ! а все говорят ! а не верите — сходите на RSDN !

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

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

Я допустим тоже использую MFC (mfc42.dll ) для одного из проектов, и менять его на что-либо не собираюсь. Проект кстати не в стадии сопровождения — активная разработка второй версии. Нету смысла. Реклама меня не впечатляет. Про ресурсоемкость и производительность native-приложений vs. .Net и Java даже говорить не буду ( А кто, кстати, у нас сегодня самый шустрый ??? ) Скорость разработки — не делайте мне смешно ! — гораздо больше зависит от проработки архитектуры системы, готовых компонент/библиотек и дисциплины мышления. Заказчик менять парк машин не собирается, также как и лицензионный Win98SE. Так об чем говорить ?

Хотя колымить на .Net — милое дело. Впрочем, как и на Java. Быстро и недорого. Не очень качественно, но и так сойдет

В общем, MFC используется и будет использоваться. Хотя постепенно сойдет на .Net, как и все проходящее Не самая худшая из библиотек.

WBR NB
Интуитивно понятный интерфейс — это интерфейс, для работы с которым нужна недюжинная интуиция...
Re[2]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 13.12.04 06:02
Оценка: :)
Здравствуйте, _FRED_, Вы писали:

SDB>>под любой ОСью


_FR>Что-то я не разобрался, при чём тут МФЦ


Это имелось ввиду, что и под 9х тоже, а не только под семейством NT. Закоренелое виндовозничество неумолимо сказалось на точности формулировки.
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Metallica — 2 x 4 ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[2]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 13.12.04 06:02
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Сабж вроде намекал, что речь пойдет про МФЦ, а на поверку получились очередные оправдания почему не .Net.


Нет, Влад — я просто панически опасался незаслуженных плюх от "ваших" , поэтому и уточнял постоянно, что на .NET не нападаю. Кстати, если уж ковырять... то серьзных, развитых "технологий" (наверно, правильнее сказать — фреймворков) под винду и вправду два — MFC да .NET, потому как (ИМХО) WTL все-таки в большей степени "наколеночный" продукт.

VD>Симптоматично, однако.


Ничего-ничего, мы еще пару лет "понеможем" "поступаться принципами"...
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Metallica — The House Jack Built ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[4]: Почему я до сих пор пишу на MFC (заметки "старовера")
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 13.12.04 06:10
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>А выход у меня из подобной ситуации, всегда был простой. Выбераю ключевую фигуру в проекте (в крупной организации ключевой может быть группа поскольку от нее зависит санкция на оплату). Делаю так, чтобы он считал что является главой проекта, а я являюсь техническим исполнителем (руководителем). И именно он его создает. Любой вопрос относительно аналитики, решаю только по согласованию с ним. Создаваю документы которые он может визировать или корректировать. Ессно, коррективы фильтрую, пользуясь отписками, что это например нереализуемо или другими обоснованными причинами. Всегда помню, что я деньги зарабатываю, а не пишу гениальные программы.(для гениальных программ есть личное время).


Выделенное — просто супер, я запомню! А в целом — согласен полностью, сам тоже стараюсь строить "отношения" аналогичным образом.

GZ>С уважением, Gleb.


С неменьшим, Илья.
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Metallica — King Nothing ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.