Delphi vs C # pour la programmation GUI [fermé]

20

Je viens du milieu PHP et Python avec peu de connaissances en C, j'ai fait de nombreuses applications web maintenant je pense à l'application Desktop pour la plateforme Windows.

Un ami m'a dit d'aller pour Delphi et d'autres disent que C # est le meilleur, eh bien, ce que je cherche c'est

  1. Simplicité
  2. Productivité
  3. Bonne documentation API
  4. La vitesse
  5. Glisser déposer
  6. Multi threading et bonne API réseau

Merci

elf1984
la source

Réponses:

20

Delphi, définitivement:

  1. Simplicité - La syntaxe de Delphi est basée sur Pascal, qui a été explicitement conçu pour être facile à apprendre, et il peut tenir cette promesse. C # est basé sur la famille C, ce qui ... eh bien ... ne l' était pas .
  2. Productivité - Delphi est un descendant de Turbo Pascal, et il a toujours le compilateur le plus rapide connu de l'homme, ce qui augmentera considérablement votre productivité. De plus, il dispose du débogueur Visual Studio souhaite que son débogueur soit comme lorsqu'il grandira. Surtout dans la dernière version de Delphi, le débogage est beaucoup plus facile.
  3. Bonne documentation API - "API" est un mot assez vague de nos jours, englobant toutes sortes de choses. Je suppose que vous parlez de bibliothèques, et ici, c'est une sorte de mélange. Le framework .NET et les bibliothèques standard Delphi ont une bonne documentation en ligne et une documentation hors ligne médiocre et difficile à utiliser. (Conséquence du fait que l'équipe Delphi a choisi d'utiliser le même horrible système d'aide que Visual Studio, dont ils espèrent s'éloigner dans la prochaine version.)
  4. Vitesse - Delphi gagne facilement. Il se compile en code natif (exécution plus rapide et démarrage beaucoup plus rapide car il n'y a pas de phase JIT) et il n'utilise pas de pointeurs gérés, donc l'accès aux objets est plus rapide et moins hostile au cache.
  5. Glisser-déposer - Fonction intégrée de la VCL.
  6. Multi-threading - Delphi a une classe de thread intégrée, mais si vous voulez faire des choses complexes avec la concurrence, il y a de meilleures options. Primoz Gabrijelcic, membre de la communauté Delphi, a travaillé sur une excellente bibliothèque de concurrence à laquelle j'ai contribué à contribuer. Il fournit une prise en charge de haut niveau pour les objectifs de thread communs tels que le pool de tâches, les boucles FOR parallèles et les processus de pipeline à plusieurs étapes.
  7. Bonne API réseau - Delphi est livré avec Indy, une bibliothèque open source mature qui facilite la configuration et la gestion des connexions Internet. Nous l'utilisons au travail pour fournir la couche de communication pour une application leader du secteur dont vous n'avez probablement jamais entendu parler, sauf si vous travaillez dans les médias de diffusion.
  8. Déploiement - Ce n'était pas sur votre liste, mais cela vaut la peine d'être mentionné. Il existe encore des systèmes sur lesquels le framework .NET n'est pas préinstallé. Par défaut, Delphi compile sa bibliothèque standard dans l'EXE, puis utilise un lien intelligent pour supprimer les parties que vous n'utilisez pas, ce qui entraîne de petits EXE qui ne dépendent pas de bibliothèques d'exécution massives pesant des centaines de Mo que vos utilisateurs auront à télécharger et installer séparément.
Mason Wheeler
la source
2
@Elf: Il peut y avoir plus d'emplois C # disponibles, mais il y a aussi beaucoup plus de personnes en compétition pour eux. Les développeurs Delphi qualifiés n'ont aucune difficulté à trouver du travail.
Mason Wheeler
5
C # n'est pas basé uniquement sur C ++, mais également sur Delphi et Java. Moi aussi, j'ai appris la programmation en Pascal, et je vois beaucoup de sa philosophie en C #. En ce qui concerne les pointeurs gérés que vous avez obtenus à l'envers, il n'y a pas de surcharge pour accéder aux données via des pointeurs gérés, et les modifier est plus rapide que dans un système utilisant le comptage de références.
Guffa
12
La syntaxe Delphi étant facile à apprendre est une déclaration complètement subjective. J'étais furieux de la syntaxe Delphi et j'ai décidé de ne pas l'apprendre pour cette raison.
Tjaart
8
-1: Cette réponse est biaisée comme un fou. Le débogueur Visual Studio est au moins aussi bon sinon meilleur que Delphi. La documentation Delphi est inexistante par rapport à MSDN étant la meilleure documentation jamais.
marco-fiset
4
Déploiement - échec total. Deplhi nécessite Windows, c'est donc un pas en arrière par rapport à C #. C # est portable et multiplateforme grâce à Mono. Delphi ne l'est pas. Vous n'avez pas besoin d'acheter Windows pour exécuter un programme écrit en C # qui n'utilise pas explicitement les bibliothèques Win32. Simplicité - également échec. La syntaxe de C # est très facile à lire, très concise et facile à écrire. Delphi ne l'est pas. Documentation API - bon sang non! Si j'écris "service Web C #", j'obtiens des tonnes de résultats pertinents. Rien de tel pour Delphi. Vitesse, threading, en particulier le débogueur - également faux.
TheLonelyCoder
15

C # va généralement avoir une base d'utilisateurs plus importante, plus de développement à l'avenir, et les outils de développement RAD via Visual Studio sont incroyables.

  1. La syntaxe sera similaire à celle utilisée en PHP et C.
  2. Visual Studio avec ses outils et IntelliSense est extrêmement productif.
  3. MSDN
  4. Encore une fois, VS tools + Intellisense, mais la vitesse vient vraiment d'une familiarité avec votre langage et ses fonctionnalités.
  5. Concepteur VS pour WinForms, WPF.
  6. System.Threading et System.Net

Je n'ai pas beaucoup d'expérience avec Delphi, et je parle juste de mes expériences avec C # en général. Là où je travaille, j'ai des délais extrêmement serrés envisagés par des non-programmeurs et je suis capable de pomper des applications bureautiques d'entreprise extrêmement rapidement. Au cours des trois dernières semaines, je suis passé de la spécification au déploiement sur deux applications LOB Winforms. La productivité pour le développement de GUI en C # avec VS est tout simplement folle.

bunglestink
la source
4
Merci, selon un article sur daniweb.com/forums/thread54305.html , l'intégration et l'exhaustivité de l'API Win32 dans Delphi dépassent même C
elf1984
2
vous devriez vraiment vous pencher sur Delphi si vous pensez que C # est l'environnement de développement ultime pour créer rapidement des applications de bureau. Personnellement, je déteste quand je dois créer des choses de bureau avec Visual Studio, mais de nos jours, je n'ai pas toujours le choix (malheureusement).
Wouter van Nifterick
1
Les outils RAD (conception de formulaire) de Visual Studio sont vraiment nuls.
Warren P
1
@WarrenP Pourriez-vous s'il vous plaît développer?
Tjaart
1
Créez une application serveur en C # et créez une application de bureau dans Delphi, car delphi produit du code natif qui est plus difficile à déchiffrer!
justyy
14

Les deux ont tous les 6 points que vous voulez, mais je pense que C # a l'avantage sur la plupart sinon tous.

Pour parcourir les points:

  1. Delphi nécessite une gestion de la mémoire, vous pouvez donc affirmer que, à lui seul, C # est plus simple. La réponse acceptée mentionne la syntaxe ici, eh bien la syntaxe C # est similaire à la fois à PHP et Java, donc si vous voulez être opérationnel plus rapidement à partir de l'un de ces arrière-plans, alors C # a l'avantage.
  2. Productivité, je pense que vous en faites plus rapidement en C #. La bibliothèque .net vous donne tellement que dans le mauvais vieux temps, je devrais chercher des composants Delphi tiers pour fournir.
  3. Documentation, Delphi a toujours été bonne, MSDN est meilleur, et vous trouverez une plus grande communauté pour le support, voir mon analyse de débordement de pile ci-dessous.
  4. Rapidité, Delphi pourrait avoir l'avantage, mais l'assemblage l'emporte sur tout ce qui n'est généralement pas une bonne raison de choisir une langue. Une chose que je voudrais souligner, c'est que j'ai entendu des gens citer que C # est interprété. Ce n'est pas, ça n'a jamais été, ça a toujours eu un JIT.
  5. Glissez-déposez, disponible sur les deux.
  6. Multithreading, Delphi est bon mais C # est excellent avec des constructions intégrées comme lock(){}les extensions parallèles et les nouvelles await.

Point supplémentaire, le titre de la question est la programmation graphique, pour cela je suis un grand fan de .nets WPF, qui, la seule chose que Delphi avait à mi-chemin était Bold , ce qui était pénible à apprivoiser et maintenant mort.

Taille de la communauté, en comparant le nombre de questions à ce sujet et le débordement de pile sur les balises Delphi et C #, vous verrez que la taille de la communauté C # est beaucoup plus grande.

Débordement de pile:

  • Delphi 17K
  • C # 367K
  • Java 312K
  • c 73K

J'ai ajouté c, pour montrer que ce n'est pas un problème avec l'âge des langues et Javajuste pour comparaison.

Je ne suis pas un fan de C # ou de Java, j'étais un grand fan de Delphi, un développeur professionnel de Delphi pur pendant 7 ans, mais ils l'ont vraiment foutu à partir de 2005 avec leur incursion mal faite dans .net qui a foutu la stabilité de la IDE pour une compilation 32 bits même native. Delphi 7 était à mon avis le summum du langage.

Weston
la source
Que diriez-vous d'une réponse avec ce downvote?
weston
1
Je ne suis pas le downvoter, mais je dirais que vous ne répondez pas à la question. Vous êtes en train d'évaluer la popularité de Delphi sur stackoverflow. Vous faites certainement un point, mais c'est à mon humble avis assez mineur. Être le seul à utiliser une technologie n'est pas toujours une mauvaise chose.
Simon Bergot
@Simon fair point, j'ai maintenant répondu à tous les points et intégré l'analyse du nombre de questions dans un point plus large sur la taille de la communauté.
weston
On pourrait faire valoir que le langage qui entraîne plus de questions est plus compliqué à utiliser. ;-) En quoi Bold était-il similaire à WPF? J'ai utilisé WPF et je n'ai vu aucune similitude.
Jim McKeeth
@JimMcKeeth Bold et WPF fournissent un cadre pour lier les données aux contrôles d'interface utilisateur de sorte que lorsque les données changent, l'interface utilisateur se met à jour et vice versa si nécessaire.
weston
8

Quand j'étais à l'université, j'ai appris la programmation avec Delphi. Je suis un peu rouillé, mais je lis actuellement beaucoup de code Delphi pour le porter sur une application C #.

Je préfère de beaucoup l'OO avec des tendances fonctionnelles de C # à la procédure avec des tendances OO de Delphi. Vous devez considérer comment vous préférez coder lorsque vous choisissez entre eux. Je ne pense pas qu'il y ait beaucoup de choses en ce qui concerne la simplicité - juste ce que vous trouvez plus facile. Il en va de même pour la productivité.

En termes de RAD (développement rapide d'applications), il n'y a pas grand-chose entre winforms et Delphi GUI design. Ils me rappellent.

WPF, d'autre part, est quelque chose que je préfère aux deux pour son style déclaratif.

Je ne pense pas qu'il y ait beaucoup de différence entre la qualité et la couverture de la documentation fournie par le fournisseur pour C # ou Delphi. Je pense que vous trouverez plus d'informations non-fournisseurs sur C #, mais cela pourrait simplement être parce que je n'ai pas vraiment cherché beaucoup de choses sur Delphi.

Je n'ai pas eu à faire de programmation filetée avec Delphi, et tout réseau que j'ai fait il y a des années et je ne m'en souviens pas.

Les bibliothèques .NET pour le traitement parallèle, les événements et autres travaux de threading sont bonnes. Vous ne manquerez donc pas là-bas. Il y a beaucoup de soutien en matière de réseautage, donc encore une fois fortement recommandé.

Dans l'ensemble, j'irais avec C # /. NET. C'est en partie à cause de WPF, mais je préfère également le code que j'écris en C #. Pour autant que je sache, delphi n'a rien comme Linq, que je trouve inestimable.

Matt Ellen
la source
Merci pour votre merveilleuse réponse. quel livre as-tu lu en tant que débutant? maintenant, je vais commencer C # 4 et .NET 4 sur VS 2010
elf1984
4
Attention à essayer de porter une application Delphi en C #. Chaque fois que j'ai entendu parler d'une entreprise qui l'essayait, ils ont fini par valider chaque point soulevé par Joel dans "Things You should Never Do, Part 1" et cela s'est soldé par un désastre pour le produit et la société qui en est propriétaire.
Mason Wheeler
Désolé, je ne peux pas vraiment vous conseiller sur un livre pour débutants pour c # 4. Je ne suis pas sûr que j'en avais un quand j'ai commencé c # (dans les 1.1 jours. Je suis sûr qu'il y en avait, mais je n'en ai pas lu). Quand j'ai commencé, je pense que le premier livre que j'ai utilisé était Teach Yourself C ++ in 21 Days de Jesse Liberty, que j'ai lu avant de commencer uni. Cela m'a pris beaucoup de temps pour m'en sortir, mais j'ai beaucoup appris. Un autre bon livre que j'avais était Discover Delphi, c'était le livre du cours. Un livre que je recommande est Object Thinking de David West, car il vous fait vraiment penser à OOP et OOD, également Effective C # de Bill Wagner ...
Matt Ellen
... Ce ne sont pas vraiment des livres pour débutants, mais une fois que vous avez les bases, ils ont d'excellents conseils et astuces pour devenir un meilleur programmeur.
Matt Ellen
BTW si vous recherchez LINQ dans Delphi, consultez la bibliothèque DeHL d'Alexandru Ciobanu. Il fournit des collections et des opérateurs de style LINQ. La syntaxe LINQ (le truc pseudo-SQL) n'est pas encore dans Delphi, mais apparemment l'équipe du compilateur y travaille pour une future version.
Mason Wheeler du