C++ Builder ou Visual Studio

Je possède une société de développement de logiciels. Nous développons des logiciels pour d'autres entreprises qui marquent sous leur nom / titres. Et nous avons également quelques titres auto-marqués sur le marché de la comptabilité / ERP. Notre logiciel de comptabilité représente environ 60% de notre activité et est écrit en C++ Builder.

Ceux qui savent, réalisent que C++ Builder a eu une route très rocheuse en changeant de mains de Borland, à CodeGear, à Embarcadero et peut-être quelques fois entre les deux. C++ Builder nous a vissé un certain nombre de temps sur notre logiciel de comptabilité. Le QuickReports était notoirement bogué, leur description de construction XML n'est pas étroitement couplée à l'interface graphique, ce qui fait que les builds ne fonctionnent pas-généralement une interface boguée.

Au cours des 8 dernières années, nous avons régulièrement fait des percées pour supprimer notre dépendance sur les composants VCL et buggy cependant, certains composants VCL 3ème partie ne sont tout simplement pas facilement remplaçables encore. Nous utilisons un paquet de grille de Developer Express-excellent produit.

Je suis à peu près à la croisée des chemins et avec la dernière version de C++ Builder XE sur le marché, j'ai du mal à justifier le prix lorsque vous regardez l'histoire merdique de ce produit.

Donc, je cherche des conseils ou des étapes que quelqu'un d'autre a suivies qui pourrait être dans une situation similaire et qui a réussi à passer à Visual Studio.

Nous avons lentement déplacé la plupart de nos applications vers wxWidgets, à l'exception des outils Developer Express. Et nous avons écrit notre propre abstraction TSQL que nous pouvons également porter.

Tout pensées ou suggestions? Avez-vous déplacé votre projet vers Visual Studio ou avez-vous joué avec le nouveau Builder XE pour trouver beaucoup de ses lacunes précédentes maintenant disparu?

Vous cherchez "été là, fait que" conseil.

26
demandé sur Chris Jester-Young 2010-11-20 22:06:36

12 réponses

Passer à wxWidgets a ses avantages, l'un d'eux étant que vous ne serez pas lié à un IDE comme C++Builder ou Visual Studio. C++ Builder a eu plusieurs problèmes, sa principale force étant le framework VCL, qui dans mon oppinion est toujours parmi les meilleurs frameworks GUI pour C++. Le problème est bien sûr qu'il nécessite C ++ Builder, ce qui, pour le moins, a quelques problèmes de stabilité et de performance du compilateur.

Cependant Visual Studio n'est pas L'IDE ultime, le la dernière version est au mieux boguée, et de nombreux outils RAD que vous donne C++ Builder n'existent tout simplement pas en Visual C++ (sauf si vous êtes prêt à opter pour les langages.net).

Je peux parfaitement comprendre votre souhait de rendre votre code moins dépendant de C++ Builder, pour vous dire la vérité, je doute qu'il continuera à être là pendant longtemps moi-même. Cependant, d'après ce que cela ressemble à votre message, la plupart de votre développement repose vraiment sur des applications développées rapidement, et dans le c++ universe C++ Builder est l'un des meilleurs outils pour cette exigence particulière.

Personnellement, je n'ai jamais vraiment pensé à C++ comme la meilleure solution pour les Applications GUI Windows développées rapidement, peut-être que votre attention ne devrait pas être sur la recherche d'un IDE différent, mais sur la recherche d'un langage plus approprié, je suggère Delphi, en utilisant Delphi, vous serez en mesure de compiler vos projets C++ builder existants,

Delphi va-je faire confiance - soyez plus longtemps que C++ Builder, soit sous la forme de Delphi, soit sous la forme de Lazarus (IDE pour freepascal) qui est même multi-plateforme et prend en charge le développement 64 bits.

Si toutefois un changement de langue n'est pas une option, Je m'en tiendrais à C++ Builder pour l'instant, mais pas à la mise à niveau vers la version XE, ce que je ne pense tout simplement pas justifié par le prix. (Bien sûr, vous travaillez déjà sur une version relativement nouvelle).

14
répondu Tommy Andersen 2010-11-20 19:34:29

Visual Studio n'est pas vraiment comparable à C++ Builder.

Oui, ce sont les deux compilateurs C++ mais:

  1. Visual Studio est uniquement RAD lorsque vous utilisez les langages. net
  2. MFC est 'semi-rad' mais ne se rapproche pas de la facilité D'utilisation de VCL
  3. le compilateur Visual Studio est meilleur pour produire du code optimisé, mais C++ Builder utilise Clang qui est plutôt bon
  4. Visual Studio et C++Builder sont tous deux conformes aux normes (CB utilisant des compilateurs basés sur Clang)
  5. C++ Builder livré avec Boost
  6. C++ Builder XE est beaucoup mieux que les versions précédentes (sans compter Builder C++ 6.0)
  7. vous ne pouvez pas battre les outils RAD dans C++ Builder pour le développement C++, rien ne se rapproche

Les différences dans les compilateurs ne vous blesseront probablement pas trop pour le code non dépendant de VCL. J'ai une DLL que je compile pour les clients sous VC6, VS2008 et Builder 2010 / XE. J'ai dû lancer quelques # ifdefs ,mais la plupart d'entre eux sont en fait pour VC6.

Le plus grand la recommandation que je peux faire est de ne pas passer à MFC, c'est là que la douleur commence.

Pensez également à la formation des développeurs. Vos développeurs deviendront beaucoup plus lents à produire du code de travail tout en apprenant les particularités d'un nouveau compilateur.

Avec tout cela dit, quand on m'a donné le choix pour un client entre passer à VS2008 / 2010 ou Builder C++ pour un nouveau produit, j'ai choisi Builder, juste pour L'IDE RAD.

Bonne chance.

Mise à jour pour C++Builder 10.2 (2017):

  1. Windows 32 bits et 64 bits utilisent tous deux Clang / LLVM (tout comme iOS et Android)
  2. Windows 32 bits et 64 bits utilisent tous deux Boost 1.55
  3. 10.2 est très stable, s'améliore à chaque version

Cela arrive toujours sur les recherches Google, donc mis à jour à nouveau pour Berlin 10.1:

  1. le code 32 bits et 64 bits utilise maintenant CLANG / LLVM pour Windows
  2. le code 32 bits pour OS X utilise toujours l'ancien compilateur
  3. les compilations Android et iOS utilisent CLANG / LLVM
15
répondu Gregor Brandt 2017-05-18 14:50:56

Si vous collez avec C++ et attendez le même type D'IDE dans Visual Studio pour C++ que RAD Studio fournit, vous serez choqué.

Pour être honnête, C++Builder n'a jamais été un mauvais environnement de développement graphique pour C++. C'est probablement le meilleur jamais été pour C++. Pourquoi? Parce que vous pouvez profiter de tous les grands composants Delphi.

Il n'y a pas de substitut à ExpressQuantumGrid™ Suite pour C++ dans Visual Studio.

La plupart des plaintes graves concernant C++Builder a souvent été centré sur sa conformité avec des normes comme le STL et Boost.

Je ne pense pas que Embarcadero abandonnera le support de C++Builder. Les problèmes ont généralement été avec la façon dont les gars de Delphi (3ème partie) ont codé des choses. Honnêtement, je ne me souviens que d'une version des trucs de DevExpress étant un problème.

Court et doux: si vous voulez utiliser C++ et une sorte de chose RAD/GUI coller avec C ++ Builder.

9
répondu weirdo12 2010-12-03 05:22:26

Nous avons mis à niveau de C++Builder 6 à XE il y a un an. Très heureux avec XE. Le passage à UnicodeString n'était pas trop difficile. Nous avons également converti tout notre code BDE en BDExpress (DBX). Cela a pris beaucoup de temps et beaucoup de réécriture, mais en valait la peine. La chose à retenir est que ni est parfait. Comme le dit l'adage, L'herbe semble toujours plus verte de l'autre côté de la barrière. Si vous voulez une efficacité de développement, utilisez C++Builder et la VCL. Si vous voulez la sécurité à très long terme, ou facilement trouver programmeurs, puis Visual Studio. Mon avis: gardez ce que vous aimez et remplacez ce que vous ne faites pas. par exemple, gardez C++Builder et remplacez QuickReport. BTW, si vous avez pris une décision, veuillez nous le faire savoir.

6
répondu Stephane 2012-10-06 03:21:32

Nous sommes dans un mouvement lent à VS2008 et wxWidgets. Pour chaque composant qui peut être acheté pour C++ Builder (Developer Express, etc), nos plans sont de embaucher quelqu'un pour construire celui-ci piece ou embaucher le fabricant de composants pour Construire Un composant wxWidget pour nous.

C++ Builder est la meilleure façon de programmer visuellement sur windows pour le moment. Cependant, pas de support x64bit et pas de support mac, linux. Soi-disant, Ils vont construire une version crossx... combien de temps pouvons-nous nous attendre?

1
répondu pcunite 2011-03-13 00:38:34

J'ai commencé en tant qu'ingénieur côté client c++ Pour Windows. Je suis d'accord avec le commentaire à propos de ce que MFC est assez mauvais. Dans plusieurs de mes projets, nous avons écrit nos propres moteurs D'interface utilisateur avec des modèles XML au lieu d'utiliser MFC afin que les graphistes puissent jouer avec L'interface utilisateur sans avoir besoin d'ingénieurs logiciels.

Dans mon opinion personnelle C#.Net est le meilleur pour le développement de L'interface utilisateur Windows. IDE est génial. Le codage de L'interface utilisateur en C++ nécessite beaucoup trop d'efforts. Vous pouvez toujours garder des morceaux de C++ qui nécessitent une haute performance.

PS. Juste remarqué cela sur la page wiki pour VCL. ". NET est calqué sur VCL, puisque L'un des principaux architectes des premières versions de Delphi, Anders Heijlsberg, est allé à Microsoft et était l'un des principaux architectes de NET là-bas "

1
répondu expert 2011-12-25 00:58:50

La plupart des réponses ici mix compilateurs, IDE et bibliothèque (et la question a un sous-texte important: comment choisir l'environnement pour les applications business / GUI). Questions et réponses mélangez les langages Visual Studio et les types de projets: C++ avec un mauvais support de L'interface graphique, C# avec un écosystème merveilleux, etc... (Basic, F # etc) tous sous parapluie Visual Studio.

Bibliothèques GUI:

MFC est une bibliothèque, vraiment assez ancienne et peu productive. Son faible niveau wrapper sur *.RES et WM_Envents. Sûrement ne peut toujours pas être compilé Sans MS C++ (et peut-être que la licence l'interdit)

VCL est la bibliothèque la plus importante pour la philosophie Borland/Enbecaro et la part de marché dans un domaine: construire des applications GUI. Semble être un bon usage des bibliothèques GUI opensurce portables, mais presque toutes n'ont pas un si bon support dans l'IDE cliquable

IDE:

Le sentiment personnel semble la meilleure réponse. D'accord, seul l'IDE producteur a un constrol optimal sur ses propres composants GUI. Beaucoup IDE indépendant est cité ici, je serai court.

Compilateur:

Le compilateur C++ Brland de nombreuses années était loin des normes C++ (ne peut pas compiler le code C++ du flux principal comme boost). Je crois que de nombreux objectifs sont contradictoires: coexistence avec le code objet Pascal ou les normes C++.

Pour dire le vrai: la plupart des projets des mondes C++ Builder n'ont pas besoin d'utiliser du code hautement "hackers" comme boost et similaire, personnellement, je traite le langage Borland/Embecareo C++ comme un langage indépendant partiellement basé sur C++ (Partiellement sur VCL). Général ce monde est fermé (de plus en plus), pas de pilotes, pas de bibliothèques compatibles, pas de protocoles réseau modernes, etc.

Mon avis: les compilateurs MS C++ (dans le passé et maintenant) améliorent les normes de support.

J'étais (peut-être bon) programmeur Borland C++. Maintenant, j'utilise C# / WinForms Visual Studio (parfois, rares Java SWT ou Swing) et Microsoft C++ à faible volume C/C++ projets non-GUI

Derniers mots: êtes-vous limité à la syntaxe C++, ou pouvez-vous changer? I Oui, passer à C#. Si doit être C++ et élevé GUI productive, payer (de plus en plus) à Embecadero

1
répondu Jacek Cz 2015-09-21 08:27:02

J'ai travaillé dans C++ builder 2006, 2009, XE6 et RS10.

Je recommande de convertir vos projets hors de celui-ci. J'ai eu de nombreux problèmes au cours de nombreuses années, tels que l'écrasement de l'environnement et de nombreux autres comportements excentriques. En outre, si vous avez besoin d'aide avec quelque chose, la communauté d'utilisateurs est presque inexistante, donc vous devez normalement attendre 24 heures et espérer que Remy vous répond:) ou essayer de lire le code delphi et de le traduire en C++ (oui leur environnement delphi est plus populaire... rien de tel que pascal orienté objet...).

N'importe quel environnement vous convertir, il ne sera probablement pas aussi propre ou aussi simple que vous le souhaitez. Donc, sachant qu'il y aurait beaucoup de travail, donc je suggère de regarder votre stratégie à long terme.

Personnellement, je recommanderais de migrer vers java et d'utiliser SWT ( https://www.eclipse.org/swt/), Si vous avez besoin d'une application de bureau. Je recommande également de s'en tenir aux bibliothèques open source avec des licences amicales, de sorte que vous n'avez pas à vous soucier de payer de l'argent chaque année et permet à l'échelle de votre entreprise. Si vous n'avez pas besoin d'un système client, alors je recommanderais toujours java, car il fait la pile complète et est très puissant. La communauté java de mon expérience a tendance à avoir des gens plus nets (pour la plupart) avec des réponses propres. J'ai vu un tas de choses hackish qui utilisent. Net:)

Vous avez mentionné Visual Studio, si vous ne pouvez pas faire java, alors je recommanderais C# comme prochaine meilleure alternative. Mais alors vous devez toujours payer MicroSoft pour les licences, et aussi traiter avec le groupe d'utilisateurs.

1
répondu James Oravec 2015-11-17 17:28:27

C++ Builder PM ici.

C++ Builder a des points forts spécifiques:

  • Il est idéal pour la conception de l'INTERFACE utilisateur. Soit avec le VCL (native Windows controls) ou FMX (multi-plateforme, souvent des contrôles natifs aussi si vous avez besoin). Visual C++ ne s'approche pas, et MFC est toujours en train de concevoir des interfaces utilisateur comme vous l'avez fait en 1995.

  • Il est axé sur multi-plateforme. Visual C++ en fait la publicité, mais C++Builder fournit la "pile complète" : pas seulement la compilation, mais les bibliothèques complètes, De l'INTERFACE utilisateur, tout. VC++ est multi-plateforme jusqu'à ce que vous ayez besoin de quelque chose qui ne l'est pas.

  • Il est largement utilisé par les personnes ayant besoin d'un travail de base de données, ou d'autres éléments "entreprise", principalement parce que les bibliothèques de bases de données (FireDAC) sont très bien architecturées et supportent beaucoup de bases de données.

  • Il utilise Clang pour toutes les plates-formes en dehors de macOS, qui a encore un ancien compilateur. Il se dirige également vers la mise à jour vers C++17.

  • Il a des fonctionnalités comme Live Preview (conception votre application, voir l'application en direct sur un appareil branché comme votre téléphone) qui semblent avoir fortement inspiré certaines fonctionnalités MS récentes;) ne vous inquiétez pas, Visual Studio, nous vous aimons:) donc, dans de nombreux domaines, il mène réellement, en particulier pour le développement x-plat.

Faiblesses:

  • L'IDE ne fonctionne que sur Windows. Vous pouvez déployer n'importe où et déboguer sur n'importe quoi, mais L'IDE est Windows.

  • C'est C++11 seulement, bien que se dirigeant vers C++17. MacOS est (gasp) c++98. C'est sur la feuille de route. Vous pouvez compter sur elle étant à jour dans le temps.

  • L'achèvement du Code et l'aperçu du code sont plus faibles que Visual C++. Travail sur elle.

  • Il a une réputation de buggy, ce qui est quelque chose activement travaillé dans les versions récentes et un lecteur personnel de la mine à éliminer. Mais une réputation est difficile à perdre.

1
répondu David M 2017-05-18 15:20:53

Ce que @ casablanca a dit, mais vous devriez également envisager de très bonnes alternatives, si vous dites que vous n'êtes pas satisfait des programmes que vous utilisez maintenant:

  1. Eclipse (CDT ): produit très bon et complet
  2. NetBeans: souvent comparé à eclipse
  3. Code:: blocs : plus simple, mais souvent recommandé, pas si grand d'une intégration du système de construction, je crois, mais ightly intégré avec wxWidgets
  4. QtCreator: mon favori personnel (propre et rapide et fonctionne avec git), mais actuellement utilisé uniquement pour un projet personnel et de petites applications, peut-être pas idéal pour wxWidgets, bien que je n'utilise pas non plus Qt:)

Un mot d'avertissement: le débogueur Visual Studio est considéré comme "aussi bon qu'il obtient" , mais vous payez pour cela. 1-4 ci-dessus sont tous des produits gratuits et très acclamés.

0
répondu rubenvb 2010-11-20 19:18:15

Cela signifie que la version de Visual Studio 2010 crée une nouvelle question: Est-il logique de mettre à niveau Visual Studio même si vous ne mettez pas à niveau vers. net 4? La réponse est "oui", et pour beaucoup de raisons. Mais si vous allez à. Net 4, vous trouverez beaucoup de soutien dans Visual Studio 2010.

Dès que vous démarrez Visual Studio 2010, vous remarquerez que la Page de démarrage est maintenant plus utile que le menu Fichier (voir Figure 1). La Page de démarrage donne toujours accès aux modèles de projet, mais le reste de la page offre maintenant un accès organisé aux ressources de formation pour les principales technologies. net.

Une fois que vous ouvrez un fichier, vous constaterez que, grâce à Windows Presentation Foundation (WPF), il y a plus de commentaires visuels dans la fenêtre d'édition. Par exemple, si vous cliquez sur un nom de variable, toutes les utilisations de ce nom de variable sont mises en surbrillance. Cette fonctionnalité n'est pas limitée aux variables-cliquer sur un en-tête de méthode met automatiquement en évidence toutes les clauses de retour et la fin de la méthode. Mais cette mise en évidence supplémentaire n'est pas sans inconvénient. Lors du débogage, par exemple, j'ai parfois perdu la ligne actuelle car sa surbrillance a été remplacée par la surbrillance ajoutée pour l'élément actuellement sélectionné. Tatouages Aztèques

0
répondu robert 2010-11-20 19:33:47

Je déteste dire cela, mais ma propre entreprise est à ce même Carrefour. Nous utilisons C++Builder depuis de nombreuses années (jamais mis à niveau au-delà de v6), et nos gestionnaires ont récemment appuyé sur la gâchette pour passer à Visual Studio aller de l'avant :-( Je ne pense pas que nous porterons nos applications C++Builder existantes à VC++ de sitôt, car ce serait une réécriture majeure, mais nos nouveaux produits à L'avenir seront en VC++/. net maintenant.

0
répondu Remy Lebeau 2010-11-23 18:27:07