C ++ Builder или Visual Studio - PullRequest
       93

C ++ Builder или Visual Studio

28 голосов
/ 20 ноября 2010

У меня есть компания по разработке программного обеспечения.Мы разрабатываем программное обеспечение для других компаний, которые производят бренды под своим именем / названиями.И у нас также есть пара собственных брендов на рынке бухгалтерии / ERP.Наше бухгалтерское программное обеспечение составляет примерно 60% нашего бизнеса и написано на C ++ Builder.

Те, кто знает, понимают, что C ++ Builder прошел очень сложный путь в переходе от Borland к CodeGear, Embarcadero и, возможно, к несколькимвремена между.C ++ Builder несколько раз облажался с нашим бухгалтерским программным обеспечением.QuickReports был заведомо ошибочным, их описание XML-сборки не тесно связано с графическим интерфейсом, что приводит к неработоспособности сборок - как правило, с ошибочным интерфейсом.

В течение последних 8 лет мы неуклонно продвигались, чтобы избавиться от зависимостиоднако компоненты VCL и багги, некоторые сторонние компоненты VCL просто еще не легко заменить.Мы используем пакет GRID от Developer Express - отличный продукт.

Я нахожусь на распутье, и с последней версией C ++ Builder XE на рынке мне трудно оправдать цену, когда выпосмотрите на дрянную историю этого продукта.

Так что я ищу советы или шаги, которые кто-то выполнил, кто мог бы быть в подобной ситуации и успешно переключился на Visual Studio.

Мы 'Мы медленно переместили большую часть нашего приложения в wxWidgets, за исключением инструментов Developer Express.И мы написали собственную абстракцию TSQL, которую мы можем портировать.

Есть какие-нибудь мысли или предложения?Переместили ли вы свой проект в Visual Studio или поиграли с новым Builder XE, чтобы обнаружить, что многие из его предыдущих недостатков уже устарели?

Ищете совет «уже там, сделали этот».

Ответы [ 12 ]

18 голосов
/ 21 ноября 2010

Visual Studio на самом деле не сравним с C ++ Builder.

Да, они оба компиляторы C ++, но:

  1. Visual Studio только RAD при использовании языков .NET
  2. MFC является «полу-рад», но не приближается к простоте использования VCL
  3. Компилятор Visual Studio лучше создает оптимизированный код, но C ++ Builder использует Clang, что довольно неплохо
  4. Visual Studio и C ++ Builder соответствуют стандартам (CB использует компиляторы на основе Clang)
  5. C ++ Builder поставляется с Boost
  6. C ++ Builder XE намного лучше, чем предыдущие версии (не включая Builder C ++ 6.0)
  7. Вы не можете превзойти инструменты RAD в C ++ Builder для разработки на C ++, ничто не близко

Различия в компиляторах, вероятно, не повредят вам слишком сильно для кода, не зависящего от VCL. У меня есть DLL, которую я компилирую для клиентов под VC6, VS2008 и Builder 2010 / XE. Мне пришлось добавить несколько #ifdefs, но большинство из них на самом деле для VC6.

Самая большая рекомендация, которую я могу дать, - НЕ ДВИГАТЬСЯ В MFC, вот где начинается боль.

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

С учетом всего вышесказанного, когда мне дали выбор для клиента между переходом на VS2008 / 2010 или Builder C ++ для нового продукта, я выбрал Builder только для RAD IDE.

Удачи.

Обновлено для C ++ Builder 10.2 (2017):

  1. 32-битная и 64-битная Windows используют Clang / LLVM (как iOS и Android)
  2. 32-битная и 64-битная Windows используют Boost 1.55
  3. 10.2 очень стабильно, улучшается с каждым выпуском

Это все еще встречается в поиске Google, поэтому снова обновлено для Берлина 10.1:

  1. 32-битный и 64-битный код теперь использует CLANG / LLVM для Windows
  2. 32-битный код для OS X все еще использует старый компилятор
  3. Компиляции Android и iOS используют CLANG / LLVM
15 голосов
/ 20 ноября 2010

Переход на wxWidgets имеет свои преимущества, одним из которых является то, что вы не будете связаны с IDE, например C ++ Builder или Visual Studio. У C ++ Builder было несколько проблем, его основной силой является VCL-фреймворк, который, по моему мнению, до сих пор является одним из лучших GUI-фреймворков для C ++. Конечно, проблема в том, что для этого требуется C ++ Builder, который, мягко говоря, имеет некоторые проблемы со стабильностью и производительностью компилятора.

Однако Visual Studio не является окончательной IDE, последняя версия в лучшем случае содержит ошибки, и многие из инструментов RAD, которые вы получаете от C ++ Builder, просто не существуют в Visual C ++ (если вы не готовы пойти на это. чистые языки).

Я прекрасно понимаю ваше желание сделать ваш код менее зависимым от C ++ Builder, честно говоря, я сомневаюсь, что он будет существовать долго сам. Однако, как это ни звучит в вашем посте, большая часть вашей разработки действительно опирается на быстро разрабатываемые приложения, а во вселенной C ++ C ++ Builder является одним из лучших инструментов для решения этой конкретной задачи.

Лично я никогда не думал, что C ++ - лучшее решение для Rapid Developed Windows GUI Applications, возможно, вам следует сосредоточиться не на поиске другой IDE, а на поиске более подходящего языка, я бы предложил Delphi, используя Delphi. Вы сможете скомпилировать свои существующие проекты сборщика c ++ и даже повторно использовать существующие компоненты VCL.

Delphi, я надеюсь, будет работать дольше, чем C ++ Builder, либо в форме Delphi, либо в форме Lazarus (IDE для freepascal), который даже кроссплатформенный и обеспечивает поддержку 64-битной разработки.

Если, однако, смена языка не возможна, я бы пока остановился на C ++ Builder, но не обновлялся до версии XE, которую я просто не считаю оправданной ценой. (Конечно, вы уже работаете над относительно новой версией).

10 голосов
/ 03 декабря 2010

Если вы придерживаетесь C ++ и ожидаете такой же IDE в Visual Studio для C ++, которую предоставляет RAD Studio, вы будете шокированы.

Если честно, C ++ Builder никогда не был плохой средой разработки графического интерфейса для C ++. Вероятно, это лучшее, что когда-либо было для C ++. Зачем? Потому что вы можете воспользоваться всеми замечательными компонентами Delphi.

В Visual Studio нет замены ExpressQuantumGrid ™ Suite для C ++.

Большинство серьезных жалоб на C ++ Builder часто связаны с его соответствием стандартам, таким как STL и Boost.

Не думаю, что Embarcadero откажется от поддержки C ++ Builder. Проблемы обычно заключались в том, как ребята из Delphi (сторонние разработчики) кодировали вещи. Честно говоря, я помню только один выпуск материала DevExpress, который был проблемой.

Коротко и приятно: если вы хотите использовать C ++ и что-то вроде RAD / GUI, придерживайтесь C ++ Builder.

6 голосов
/ 06 октября 2012

Год назад мы обновились с C ++ Builder 6 до XE.Очень доволен XE.Переход на UnicodeString не был слишком сложным.Мы также преобразовали весь наш код BDE в BDExpress (DBX).Это заняло много времени и много переписывалось, но оно того стоило.Следует помнить, что ни то, ни другое не является идеальным.Как говорится, трава всегда выглядит зеленее с другой стороны забора.Если вам нужна эффективность разработки, используйте C ++ Builder и VCL.Если вы хотите очень длительную безопасность или легко найти программистов, тогда Visual Studio.Мое мнение: оставь то, что тебе нравится, и замени то, что тебе не нравится.Например, оставьте C ++ Builder и замените QuickReport.Кстати, если вы приняли решение, пожалуйста, сообщите нам.

3 голосов
/ 18 мая 2017

C ++ Builder PM здесь.

C ++ Builder имеет некоторые сильные стороны:

  • Отлично подходит для дизайна пользовательского интерфейса.Либо с VCL (встроенные элементы управления Windows), либо с FMX (кроссплатформенные, часто, если нужно, также с встроенными элементами управления).Visual C ++ не приближается, и MFC все еще разрабатывает пользовательские интерфейсы так, как вы это делали в 1995 году.

  • Он ориентирован на кроссплатформенность.Visual C ++ это рекламирует, но C ++ Builder предоставляет «полный стек»: не только компиляцию, но и полные библиотеки, пользовательский интерфейс, все.VC ++ является кроссплатформенным, пока вам не понадобится что-то, чего нет.

  • Он широко используется людьми, нуждающимися в работе с базами данных, или другими "корпоративными" элементами, в основном потому, что библиотеки баз данных (FireDAC) очень хорошо спроектированы и поддерживают множество баз данных.

  • Он использует Clang для всех платформ, кроме macOS, в которой все еще есть старый компилятор.Также планируется обновление до C ++ 17.

  • Он имеет такие функции, как Live Preview (дизайн вашего приложения, смотрите приложение в реальном времени на подключенном устройстве, таком как ваш телефон), которые кажутсячтобы вдохновить некоторых последних функций MS;) Не волнуйтесь, Visual Studio, мы любим вас :) Так что во многих областях это действительно лидирует, особенно в разработке x-plat.

Слабые стороны:

  • Среда IDE работает только в Windows.Вы можете развертывать где угодно и отлаживать что угодно, но IDE - это Windows.

  • Это только C ++ 11, хотя и в направлении C ++ 17.MacOS - это (вздох) C ++ 98.Это на дорожной карте.Вы можете положиться на то, что он актуален во времени.

  • Завершение кода и понимание кода слабее, чем в Visual C ++.Работа над ним.

  • Он имеет репутацию глючного, над чем активно работали в последних выпусках, и мой личный драйв для устранения.Но репутацию трудно потерять.

2 голосов
/ 21 сентября 2015

Большинство ответов здесь сочетание компиляторов, IDE и библиотеки (и вопрос имеет важный подтекст: как выбрать среду для бизнес-приложений / приложений с графическим интерфейсом).Вопросы и ответы смешивают языки Visual Studio и типы проектов: C ++ с плохой поддержкой GUI, C # с замечательной экосистемой и т. Д. (Basic, F # и т. Д.) - все под зонтиком Visual Studio.

Библиотеки GUI:

MFC - это библиотека, действительно довольно древняя и с низкой производительностью.Его низкоуровневая оболочка над * .RES и WM_Envents.Вероятно, все еще не может быть скомпилировано без MS C ++ (и, возможно, лицензия запрещает это)

VCL - библиотека, наиболее важная для философии Borland / Enbecaro и доли рынка в одной области: создание приложений с графическим интерфейсом.Кажется, было бы неплохо использовать переносимые библиотеки GUI с открытым интерфейсом, но почти все они не очень хорошо поддерживают интерактивную IDE

IDE:

Личное чувство кажется лучшим ответом.Согласитесь, только IDE производителя имеет оптимальное управление над собственными компоновками GUI.Здесь приведено множество независимых IDE, я буду кратким.

Компилятор:

Компилятор Brland C ++ много лет был далек от стандартов c ++ (не могу скомпилировать основной поток кода c ++, например boost).Я считаю, что многие цели противоречивы: сосуществование с кодом Object Pascal или стандартами C ++.

Чтобы сказать правду: большинству проектов из миров C ++ Builder не требуется использовать очень «хакерский» код, такой как boost и подобные, личноЯ рассматриваю язык Borland / Embecareo C ++ как независимый язык, частично основанный на C ++ (частично на VCL).В общем, этот мир закрыт (все больше и больше), нет драйверов, нет совместимых библиотек, нет современных сетевых протоколов и т. Д.

Мое мнение: компиляторы MS C ++ (в прошлом и сейчас) лучше поддерживают стандарты.

Я был (возможно, хорошим) программистом на Borland C ++.Теперь я использую C # / WinForms Visual Studio (иногда редкие Java SWT или Swing) и Microsoft C ++ для проектов с небольшим объемом C / C ++, не связанных с GUI

Заключительные слова: Вы ограничены синтаксисом C ++ или можете переключаться?Я да, переключиться на C #.Если должен быть C ++ и высокопроизводительный графический интерфейс, платите (все больше и больше) Embecadero

2 голосов
/ 13 марта 2011

Мы медленно движемся к VS2008 и wxWidgets. Для каждого компонента, который может быть приобретен для C ++ Builder (Developer Express и т. Д.), Наши планы заключаются в том, чтобы нанять кого-нибудь, чтобы построить этот кусок или нанять производителя компонентов для build компонент wxWidget для нас.

C ++ Builder - лучший способ визуально программировать в Windows на данный момент. Тем не менее, нет поддержки x64bit и Mac, Linux поддержки. Предположительно, они собираются создать версию CrossX ... как долго мы можем ждать?

1 голос
/ 17 ноября 2015

Я работал в C ++ Builder 2006, 2009, XE6 и RS10.

Я бы порекомендовал конвертировать ваши проекты из него.У меня было много проблем в течение многих лет, таких как сбой среды и много других причудливых действий.Кроме того, если вам нужна помощь с чем-то, сообщество пользователей почти не существует, поэтому вам обычно приходится ждать 24 часа и надеяться, что Реми ответит вам :) Или попробуйте прочитать код Delphi и перевести его на C ++ (даих среда delphi более популярна ... ничего похожего на объектно-ориентированный паскаль ...).

Независимо от того, в какую среду вы ее конвертируете, она, вероятно, не будет такой чистой или простой, как вам бы хотелосьЭто.Так что зная, что будет много работы, поэтому я предлагаю взглянуть на вашу долгосрочную стратегию.

Я лично рекомендовал бы перейти на Java и использовать SWT (https://www.eclipse.org/swt/),, если вам нужно приложение для настольного компьютера.Я также рекомендовал бы придерживаться библиотек с открытым исходным кодом с дружественными лицензиями, чтобы вам не приходилось беспокоиться о том, чтобы платить деньги каждый год, и это позволит вам масштабировать свой бизнес. Если вам не нужна клиентская система, то я все равно рекомендую java, поскольку он делает полный стек и является очень мощным. Сообщество java, по моему опыту, склонно иметь более острых людей (по большей части) с чистыми ответами. Я видел кучу хакерских вещей, которые используют .Net:)

Вы упомянули Visual Studio, если вы не можете использовать Java, то я бы порекомендовал C # в качестве вашей следующей лучшей альтернативы.Но тогда вам все равно придется платить MicroSoft за лицензии, а также иметь дело с группой пользователей.

1 голос
/ 25 декабря 2011

Я начинал как клиентский инженер C ++ для Windows.Я согласен с комментарием о том, что MFC довольно плохо.В нескольких моих проектах мы написали наши собственные механизмы пользовательского интерфейса с шаблонами на основе XML вместо использования MFC, чтобы графические дизайнеры могли играть с пользовательским интерфейсом без необходимости в программистах.

По моему личному мнению, C # .Netлучше всего для разработки пользовательского интерфейса Windows.IDE это здорово.Кодирование пользовательского интерфейса в C ++ требует слишком много усилий.Вы все еще можете хранить фрагменты C ++, требующие высокой производительности.

PS.Только что заметил это на вики-странице для VCL. ".NET по образцу VCL, так как один из главных архитекторов первых версий Delphi, Андерс Хейлсберг, перешел в Microsoft и был там одним из главных архитекторов NET"

0 голосов
/ 23 ноября 2010

Я ненавижу говорить это, но моя собственная компания находится на том же перекрестке.Мы использовали C ++ Builder в течение многих лет (никогда не обновлялся после v6), и наши менеджеры недавно нажали на курок, чтобы переключиться на Visual Studio и двигаться вперед :-( Я не думаю, что мы будем переносить наш существующий C++ Builder приложения для VC ++ в ближайшее время, так как это будет серьезной перепиской, но наши новые продукты в будущем будут в VC ++ /. NET сейчас.

...