C#, VB.NET, J#, C++.NET ou encore Delphi.NET, que préférez vous ?
Vous avez testé au moins deux de ces langages mais n'avez finalement choisi d'en approfondir qu'un seul ? Pourquoi ce choix ? Quelles raisons vous ont poussé à adopter l'un plutôt que l'autre ? Les côtés positifs de l'un, les négatifs de l'autre, selon votre point de vue (il ne s'agira en aucun cas d'une vérité universelle ). Dîtes nous tout !
NB : Si vous avez choisi d'approfondir deux langages ou même plus, vous pouvez (je dirais même : "Vous DEVEZ") expliquer pourquoi ...
Remarque : Si vous n'avez testé qu'un seul de ces langages, vous pouvez toujours poster ici vos motivations mais ne critiquer pas alors les autres langages non testés.
Merci !
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
J'étais sur C++ avant... mais face à l'extrême complexité pour créer une application GUI pour Windows avec l'API Win32 et poussé par un ami qui me conseillait de me mettre au C#, eh bien je m'y suis lancé. Je n'ai même pas commencé par regarder C++.NET... Et effectivement je n'ai pas été déçu par la simplicité incroyable qu'il me fallait en C# pour créer une application avec GUI. A partir de ce moment là, je me suis beaucoup plus investi dans le C# que dans le C++... et ai fait pas mal de progrès très rapidement (alors qu'en C++, je stagnais toujours au même niveau ou presque...)
Par la suite, j'ai testé VB.NET... venant de C# (et de C++), je n'ai pas du tout aimé (notamment le fait qu'il ne faille pas de ; à la fin de chaque ligne de code, c'était très agaçant.... mais c'est juste une question d'habitute çà). Ce que je n'ai pas aimé dans VB.NET, c'est que tout le code designer est complètement caché... et même introuvable. Même les constructeurs de Form sont cachés (mais trouvables cette fois-ci). Je trouve aussi que la syntaxe de VB.NET est loin d'être aussi simple que celle de C# (Dim s As String = "Coucou" en VB.NET contre string s = "Coucou"; en C# => Je pense que tout le monde est d'accord pour dire que C# est plus explicite sur ce point là). Bref, je n'ai pas aimé VB.NET pour sa syntaxe qui me semblait vraiment compliquée et peu évidente venant de C#.
J'ai également survolé (encore plus rapidement que VB.NET) C++.NET... C'est une horreur pour moi !!! Syntaxe très compliquée due aux nouveaux mot-clés (notamment gcnew qui m'a bien embrouillé au début)... obligé de placer le mot clé ref devant le mot clé class (quelle est l'utilité ? vu qu'une classe est forcément un type référence..). Réapparition du mot clé #include et des fichiers .h et cie... ca me rappellait tellement les anciennces galères avec C++ normal que je suis pas resté 10 mn sous C++.NET...
Je suis retourné (même resté on peut dire) sur C# et je regrette pas car C# reste (et ce que je lis dans les bouquins me le confirme) le Langage permettant d'exploiter à fond .NET (alors que VB.NET présente quelques lacunes par exemple).
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
D'abord je voudrais préciser un petit truc, ce que j'ai dit est relative à VS2003, peut-être qu'avec VS2005, tout ce qui suit ne veut plus rien dire.
Niveau syntaxe, je dirais que la syntaxe VB n'est pas compliqué par rapport à celle de C#, mais est beaucoup plus longue, exemple:
Dim d as integer = 0 //VB
int d = 0; //C#
addhandlder button1.click, addressof button1_click //VB
button1.Click += new EventHandler(button1_Click); //C#
public class Form1 inherits System.Windows.Forms.Form //VB
public class Form1 : System.Windows.Forms.Form //C#
...
Par contre, je connais que celle là qui est pour VB:
Pour abonner trois button à un même évenement
//----Quelque part avec C#------------
button1.Click+=new EventHandler(button1_Click);
button2.Click+=new EventHandler(button1_Click);
button3.Click+=new EventHandler(button1_Click);
//-----C'est tout ce qui a à faire avec VB---------------
private sub mesbuttons_click() handles button1.click, button2.click, button3.click
End Sub
Une petite remarque(j'ai pas trouvé quoi dire, lol):
C#:ça marche
object m=null;
if((m!=null)&&(m.ToString()=="Molo"))
MessageBox.Show("C'est toi Molo");
else
MessageBox.Show("Ou t'es null ou t'es pas Molo");
VB: ça plante sur la deuxième condition de if aprés le and alors que la première condition n'est pas vérifier(Erreur : La référence d'objet n'est pas définie à une instance d'un objet.)
Dim m As Object = Nothing
If Not m Is Nothing And m.ToString = "Molo" Then
MessageBox.Show("C'est toi Molo")
Else
MessageBox.Show("Ou t'es null ou t'es pas Molo")
End If
le And et Or sous VB ne sont pas optimisé, if(condition1)and(condition2), même si condition1 est false, il vérifie aussi la deuxième(même truc pour or), je ne sais pas pour vous mais moi je ne vois pas d'utilité à cela, pour ne pas énerver Les users de VB, il fournit bien deux autres opérateur AndAlso et OrElse pour componser celà et qui sont à mon avis les vrais équivalents des && et ||.
Un autre avantage à C# c'est qu'il est possible de l'utiliser sur d'autre plateforme que windows. Je ne sais pas si c'est un avantage ou pas, avec VB il est encore possible de traviller en procédural, tu peux ajouter un nouveau fichier module, et y mettre n'importe quoi, données, fonctions,procédures sans aucun public class en haut.
Pour ma part j'utilise les deux, VB beaucoup plus que C#, J# jamais vu,C++ Seuleument dans le cadre Win32 où je sais que ce compilateur est amélioré, d'ailleurs il me trouve tout le temps des warning beaucoup plus qu'avec DevC++.
Faut l'avouer quandmême, jusqu'à présent(je pense), ce qui peut être fait par C# peut très bien se faire avec VB.
__________________________
L'une des fonctions principales d'un ami consiste à subir, sous une forme plus douce et symbolique, les châtiments que nous désirerions, sans le pouvoir, infliger à nos ennemis. Aldous Huxley
Le meilleur des mondes
Molo dit : Faut l'avouer quandmême, jusqu'à présent(je pense), ce qui peut être fait par C# peut très bien se faire avec VB.
Non, pas du tout... C# a des plus que VB.NET n'a pas et vice-versa... La surchage d'opérateurs n'est pas possible sous VB.NET par exemple... VB.NET dispose du mot clé My que C# n'a pas... C# est un langage à fort typage et qui tient compte de la casse alors que VB.NET non...Bref... ca reste différents quand même...
Pour l'histoire des évènement en C#, je crois pas que ca soit possible en effet de faire comme tu l'as montré en VB.NET...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
On dirait que t'as mis ma phrase sous microscope, tu as trop détaillé mon idée, je voulais dire par exemple que toutes les fonctionnalités attendues d'une application GUI peuvent très bien être satisfaites soit par C# ou VB, que par exemple avec ASP Net, Rien de faisable avec C# ne l'est pas avec VB.
Bref, je le redis, je pense que tout projet pouvant être réalisé avec dotnet, peut trés bien être fait avec C# ou VB, mais biensur avec différent manières selon le langage.
Pour infos, c'est bien pour ce genre de plus(surcharge d'opérateur) que je préfére le C# qu'au VB.
__________________________
L'une des fonctions principales d'un ami consiste à subir, sous une forme plus douce et symbolique, les châtiments que nous désirerions, sans le pouvoir, infliger à nos ennemis. Aldous Huxley
Le meilleur des mondes
Je m'execuse premièrement de devoir remonter le topic(car il comporte des erreurs), et deuxièmement parce que j'en suis le responsable.
Czayfaboo dit : La surchage d'opérateurs n'est pas possible sous VB.NET par exemple... VB.NET dispose du mot clé My que C# n'a pas
Moi, J'ai dit : Pour infos, c'est bien pour ce genre de plus(surcharge d'opérateur) que je préfére le C# qu'au VB.
Puisque on a parlé de My, c'est qu'il s'agit de VB 2005(on pourra pas dire qu'en parler de 2003), eh bien il se trouve que la surcharge d'opérateurs est belle et bien disponible, nous avions tord: c'est ici
__________________________
L'une des fonctions principales d'un ami consiste à subir, sous une forme plus douce et symbolique, les châtiments que nous désirerions, sans le pouvoir, infliger à nos ennemis. Aldous Huxley
Le meilleur des mondes
Pas grave de remonter le topic, cela permet de répondre a un sujet qui se voulait populaire et non une discussion entre deux erudits (qui en trois postes on littéralement largué tous le monde) .
Vb & C# Quelle heureuse coincidence, j'etais un ancien de VB et je me met trés doucement a C#. Pour deux raisons principale : Le language objet ma l'air plus puissant et C# semble plus multiplateforme. Et contrairement a C++ est plus facile a apprivoiser et ce dit etre le langage d'avenir. Ceci étant c'est pas evident de passer d'un langage "fonction" (vb, php, actionscript) a un langage objet (c++, c#). Je trouve que le langage "fonction" est vraiment intuitif (genre rouleau compresseur) et que cest parfais pour debuter, mais reste limitté avec des puissances de calcul largement inférieur aux langages objet.
@ Molo : Ah ben oui, tu as fourni La Preuve... donc, effectivement j'étais pas tout à fait à jour en VB.NET (en même temps, j'en fait pas lol ).
Molo dit : Je m'execuse premièrement de devoir remonter le topic
Au contraire... vaut mieux remonter le topic pour détailler/corriger quelque chose qui a été dit plutôt que de le laisser tel quel...
@ Fwdavy :
Fwdavy dit : qui en trois postes on littéralement largué tous le monde
lol, mais non pas du tout ... on essaie (enfin pour ma part en tout cas ) de ne pas vous embrouiller... Le but à la base de ce topic est de comparer au moins deux langages .NET et dire lequel on a choisit et pourquoi... et même si on a fait que 60s de J# avant de passer définitivement à C# ou autre... et ben c'est pas grave... tout le monde peut donner son avis... (en précisant quand même qu'on a fait que 60s de J# )... La preuve.. tu viens de donner ton point de vue sur la question...
Si tu viens de VB... je comprend bien que la transition vers C# soit difficile... vu que ca a rien à voir... actionscript... pfou... c'est une misère (jamais réussi à faire quelque chose de bien en as lol)... même avec as 2.0 : la déclaration typée est atroce (var maVariable:type => que c'est compliqué pour si peu..)... et si tu as commencé par php et pas le C ou le C++ ben c'est sûr que tu as plutôt eu tendance à "scripter" plutot qu'à concevoir... c'est pas vraiment le même type de raisonnement... par contre la transition du C/C++ vers php ou C# est vraiment très facile car la syntaxe reste globalement la même et il n'y a que très peu de différences/nouveautés ou plus à apprendre...
Ensuite... C# n'est pas vraiment plus portable que VB.NET... ca n'a pas de sens... ou pas comme je l'ai compris dans ta phrase en tout cas...
C#, VB.NET, j#, Delphi.NET, C++.NET, Eiffel# et autres lanages .NET compilent tous en MSIL (Microsoft Intermediate Language = Langage intermédaire)... celui est à la fin compilé par le Framework (que ce soit celui de MS ou Mono ou encore DotGnu)... par conséquent, le code que tu écris n'a pas à se soucier de la plateforme sur laquelle tu vas l'exécuter... (sauf si tu veux faire des Win Forms sous Linux, tu auras quelques problèmes pck c'est pas encore au point)...
Par contre... C# est un langage non propriétaire contrairement à VB.NET... ca veut dire qu'il est possible de créer un compilateur pour C# sur n'importe quelle plateforme car la doc technique est dispo en ligne (je sais pas où par contre )... ... enfin c'est ce que j'ai lu lol
PHP avec sa version 5 (pas avant il me semble) est devenu lui aussi un langage OO mais la verison OO de PHP reste moins puissante que la version procédurale... Et c'est ce qui est constaté je pense de manière générale... C est plus puissant que C++ car le C ne fait que du procédural... mais le C++ te permet de faire des choses plus élablorées que le C, plus rapidement et plus facile à mettre à niveau... etc. etc.
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
pour ma part vb.net j'espère un jour devenir intelligent pour apprendre le c# lol j'ai choisi ce language car j'ai développé quand j'étais plus jeune en basic d'ou le vb
Salut,
Vous l'aurez compris, je ne suis pas en mesure de vous parler des avantages et inconvenients de C# et Vb Net vu que je suis encore sur VS2003, à l'époque, c'était énervant, quand je telechargais des sources DotNet, personnalisation de grille, création de son propre menu XP, n'importe quoi... tout était en C#, rien(d'accord rare) étaient ceux en VB, et même le MSDN me donnait l'impression qu'il incite les développeurs à passer à C# et délaisser VB, lol.
Mais avec VS2005, je crois que je me suis trompé, VB 2005 contient bien des nouveautés, surcharge d'operateur, classe générique, My, ça prouve qu'il est encore sur le coup.
Vous voulez causer du J#, une fois je voulais me taper quelque ligne java, j'avais pas jbuilder, j'avais jcreator, habitué à VS, je me suis rappellé qu'il offre j#, je l'ai lancé, trop semblable avec le code C#, on retrouve les fameux set et get, par exemple pour changer le texte d'une zone de texte, faudra mettre montextbox.set_Text("Molo") et non montextbox.Text="Molo".
J'ai essayé un simple test connu de java, on disait qu'on java tout est object (référence d'un object), alors:
Bref, quandmême, je ne vois pas pourquoi quelqu'un voudrait faire du java avec J#, pas de portabilité...
Dites moi si j'ai généré une fois de plus des erreurs.
__________________________
L'une des fonctions principales d'un ami consiste à subir, sous une forme plus douce et symbolique, les châtiments que nous désirerions, sans le pouvoir, infliger à nos ennemis. Aldous Huxley
Le meilleur des mondes