Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Преимущество Win Api - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посоветуйте среду http://www.cyberforum.ru/cpp-beginners/thread360247.html
Посоветуйте интегрированную среду разработки кросплатформенных приложений. Сама среда должна иметь виндузячую версию, поддерживать использование в разрабатываемом приложении сторонних библиотек,...
C++ Как сделать генератор случайных чисел? Привет всем. Возник очередной вопрос за это утро. Как сделать генератор случайных чисел? В учебнике написано так: "Для этого существует функция random(K) - генератор случайных чисел." Учебник... http://www.cyberforum.ru/cpp-beginners/thread360244.html
C++ Чтение из файла
формат файла: text, 200 text2, 180 и т.д.... #include <math.h> #include <stdio.h> struct cars {
Слово array является зарезервированным в Visual Studio 2008? C++
Привет всем. Читаю старую книгу по С++. Там для массива предлагают использовать имя array, например: int array; Но когда я это напечатал, то у меня слово array стало синим: array Как я понимаю,...
C++ Можно ли задать массив, не зная заранее его длину? http://www.cyberforum.ru/cpp-beginners/thread360238.html
Доброе утро всем. Вчера начал читать "главу 4 Массивы". Там предложили 2 варианта объявления массива: 1) неинициализированный int A; 2) инициализированный int A={2,3,5,1}; Я это напечатал,...
C++ классы и объекты в с++ очень прошу помочь написать программу. т.к. в программировании я 0 :( Написать программу, в которой создаются и разрушаются объекты, определенного пользователем класса. Выполнить исследование... подробнее

Показать сообщение отдельно
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.10.2011, 13:14
Цитата Сообщение от Bers Посмотреть сообщение
ВинАпи - это интерфейс операционной системы. Какая к чорту кроссплатформенность?
Никакой. Но если использовать готовые библиотеки(та же qt), то кроссплатформенность в них присутствует.

Цитата Сообщение от Bers Посмотреть сообщение
И какой к чорту ооп в уже откомпилированном коде?
ООП существует только на этапе разработки. После компиляции никаких классов уже не существует. Приплюснутые классы сначала преобразуются в си-структуры, потом ассемблируются.
При чем здесь бинарный код? Я про плюсный писал.


Цитата Сообщение от Bers Посмотреть сообщение
Я уже не говорю про то, что классический интерфейс любой библиотеки пишут в стиле си - в виде глобальных функций. Это делается специально для того, что бы этот интерфейс можно было юзать как в процедурных, так и в оо-языках.
В WinAPI также. Один набор функций для всех языков. И это большой минус.




Цитата Сообщение от Bers Посмотреть сообщение
По сути - дополнительная работа. Дополнительная нагрузка на весь персонал, как следствие - резкое удорожание стоимости разработки.
Не вижу связи. Вроде как переход к ООП наоборот облегчает и ускоряет процесс написания и отладки кода.


Цитата Сообщение от Bers Посмотреть сообщение
Слой винапи - один из наиболее низкоуровневых с точки зрения разработчика целевого проекта.
Если бы Майкрософт обеспечивали бы поддержку ООП, со всеми кастрированными, но более удобными версиями методов - это привело бы:
1. Процедурные языки не поддерживают ООП. И все эти "удобные штуки" прошли мимо сишников-системщиков. Потеря основного сегмента рынка.
2. Резкое удорожание продукта (который к тому же окажется более глючным. Все классы унаследуют косяки самого винапи + добавят свои собственные).
Это не выгодно экономически. Вот этой очевидности вы никак не можете понять. Майкрософт зарабатывает деньги своими продуктами. Виндовс со своей винапи - коммерческий продукт.
И продукт этот создаётся таким образом, что бы его можно было выгодно продать. А не для того, что бы лично вам им было удобно пользоваться.
Здесь вы правы, но из этого же следует, что людям, пишущим на высокоуровневых языках попросту невыгодно пользоваться WinAPI. цпп - не исключение. Мелкомягким проще делать универсальный интерфейс, пользователям проще использовать готовые библиотеки. Все довольны.



Цитата Сообщение от Bers Посмотреть сообщение
Вы так и не поняли сути модульного программирования: винапи предназначен не для конечного пользователя-программиста. А для разработчиков-инструментальщиков, которые и разрабатывают относительно небольшие, но очень специализированные библиотеки-инструменты, которые и адаптируют громоздкий универсальный интерфейс винапи для решения любых конкретных задач.
А я хотел вам это объяснить...)
Как раз из этого и следует то, о чем я писал в начале - с точки зрения конечного пользователя WinAPI слишком ущербен, и использовать его крайне нежелательно. Но в специфичных областях(разработка тех же библиотек, например) его приходиться применять. Т.е. его можно рассматривать как инструмент для разработки библиотек / windows-specific приложений. Но не более.





Цитата Сообщение от Bers Посмотреть сообщение
Если вам понадобилось создавать окошко, вы можете реализовать это на винапи, и написать километр кода.
А можете взять глют, и написать несколько десятков строчек.
Но фишка в том, что глют использует лишь часть апи ОС, и может себе позволить добавлять всякие фичи для удобства конечного потребителя. Ведь ей не нужно поддерживать все 100500 винапишных функций. Только те, что отвечают за создание и типовую обработку окна. (строго говоря, инструмент рассчитанный на конечного потребителя обязан быть удобным. Или от него откажутся) . То бишь глют - это лишь надстройка над апи оси, и представляет собой весьма-весьма кастрированный интерфейс использованных апи функций оси, и рассчитан на выполнения только частных случаев конкретных задач.
(я специально опускаю тот факт, что инструментальные библиотеки юзают ограниченный набор АПИ разных осей, с претензией на кросс-платформенность, тем самым расширяя свои сегменты рынка)
Если потом понадобится функционал не предусмотренный самой архитектурой глюта - вам придётся либо менять его на другую библиотеку ( И как следствие - лавинообразные изменения по всему вашему целевому проекту).
Либо написание собственной библиотеки аналога-глют, либо написания адаптера, который преобразует другую библиотеку к интерфейсу глют + позволит юзать доп. плюшки новой библы.
Все это создаст большой гемморой, который приведёт к потерям времени и денег. Обычно ещё на этапе проектирования максимально тщательно определяются требования к используемым инструментам, что бы подобного не произошло.
В последнем предложении из цитаты и раскрывается вся суть =)
Если правильно спроектировать проект, то никаких лавинообразных изменений не потребуется.

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



Цитата Сообщение от Bers Посмотреть сообщение
Это компромисс между минималистичностью и универсальностью, с помощью которого можно свести к минимуму количество разных функций, что позволяет упростить и удешевить процесс разработки и сопровождения.
Как-то не вижу я логики. По-вашему, если написать одну большую функцию с парой сотен параметров, то ее будет проще сопровождать?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru