| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > C++ builder vs Win32API |
| Автор: Metalex 21.11.2010, 19:12 |
| Стоит ли учить Win32API? Или если я знаю основы, этого хватит для полноценной основы в builder'e? |
| Автор: oldcode 21.11.2010, 19:55 |
| учить стоит, но хватает и основ |
| Автор: Alexeis 22.11.2010, 12:21 |
| Metalex, ввиду того, что версия 2010 работает жутко нестабильно, я взялся за основы WinApi диалогов. Иногда неудобства билдера настолько перевешивают, что соглашаешься на то, чтобы отказаться от удобного VCL в пользу простого и стабильного VC. Но это уже другой холивар |
| Автор: mrbrooks 22.11.2010, 13:37 | ||
а я бы взялся за изучение Qt Добавлено через 37 секунд есесно про дебилдер необходимо было бы за быть на всегда. |
| Автор: Alexeis 22.11.2010, 14:25 |
Поздно пить боржоми. В любом случае просты диалоги вполне можно разрабатывать и на WinAPI, но для чего-то более менее сложно уже нужны визуальные классы VCL. |
| Автор: oldcode 22.11.2010, 15:21 | ||
|
| Автор: Alexeis 22.11.2010, 15:33 |
| oldcode, когда форма имеет много компонентов или компоненты вложенные. Различные способы привязки (по левому/правому краю...) изменение размеров компонентов при изменении размеров окна. Внутреннее перераспределение места с помощью сплитеров. Различные визуальные настройки окон типа бордюров (которые обычно не записываются в ресурс). Вот элементарный пример. Список вариантов Combobox. В ресурсе диалога его хранить нельзя, а на форме VCL запросто. При обилии компонентов все эти инициализации разрастаются до невообразимых размеров, в которых трудно ориентироваться. А если делать грамотно, то начинаешь писать свои обертки. Кому это нужно, когда VCL уже и есть готовая объектная обертка. Разница как между велосипедом и мерседесом. |
| Автор: oldcode 22.11.2010, 23:34 |
| ну... VCL же ж и придумали ленивые |
| Автор: borisbn 23.11.2010, 09:28 |
| IMHO если и использовать VCL, то только в Delphi, потому что дебилдер - это отрыжка паскаля. Дебилдеровский VCL - это не Си++, поэтому я бы посоветовал как mrbrooks посмотреть на Qt. Я сам лет 8 работал на VCL, затем перешёл на Qt и забыл о дебилдере как о страшном сне. |
| Автор: Alexeis 23.11.2010, 10:24 |
| borisbn, билдер это не только визуальные кнопочки и рюшечки! Это еще функциональные классы, БД, сетевые протоколы Инди, это отчеты, это строковая библиотека и т.д. Так что переход на QT это не просто смена одного дизайнера форм на другой. Это изучение всего комплекса классов и его слабых и сильных мест. Для студента выбирающего на чем писать дипломный проект, может это несложно. Когда же речь о рабочих проектах зажатых рамками потеря кучи времени на поиск всех аналогов в QT неоправданный расход времени. |
| Автор: borisbn 23.11.2010, 10:39 |
Когда речь идёт действительно о рабочих проектах использовать VCL, а тем более дебилдер - вообще неразумно. У него куча глюков и ограничений. P.S. QT == QuickTime, Qt == кроссплатформенная библиотека Си++ классов |
| Автор: Alexeis 23.11.2010, 10:50 | ||
Эх сколько же не разумных людей по своему свету. Они платят по 800$ за лицензию чисто по приколу, совсем не для того чтобы вести разработку. И до сих пор не догадываются что делают невозможное. На счет глюков можно перефразировать поговорку: старый глюк лучше новых двух |
| Автор: mrbrooks 23.11.2010, 11:00 | ||||
Ох Alexeis, твои слова да, Богу в уши. Проблема современного Билдера в том, что начать то легко, да вот продолжить затем сложно.
на мой скромный взгляд - это не разумно. |
| Автор: borisbn 23.11.2010, 16:09 | ||
Думаю потому, что они больше ничего не знают. И, надо признать, порог вхождения в билдер чуток пониже, чем в Qt. Но ! Назови пару-тройку крупных известных проектов, сделанных на билдере ... IMHO даже на MFC больше, хотя мне лично от MFC плеваться хочется. P.S. Проекты на билдере - не кроссплатформенные. их даже откомпилировать кроме как bcc нечем |
| Автор: Alexeis 23.11.2010, 16:38 | ||
Мяу мяу мяу. Давай еще пиписьками померимся. Будь уверен что есть. Причем даже в таких ответственных областях как банковская сфера. Потому что не кросплатформенные... ну прям детский сад. Наверное поэтому C# попирает яву и С++. Потому что он шибко кросплатформенный Билдер не популярен 1) Плохой маркетинг. Microsoft смогла бы продать и больше Г за большие деньги 2) Нестабильность больших проектов. Нестабильность среды разработки. 3) Несоответствие стандарту. (больше чем у других) 4) Большое время компиляции. 5) Слабая оптимизация. |
| Автор: A5uKa 23.11.2010, 16:56 |
| CLR / WinAPI / Qt , только не VCL |
| Автор: borisbn 23.11.2010, 16:59 | ||
И какой вывод ? Зачем нужна такая среда разработки ? Только потому, что знаешь её ? |
| Автор: Alexeis 23.11.2010, 17:06 |
| borisbn, потому что есть много других плюсов. Удобство, гибкость, функциональность, простота, расширяемость. На самом деле на начальном этапе можно и не знать даже такого слова "WinApi" и писать на билдере. Добавлено через 13 минут и 52 секунды Например, C# также дает не шибко большую скорость кода + время JIT компиляции при загрузке. C# тем более не соответствует стандарту С++ Так что ты зря выдернул из цитаты верхнюю строчку. Она самая главная. Пипл хавает ложкой то что ему дают. Сейчас писать на Qt стало в моде. А программеры старой школы продолжают использовать билдер, потому что удобно и знают каждую "трещинку". Ведь не все тянуться за нововведениями. Многие пишут используя язык, ставя во главу угла алгоритм, который они реализуют на том что ближе. Молодежь думает, что достаточно поставить очередную новомодную штучку и будет самый крутой код! А потом хвастать, мол да я пишу на Qt! Я крут! А вы все сидите на старье. Не все версии билдера одинаково косячные. Что-то больше, что-то меньше. Билдер 6 был стабильнее, 2009 тоже сносно, а 5й и 2010 получились Г . |
| Автор: SVN74 23.11.2010, 17:47 | ||
CLR, Qt - это как автомобиль (иномарка) + обязательный прицеп, который Вам навязали тащить за собой пожизненно Все тут обхаивают Builder, но когда приходит время быстро создать обычное Win32 приложение с БД, с обычными формами и кнопками и без гмр. , - то все сразу вспоминаю, что есть такой Biulder и его простейший VCL и ничего, что он глючит, главное влезть в сроки Это как по аналогии: если едем по хорошим дорогам - берем красивую иномарку (с прицепом) и ХВАЛИМммммм ее, а когда приходится ехать по трущобным дорогам, садимся на советское авто и едемММММ и никому об этом не говорим, как будто это не мы. Простите за такие аналогии, но в большинстве случаев это именно так. А теперь ближе к теме: 1. Если не хотите писать формы руками, то WinApi и не нужен, достаточно обверток, но справочник по WinApi должен быть при себе на случай - необычных действий по дополнительным функциям. 2. Подумайте, на сколько Вам нужна кроссплатформенность? Тут хоть все и кричат о кроссплатформенности, но на самом деле в 95% случаях Ваше приложение (обычные) юзверы будут запускать под Виндой, остальные 5% - это (продвинутые) юзверы, которым Ваше приложение и нафих не нужно... |
| Автор: cutwater 23.11.2010, 19:50 |
| Тему во флейм. Завершающий спор аргумент против бидлера. Собственно как уже сказали покажите крупные проекты, использующие VCL, желательно за пределами пост-советского пространства. Сравните количество вакансий, новых / крупных проектов на C++ Builder, Delphi, VCL с вакансиями на C++ / Qt, C# / WPF и почувствуйте разницу. Смысл в том что кроме как в пост-советском пространстве уже давно Delphi / C++ Bulder выбросили на помойку истории. Перспектив кроме поддерживать какой-нибудь старый проект десятилетней давности нет. Добавлено через 3 минуты и 7 секунд P.S. Также вспоминаем о том как bcb поддерживает стандарт, завязке на используемый инструментарий. И самое удивительное, что ВНЕЗАПНО только в 2010 году появилась поддержка юникода. С разморозкой... |
| Автор: Лена 23.11.2010, 20:02 | ||
А зачем называть? Посещайте официальный сайт, много интересного узнаете: http://www.embarcadero.com/rad-in-action/application-showcase список конечно очень урезан. CloneCD, WinRar, Alcohol 120%, EMS -менеджеры, Macromedia HomeSite, Скайп и многое многое другое создано на Делфи и Builder. |
| Автор: Alexeis 23.11.2010, 21:17 | ||||
Версия 2009 вышла в 2008 году это раз. Во вторых поддержка юникода существует уже 100 лет в обед с момента появления класса WideString и символов wchar_t, также сто лет присутствуют функции преобразования в UTF16/UTF8 и обратно. Можно говорить о тотальном переходе на юникод. Да и раньше еще можно было использовать альтернативный пакет юникодных контролов. Тот кто сильно хотел мог использовать.
Популярность это на 90% вопрос коммерции и рекламы. Кроме того не нужно забывать про область применения. Узкий инструмент не становиться плохим просто от того что он узкий. Поэтому популярность следует оценивать в своей сфере применения. Если говорить о программировании приложений под Windows с богатым пользовательским интерфейсом, корпоративных приложениях, клиенты БД, то процент не так уж и мал. Например, яркий представитель: TuneUp Utilities 2010 . Красочный интерфейс, выезжающие панельки, куча кнопочек пимпочек и т.д. Сложные диалоги. Открываем папку с программой. Не может быть |
| Автор: SVN74 23.11.2010, 21:24 | ||
|
| Автор: cutwater 23.11.2010, 21:35 | ||
Чтобы не быть голословным http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%80%D0%BE%D0%BA%D0%B8%D0%B9_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB |
| Автор: Alexeis 23.11.2010, 22:17 | ||
>Соответственно, приложения, которым требуется сохранять переносимость на различных C и C++ компиляторах, не должны использовать wchar_t для хранения Unicode-текста Билдер не заявляет переносимость поэтому вполне может использовать тип wchar_t для хранения символов UTF16. Достаточно того что он совместим с WinApi. Строки билдера прекрасно сочетаются с типами Windows поэтому позволяют использовать юникод как для внутренних нужд, так и для взаимодействия с ОС в том числе и для отображения строк в различных элементах интерфейса. Возможность обеспечена чего не хватает? |
| Автор: borisbn 24.11.2010, 00:23 | ||||
Возможно и не имеет. Скорее всего Delphi как я уже говорил
зашёл. посмотрел. честно говоря, список оч. кислый: Cabriolet Dynamic Geometry, Cambridge CAD, Clone CD, BitZipperBitZipper, AVS Video Tools, Complete Time Tracking, ASUS PC Probe сделаны на билдере. остальные на Delphi. Да и из этих знаю только Clone CD и ASUS PC Probe, да и то не сказать, что серьёзные проекты. Ну не пишут серьёзные прокты на билдере, да и вакансий на него ( как сказал cutwater ) практически нет. Повторю: для начинающего программиста-разработчика интерфейсного ПО VCL - отличная штука, и начинать нужно с нативного для неё языка - Delphi, но начинать, вести и поддерживать большие и сложные проекты на билдере - IMHO нелепо. |
| Автор: Лена 24.11.2010, 02:57 |
Скайп написан на Дельфи, а то это значит, что это не возможно сделать в С++ Builder? |
| Автор: oldcode 24.11.2010, 03:42 |
| аргументы против билдера не убедительны |
| Автор: A5uKa 24.11.2010, 08:47 | ||
Пишем на "Дебилдере", что ещё. |
| Автор: mrbrooks 24.11.2010, 09:02 | ||
а что? |
| Автор: Metalex 24.11.2010, 09:06 |
| Гм.. А позвольте спросить, в визуал студио можно создать такой же интерфейс как с помощью билдера? И какой проект для такого нужно создавать? |
| Автор: mrbrooks 24.11.2010, 09:09 | ||
При такой постановке вопроса ответ положительный - WinForms |
| Автор: A5uKa 24.11.2010, 09:31 |
| всё же CLR ? |
| Автор: borisbn 24.11.2010, 09:32 | ||
Если установишь Qt, то можно гораздо лучше: builder'овские Anchor'ы сильно уступают Layout'ам, в builder'е нет понятия стиля ( skin'а ), в Qt это встроенная вещь, и т.д. и т.п. > а если он для вас "дебилдер" - то такого хрена вы здесь делаете ... стараюсь уберечь начинающих от ошибки, которую сам допустил 10 лет назад |
| Автор: Лена 24.11.2010, 11:55 | ||
ЭТО ОЧЕНЬ ВАЖНОЕ ЗАМЕЧАНИЕ! Теперь брошу все усилия на Qt.
|
| Автор: A5uKa 24.11.2010, 12:15 |
| А ещё у qt хайлайтинг кода лучше ! |
| Автор: Alexeis 24.11.2010, 12:45 |
| Тогда хотелось бы уточнить на счет производительности интерфейса. Известно, что формы билдера работают быстрее. Чего стоит вызов сигнала в качестве обработчика и чего стоит вызов эвента. Опять же за универсальность всегда приходиться платить скоростью и объемом. Делаем большую, активную, сложную форму опять же плюс к билдеру. |
| Автор: Лена 24.11.2010, 13:08 |
| Бесконечный холивар, а вывод всегда остается одним - каждый кулик хвалит свое болото. |
| Автор: cutwater 24.11.2010, 15:05 | ||
Бесполезно спорить когда оба оппонента знакомы только лишь с одним предметом спора. |
| Автор: borisbn 25.11.2010, 00:35 | ||||
какбэ нелогично:
|
| Автор: secondd 1.12.2010, 17:39 |
| QT использует CLR или компилит в машинный код? |
| Автор: borisbn 1.12.2010, 18:10 |
QT = Quick Time, и я хз, как он работает, а Qt вообще не компилит, т.к. это - библиотека. Компилит компилятор Си++ ( на windows - msvc или minGW, на linux - gcc ). И компилит, да, в машинный код |
| Автор: secondd 1.12.2010, 18:14 |
| Спасибо! Значит .NET или другая прокладка не используется, т.е. не будет потери драгоценной скорости. |
| Автор: SVN74 1.12.2010, 21:59 | ||
Да, если не учитывать, 5 мб dll(ешек), которые надо везде за собой тягать или впихивать все в один exe(шник)... |
| Автор: Alexeis 1.12.2010, 23:09 | ||
Да ерунда эти 5Мб, давно уже не живем в век Dial Up-a. Windows Forms также работает не хуже. Очевидно, что все визуальные классы попадают в кеш сборок еще на этапе установки .NET, поэтому эти библиотеки не требуют JIT компиляции и работают точно также как VCL/Qt/WinApi . Существенные аргументы 1) Стабильность 2) Структурная организация библиотеки 3) Заложенная функциональность 4) Быстродействие Очевидно, что ни одна из библиотек не дает преимущества по всем 4м пунктам. WinApi - Стабильность + Быстродействие VCL - Структурная организация библиотеки + Заложенная функциональность Qt - Стабильность(?) + Структурная организация библиотеки + Заложенная функциональность .NET - Стабильность + Структурная организация библиотеки + Заложенная функциональность |
| Автор: 0x00 15.12.2010, 09:00 |
| В области энергетики, банковском секоре, в промышленности ПОЧТИ ВСЕ ПИШЕТСЯ НА Builder + Oracle (в России). Изза легкости разработки и легкости поддержки. это очевидно и споры не уместны. |