Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > Winapi vs Компоненты всякие


Автор: oleg1973 11.10.2004, 12:51
я за Winapi

Автор: chipset 11.10.2004, 13:01
oleg1973
Какие компоненты?
Если ты имеешь в виду MFC, то не всякую задачу можно быстро и легко и ООПно сделать на WinApi.
Кстати, mFc включен в состав Windows.
Хотя я за WinAPi smile.gif

Автор: maxim1000 11.10.2004, 13:08
где-то я слышал такое высказывание:
Цитата
одно из важных качеств хорошего программиста: умение выбирать подходящие средства разработки

и WinAPI, и всякие наборы компонентов (MFC, VCL, ...) решают задачи из своей области
и если мне хочется быстро написать простенькое приложение, имеющее некоторый инетрфейс, я запускаю Delphi...

Автор: oleg1973 11.10.2004, 13:08
Цитата
В Delphi существуют встроенные классы для работы с сетью - это компоненты Delphi 6 на закладке Internet (TServerSocket и TСlientCocket) и компоненты FastNet, либо компоненты Indy в Delphi 7

почемуб как подабает настояшим мужчинам, не написать на АПИ ? в чем преимушество? smile.gif

Автор: maxim1000 11.10.2004, 13:15
Цитата
почемуб как подабает настояшим мужчинам, не написать на АПИ ? в чем преимушество?

просто быстрее

Автор: chipset 11.10.2004, 13:16
Цитата
почемуб как подабает настояшим мужчинам, не написать на АПИ ? в чем преимушество? 

Ну кто ж захочет переписывать написанные ТЫСЯЧАМИ программеров вещи? stena.gif

Автор: maxim1000 11.10.2004, 13:17
я не имею в виду конкретный случай работы с сетью
я вообще предпочитаю WinAPI везде, где дело не касается интерфейса пользователя

Автор: AntonSaburov 11.10.2004, 13:25
Цитата(maxim1000 @ 11.10.2004, 14:17)
я вообще предпочитаю WinAPI везде, где дело не касается интерфейса пользователя

Есть ряд причин, по которым я не очень люблю использовать WinAPI

1. Больше нигде эта программа не пойдет.
Тем более если дело касается серверных приложений, у которых главное - логика работы и никакого интерфейса. Перенос такого рода программ на другую платформу бывает не так уж редко. И если использовать POSIX-вызовы, то перенос не будет тяжелым (имел опыт).

2. Опускаться до уровня WinAPI - это уже близко к программированию на ассемблере. Эффективность самой программы может и неплоха, да время разработки увеличивается в разы.

3. А что под Виндой еще создавать, как не клиентские приложения, для которых интерфейс наиболее важен. И тогда в WinAPI связываться крайне тяжело. Даже MFC мало помогает.

Автор: chipset 11.10.2004, 13:40
Цитата
3. А что под Виндой еще создавать, как не клиентские приложения, для которых интерфейс наиболее важен. И тогда в WinAPI связываться крайне тяжело.

Игрушки thumbs-up.gif

Автор: Sun 11.10.2004, 14:57
Цитата(chipset @ 11.10.2004, 10:01)
Кстати, mFc включен в состав Windows.

А я всегда думал что это библиотека классов, которая инкапсулирует вызовы WinAPI (подобно OWL или VCL).

Написание программ на чистом WinAPI похоже на тихий ужас. Не знаю, есть ли такие суровые парни, которые способны писать более-менее сложные и большие программы на чистом WinAPI (я бы застрелился).

