Quel est le meilleur langage pour .NET selon vous ?
C#, VB.NET, F#, C++/CLI ou Delphi.NET ? Pourquoi ?

Le , par Deepin, Expert Confirmé Sénior
Quel est le meilleur langage pour .NET selon vous ? C#, VB.NET, F#, C++/CLI ou Delphi.NET ?


à tous les dotnetiens !

Lors du précédent sondage sur le sujet, vous étiez 59,90 % à plébisciter C# comme le langage à utiliser pour faire du .NET, et 20,20 % à choisir VB.NET comme votre langage préféré pour .NET.

En dehors de la simple question « Quel langage choisir pour .NET ? », ce sujet est l'occasion de partager vos avis et expériences sur les langages .NET. N'hésitez pas à en témoigner en postant à la suite. Évitez par contre de poster uniquement « Pour moi, le meilleur langage pour .NET est… »

Vous pouvez consulter les résultats du précédent sondage :
Quel langage choisir pour .NET ?

Pour quelle(s) raison(s) avez vous choisi l'un ou l'autre ?
Pour quel(s) besoin(s) ?
Quelles sont vos expériences positives ou négatives concernant ces langages ?
Quelles sont leurs forces et leur faiblesses ?
Qu'est-ce qui est présent ou absent dans l'un ou l'autre et inversement ?
Sur quels systèmes ou plateformes travaillez-vous (Windows, Linux, OS X…) ?
Vers lequel de ces langages devrait-on se tourner selon que l'on est un développeur VB, C++, Delphi ou autre ?

Comme il s'agit d'un sondage/débat, merci de suivre les consignes strictes suivantes :

- SMS interdit : essayez d'écrire en français ;

- évitez de multiplier des messages courts, et essayez de faire plutôt un seul message avec tous les points ci-dessus (vous pouvez éditer vos messages pour les améliorer). Les multiples messages seront acceptés uniquement en cas de réponse de qualité à un débat technique de qualité…

- donnez des précisions claires, nous avons par exemple toujours besoin de savoir sur quelle version du langage votre témoignage porte.

Les messages type taverne ou SMS seront effacés immédiatement sans préavis ou explications.

Notre but est de créer un débat technique de qualité.

Vous pouvez tous faire un témoignage. Par contre, pour débattre et faire plusieurs messages, vous devez être de préférence expérimenté, pas un débutant, et connaître plusieurs langages.

Si vous êtes débutant et que vous ne connaissez qu'un seul langage, vous êtes le bienvenu pour voter et apporter 1 témoignage, mais pour le débat, essayez de comprendre que vous êtes mieux placé pour lire le sujet qu'y participer…

Merci de votre compréhension à tous

P.-S. Merci de prendre les résultats du sondage seulement à titre indicatif, et je pense que ce qui sera aussi surtout intéressant, ce seront les témoignages et le débat technique… En effet, le résultat du sondage sera uniquement représentatif de l'activité des membres du club Developpez.com mais ne sera évidement pas exactement représentatif du marché en général.

À lire aussi :

Quel est votre langage de programmation préféré en 2013 ?

Quel est votre environnement de développement (EDI) préféré en 2013 ?

Merci d'avance pour votre participation et vos avis


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de tomlev tomlev
http://www.developpez.com
Rédacteur/Modérateur
le 09/08/2013 11:16
C# bien sûr !

Pour quelle(s) raison(s) avez vous choisi l'un ou l'autre ?

  • C# a été conçu spécifiquement pour la plateforme .NET, il y est donc parfaitement adapté.
  • C'est le langage le plus utilisé dans la communauté .NET, donc c'est celui pour lequel on trouve le plus facilement des exemples, de la documentation, du support, etc.


Pour quel(s) besoin(s) ?

Tous ! Applications "client lourd" Windows, outils console, apps mobiles WinRT ou Windows Phone, sites web... Je l'utilise même pour faire des petits scripts vite fait avec LINQPad

Quelles sont leurs forces et leur faiblesses ?

  • C# utilise un typage statique fort, ce qui limite les risques d'erreur (puisqu'elles sont en grande partie détectée à la compilation)
  • La syntaxe est propre et concise (en général)
  • Il évolue rapidement : chaque nouvelle version apporte son lot de nouveautés, qui pour la plupart correspondent à un réel besoin et sont donc rapidement adoptées par les développeurs (génériques, expressions lambda, Linq, programmation asynchrone, etc)


Sur quels systèmes ou plateformes travaillez-vous (Windows, Linux, OS X…) ?

Windows, Windows RT, Windows Phone

Vers lequel de ces langages devrait-on se tourner selon que l'on est un développeur VB, C++, Delphi ou autre ?

Ca peut sembler étonnant, mais je ne conseillerais pas VB.NET à un développeur VB6. Pourquoi ? Parce que même si ça semble garder en grande partie la même syntaxe et les mêmes caractéristiques, c'est en fait un langage complètement différent ! VB.NET est fonctionnellement équivalent à C# (à peu de choses près), c'est un vrai langage orienté objet, ce qui suppose de bien comprendre certains concepts qui n'existaient pas avec VB6. VB6 a donné plein de mauvaises habitudes aux développeurs, et VB.NET ne fait rien pour faire perdre ces mauvaises habitudes. Par exemple la notion d' "instance par défaut" pour les Forms est une aberration d'un point de vue POO, ça fait que plein de développeurs écrivent du code sans même savoir qu'une Form est une classe et qu'il faut normalement l'instancier pour s'en servir.

Pour un développeur C++, C++/CLI est une option évidente. Çà donne accès à la richesse du .NET framework, tout en gardant la possibilité de faire du code natif. Après, pour du pur .NET je pense que C# a une syntaxe plus adaptée.

Pour un dev Delphi, Delphi.NET est le choix naturel, mais pas forcément le meilleur. Je ne connais pas bien ce langage, mais a priori il lui manque pas mal de fonctionnalités par rapport à C#, et la communauté est nettement moins importante. De plus C# a été conçu par Anders Hejlsberg, qui est aussi le père de Delphi, donc les développeurs Delphi ne devraient pas être trop dépaysés
Avatar de BenoitM BenoitM
http://www.developpez.com
Expert Confirmé
le 09/08/2013 13:41
Citation Envoyé par Deepin  Voir le message

Pour quelle(s) raison(s) avez vous choisi l'un ou l'autre ?

Perso, ce n'est pas moi qui choisi spécialement mais plutot l'entreprise où je travaille.
J'ai fais une formation en C# mais j'ai du au début developer en VB.NET
Perso je préfere le C#
Citation Envoyé par Deepin  Voir le message
Pour quel(s) besoin(s) ?

Utilitaire, Client lourd (WinForm, WPF) Service Web (WCF)
Citation Envoyé par Deepin  Voir le message
Quelles sont vos expériences positives ou négatives concernant ces langages ?

La première expérience chercher 1h pourquoi j'avais une NullReference dans mon programme (strict on explit on n'était pas cocher par defaut)
Un peu de mal au début pour le passage de C# en VB.Net
Après on s'y fait. C'est plus verbeux que le C# mais parfois plus facilement lisible.

Ensuite quand on repasse au c# on peste pour les ; (mais avec les nouveau ide ca pose plus trop de problème on a directement l'erreur)

Part contre je ne m'habitue pas du tout au lambda expression en VB.NET
Citation Envoyé par Deepin  Voir le message
Quelles sont leurs forces et leur faiblesses ?

C# synthaxe proche de java, c,c++ et autres.
Meilleurs documentations, plus d'aide et d'exemple disponible.

VB.NET un peu plus verbeux c'est un avantage et un incovenians.
Pas de ; :p
Incovenians : Microsoft a voulu faire plaisir à ceux qui venait du monde VB6 et avait résuciter plein de mocheté qui non pas lieu d'être dans un langage Orienté Objet.

Citation Envoyé par Deepin  Voir le message
Qu'est-ce qui est présent ou absent dans l'un ou l'autre et inversement ?

Au début il y avait des truc manquant en VB.NET mais maintenant ca a été corrigé.
Part contre il y avait des simplisités dans le VB.Net pour acceder à l'appconfig, nom de machine ect.

Citation Envoyé par Deepin  Voir le message
Sur quels systèmes ou plateformes travaillez-vous (Windows, Linux, OS X…) ?

Windows

Citation Envoyé par Deepin  Voir le message
Vers lequel de ces langages devrait-on se tourner selon que l'on est un développeur VB, C++, Delphi ou autre ?

C#
même si pour un programmeur VB il est tentant de passer à VB.NET. Je pense qu'il vaut mieux faire un effort à l'apprentissage (pas si difficile que ça on s'habitue assez vite à une synthaxe, c'est surtout les conceptes OO qui sont difficile mais ca se sera aussi complexe en c# qu'en VB.NET)
car :
1) C# est plus répendu
2) Ca evite des mauvaises pratiques héritées du VB6
(même si la majorité des tricks ont été caché dans un namespace)

Bon mon experience de VB.NET datent du 2005
Avatar de gorgonite gorgonite
http://www.developpez.com
Rédacteur/Modérateur
le 11/08/2013 20:31
Citation Envoyé par Deepin  Voir le message
Pour quelle(s) raison(s) avez vous choisi l'un ou l'autre ?

F# initialement pour avoir accès avec une bibliothèque standard un peu correcte, tout en restant proche de OCaml... mais finalement F# semblant évoluer moins vite que C# même sur l'aspect purement fonctionnel et vue la lourdeur de l'intégration transparente C# <-> F#, j'ai arrêté le F#

Désormais C# (4) uniquement parce que la plateforme est disponible au boulot et que les autres solutions sont trop lourdes (scripts nécessitent installation d'une VM faute d'avoir PowerShell disponible et développement natif obligerait à balader les DLL)

nb: j'adorerais pouvoir développer les appli lourdes ou les DLL en C# et scripter en PowerShell au boulot, mais impossible pour le moment... côté perso, je n'utilise pas .Net (pas fan de Mono et j'adore le monde BSD/Linux )

Citation Envoyé par Deepin  Voir le message
Quelles sont vos expériences positives ou négatives concernant ces langages ?

F# est au final lent comparé à OCaml alors que tout le monde affirme le contraire (application-type : parseurs/compilateurs/analyseurs statiques) et mal optimisé côté consommation mémoire (alors que le problème dans l'analyse statique est l'explosion combinatoire)

A l'arrivée de C# 3.5, F# était en retard et c'est resté ainsi un (trop) long moment...

Citation Envoyé par Deepin  Voir le message
Quelles sont leurs forces et leur faiblesses ?

F# : style très compact (mais perte de compatibilité sources avec OCaml), typage statique fort... plus élégant selon moi
C# : très répandu, mieux intégré à la plateforme. capacités sympas depuis la version 4 (même si en fait certaines étaient dispo en 2 avec une syntaxe plus lourde)

Citation Envoyé par Deepin  Voir le message
Sur quels systèmes ou plateformes travaillez-vous (Windows, Linux, OS X…) ?

J'ai tenté F# sous Linux avec Mono (direction poubelle assez vite )
Désormais C# sous Windows

Citation Envoyé par Deepin  Voir le message
Vers lequel de ces langages devrait-on se tourner selon que l'on est un développeur VB, C++, Delphi ou autre ?

VB6 => réapprendre à programmer sur un vrai langage, donc quitte à tout recommencer autant prendre C#

C++, Delphi => C# ... utiliser un autre langage plus à son goût mais manquant d'intégration (cf F#) laisse sur sa faim
Avatar de FelipeVervena FelipeVervena
http://www.developpez.com
En attente de confirmation mail
le 14/08/2013 10:44
Assembleur .NET
Avatar de tomlev tomlev
http://www.developpez.com
Rédacteur/Modérateur
le 14/08/2013 10:46
Citation Envoyé par FelipeVervena  Voir le message
Assembleur .NET

Tu veux dire ça ?
http://fr.wikipedia.org/wiki/Common_...diate_Language

C'est un peu du masochisme, mais tu peux si tu veux

Code :
1
2
ldstr       "Hello world" 
call        System.Console.WriteLine
Avatar de guillaume07 guillaume07
http://www.developpez.com
Débutant
le 14/08/2013 11:11
C++/CLI sans l'ombre d'un doute ou delphi.net j'hésite
Avatar de gorgonite gorgonite
http://www.developpez.com
Rédacteur/Modérateur
le 14/08/2013 11:26
Citation Envoyé par guillaume07  Voir le message
C++/CLI sans l'ombre d'un doute

Peux-tu argumenter stp ?

N'y a-t-il pas un risque de voir diverger les sémantiques C++XXX et CLI ?
(déjà qu'entre les différents compilos C++ y a parfois des surprises )
Avatar de Nathanael Marchand Nathanael Marchand
http://www.developpez.com
Rédacteur/Modérateur
le 14/08/2013 11:47
Citation Envoyé par guillaume07  Voir le message
C++/CLI sans l'ombre d'un doute ou delphi.net j'hésite

Vous êtes a combien dans ta tête ?
Avatar de Conaclos Conaclos
http://www.developpez.com
Membre à l'essai
le 14/08/2013 13:12
Autre : Eiffel
Pour quelle(s) raison(s) avez-vous choisi l'un ou l'autre ?

J'ai choisi Eiffel pour :
  • Sa qualité: Le langage dispose d'une syntaxe claire et concise et d'une sémantique explicite.
    Il est minimaliste : Il essaye de faire beaucoup avec un nombre minimal de mécanismes. On dispose ainsi d'un langage simple et puissant.
  • sa portabilité : il peut être exécuté sur .NET, la JVM et être compilé en C.
  • ses paradigmes : Sans doute le langage orienté objet par excellence, il intègre la conception par contrat depuis ses premiers jours et supporte des fonctionnalités de langage fonctionnel (lambda fonction à travers son mécanisme à agent).
  • ses fonctionnalités avancées :
    Héritage multiple avec gestion innovante des conflits;
    Héritage non conforme;
    Mécanisme de conversion explicite;
    Surcharge des opérateurs ("+", "-", "[]",...);
    Mécanisme de parallélisation de haut niveau;
    Genericité contrainte étendue;
    Exportation sélective;
    Absence de méthodes statiques;
    Gestion locale des erreurs;
    Aucun NullPointerException;
    Aucun point de sauts (break, continue, return, yield ou goto)
  • Ses conventions : Il prône une séparation nette entre requêtes / fonctions et commandes / procédure. Cette séparation donne une simplicité aux interfaces de ses bibliothéques.
  • Son ambition : Parvenir à terme à prouver qu'un programme fonctionnera dans tous les cas de figures.


C# est également un bon langage qui a emprunté plusieurs principes à Eiffel.
Pour quel(s) besoin(s) ?

Eiffel est particulièrement adapté pour les gros projets. Il permettrait un gain de productivité par rapport à d'autres langage sur ce type de projet.

Quelles sont vos expériences positives ou négatives concernant ces langages ?

On manque vite de ses fonctionnalités lorsqu'on retourne dans un autre langage. En particulier de l'héritage multiple et de la programmation par contrat.
J'ai donc une expérience très positive concernant le langage.
En revanche il y a un manque de bibliothèques. A noter que ce point peut être corrigé en utilisant des bibliothèques d'autres langages.
Les bibliothèques existantes sont de très bonne qualité tant au niveau de leur abstraction qu'au niveau de leur documentation simple et explicite.

Sur quels systèmes ou plateformes travaillez-vous (Windows, Linux, OS X…) ?

Principalement sur Windows.

Vers lequel de ces langages devrait-on se tourner selon que l'on est un développeur VB, C++, Delphi ou autre ?


Je le conseille vivement aux programmeurs Delphi. Ils retrouvons une syntaxe "Pascal-like".
Les programmeurs C# pourrait regretter l'abscnce d'un typage immuable et read-only et LINQ.
Avatar de Luckyluke34 Luckyluke34
http://www.developpez.com
Membre chevronné
le 14/08/2013 16:32
J'ai répondu Sans Opinion car il n'y a pas de "meilleur langage", juste des langages plus ou moins adaptés selon le besoin.

J'utilise C# la majorité du temps, VB .Net par nécessité sur du code legacy, F# pour des projets/recherches perso, PowerShell pour l'infrastructure.
Offres d'emploi IT
Leader technique PHP5 / Framework Symfony 2 - Angular.JS (scrum)
CDI
lfzpartner.com - Ile de France - Paris (75000)
Parue le 27/06/2014
Développeur référent drupal
Freelance
LUENCE - Alsace - Schiltigheim (67300)
Parue le 13/07/2014
Chargé d'opérations H/F
CDI
Pages Jaunes - Franche Comté - Sèvres (92310)
Parue le 09/07/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula