|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2010 Messages : 93 ![]() |
Bonjour,
Je fais actuellement du JAVA et je voudrais apprendre un autre langage, j'hésite entre le C# et le C++, même si j'ai brièvement commencé a apprendre le C#. Mon principal but est la création d'applications de bureau avec de temps en temps l'utilisation de dll natives comme user32.dll, mais je suis ouvert a toutes autres perspectives d'apprentissage comme le jeu vidéo, programmation système, etc... Je poste sur ce forum, car je voudrais avoir l'avis de personnes qui utilisent le C++ et qui on essayé ou pratiquent le C#. Est ce que le C# est une réelle alternative au C++? Est ce que vous utilisez le Framework .net ou plutôt Qt ? Malgré la gestion des pointeurs vous préférez utiliser le C++ ou au contraire le C# pour les éviter ? Quel est le langage qui s'en sortira le mieux dans le futur avec l'arrivée des tablettes, de Windows 8, utilisation du mac plus importante, ... Tous les avis sont les bienvenus, les perspectives d'apprentissage possibles avec ces 2 langages, lequel est le plus utiliser dans le milieu professionnel, ... Merci de votre aide ! |
|
|
00
|
|
|
#2 |
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 676 ![]() |
Mon avis est que si tu es dans une démarche d'apprentissage, le C# est très proche du Java, et donc ne t'apprendra pas beaucoup de nouveaux concepts. Alors que le C++ présente des différences substantielles en terme de philosophie, et donc te permettra de plus enrichir tes compétences.
__________________
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11. |
|
|
40
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2004 Messages : 3 672 ![]() |
Bonjour,
Juste une remarque: je programme à peu près autant en c++ qu'en c#, et selon moi, ces deux langages n'ont pas le même champ. Je veux dire que je ne les utilises pas pour faire la même chose. Basiquement, j'utilise le c# lorsque la rapidité d'exécution n'est pas une contrainte majeure (il a bien sûr des exceptions, mais grosso modo c'est ça). Sinon je rejoins Loïc: en terme d'apprentissage je te conseille le c++. Voir même le C, histoire d'être confronté de près aux problèmes de gestion de la mémoire. C'est toujours un gros avantage pour un développeur de bien comprendre ce qui se passe au niveau de la mémoire. |
|
|
20
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 316 ![]() |
Je dirais quand même le C++ au lieu du C : tu peux aborder la POO (une vraie, pas comme en C), qui est probablement le paradigme le plus utilisé actuellement ; tu peux ne pas avoir à te préoccuper de la gestion bas niveau si tu débutes (smart pointers, containers, etc) ou gérer la mémoire manuellement dans un second temps.
Pour le reste : * framework -> Qt * gestion des pointeurs -> ce n'est pas une obligation (voir même, ce n'est pas conseillé pour débuter et dans la majorité des cas) * qui s'en sortira le mieux dans le futur avec l'arrivée des tablettes, de Windows 8, utilisation du mac plus importante, ... -> a priori, le C++. Je sais pas très bien ce que vaut le C# (Mono) sur les autres plateformes
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2004 Messages : 3 672 ![]() |
S'il vient du java, il connait déjà le paradigme objet.
Je ne sais pas si c'est une bonne idée de gérer la mémoire manuellement en c++ (c-style arrays, mallocs, free...); ce n'est pas vraiment dans la philosophie oo de c++, du coup - et qui plus est s'il s'agit d'apprentissage - ça peut induire une mauvaise compréhension du langage. [HS] Le go? ![]() Pour l'instant personne n'y croit, mais c'est comme le c# il y a 10 ans: avec la machine de guerre qu'était microsoft il y a 10 ans, ça a fini par percer. Et maintenant go, avec l'omniprésence de google, peut-être dans 10 ans... [/HS] |
|
|
10
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 316 ![]() |
Pour la POO, c'est vrai. Par contre, on a tendance a être un peu plus... "exigent" (comprendre "casse-pied) en C++. Combien de dev Java connaissent Liskov, Demeter, OCP, etc (ok, tous les devs C++ ne les connaissent pas non plus... mais difficile d'échapper à Koala01, JolyLoic ou Luc Hermitte sur le forum C++
Pour la mémoire, je crois pas que gestion manuelle et POO s'oppose. La POO en C++ permet d'utiliser le RAII et donc de mettre en place des classes qui évite la gestion manuelle en apportant de fortes garanties. Mais si le besoin est là, rien ne l'interdit (demande à Joel Falcou si le C++, la méta prog et le bas niveau sont compatibiles
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
10
|
|
|
#7 |
|
Expert Confirmé
![]() Pierre Ingénieur développement logiciels Inscription : juin 2007 Messages : 1 214 ![]() |
Eh, Joël Falcou est sur ce forum? J'ai été un de ses étudiants, et j'ai un souvenir ému de ses cours.
J'ai souvenir que quelques uns de mes collègues ne comprenaient rien , mais j'ai toujours pensé qu'ils manquaient de niveau. (entre autre, ils n'avaient rien codé d'eux-même en cinq ans d'études en informatique)En effet, il expliquera bien comment touiller tous ces aspects ensembles.
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : août 2010 Messages : 93 ![]() |
Merci pour ces réponses,
Oui, je suis dans une démarche d'apprentissage, donc effectivement, le Java et le C# se ressemblent beaucoup. Sur ce point là le C++ semble plus approprié. Pour le C, je ne cache pas que je suis intéressé, mais adepte de la POO, je ne pourrais plus m'en passer. Les performances ne sont pas importantes dans la mesure ou ce que je programme reste relativement modeste en terme de ressources, donc que le langage soit managé ou compilé ça ne pose pas de soucis. Si quelqu'un d'autre veut donner son avis je suis preneur. |
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 448 ![]() |
Salut pour répondre à la question en 2 mots, mon point de vue
Pour du développement en entreprise ou informatique de gestion il es préférable d'apprendre Java ou C# Tu peux très bien faire de la POO avec ces 2langages Pour les jeux vidéos,l'informatique scientifique, il vaut mieux apprendre le C++; Open GL ou Direct X se programment principalement en C++. Ceci dit le reproche que je ferais à .NET ou Java c'est concernant la pérennité de ces frameworks.. le risque c'est que Microsoft nous refasse le coup comme avec Visual Basic... c.a.d. qu'avant il y avait un bon nombre d'applications développées avec VB ,pérennisées sur de nombreuses années. Et puis Microsoft a voulu imposer .NET donc bon nombre de projets développés avec VB partis à la poubelle ou qu'il a fallu reprendre. |
|
|
00
|
|
|
#10 | ||||||
|
Membre Expert
![]() ![]() david Responsable développement Inscription : décembre 2003 Messages : 1 296 ![]() |
Bonjour.
Citation:
Citation:
Dans mon cas pour les applications de bureau je me suis orienté sur du WindowsForm, et je fais de l'interop COM pour les parties C++. Au départ, pour les IHM je faisais du Win32, et ça m'a vite soulé, raison de mon passage à WindowsForm. Et les QT, MFC et Cie, ça ne m'a jamais emballé. Et pour le langage avec les WindowsForm, j'utilise principalement le C++/Cli et parfois du C#. Citation:
Citation:
Je ne peux pas répondre objectivement parce que j'ai fait le choix du Framework.net. Je ne connais pas assez QT pour pouvoir comparer les deux. Citation:
Dans le Framework.net tout n'est pas .net. Si vous utilisez le GDI par exemple, c'est de l'interop et vous devez libérer les objets. Un Pen ou un Brush, il faut appelez la méthode Dispose quand c'est terminé... Donc dans cette situation je préfère gérer les pointeurs en C++ parce que j'ai l'habitude. En C# il faut à chaque fois bien lire la documentation pour savoir si un objet doit être libéré. Citation:
Pour l'avenir, si les appareils type tablette/smartphone deviennent aussi performants qu'un PC de bureau, la donne concernant le langage changera. Mais cela qui peut le savoir.
__________________
Media Foundation video decoder mpeg1/mpeg2, MediaSource Kinect http://sourceforge.net/projects/mfnode/ http://jeux.developpez.com/faq/directx/?page=dshow |
||||||
|
|
00
|
|
|
#11 | |
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 676 ![]() |
Citation:
Et pour avoir sérieusement travaillé avec les deux, je dois dire que WPF, malgré une courbe d'apprentissage bien plus rude, offre des concepts bien plus intéressants que les winforms, en terme de customisation comme en terme de lien entre l'UI et le moteur. Qt quand je m'avait utilisé était plus proche des Winforms, mais il a évolué depuis, et je ne me prononcerais pas sur sa version actuelle. Il semblerait que Microsoft présente une nouvelle bibliothèque d'IHM en C++ avec Visual C++2012, et qui aurait des concepts proches de WPF, mais je n'ai pas encore eu l'occasion d'essayer ce que ça donne.
__________________
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11. |
|
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() ![]() david Responsable développement Inscription : décembre 2003 Messages : 1 296 ![]() |
Citation:
Comme je ne fais pas de chose ultra-sophistiquées en WindowsForm et comme je n'ai pas encore été bloqué avec cette techno, je reste dessus. Pourrais-tu me donner des liens, je n'ai pas connaissance de cela, merci.
__________________
Media Foundation video decoder mpeg1/mpeg2, MediaSource Kinect http://sourceforge.net/projects/mfnode/ http://jeux.developpez.com/faq/directx/?page=dshow |
|
|
|
00
|
|
|
#13 | |
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 676 ![]() |
Citation:
__________________
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11. |
|
|
|
00
|
|
|
#14 |
![]() ![]() |
Salut,
[HS]Oui, c'est Joel F, tu l'as peut etre déjà croisé sur le forum
__________________
en bas de page
|
|
|
00
|
|
|
#15 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2010 Messages : 93 ![]() |
Citation:
Parce que quit a dévelloper en C++, je préfèrerais que mon code n'ai pas de dépendances, ça reviendrais au même qu'utiliser JAVA (code managé) ? En utilisant le .NET avec le C#, j'ai pu rapidement me rendre compte que la bibliothèque est tout simplement énorme, et pas que pour les GUI mais pour tout un tas d'autres classes non visuelles, est ce que la lib Qt en possède autant ? Citation:
Sinon, je viens de démarer le tutto C++ sur le SDZ que je survole un peu pour la synthaxe de base c'est bien pour démarer ? l'innitiation a Qt me semble pas mal a première vue ? |
||
|
|
00
|
|
|
#16 | ||
|
Membre Expert
![]() ![]() david Responsable développement Inscription : décembre 2003 Messages : 1 296 ![]() |
Citation:
Citation:
Merci JolyLoic pour lien : pour les IHM ce sera du xalm (ARF...) et le langage un mix de C++ et C++/CLI. Je ne sais pas trop ce que fait Microsoft avec le C++, mais entre le C++, le C++ managed, le C++/CLI et maintenant le C++/CX, ça part dans tous les sens...
__________________
Media Foundation video decoder mpeg1/mpeg2, MediaSource Kinect http://sourceforge.net/projects/mfnode/ http://jeux.developpez.com/faq/directx/?page=dshow |
||
|
|
00
|
|
|
#17 | |
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 676 ![]() |
Citation:
Android = Java et C++ Windows = C# et C++
__________________
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11. |
|
|
|
00
|
|
|
#18 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2004 Messages : 3 672 ![]() |
|
|
|
00
|
|
|
#19 | |
|
Membre Expert
![]() ![]() david Responsable développement Inscription : décembre 2003 Messages : 1 296 ![]() |
Citation:
Le C++/CLI est un langage comme le C#, VB.net, etc... C'est fait pour programmer. La nuance, c'est que l'on peut mixer du C++ natif au sein du code C++/CLI. Personnellement je ne mixe pas le C++, par souci d'organisation de code et pour d'autres considérations. J'utilise l'interop COM.
__________________
Media Foundation video decoder mpeg1/mpeg2, MediaSource Kinect http://sourceforge.net/projects/mfnode/ http://jeux.developpez.com/faq/directx/?page=dshow |
|
|
|
00
|
|
|
#20 |
|
Nouveau Membre du Club
![]() Inscription : août 2010 Messages : 93 ![]() |
Merci pour la réponse, pour Apple, je suppose que c'est sur OS de bureau et pas sur les terminaux mobiles (IPhone/IPad) ?
Sur Androïd C'est grace à QT5 qu'on pourra le faire, une information vague que j'ai pu lire sur internet ! Sinon en utilisant QT on utilise généralement quoi comme IDE ? QT Créator, ou ça vaut quand même la peine d'utiliser Visual Studio qui est quand même un super IDE ? |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com