Автор: chipset 11.10.2004, 14:59
Цитата
А я всегда думал что это библиотека классов, которая инкапсулирует вызовы WinAPI (подобно OWL или VCL

ДЛЛки включены в в саму Windows
Добавлено @ 15:00
для чего его можно применять в более менее сложных прогах - игры, в связке с OpenGL а ещё лучше DirectX

Автор: Sun 11.10.2004, 15:29
Цитата(chipset @ 11.10.2004, 11:59)
ДЛЛки включены в в саму Windows

Не знаю как сейчас, но раньше если в VC++ делал динамическую компоновку с использованием MFC, то для запуска программы была нужна mfc42.dll, которая в стандартную поставку Windows не входила.

Автор: Vit 11.10.2004, 16:00
Кросплатформенность - написанная на WinAPI программа привязана к Windows...

Автор: oleg1973 11.10.2004, 18:26
Vit
а нужна ли она простому юсеру к примеру?
многоли народа сидит с корел дравом в линюхе?

Автор: Vit 11.10.2004, 19:56
Цитата(oleg1973 @ 11.10.2004, 09:26)
Vit
а нужна ли она простому юсеру к примеру?
многоли народа сидит с корел дравом в линюхе?


Причём тут Corel? Программирование офисных приложений типа Corel составляет мизер в общей массе программиской работы, это капля в море... 95% программистов работает над разработкой промышленных проектов, web сервисов, серверных приложений, пользовательских GUI к базам данных и т.п. И тут как раз крос-платформенность очень и очень важна! У тебя корпорация и весь менеджментский инструментарий написан под windows, завтра MS изменила политику лицензирования, и корпорация сочла что надо использовать Linux вместо Windows (как моя например) или например виндовые сервера перестали удовлетворять серверные потребности и решено закупить мейнфреймы на Unix - и что? Всё переписывать если не с нуля, то исправляя чуть ли не каждую процедуру? Оглянись! Ты думаешь почему бум на Java, PHP, Perl - языки которые вообще ближе к скриптам чем к железу? Да потому что программа на Java будет работать где угодно! На любом железе и в любой операционке! А приложение на WinAPI - только в Windos на PC, да и очень вероятно окажется привязано ещё и к конкретной версии Windows

Автор: Kurt 16.10.2004, 01:16
Цитата
Ты думаешь почему бум на Java, PHP, Perl - языки которые вообще ближе к скриптам чем к железу?

Но ведь не все работают "на бизнес". Вдруг, нужен именно уровень железа?
ИМХО, знать WinAPI (и время от времени программить, дабы не забывать) просто НЕОБХОДИМО.
Хм.. А вот везде использовать тока его.. Это уже другой вопрос.

Автор: Vit 16.10.2004, 21:35
Цитата(Kurt @ 15.10.2004, 16:16)
Но ведь не все работают "на бизнес". Вдруг, нужен именно уровень железа?


Естественно, но это очень небольшая часть программирования, хотя и сложная и важная.

Цитата(Kurt @ 15.10.2004, 16:16)
ИМХО, знать WinAPI (и время от времени программить, дабы не забывать) просто НЕОБХОДИМО.


Вот тут на 100% согласен, хотя хочется добавить фразу "для тех кто программирует под платформу Windows", так как для тех кто программирует под Linux или микроконтроллеры WinAPI на фиг не нужны, разве что для общего развития.

Цитата(Kurt @ 15.10.2004, 16:16)
Хм.. А вот везде использовать тока его.. Это уже другой вопрос.


А везде и не получится :)

Автор: Vitalik 15.11.2004, 20:51
Полностью согласен с Vit'ом. Компоненты, они и универсальнее, и их удобнее и легче использовать. Плюс к тому же компонентов написано просто огромное количество, а изобретать заново колесо не всегда правильно smile

Автор: RA 10.12.2004, 00:55
Цитата(oleg1973 @ 11.10.2004, 12:51)
я за Winapi

Похвально, в стиле "мы простых путей не ищем".

Автор: oleg1973 10.12.2004, 19:45
RAdmin
да похвально
покрайне мере я к примеру отчетливо представляю всю работу sock
че как происходит и почему именно так а не иначе,без проблем смогу реализовать к примеру работу с маил сервером и еслу уж совсем выпендрится то на raw socket
имхо с компонентами немнога все по другому дело обстоит smile

Автор: bel_nikita 10.12.2004, 23:35
Цитата
Кросплатформенность - написанная на WinAPI программа привязана к Windows...
Что-то я не совсем понял. Cамо название WinAPI говорит, само за себя. Говорит, что это Windows API. Причем здесь крос? Также MFC/WTL это тоже Винда, но это компонент

Цитата
так как для тех кто программирует под Linux или микроконтроллеры WinAPI на фиг не нужны, разве что для общего развития.
кстати, сейчас на других ОС(точнее средах разработки) активно используют Windows API терминологию.

Цитата
Похвально, в стиле "мы простых путей не ищем".
Смотря, что писать. Если стандартный интерфейс, то тогда однозначно компонент. А если к примеру какой-нить фильтр ip пакетов или task manager, который должен знать все и вся про процессы в системе, то WinAPI.

В общем, с одной стороны я за компоненты, т.к. позволяют ускорить процесс разработки программ. А с другой за WinAPI, т.к. я все-таки хочу знать, что реально делает моя программа, и почему, и где она глючит smile
Добавлено @ 23:45
Цитата
Вобщем, я так понял пользовательский интерфейс лучше делать компонентами, а всю начинку на API?
Я бы сказал так: WinAPI использовать там, где требуются нестандартные решения

Автор: chipset 11.12.2004, 02:31
Пишу на WInapi поскольку нужна скорость..

Автор: Medved 20.12.2004, 12:16
Уже не актуально. После выхода .NET.

Автор: chipset 20.12.2004, 17:01
Цитата(Pegas @ 20.12.2004, 01:16)
Уже не актуально. После выхода .NET.

Что не актуально? Скорость?
На .NET я точно не могу позволить себе писать, фреймворк не у всех есть..

Автор: Medved 20.12.2004, 17:34
Вопрос по большей сложности глобальный - таков и ответ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)