Подтвердить что ты не робот

С++ 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, чтобы найти многие из его предыдущих недостатков, которые теперь ушли?

Ищем "был там, сделал это".

4b9b3361

Ответ 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.