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 ou C++ ?

Dryzix
Dryzix
Niveau 5
28 juin 2014 à 03:24:15

Bonjour, alors voilà, je me tâte à apprendre un langage de programmation, cependant j'hésite entre deux : C & C++.

Je développe déjà en php, et je connais bien ce langage, je ne me suis pas encore mis à la POO.

J'aimerais apprendre un langage rapidement, et C ressemble beaucoup à php car il me semble avoir lu que php est inspiré de C.

J'ai lu pas mal de choses confrontant ces deux langages et j'hésites encore..

Lequel choisir ?
Lequel à les meilleurs performances ?

Sachant bien sûr que je ne dispose pas de trop de temps et C serait pour moi plus facile car je connais php comme dit précédemment.

Inutile de me proposer la fonction rechercher, c'est déjà fait.

Pseudo supprimé
Pseudo supprimé 28 juin 2014 à 03:24:24
Dryzix
Dryzix
Niveau 5
28 juin 2014 à 03:25:07

Suce mes ballz Serialesky :hap:

Pseudo supprimé
Pseudo supprimé 28 juin 2014 à 03:25:13

Avec plaisir. :hap:

Chosun
Chosun
Niveau 10
28 juin 2014 à 08:17:33

Apprend d'abord le C, après tu passes au C++ avec la notion d'objet et de vecteur :oui:

Odvie
Odvie
Niveau 10
28 juin 2014 à 09:20:05

Le PHP est dérivé du C, comme le C++ d'une certaine façon.

Pour ce qui est des performances, au niveau que j'imagine être le tien (donc amateur :hap: ), tu auras aucune différence notable entre le C et le C++.

Le C, ça devrait être rapide pour toi, donc je pense que tu peux faire les deux, C et C++. Y'a que les pointeurs qui vont demander un certain temps avant de saisir pleinement leur fonction :hap: .

dark_drow
dark_drow
Niveau 15
28 juin 2014 à 10:44:47

le C :)

Pseudo supprimé
Pseudo supprimé 28 juin 2014 à 13:20:42

Si t'es habitué à la programmation procédurale et que t'as pas fait de programmation orientée objet alors tu devrais être plus à l'aise avec le C.
Si tu choisis le C++ tu vas devoir changer ta façon de programmer avec la POO donc mettre plus de temps à appréhender certains concepts.

