Здравствуйте, FR, Вы писали:
FR>Не факт, вот прямо сейчас пишу на wxWidgets под win/linux и в основном внутри GTK и иногда для тестирования FR>WinAPI в другие дни наоборот.
Я разумеется имею в виду целевое программирование под винду. Кроссплатформенная разработка -- совсем другой коленкор, вы лишаетесь части возможностей приобретая часть выгод и реальный кроссплатформ требует отдельного обсуждения.
Здравствуйте, Tilir, Вы писали:
T>Выигрыш на helloworld это то, с чего как раз и начинается большинство евангелистских книг по новым прекрасным библиотекам (вот кстати Qt как-то прошла мимо меня, что удивительно). Да, helloworld на WinAPI сложен. Но часто ли вы пишете helloworld? Если да -- возьмите готовый шаблон
Хорошо, усложним пример. Добавим меню с пунктом Help->About, при вызове которого будет показам месседж бокс и при наведении на который будет показана подсказка в статус баре:
Теперь, чисто академический интерес, как это будет на WinAPI?
P.S. Хорошая у тебя была компания, если позволяла тебе за свои деньги заниматься ерундой. По моему опыту написание гуя на WinAPI делает разработку очень долгой, бажной и в результате получается убогий интерфейс (поди все окошки у тебя с фиксированными размерами?), не говоря уже про привязку строго к винде.
Здравствуйте, Tilir, Вы писали:
T>Я разумеется имею в виду целевое программирование под винду. Кроссплатформенная разработка -- совсем другой коленкор, вы лишаетесь части возможностей приобретая часть выгод и реальный кроссплатформ требует отдельного обсуждения.
Если брать целевое программирование под винду и прикладной код на C++ то писать на чистом WinAPI
также бессмыслено, так как все возможности никогда практически не требуются, а скорость разработки
существенно падает.
Здравствуйте, Tilir, Вы писали:
T>А что кроме WinAPI?
T>Шли годы. Я устроился на свою вторую работу (на первой я писал ПО для высокоточного оружия под микроконтроллеры и о Windows только книжки читал, а вот вторая была более высокоуровневой) и там пришлось осваивать прекрасную новаторскую объектно-ориентированную библиотеку VCL для Borland C++ Builder. Я плевался и вставлял где мог код на чистом WinAPI. Работало от этого неколько лучше.
T>Шли годы. VCL уходило в прошлое и я освоил прекрасную новаторскую объектно-ориентированную библиотеку MFC. Заодно кстати неплохо выучил COM к которому прилагалась не менее прекрасная но уже с примесбю метапрограммирования билиотека ATL. К ней же паровозиком пошла WTL.
T>Кто не знает какая дрянь эта WTL тем сильно повезло в жизни.
T>Да, писал я разумеется всё на том же WinAPI, если вы понимаете о чём я
T>А ваши выскоуровневые фигни оставьте крысам и тараканам. OWL они уже доели, я надеюсь.
Еще в школе, я освоил quick sort сортировку. Шли годы. Появлялись разные библиотеки: STL, Boost, .Net, но я предпочитал писать свои велосипеды.
Зачем изучать, что-то новое, когда алгоритм quick sort — он и в африке quick sort
В действительности программист должен понимать как работает Windows на уровне API, о том, что есть окна, очередь обработки оконных сообщений, связанных с окном и т.д., но писать на WIN API, это все равно, что писать свои велосипеды для сортировок, списков, массивов и т.д. Т.е. программист должен понимать и уметь самому написать алгоритм сортировки, реализовать список и т.д., но делать это в промышленном коде — это нонсенс!!! Программист должен развиваться, если лень развиваться, значит должен идти в поддержку старых проектов.
Приведу пример из медицины: у одной знакомой были сложные переломы, местные эскулапы решили для ее использования применить аппарат Елизарова (привет началу 20 века) в течении 1.5 лет,
немецкие коллеги провели операцию по внедрению специальной пластиковой пластины — итог все срослось за 1.5 месяца.
Так что кто-то предпочитает быть "коновалом", а кто-то предпочитает использовать новые достижения в свое области для повышения эффективности и производительности
P.S. Но вы продолжайте в том же духе — именно за счет Вас, может чуть менее опытная, но умеющая пользоваться последними достижениями в своей области молодежь будет получать повышение
Здравствуйте, MTD, Вы писали:
MTD>Здравствуйте, Tilir, Вы писали:
T>>Выигрыш на helloworld это то, с чего как раз и начинается большинство евангелистских книг по новым прекрасным библиотекам (вот кстати Qt как-то прошла мимо меня, что удивительно). Да, helloworld на WinAPI сложен. Но часто ли вы пишете helloworld? Если да -- возьмите готовый шаблон
MTD>Хорошо, усложним пример. Добавим меню с пунктом Help->About, при вызове которого будет показам месседж бокс и при наведении на который будет показана подсказка в статус баре:
О! Сам Б-г послал тебя мне в лапы
Раз уж заговорили о QT... Я некоторое время тому назад задавал вопрос
Здравствуйте, white_znake, Вы писали:
_>P.S. Но вы продолжайте в том же духе — именно за счет Вас, может чуть менее опытная, но умеющая пользоваться последними достижениями в своей области молодежь будет получать повышение
Да, так и есть.
Только молодежь (теперь уже бывшая), после изучения нескольких поколений библиотек сильно расстроится от того, что с выходом каждой новой библиотеки, она оказывается наравне со вчерашними студентами — и тем, и другим требуется быстро ее изучить. Только вот лениво это изучать очередную новую библиотеку, на смену которой снова придет другая. Тут и приходится искать свои конкурентные преимущества в чем-то другом, более стабильном.
А тем временем, копятся тонны кода, написанные на уже немодных фреймворках, которые некому поддерживать. А кому еще охота копаться в "говне мамонта".
Здравствуйте, Крокотук, Вы писали:
К>Всем известно, какие крупные компании требуют знание Win API. Ну вот за 10 лет я редко сталкивался с необходимостью писать на чистом Win API. Это либо кросс-платформенная библиотека, либо какая-то обертка. Даже сложно представить, как можно использовать эти сишные ф-ии с десятью параметрами каждый день. Это такая изощренная форма мазохизма?
От специализации сильно зависит. Я вот тоже в клепании GUI с помощью Win32 API не вижу
никакого смысла, особенно когда есть готовые библиотеки и средства разработки.
Голый Win32 API, конечно же, ужасен, не представляю, как можно на нем что-то написать,
не создав где-нибудь утечки дескрипторов или памяти, да и вообще неудобно это все.
А вот использовать легкие и безопасные обертки/фасады в стиле C++ — самое то.
Помнится, на таких вот обертках я как-то написал многопоточный HTTP Proxy на IOCP, с
фильтрацией, кэшированием, распаковкой содержимого и резкой запрещенного контента.
И ничего, в три месяца уложился, медленно поспешая. Причем сам код очень даже симпатичный,
хотя это лишь тонкая прослойка между классами C++ и рудиментарными интерфейсами ОС.
У тех, кто долго пишет на низком уровне, со временем появляются целые коллекции
подобных оберток, и потом писать "на Win32 API" неожиданно оказывается легко и удобно.
Если копнуть глубже, компании требуют знание Win32 API не для того, чтобы на нем писать, а
скорее для того, чтобы оценивать понимание кандидатами низкоуровневых вещей и работы
операционной системы. Трудно представить, как может работать в том же Kaspersky Lab человек,
не знающий и никогда не работавший с Win32 API.
Здравствуйте, Sash_xp, Вы писали:
S_>Только молодежь (теперь уже бывшая), после изучения нескольких поколений библиотек сильно расстроится от того, что с выходом каждой новой библиотеки, она оказывается наравне со вчерашними студентами — и тем, и другим требуется быстро ее изучить.
Здравствуйте, MTD, Вы писали:
MTD>Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>>Не сочти за труд, черкни пару строк.
MTD>Чирканул.
Спасибо.
SVZ>>А мы тем временем обсудим достоинства WinAPI
MTD>Полный вперед
В соседних сообщениях драка виртуальными табуретками уже в разгаре
_____________________
С уважением,
Stanislav V. Zudin
Не катит, в своём посте я предполагал, что под QWidget скрывается "окно".
В это системное ограничение далеко не один пионер и не по одному разу упирался.
Кстати, сколько калькуляторов вы можете запустить на своей системе?
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Философ, Вы писали:
Ф>Не катит, в своём посте я предполагал, что под QWidget скрывается "окно". Ф>В это системное ограничение далеко не один пионер и не по одному разу упирался.
Не знаю, я не пионер, за приложение с количеством окон более двух отрывал бы руки.
Ф>Кстати, сколько калькуляторов вы можете запустить на своей системе?
Здравствуйте, Sash_xp, Вы писали:
S_>Здравствуйте, white_znake, Вы писали:
_>>P.S. Но вы продолжайте в том же духе — именно за счет Вас, может чуть менее опытная, но умеющая пользоваться последними достижениями в своей области молодежь будет получать повышение
S_>Да, так и есть. S_>Только молодежь (теперь уже бывшая), после изучения нескольких поколений библиотек сильно расстроится от того, что с выходом каждой новой библиотеки, она оказывается наравне со вчерашними студентами — и тем, и другим требуется быстро ее изучить. Только вот лениво это изучать очередную новую библиотеку, на смену которой снова придет другая. Тут и приходится искать свои конкурентные преимущества в чем-то другом, более стабильном.
Так опыт как раз и помогает быстрее изучить новую библиотечку, новый подход. Ведь все новое, это просто эволюция давно известных практик и библиотек.
Хотя, переход на использование ФЯ, если ты их не использовал ранее, не такое легкое дело
Здравствуйте, white_znake, Вы писали:
S_>>Да, так и есть. S_>>Только молодежь (теперь уже бывшая), после изучения нескольких поколений библиотек сильно расстроится от того, что с выходом каждой новой библиотеки, она оказывается наравне со вчерашними студентами — и тем, и другим требуется быстро ее изучить. Только вот лениво это изучать очередную новую библиотеку, на смену которой снова придет другая. Тут и приходится искать свои конкурентные преимущества в чем-то другом, более стабильном.
_>Так опыт как раз и помогает быстрее изучить новую библиотечку, новый подход. Ведь все новое, это просто эволюция давно известных практик и библиотек.
Согласен, скорость изучения новых библиотек у опытного прогера не сравним со студенческим. Другое дело, что у студентов упертость бывает на порядок выше.
Здравствуйте, FR, Вы писали:
FR>Если брать целевое программирование под винду и прикладной код на C++ то писать на чистом WinAPI FR>также бессмыслено, так как все возможности никогда практически не требуются, а скорость разработки FR>существенно падает.
Скорость это сложная и нелинейная функция. Вход "от hellowrold и чуть дальше" проще у обёрток. Но начиная от некоего размера проекта, ситуация выравнивается. А потом начинают играть роль какие-нибудь неочевидные кишки и любитель высокоуровневого счастья сталкивается с реальным миром. Дальше всё зависит от общего профессионализма и тщательности проработки предметной области, от инструмента уже в совсем небольшой степени. Так что исходно проще брать один знакомый подход, чем учить каждые полгода новый. Кривая входа чуть более пологая, зато без сюрпризов на дальних дистанциях.
Здравствуйте, white_znake, Вы писали:
_>Еще в школе, я освоил quick sort сортировку. Шли годы. Появлялись разные библиотеки: STL, Boost, .Net, но я предпочитал писать свои велосипеды. _>Зачем изучать, что-то новое, когда алгоритм quick sort — он и в африке quick sort
Хм. Вы не поверите, но во всех тех случаях, когда мне действительно нужна была сортировка, я имплементировал свою -- на основании данных профилирования, после анализа задачи и типичных сценариев использования. В двух случаях я обогнал стандартный qsort -- один раз существенно, второй раз так себе. Раза четыре или пять велосипед не поехал и я его выкинул, заменив стандартным ради поддерживаемости кода.
И да, я настаиваю, что qsort это и в африке qsort, и знать его -- гораздо полезнее, чем учить детали его реализации в каждой из сотни библиотек, где он реализован.