С++ Builder или Visual Studio
У меня есть компания по разработке программного обеспечения. Мы разрабатываем программное обеспечение для других компаний, которые под маркой под своим именем/названиями. И у нас также есть пара собственных брендов на рынке бухгалтерского учета /ERP. Наше бухгалтерское программное обеспечение составляет примерно 60% нашего бизнеса и написано на С++ Builder.
Те, кто знает, понимают, что у С++ Builder была очень скалистая дорога в переходе от Borland, в CodeGear, в Embarcadero и, возможно, несколько раз между ними. С++ Builder несколько раз наводил нас на наше бухгалтерское программное обеспечение. QuickReports был, как известно, ошибочным, их описание сборки XML не тесно связано с графическим интерфейсом, что приводит к сбоям сборки, что обычно неэффективно.
За последние 8 лет мы неуклонно продвигались вперед, чтобы устранить нашу зависимость от компонентов VCL и багги, однако некоторые сторонние компоненты VCL просто нелегко заменить. Мы используем пакет GRID от Developer Express - отличный продукт.
Я просто на перекрестке и с последней версией С++ Builder XE на рынке Мне сложно определить цену, когда вы смотрите на дерьмовую историю этого продукта.
Итак, я ищу советы или шаги, которые кто-то следил за тем, кто может быть в подобной ситуации, и успешно перешел на Visual Studio.
Мы медленно переместили большую часть нашего приложения в wxWidgets, за исключением инструментов Express Express. И мы написали собственную абстракцию TSQL, которую мы также можем переносить.
Любые мысли или предложения? Вы перенесли свой проект в Visual Studio или вы играли с новым Builder XE, чтобы найти многие из его предыдущих недостатков, которые теперь ушли?
Ищем "был там, сделал это".
Ответы
Ответ 1
Перемещение на wxWidgets имеет свои преимущества, одним из которых является то, что вы не будете привязаны к среде IDE, например С++ Builder или Visual Studio. У С++ Builder было несколько проблем, основная его часть - инфраструктура VCL, которая, по моему мнению, по-прежнему входит в число лучших графических интерфейсов для С++. Проблема в том, что для этого требуется С++ Builder, который, мягко говоря, имеет некоторые проблемы со стабильностью и производительностью компилятора.
Однако Visual Studio не является конечной средой IDE, последняя версия в лучшем случае ошибочна, и многие из инструментов RAD, которые вы даете С++ Builder, просто не существуют в Visual С++ (если вы не хотите идти на это. сетевые языки).
Я прекрасно понимаю ваше желание сделать ваш код менее зависимым от С++ Builder, чтобы сказать вам правду. Я как бы сомневаюсь, что это будет продолжаться долго. Однако из того, что кажется вам на вашем посту, большая часть вашего развития действительно зависит от быстроразвитых приложений и в С++ юниверсе. С++ Builder - один из лучших инструментов для этого конкретного требования.
Лично я никогда не думал о том, что С++ является лучшим решением для приложений Rapid Developed Windows GUI, возможно, вам не следует сосредоточиться на поиске другой среды разработки, но, найдя более подходящий язык, я бы предложил Delphi, используя Delphi вы сможете скомпилировать существующие проекты С++ builder и даже повторно использовать существующие компоненты VCL.
Delphi будет, я надеюсь, быть более длинным, чем С++ Builder, либо в форме Delphi, либо в виде Lazarus (IDE для freepascal), который является даже кросс-платформой и поддерживает 64-разрядную разработку.
Если, однако, изменение языка не является вариантом, на данный момент я бы придерживался С++ Builder, но не обновлялся до версии XE, что я просто не считаю оправданным ценовым тегом. (Учитывая, что вы уже работаете над относительно новой версией).
Ответ 2
Visual Studio на самом деле не сопоставима с С++ Builder.
Да, они оба являются компиляторами С++, но:
- Visual Studio - это только RAD при использовании языков .NET.
- MFC является "полу-радом", но не приближается к простоте использования VCL
- Компилятор Visual Studio лучше создает оптимизированный код, но С++ Builder использует Clang, который довольно хорош.
- Visual Studio и С++ Builder совместимы со стандартами (CB с использованием компиляторов на основе Clang)
- С++ Builder поставляется с Boost
- С++ Builder XE намного лучше, чем предыдущие версии (не включая Builder С++ 6.0)
- Вы не можете бить инструменты RAD в С++ Builder для разработки на С++, ничего не закрывается
Различия в компиляторах, вероятно, не причинят вам слишком большого вреда для кода, не зависящего от VCL. У меня есть DLL, которую я компилирую для клиентов под VC6, VS2008 и Builder 2010/XE. Мне пришлось подбрасывать несколько #ifdefs, но большинство из них на самом деле для VC6.
Самая большая рекомендация, которую я могу сделать, НЕ МОЖЕТ ПЕРЕДАТЬ В МФЦ, вот где начинается боль.
Подумайте о подготовке для разработчиков. Ваши разработчики станут значительно медленнее при создании рабочего кода, изучая особенности нового компилятора.
С учетом сказанного, когда мне был предоставлен выбор для клиента между переходом на VS2008/2010 или Builder С++ для нового продукта, я выбрал Builder только для RAD IDE.
Удачи.
Обновлен для С++ Builder 10.2 (2017):
- 32-битные и 64-битные Windows используют Clang/LLVM (как и iOS и Android).
- 32-битные и 64-разрядные версии Windows используют Boost 1.55
- 10.2 очень стабильна, улучшается каждый выпуск.
Это все еще появляется в поиске Google, поэтому обновляется снова для Berlin 10.1:
- 32-битный и 64-разрядный код теперь использует CLANG/LLVM для Windows
- 32-разрядный код для OS X по-прежнему использует старый компилятор
- Компиляторы Android и iOS используют CLANG/LLVM
Ответ 3
Если вы придерживаетесь С++ и ожидаете того же типа IDE в Visual Studio для С++, что RAD Studio обеспечит вас, вы будете в шоке.
Честно говоря, С++ Builder никогда не был плохой графической средой разработки для С++. Вероятно, это лучшее, что когда-либо было для С++. Зачем? Потому что вы можете использовать все отличные компоненты Delphi.
В Visual Studio нет замены для ExpressQuantumGrid ™ Suite для С++.
Большинство серьезных жалоб на С++ Builder часто были сосредоточены на соблюдении стандартов, таких как STL и Boost.
Я не думаю, что Embarcadero откажется от поддержки С++ Builder. Проблемы, как правило, связаны с тем, как ребята из Delphi (сторонняя сторона) имеют закодированные материалы. Честно говоря, я вспоминаю только один выпуск материалов DevExpress, являющийся проблемой.
Короткий и сладкий: если вы хотите использовать С++ и какую-то вещь RAD/GUI придерживаться С++ Builder.
Ответ 4
Мы обновили с С++ Builder 6 до XE год назад. Очень доволен XE. Переход к UnicodeString был не слишком сложным. Мы также преобразовали весь наш код BDE в BDExpress (DBX). Это заняло много времени и много переписывалось, но стоило того.
Помните, что ничто не идеально. Как говорится, трава всегда выглядит зеленее на другой стороне забора.
Если вы хотите повысить эффективность разработки, используйте С++ Builder и VCL.
Если вы хотите очень долговременную безопасность или легко найти программистов, то Visual Studio.
Мое мнение: держите то, что вам нравится, и замените то, что у вас нет. Например, сохраните С++ Builder и замените QuickReport.
BTW, если вы приняли решение, сообщите нам.
Ответ 5
Мы медленно двигаемся к VS2008 и wxWidgets. Для каждого компонента, который можно приобрести для С++ Builder (Developer Express и т.д.), Мы планируем нанять кого-то, чтобы создать эту часть, или нанять создателя компонента создайте компонент wxWidget для нас.
С++ Builder - лучший способ визуально визуализировать окна на данный момент. Тем не менее, поддержка x64bit и отсутствие поддержки mac, linux. Предположительно, они собираются построить кросс-версию... как долго мы можем ждать?
Ответ 6
Я начал работать с С++ клиентским инженером для Windows. Я согласен с комментарием о том, что MFC очень плох. В нескольких моих проектах мы создали собственные движки пользовательского интерфейса с XML-управляемыми шаблонами вместо использования MFC, поэтому графические дизайнеры могут играть с пользовательским интерфейсом без необходимости инженеров-программистов.
По моему личному мнению, С#.Net - лучшая разработка Windows UI. IDE отлично. Кодирование UI на С++ требует слишком больших усилий. Вы все равно можете хранить куски С++, которые требуют высокой производительности.
PS. Просто заметил это на странице wiki для VCL. ".NET смоделирован после VCL, поскольку один из главных архитекторов первых версий Delphi Андерс Хейльсберг отправился в Microsoft и был одним из главных архитекторов NET"
Ответ 7
Большинство ответов здесь mix компиляторы, IDE и библиотека (и вопрос имеет важный подтекст: как выбрать среду для приложений для бизнеса /GUI ). Вопросы и ответы смешивают языки и типы проектов Visual Studio: С++ с плохой поддержкой GUI, С# с замечательной экосистемой и т.д. (Basic, F # и т.д.), Все под зонтиком Visual Studio.
Библиотеки GUI:
MFC - это библиотека, очень древняя и низкопродуктивная. Его низкоуровневая оболочка поверх *.RES и WM_Envents. Вероятно, до сих пор нельзя скомпилировать без MS С++ (и, возможно, лицензия запрещает это)
VCL - это библиотека, наиболее важная для философии Borland/Enbecaro и доли рынка в одной области: создание графических приложений.
Похоже, что это хорошо использовать портативные библиотеки GUI opensurce, но почти у всех нет такой хорошей поддержки в интерактивной IDE
IDE:
Личное чувство кажется лучшим ответом. Согласитесь, только у IDE производителя есть оптимальный конструирование над собственными компонентами графического интерфейса. Многие независимые IDE приводятся здесь, я буду коротким.
Компилятор:
Компилятор Brland С++ много лет был далек от стандартов С++ (невозможно скомпилировать основной поток С++-кода, например boost). Я считаю, что многие цели противоречивы: сосуществование с кодом Object Pascal или С++.
Чтобы сказать правду: большинство проектов из миров С++ Builder не требуют использования очень "хакерских" кодов, таких как boost и подобные, лично я рассматриваю язык Borland/Embecareo С++ как независимый язык, частично основанный на С++ (частично на VCL), Общий мир закрыт (все больше и больше), нет драйверов, нет совместимых библиотек, нет современных сетевых протоколов и т.д.
Мое мнение: MS С++ компиляторы (в прошлом и в настоящее время) лучшие стандарты поддержки.
Я был (может быть, хорошим) программистом Borland С++. Теперь я использую С#/WinForms Visual Studio (иногда, редкие Java SWT или Swing) и Microsoft С++ для проектов с меньшим объемом C/С++ без GUI
Заключительные слова: вы ограничены синтаксисом С++ или можете переключаться? Я да, переключитесь на С#. Если должен быть С++ и высокопроизводительный графический интерфейс, платите (все больше и больше) за Embecadero
Ответ 8
Я работал в С++ builder 2006, 2009, XE6 и RS10.
Я бы рекомендовал преобразовать ваши проекты из него. У меня было много проблем на протяжении многих лет, таких как сбой в работе среды и многие другие причудливые поступки. Кроме того, если вам нужна помощь в чем-то, сообщество пользователей находится рядом с несуществующим, поэтому вам обычно приходится ждать 24 часа и надеяться, что Remy ответит вам:) Или попробуйте прочитать код Delphi и перевести его на С++ (да их среда delphi более популярна... ничего подобного объектно-ориентированного паскаля...).
Независимо от того, в какой среде вы его конвертируете, это, вероятно, будет не так просто или просто, как вам бы хотелось. Поэтому зная, что будет много работы, поэтому я предлагаю взглянуть на вашу долгосрочную стратегию.
Я лично рекомендовал бы перейти на java и использовать SWT (https://www.eclipse.org/swt/), если вам нужно настольное приложение. Я также рекомендовал бы придерживаться библиотек с открытым исходным кодом с дружественными лицензиями, поэтому вам не придется беспокоиться о том, чтобы платить деньги каждый год и позволяет масштабировать свой бизнес. Если вам не нужна клиентская система, я бы по-прежнему рекомендовал java, так как это полный стек и очень мощный. Сообщество java из моего опыта имеет тенденцию иметь более острых людей (по большей части) с чистыми ответами. Я видел кучу хакерских вещей, которые используют .Net:)
Вы упомянули Visual Studio, если вы не можете сделать java, тогда я бы рекомендовал С# в качестве следующей лучшей альтернативы. Но тогда вам все равно придется платить MicroSoft за лицензии, а также иметь дело с группой пользователей.
Ответ 9
С++ Builder PM здесь.
С++ Builder обладает определенными преимуществами:
-
Это отлично подходит для дизайна пользовательского интерфейса. Либо с VCL (собственные средства управления Windows), либо FMX (кросс-платформенный, часто встроенные элементы управления тоже, если вам нужно). Visual С++ не приближается, и MFC все еще разрабатывает интерфейсы так, как вы делали в 1995 году.
-
Он сосредоточился на кросс-платформенной платформе. Visual С++ рекламирует его, но С++ Builder предоставляет "полный стек": не только компиляцию, но и полные библиотеки, пользовательский интерфейс, все. VС++ является кросс-платформенным, пока вам не понадобится что-то, что нет.
-
Он широко используется людьми, нуждающимися в работе с базами данных, или другими "корпоративными" элементами, главным образом потому, что библиотеки баз данных (FireDAC) очень хорошо защищены и поддерживают множество баз данных.
-
Он использует Clang для всех платформ отдельно от macOS, у которого все еще есть старый компилятор. Он также переходит к обновлению до С++ 17.
-
У него есть функции, такие как Live Preview (разработка вашего приложения, просмотр приложения в прямом эфире на подключенном устройстве, таком как ваш телефон), который, похоже, сильно вдохновил некоторые последние функции MS;) Не волнуйтесь, Visual Studio, мы любим вас:) Итак, во многих областях это действительно приводит, особенно для развития x-plat.
Слабые стороны:
-
IDE работает только в Windows. Вы можете развертывать везде и отлаживать что угодно, но IDE - это Windows.
-
Только С++ 11, хотя и идет к С++ 17. MacOS - это (вздох) С++ 98. Это по дорожной карте. Вы можете полагаться на то, что это своевременно.
-
Завершение кода и понимание кода слабее, чем Visual С++. Работая над ним.
-
У этого есть репутация багги, которая активно обрабатывается в последних выпусках и личный диск, который я могу устранить. Но репутацию трудно пролить.
Ответ 10
Что сказал @casablanca, но вы должны также рассмотреть очень хорошие альтернативы, если вы скажете, что вас не устраивают программы, которые вы используете сейчас:
- Eclipse (CDT): очень хороший и полный продукт
- NetBeans: часто по сравнению с eclipse
- Code:: Blocks: проще, но часто рекомендуется, не такая большая интеграция системы сборки, я полагаю, но полностью интегрирована с wxWidgets
- QtCreator: мой личный фаворит (чистый и быстрый и работает с git), но в настоящее время используется только для личного проекта и небольшого приложений, возможно, не идеально подходит для wxWidgets, хотя я не использую Qt:)
Одно слово предупреждения: отладчик Visual Studio считается "как можно лучше", но вы платите за него. 1-4 выше, являются бесплатными и высоко оцененными продуктами.
Ответ 11
Это означает, что выпуск Visual Studio 2010 создает новый вопрос: имеет ли смысл обновлять Visual Studio, даже если вы не обновляетесь до .NET 4? Ответ "да" и по многим причинам. Но если вы перейдете на .NET 4, вы найдете много поддержки в Visual Studio 2010.
Как только вы запустите Visual Studio 2010, вы заметите, что стартовая страница теперь более полезна, чем меню "Файл" (см. рис. 1). Стартовая страница по-прежнему обеспечивает доступ к шаблонам проектов, но остальная часть страницы теперь обеспечивает организованный доступ к учебным ресурсам для основных технологий .NET.
Как только вы откроете файл, вы обнаружите, что благодаря Windows Presentation Foundation (WPF) в окне редактирования появится больше визуальной обратной связи. Например, если вы нажмете на имя переменной, все использования этого имени переменной будут выделены. Эта функция не ограничивается переменными - щелчок по заголовку метода автоматически выделяет все предложения возврата и конец метода. Но эта дополнительная подсветка не лишена недостатка. Например, при отладке я иногда терял текущую строку, потому что ее подсветка была переопределена подсветкой, добавленной для выбранного в данный момент элемента. татуировки aztec
Ответ 12
Ненавижу говорить об этом, но моя собственная компания находится на том же перекрестке. Мы используем С++ Builder в течение многих лет (никогда не обновлялись после версии v6), и наши менеджеры недавно потянули триггер, чтобы переключиться на Visual Studio, продвигаясь вперед:-( Я не думаю, что мы портируем наш существующий С++ Builder в VС++ в ближайшее время, так как это будет серьезная перезапись, но наши новые продукты в будущем будут теперь в VС++/. NET.