Je pense pas que ça soit une bonne idée de comparer le C et le C++ par les performances.
Je pense que ça dépend de comment tu veux programmer et quel est la méthode de programmation avec laquelle tu seras le plus productif. :(

Si t'es à l'aise avec le PHP alors tu devrais l'être avec le C sinon tu peux découvrir la programmation orientée objet avec le C++ et voir si ça te plaît.

Je t'ai pas trop aidé sur ton choix mais je peux pas faire plus que ça. :hap:

Google_Bot
Google_Bot
Niveau 14
28 juin 2014 à 14:03:47

J'ai envie de dire que faire du C++ "sans faire de C", c'est impossible en soi.
A quelques incompatibilités près, le C++ reste du C doté d'une couche objet (donc essentiellement des éléments syntaxiques nouveau que le compilateur saura appréhender).

Du coup, pour éviter de t'embrouiller avec les notions d'orienté objet, j'aurais tendance à te conseiller de commencer calmement par le langage C afin de voir déjà ce qu'est la programmation dans un langage procédural.
Une fois que tu seras à l'aise avec les bases du C, tu pourras commencer à t'essayer à l'orienté objet dans de meilleures conditions :)

« Le PHP est dérivé du C, comme le C++ d'une certaine façon. »
:d) Euh, à part la syntaxe (comme plein d'autres langages...), je ne vois pas ce que PHP reprend de C fondamentalement.
Langage non-typé, où les signatures de fonctions n'ont plus la moindre valeur... on est bieeeen loin de la rigueur du C dans tout ça, et je n'appelle pas ça une bonne idée pour un premier langage.

Dryzix
Dryzix
Niveau 5
28 juin 2014 à 15:10:35

Merci à tous pour vos réponses, vos arguments ont guidé mon choix !

Je me diriges donc vers le C et si je suis à l'aise et que je souhaite faire de la POO j'apprendrais plus tard le C++, cependant j'ai quelques questions :

Avec quoi créé-t'on des interfaces graphiques en C ? Quelle(s) Librairie(s) ? Gtk+? Quelle est la meilleure ?
Peut-on en faire en C avec Qt ?
Peut-t'on faire autant de choses en Gtk+ qu'en Qt ?
Quels sont les différences ?

Google_Bot
Google_Bot
Niveau 14
28 juin 2014 à 16:07:57

« Avec quoi créé-t'on des interfaces graphiques en C ? Quelle(s) Librairie(s) ? Gtk+? Quelle est la meilleure ? »

Les libs de fenetrage / rendu graphique en C, c'est pas ce qui manque, la SDL est l'une des premières qui me vient à l'esprit personnellement mais ça n'engage que moi (et je n'en connais pas suffisamment d'autres pour t'aider).
La "meilleure", ça dépend du contexte (ce que tu veux faire) et de ta maîtrise des différentes libs justement (ce que tu sais faire avec).

« Peut-on en faire en C avec Qt ? »
Pas à ma connaissance. Le langage "natif" pour Qt reste le C++... patience.

Pour les deux dernières questions je laisse la parole à ceux qui ont testé les deux en parallèle et comparé :hap:

Caletlog
Caletlog
Niveau 10
28 juin 2014 à 16:22:34

Pour les différences GTK/Qt, ça doit sans doute dépendre des langages. J'ai testé les deux que sur du Ruby et du C++, donc ça reste limité comme expérience.
Perso, j'ai quand même été bien plus confortable avec Qt. Qt c'est non seulement une bibliothèque graphique ultra complète, avec une logique de tracé très intuitive, mais en plus c'est bourré d'"utility classes", des petites classes et structures pas forcément directement liées aux interfaces mais qui simplifient grandement la vie (genre des classes pour manipuler plus facilement les strings, les streams, les encodages, ...), et, ça, c'est super confortable.
À côté GTK semble plus 'embarrassant' à utiliser, je trouve. La logique de tracé est un peu plus longue et parfois 'tordue' (les systèmes de containers imbriqués sont parfois un peu bizarres à construire), et c'est très verbeux.

Et niveau intégration aux langages, même si GTK est orienté objet (mais écrit en C), ça semble bien plus forcé que Qt (objet aussi, mais de C++). Dans des langages tout objet comme Ruby, on a parfois l'impression d'être limité dans les designs objets par la couche GTK, c'est assez frustrant.

Après GTK est quand même plus 'simple' et à mon avis plus rapide à apprendre que l'usine à gaz qu'est Qt.

LEpigeon-888
LEpigeon-888
Niveau 12
28 juin 2014 à 16:46:57

GTK c'est juste pour créer des fenêtres, Qt c'est un gros framework qui peut créer des fenêtres, mais tu peux très bien l'utiliser uniquement pour la partie réseau et faire un projet en console avec, par exemple.

Et la grosse différence entre le C et le C++, outre la notion d'objet, c'est surtout la lib' standard du C++ qui est beaucoup plus complète que celle du C, surtout avec le C++11.

Dryzix
Dryzix
Niveau 5
28 juin 2014 à 16:54:33

Donc en définitif, C est limité au niveau de ses interfaces graphiques ?

C'est plus compliqué d'en créer avec C ?

C et C++ sont-ils vraiment très très différents ?

Désolé pour toutes ces questions mais vous m'aidez beaucoup avec vos réponses donc de nouvelles questions viennent à moi :hap:

Caletlog
Caletlog
Niveau 10
28 juin 2014 à 17:15:55

1) Non, pas du tout.
T'as même quelques cas où le C peut présenter un avantage sur d'autres langages au niveau des GUI. Si tu t'intéresse à la création de DE/WM pour le serveur X.org par exemple, les moyens de communiquer avec lui et les bibliothèques graphiques liées sont nettement ancrées dans le C.

2) En règle générale, oui. Mais c'est un peu ce qui fait le charme du C. C'est un langage tellement minimaliste (et pas dans le mauvais sens) qu'à un certain point, plus ou moins _tout_ est plus dur à faire en C que dans d'autres langages plus haut niveau. Est-ce que ça en vaut la peine? Ça dépend du projet.
Dans tous les cas, ça t'apprends au moins une certaine rigueur qui peut pas faire de mal, et ça te permettra de comprendre comment fonctionnent les couches d'abstractions implémentées dans les langages haut-niveau.

3) Oui et non. À ses débuts, on qualifiait le C++ de 'C with classes'. Aujourd'hui, le C++ est un peu plus éloigné du C que ça. Comme l'a dit G_B, d'accord, quand tu fais du C++ tu passes forcément par du C, et la plupart des livres sur le C++ passent par les bases du C pour rebondir sur le C++ parce que, de toute façon, le C++, à la base, c'est du C.
Par contre y'a quelques différences ; des notions qu'on utilise plus (macros, par exemple), des petites différences de comportement, des workarounds non nécessaires, etc... Et, surtout, le C++ étant objet, t'as un style de programmation assez différent du C procédural.
Si tu sais programmer en C++, tu seras pas perdu en C. Mais y'a quand même, dans un sens comme dans l'autre, des 'mauvaises habitudes' prises qui sont plus ou moins incompatibles avec l'un ou l'autre.

LEpigeon-888
LEpigeon-888
Niveau 12
28 juin 2014 à 17:31:26

Le C est pas plus limité que n'importe quel autre truc, dire que c'est plus compliqué en C ça veut un peu absolument rien dire vu qu'au final ça dépend totalement de la lib' utilisé, et non ils ne sont pas "très très" différent (du moins ça dépend à partir de quel point un langage est "très très" différent d'un autre).

Enfin, si tu fais du procédural en C++ (en utilisant quand même les spécificités du C++, je précise) ça ressemblera à du C (si tu fais du procédural aussi évidement), si tu fais de l'orienté objet au C, ça ressemblera un peu à l'orienté objet en C++ sauf que ça paraitra (et sera) beaucoup plus compliqué. Après en général quand on fait du C on fait pas de l'orienté objet, tout comme en C++ on évite le procédural (enfin là dessus c'est uniquement question de gout, certains trouvent ça complètement con d'en faire en C++, moi j'trouve ça normal, on a le droit de préférer le C++ pour autre chose que sa notion d'objet, juste pour sa lib' standard ou pour les facilité qu'il ajoute avec les référence et tout le bordel).

Pour moi, deux langages différents serait plus par exemple, un purement fonctionnel et l'autre purement procédural :oui:

Dryzix
Dryzix
Niveau 5
28 juin 2014 à 17:41:01

Wow j'en apprend des choses :-d

J'hésites vraiment énormément..
J'ai pas mal envie de faire du C++ pour la POO mais j'ai peur que j'y bloque à cause de mes habitues en PHP (Je ne fais pas de POO en php)..

Le C et le C++ évoluent encore tout les deux où un des deux évolue plus vite que les autres ?

Lequel est le plus long à apprendre ? (Sachant que j'ai vraiment peu de bases en orienté objet..)

Lequel est le plus accessible au niveau des ressources, tutoriels etc.. sur le web ?

Ah et aussi, sur linux, debian par exemple, on peut utiliser les deux langages ou un des deux n'est pas "compatible" du tout ?

Encore merci à tout ceux qui m'aident ! :merci:

Caletlog
Caletlog
Niveau 10
28 juin 2014 à 17:59:50

1) Clairement, le C++. Il évolue encore énormément (énorme implémentation, le C++11 en 2011, implémentation mineure en 2014, C++14, implémentation majeure en 2017, C++17), et dispose de nombreuses bibliothèques très populaires qui évoluent aussi très vite (par exemple Boost, qui propose de remplacer la bibliothèque standard std).
Le C, à côté, est quasiment figé.

2) Hum, question piège. Le C étant minimaliste, tu as relativement peu de concepts à apprendre. Le C++ en apporte nettement plus. Par contre, ça veut aussi dire que tu dois apprendre à adapter en C des concepts qui le sont déjà pour toi dans d'autres langages (comme le C++), et donc ça rentre aussi en compte dans l'apprentissage.
Apprendre l'orienté objet avec le C++ posera pas plus de problèmes qu'avec d'autres langages. Au moins le C++ a une couche objet native et extrêmement propre, et c'est tout ce qu'on ne peut pas dire de PHP.

3) Les deux sont éprouvés. Ce sont des langages très vieux, avec des documentations ultra complètes, des livres de référence et même de légende, des communautés en ligne super populaires et des bibliothèques complètes.
C'est aussi difficilement comparable, parce que comme je te l'ai dit C a nettement moins de concepts primitifs que C++, donc ça implique plus de documentation de la part de C++. Mais globalement, les deux disposent d'une doc assez complète pour ne pas avoir à bloquer sur une question durant 30 ans.

4) Aucun problème, sur aucun système d'ailleurs. C a nettement contribué à pas mal de systèmes à un moment ou un autre, C++ aussi dans une moindre mesure. Les deux sont supportés sans problème, avec une pelletée de compilateurs et débogueurs.
Pour la petite anecdote, le noyau Linux est principalement développé en C.

Lance-toi dans l'un ou l'autre, même sur un critère qui peut te sembler ridicule ("je sais pas, je le sens mieux ce langage XYZ !"). L'essentiel c'est de commencer, après ça vient tout seul.
Si tu vise l'entreprise, saches quand même que le C++ t'ouvrira plus de portes en général, là où le C est quand même très cantonné à l'embarqué aujourd'hui.

Google_Bot
Google_Bot
Niveau 14
28 juin 2014 à 18:05:23

Ton expérience de PHP ne devrait pas trop te perdre si tu n'as pas fait d'objet en PHP (la couche objet de ce dernier étant à mon goût très naze).

Tu devras juste te réhabituer à typer tes variables explicitement... enfin tout ça tu le verras bien au fur et à mesure, en compilant. gcc et g++ ne laissent pas passer ce genre de choses donc tu t'y feras :noel:

ranarama
ranarama
Niveau 7
28 juin 2014 à 21:30:19

en gros la plupart des langages vienne du C. Si tu connais PHP tu connais déjà le C à 80% . De toute façon n’importe quel langage est rapide à apprendre au point de vue de sa logique et de ses instructions. ce qui est chiant et long c'est de bosser les bibliothèques (graphique, son, unicode etc..). Pose toi la question avec quel bibliothèque tu veux travailler et tu pourra choisir entre C et C++ (mon avis : Qt et Gt-creator sont quand mm grave à la mode actuellement)

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