CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

C# versus C++

final-hearts
final-hearts
Niveau 10
22 août 2009 à 19:11:20

Je programme en C++(je maitrise SDL, FMOD, SFML, et un peu OpenGl ainsi que la STL(list,map,deque)), mais j'ai décidé de me mettre à étudié le C# et j'ai commencé par la wiki du C#, mais j'ai surtout l'impression que le C# est plus limité que le C++

Donc j'aimerais savoir ce que vous pensez du C# par rapport au C++ , en argumentant si possible, car j'ai du mal à voir ce qu'offre le vraiment C# par rapport au C++.

isukthar
isukthar
Niveau 10
22 août 2009 à 21:30:25

C# est plus haut niveau que C++, d'ailleurs C# est plutôt au niveau de Java. En C#, tu as un garbage collector, c'est plus fortement typé, et il y a quelques librairie suplémentaires (comme l'équivalent de l'API reflection de Java).

KouicKouic
KouicKouic
Niveau 6
23 août 2009 à 12:45:13

Bonjour,
Comparer le C++ et le C# n'est pas facile. Ce sont deux langages qui ne sont pas utilisés pour les mêmes choses.
C# est plus porche du Java, sur lequel il à tout pomper (troll ?? nooonnnn ;-)
Honnetement, je suis pro C++, et considere que C# est une riposte de microsoft au Java.

C# est un langage totalement objet, permettant de faire rapidement des prog propre, grâce à une collection d'objet permettant d'avoir accès à tout sans ce casser la tête (interface graphique, réseau, stockage...)

C++ est plus proche du matériel, mais j'ai du mal à dire qu'il est de plus bas niveau. Je dis cela car lorsque l'on maitrise bien le C++ et les bibliotheques qu'il peux utiliser, il n'a pas grand chose à envier au C#, ni point de vue tech, ni point de vue concept.
Bien entendu, C++ ne dispose pas de certaine chose, tel que l'introspection comme le font le Java et C# (et bien d'autre langages), mais on arrive à s'en passer (si si)

Ce qui m'a le plus décu sur le C# (avis datant d'il y a 2 ans) c'est la lourdeur des interface graphique (ça a peut être changé maintenant) et surtout le fait qu'il ne soit pas vraiment portable, pas de support officiel de Mircosoft c'est vraiment pas cool.

En conclusion, étant expert C++ et d'un bon niveau en C# je ne trouve pas d'interet à utiliser C# qui ne m'apporte rien d'essentiel. Si je veux faire un prog rapidement, j'utilise Java :-p
C++ me permet de faire des prog plus rapide et leger en mémoire, donc globalement plus performant.
Pour ceux qui lancerait l'excuse de la meilleur utilisation des instructions des proc en C# (compil just in time & co), je leur répondrai que je suis du genre à faire plusieurs compilation du même code avec différentes configurations de compilation pour les différentes plateformes (32, 64, SSE 1&2 & co (j'adore le man GCC sur la parallelisation)) ;-p

final-hearts
final-hearts
Niveau 10
23 août 2009 à 16:17:59

Oui, je suis d'accord avec toi KouicKouic que le C++ n'a pas grand chose à envier au C# c'est pourquoi je me demandais pourquoi avoir créé un nouveau langage etc...

godrik
godrik
Niveau 30
23 août 2009 à 16:29:09

Je suis globalement de l'avis de KouicKouic a l'exception de l'utilisatoin de java pour les choses graphique/rapide. Les libs graphique des C# sont bien integre dans windows alors que celle de java ne le sont pas. Si on vise une plateforme windows, C# est probablement un meilleur choix que java.

Pourquoi C# a ete cree par microsoft, c'est parcequ'ils avaient beson d'un java like dans les langages compris par .NET. Choisir java, ca fait mauvais genre, donc ils ont fait un clone. La difference entre C# et java ne m'a pas l'air suffisante pour justifier un nouveau langage.

Pour moi, la difference entre C++ et C# pour les developpeurs windows, c'est la difference entre j'ai potentiellement besoin de perf et donc de descendre potentiellement dans des details sordides ou je n'en ai pas besoin.

sangohan55
sangohan55
Niveau 10
24 août 2009 à 12:11:40

D'abord le lien sacré : http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp

Pourquoi programmer en C# au lieu de C++ ? Bah je dirais que c'est beaucoup plus agréable de coder en C# qu'en C++, GC, framework énorme sous windows qui permet de faire *tout* et facilement http://msdn.microsoft.comom/fr-fr/library/d11h6832.aspx (si jamais tu veux faire un truc qui n'est pas disponible avec le CLR, tu peux utiliser l'interopérabilité COM).

Pour les jeux vidéo, tu as des wrapper/binding de lib connu en C++ pour .NET, et surtout XNA, je te laisse regarder ça http://www.youtube.com/watch?v=TgChURF5fQE , le tout sans lag (donc perf pas si naze que ça) et en plus ça fonctionne sous PC et xbox 360.

Pour les IHM, c'est kif-kif entre C++/Qt et WPF, si tu connais bien Qt tu peux être très productif, après personnellement, j'utilise WPF pour les raisons citées plus haut, l'intégration avec windows, la communauté, et la doc.

_skip
_skip
Niveau 10
24 août 2009 à 21:28:37

Ce que le C# offre de plus que le C++? Ben il offre un framework très riche pour tout ce qui est GUI, RIA, BDD et applications serveurs.
Comme ça a été dit, c'est commode à bosser avec, les bibliothèques de base sont infiniment plus riches et commode à employer que la STL, tout ce qui est socket, connexion, webservice se créé beaucoup plus simplement en C# qu'en C++...

Que dire c'est facile à coder, facile à débugger, facile à profiler, ça réduit quasiment à zéro les risques de fuite mémoire...

En fait les gens s'acharnent à vouloir comparer ces deux technos. C'est inutile car elles ont des utilisations complètement différentes. C# est surtout utilisé dans le domaine de la gestion, des applications web/server. C/C++ touche plutôt le développement industriel, le bas niveau ou les applications ou la vitesse est critique.

Quant à la comparaison avec java... mouarrff. C#, question pur langage, est des kilomètres devant. Question productivité aussi... Par contre cette limitation au monde windows est encore un trop restrictive et il existe beaucoup plus de frameworks ciblés en java (ce qui apporte aussi un certain lot de problèmes en plus de la flexibilité).

(PS: Pour info, j'ai des expériences professionnelles sur les 3 langages)

KouicKouic
KouicKouic
Niveau 6
25 août 2009 à 00:12:19

"Quant à la comparaison avec java... mouarrff. C#, question pur langage, est des kilomètres devant. Question productivité aussi..."

Haaa, nous rentrons dans le vif du sujet. Pourrais tu, _skip, approfondir cette assertion ?

godrik
godrik
Niveau 30
25 août 2009 à 00:59:31

kouickouic, la page wikipedia est assez extensive sur le sujet.

_skip
_skip
Niveau 10
25 août 2009 à 07:18:31

Allez, quelques éléments pour te répondre :

-C# supporte les génériques et leur optimisation en runtime (en java ça te génère le même bytecode que sans génériques). En plus les types valeurs peuvent servir de paramètre aux classes génériques, comme en c++.

-C# supporte les structures, le passage de type valeur par référence, les unions sauf erreur (même si ça a aucun sens).

-C# la redéfinition de certains opérateurs.

-C# supporte les properties (Et ça allège énormément les classes et la documentation).

-C# supporte les closures, les pseudo pointeurs de fonctions (delegate), les expressions lambdas tout ça (très utile quand on veut lancer des threads dans un contexte de méthode sans trop disperser)...

-C# supporte les blocs ARM (avec la directive using qui évite des try-multiple_catchs-multiple_rethrow). Et dire que ce n'est pas passé pour java 7 qui arrive... Dommage ça!

Je parle pas en temps que fanboy, attention, je fais juste que constater + ou - objectivement malgré mes préférences.

KouicKouic
KouicKouic
Niveau 6
25 août 2009 à 17:03:41

La page de wikipedia est pas mal, mais c'est juste une liste des différences. Ce qui est interressant, c'est les avis des personnes connaissant bien le langage. Sur ce point la, j'ai été exaucé :)

Sinon, pour en revenir au C++ / C# :
C'est vrai que la video XNA Racing Game est jolie. Faire une partie du jeu en .NET et ce qui demande de la rapidité en C, le tout couplé, est un bon compromis apparemment.

Bon, je re-dévi du sujet, mais sa m'interresse bcp.
Depuis, qu'Oracle à racheté Sun, le ciel s'assombir pour Java (moi pécimiste ?? nooooooonnn).
Si .NET tournait sous Unix/Linux/Windows sans distinction il serait alors loin devant Java. Ce n'est pas encore ca actuellement, il ne bat pas le rapport qualité / prix de Java (pour le moment, attendons l'effet Oracle).
Actuellement, je pense qu'un serveur d'appl Linux + Apache+tomcat/Jboss/glassfish et moins chère qu'une solution .NET équivalente.
Me trompe-je ?

_skip
_skip
Niveau 10
26 août 2009 à 08:46:52
  1. KouicKouic Voir le profil de KouicKouic
  2. Posté le 25 août 2009 à 17:03:41 Avertir un administrateur
  3. Depuis, qu'Oracle à racheté Sun, le ciel s'assombir pour Java (moi pécimiste ?? nooooooonnn).

:d) Java est open source et c'est le produit phare de SUN au niveau software (ouais bon y'a aussi solaris). Oracle pourra pas faire ce qu'il veut avec. En revanche je suppose que cela peut impacter sur les cycles d'évolution et leur rapidité (qui est pas fameuse actuellement).
Par contre on se demande ce qu'ils feront de javafx par exemple et des autres projets un peu à la traîne.

Je vois plus de gens s'inquiéter pour mysql en revanche, même si perso je pense pas que ce soit le même marché que les DB Oracle, de loin pas.

Si .NET tournait sous Unix/Linux/Windows sans distinction il serait alors loin devant Java. Ce n'est pas encore ca actuellement, il ne bat pas le rapport qualité / prix de Java (pour le moment, attendons l'effet Oracle).

:d) Java est pas seulement implanté dans le monde non microsoft mais aussi, c'est le langage de choix pour tout ce qui est open source. Ca fait qu'une énorme floppée de projets et de librairies open source sont en java actuellement.

Beaucoup des plus intéressantes ont été portées en .Net mais l'écart est encore important.

il ne bat pas le rapport qualité / prix de Java (pour le moment, attendons l'effet Oracle).
Actuellement, je pense qu'un serveur d'appl Linux + Apache+tomcat/Jboss/glassfish et moins chère qu'une solution .NET équivalente.
Me trompe-je ?

:d) Alors je vais être subjectif, c'est pas moins cher en tout cas en terme de coût de mise en place, de coût de développement et de coût de maintenance.

Si tu regades JBoss, même J2EE en général l'usine à gaz que c'est... Je te jure que c'est la jungle sauvage de configurer ces serveurs d'applications à coups de multiples fichiers XML, avec des documentations à l'emporte-pièces-détachées comme on en trouve sur le net...

Le monde microsoft ou tout se configure à l'aide d'interface graphique, c'est nettement plus confortable et intégré.

Après c'est une question de besoin, mais si tu peux sortir IIS à la place de jboss ou websphere, faut pas s'en priver.

tomtomclancy
tomtomclancy
Niveau 9
31 août 2009 à 13:47:56

final-hearts
Comme tu as compris ce sont deux langages différents et qui n'ont pas le même usage et surtout qui ne nécessitent pas la même manière de penser.
:d) Si tu est habitué a utiliser les destructeurs de classe les allocations mémoires et surtout manipuler les pointeurs. tu oubli tout ca en C#

:d) Si tu veux apprendre un langage de ce type commence par le java, au moins il est portable (tu ne fera pas marcher du C# sur autre chose que du windows)

:d) J'ai vu que tout comme le C++ le C# permet d'utiliser le HLSL, malheureusement j'ai pas vu d'équivalent JAVA.

A toi de voir, de toute façon si tu connais le C++ tu n'auras aucun mal a te mettre a un autre langage.
A part le GC toute les notions que tu verra dans les autres langages existent dans le C++. :ok:

scqa
scqa
Niveau 1
11 septembre 2009 à 23:51:54

Le codage en C# sous Linux est possible grace au travail de Miguel de Icaza (à l'origine de Gnome entre autre), et qui pour notre plus grand bonheur, c'est aussi attaqué au portage de silverlight.

http://www.mono-project.com/Main_Page

chris_27
chris_27
Niveau 10
12 septembre 2009 à 00:18:14

« Le codage en C# sous Linux est possible grace au travail de Miguel de Icaza » :d) il aurait mieux fait de s'abstenir./

_skip
_skip
Niveau 10
12 septembre 2009 à 10:15:38

Non seulement ça existe mais ça marche du tonnerre en plus à tel point que les développeurs le préfèrent à java sur les stations de travail linux :

http://www.sdtimes.com/link/33618

C'est un excellent projet, puis une chance d'avoir un langage managé de qualité sur des plateformes linux. J'ai vraiment du mal à voir comment on peut être contre.

Par ailleurs, contrairement à ce qui a été dit plus haut, il existe des implémentations de GC en C++.

Pseudo supprimé
Pseudo supprimé 13 septembre 2009 à 10:25:12

"il aurait mieux fait de s'abstenir."

Ah ouai et pourquoi ça ? :doute:

chris_27
chris_27
Niveau 10
13 septembre 2009 à 10:45:49

Personne ne voulait de mono, et aujourd'hui c'est un (yet another big and useless) prérequis à Gnome.

dnob700
dnob700
Niveau 10
13 septembre 2009 à 12:42:00

Il n'y a vraiment que des utilisateurs de Linux pour sortir des trolls gros comme ça ...

_skip
_skip
Niveau 10
13 septembre 2009 à 13:15:28

Il y aussi le vieux barbu, là, Richard Stallman qui est contre. Parce que la spécification CLI et C# en tant que langage est libre, mais pas assez GPL à son goût.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment