Noob : C ou C++ ou Java ? - C++ - Programmation
Marsh Posté le 09-09-2005 à 22:46:32
Commence par le C, c'est la base, ca te permettra de gérer le C++ très facilement par la suite. En plus, le C est assez puissant pour faire plus que de 'simples' programmes
Marsh Posté le 09-09-2005 à 23:59:29
C est C++ sont deux langages differents... Si c'est du C++ que tu veux faire a terme, ne prend pas la peine d'apprendre le C. Tu ne ferais que prendre de mauvaises habitudes.
Marsh Posté le 10-09-2005 à 00:14:10
est ce que le C a un avantage sur le C++ ?
est ce qu'on programme encore beaucoup en C ou maintenant presque tout est en C++ ?
Marsh Posté le 10-09-2005 à 00:15:05
Je serai plutôt d'un avis contraire à celui de nivekinc.
J'ai vu trop d'informaticiens bloqués dans une démarche procédurale, incapables de ce fait d'accéder à une véritable démarche objet.
Incapables de "mettre de côté", ou d'oublier, leurs connaissances du C, ils écrivent du code C++ "hybride".
Mon conseil: il est préférable de sauter l'étape procédurale (C), non seulement inutile, mais aussi néfaste à mon avis, et de passer immédiatement à la vision objet (C++) !
Marsh Posté le 10-09-2005 à 00:33:06
oki
là c'est decidé, le C je le mets de coté
Cependant, j'ai lu que le C++ se faisait vieillissant et qu'il vaut mieux apprendre le Java.
Qu'est ce que vous en pensez ?
et quid du C# ou Visual Basic ?
Marsh Posté le 10-09-2005 à 00:39:10
Java est plus moderne, mais n'est pas un langage compilé, donc moins rapide à l'execution.
Java et C++ ne sont pas destinés aux même types d'application.
C++ serait plus orienté scientifique/technique.
La demande sur le marché de l'emploi est actuellement, en France, beaucoup plus forte pour java que pour C++.
Marsh Posté le 10-09-2005 à 00:40:54
capigloo1 a écrit : Java est plus moderne, mais n'est pas un langage compilé, donc moins rapide à l'execution. |
Java est moins utilsé que C++ pour du scientifique ? Je demande des sources
Marsh Posté le 10-09-2005 à 00:43:50
C++ c'est orienté technique, ca veut dire que pour tout ce qui est controle de machine c'est bien je suppose
et pour le java c'est quoi ? toutes les applications "conventionnelles" que l'on a sur son PC ?
C# et Visual Basic c'est bien de les connaitre ou c'est pas vraiment utile ?
Marsh Posté le 10-09-2005 à 00:43:58
C# est un langage objet propriétaire de Microsoft.
Visual Basic ? de la m... pour bricoleurs/amateurs ! (tu es sur le forum C++...)
Marsh Posté le 10-09-2005 à 00:47:02
je suis sur le forum c++ parce qu'il n'y a pas de forum general de programmation
Marsh Posté le 10-09-2005 à 00:48:08
Techniques: applications avec contraintes de temps (commandes de processus, ...).
La plupart des applis sur ton pc sont écrites en C++ (xxxx.exe). Un certain nombres ont leurs équivalents (fonctionnellement) en java, qui s'éxécutent plus lentement (code interprété).
Marsh Posté le 10-09-2005 à 00:53:32
Pour infos, beaucoup d'applis financières sont écrites en C++ (!).
Visual basic est un (mauvais) langage de trop !
Marsh Posté le 10-09-2005 à 01:02:45
capigloo1 a écrit : Techniques: applications avec contraintes de temps (commandes de processus, ...). |
Marsh Posté le 10-09-2005 à 01:09:21
euh techniquement parlant, on n'est plus vendredi hein
les troll java vs c++ devront attendre un peu hein
Marsh Posté le 10-09-2005 à 01:15:07
caÿ vendredi !
Edit: grilled by Souk
Marsh Posté le 10-09-2005 à 01:24:24
capigloo1 a écrit : Java est plus moderne, mais n'est pas un langage compilé, donc moins rapide à l'execution. |
Sauf qu'avec les JIT compilers implémentés dans les VMs récentes on arrive aux vitesses du compilé
Citation : Java et C++ ne sont pas destinés aux même types d'application. |
Bien sûr que si
Citation : C++ serait plus orienté scientifique/technique. |
maisouibiensûr
capigloo1 a écrit : La plupart des applis sur ton pc sont écrites en C++ (xxxx.exe). |
Désolé de te décevoir, mais le fait qu'un fichier soit un exe ne signifie absolument pas qu'il est en C++. Ca ne signifie pas non plus qu'il est en C.
Marsh Posté le 10-09-2005 à 02:59:46
WhatDe a écrit : Java est moins utilsé que C++ pour du scientifique ? |
Les étudiants à l'heure actuelle sont tous formatés en java mais c'est une horreur.
on ne peut embaucher personne qui a été formé sur du java et n'a fait que ça dans
sa vie.
Marsh Posté le 10-09-2005 à 09:43:33
masklinn a écrit : Désolé de te décevoir, mais le fait qu'un fichier soit un exe ne signifie absolument pas qu'il est en C++. Ca ne signifie pas non plus qu'il est en C. |
Cela signifie surtout dans mon propos, peut-être un peu maladroit, qu'il ne s'agit pas d'une application java.
Il n'en reste pas moins que la majorité des applications que Mr tout-le-monde a sur son pc sous Windows sont matérialisées sous la forme de fichiers de type "exe", et qu'elles sont écrites en C++. Je n'ai nié à aucun moment que certaines soient écrites en C,C#,Fortran, pascal, etc...
Ta raillerie, un peu facile et vulgaire, dénote un manque, si ce n'est une absence, de courtoisie, une logique quelque peu défaillante, une tendance regrettable à la pédanterie, ainsi, probablement, qu'une ouverture d'esprit limitée.
Nous sommes tous des cons, certains le savent, d'autres ne le savent pas.
Marsh Posté le 10-09-2005 à 09:57:09
capigloo1 a écrit : Cela signifie surtout dans mon propos, peut-être un peu maladroit, qu'il ne s'agit pas d'une application java. |
Faux, on peut créer des .exe avec du Java, y a des compilateurs qui servent à ça.
capigloo1 a écrit : Il n'en reste pas moins que la majorité des applications que Mr tout-le-monde a sur son pc sous Windows sont matérialisées sous la forme de fichiers de type "exe", et qu'elles sont écrites en C++. |
Portnawak. Aucune garantie que ce ne soit pas du Delphi (pascal, donc), VB, C, ou autre.
Bien sûr beaucoup de programmes sont écris avec du C++, mais ".exe" != "C++".
Ah, et : "beaucoup" != "majorité"
capigloo1 a écrit : Ta raillerie, un peu facile et vulgaire, dénote un manque, si ce n'est une absence, de courtoisie, une logique quelque peu défaillante, une tendance regrettable à la pédanterie, ainsi, probablement, qu'une ouverture d'esprit limitée. |
Marsh Posté le 10-09-2005 à 10:07:03
capigloo1 a écrit : Cela signifie surtout dans mon propos, peut-être un peu maladroit, qu'il ne s'agit pas d'une application java. |
C'est toujours aussi faux
Comme l'a déja dit Elmoriq, il est parfaitement possible de générer des exe à partir d'un bytecode Java
Citation : Il n'en reste pas moins que la majorité des applications que Mr tout-le-monde a sur son pc sous Windows sont matérialisées sous la forme de fichiers de type "exe", et qu'elles sont écrites en C++. |
Tu n'en as strictement aucune idée, tu ne sais pas de quoi tu parles
Citation : Ta raillerie, un peu facile et vulgaire, dénote un manque, si ce n'est une absence, de courtoisie, une logique quelque peu défaillante, une tendance regrettable à la pédanterie, ainsi, probablement, qu'une ouverture d'esprit limitée. |
C'est bien, t'es brave, mais ça ne change rien à la fausseté flagrante de tes propos et à ta méconnaissance du sujet
Marsh Posté le 10-09-2005 à 12:08:42
Une idée interessante pour xav92210,
"Apprendre Java et C++ en parallèle":
http://www.comscripts.com/livre.ap [...] .3313.html
Marsh Posté le 10-09-2005 à 12:47:46
Ce que je pense:
Parler de "compilateur" java et d'"executable" java est un abus sémantique, pour ne pas dire une escroquerie intellectuelle.
Les soit-disants "compilateurs" java ne sont que des "moulinettes" qui ne génèrent en aucun cas un code intégralement exécutable.
Déguiser un JAR en EXE ne rend pas le code java directement éxécutable pour autant.
La jvm est précisémment là pour INTERPRETER le code Java.
Un veritable compilateur serait un atout considérable pour Java.
Si vous n'êtes pas d'accord, ce qui est un droit que je reconnais volontiers à chacun, merci de rester courtois, et d'expliquer votre point de vue avec de veritables arguments.
Car, avec des:
<<Tu n'en as strictement aucune idée, tu ne sais pas de quoi tu parles>>
et:
<<...fausseté flagrante de tes propos et à ta méconnaissance du sujet>>
on peut avoir du mal à modifier son opinion !
Descendez donc plutôt de votre piédestal, et faites l'effort d'expliquer votre point de vue !
Marsh Posté le 10-09-2005 à 12:54:38
Citation : La jvm est précisémment là pour INTERPRETER le code Java. |
A mon avis, la JVM exécute le ByteCode on pourrait comparer la JVM à un émulateur (ex: 68000) et le Bytecode à un programme compilé pour un processeur 68000.
Marsh Posté le 10-09-2005 à 12:55:46
capigloo1 a écrit : Déguiser un JAR en EXE ne rend pas le code java directement éxécutable pour autant. |
Les compilateurs que j'ai trouvé sous Google interprètent les sources Java (ou le bytecode, les deux sont possibles) et compilent véritablement le code en exécutable. Sans JVM.
Exemple : GCJ - http://gcc.gnu.org/java
Et j'aimerais savoir ce que tu entends par "déguiser", parce que je ne vois personne avec un tant soit peu de jugeotte "transformer un .jar en .exe", par exemple avec un en-tête exécutable qui lancerait une JVM en lui refilant le bytecode java. Ce serait stupide, parce qu'on perdrait l'intérêt du Java, à savoir la portabilité d'un code pré-compilé, et on ne gagnerait rien en échange.
Encore une fois, tu parles sans savoir.
Marsh Posté le 10-09-2005 à 13:08:55
Je ne parles pas sans savoir, et je n'ai pas la science infuse.
Je ne prétends en aucune manière être un spécialiste de Java;tu auras sans doute compris que je penche très lourdement du côté de C++.
Ce qui justifie ma présence sur ce topic.
Si ma connaissance est incomplète, ou fausse car "outdated", je suis prêt à l'"updater".
Toutefois, sur le site indiqué, je lis:
<<Compiled applications are linked with the GCJ runtime, libgcj, which provides the core class libraries, a garbage collector, and a bytecode interpreter. libgcj can dynamically load and interpret class files, resulting in mixed compiled/interpreted applications.>>
"interpreted" en anglais, ne veut pas dire "interprété" ???
Je ne comprendrai pas, non plus, l'anglais ?
L'auteur de ce texte, lui-aussi, ne sait pas de quoi il parle ?
Merci de m'éclairer.
Marsh Posté le 10-09-2005 à 13:21:24
Tu sors la phrase de son contexte, mais en réalité ça donne :
Citation : GCJ is a portable, optimizing, ahead-of-time compiler for the Java Programming Language. It can compile: |
Ce sont les trois lignes juste au-dessus de la phrase que tu as indiquée qui sont importantes, et qui justifient le fait que libgcj comporte un interpréteur bytecode. C'est normal, il en a besoin pour les fonctionnalités qu'il propose.
Citation : Je ne comprendrai pas, non plus, l'anglais ? |
Figure 1b : une phrase sortie de son contexte n'a plus le même sens
Marsh Posté le 10-09-2005 à 13:54:23
capigloo1 a écrit : Ce que je pense: |
Tu devrais arrêter de penser, t'as pas l'air d'avoir le matos pour
Citation : Parler de "compilateur" java et d'"executable" java est un abus sémantique, pour ne pas dire une escroquerie intellectuelle. |
1- Le Java est à minima compilé en bytecode, la compilation existe donc bel et bien
2- Il existe des compilateurs permettant de compiler le Java en code natif intégral, l'intérêt est faible mais le typage statique de Java le permet très facilement comparé à des langages à typage dynamique par exemple
3- Certains VMs récentes, pour allier la vitesse du compiler et la flexibilité de l'interprété, implémentent des compilateurs JIT: le bytecode n'est plus interprété, il est compilé en code machine au moment de sa première exécution, ce code est ensuite caché pour réutilisation. Cela permet à la VM "Hotspot" d'avoir des performances dignes du C ou du C++ en terme de vitesse d'exécution, au prix d'une plus grande consommation mémoire (qui reste cependant très faibles comparé aux JIT compilers pour langages à typage dynamique)
Marsh Posté le 10-09-2005 à 14:17:28
Les gens qui faisaient du développement logiciel quand tu portais encore des couches savent ce que les mots "compiler" et "compilateur" veulent vraiment dire.
Une expression telle que <<compiler en bytecode>> est bel et bien un abus sémantique.
Il est dommage que tu sois trop intelligent pour le comprendre, et navrant que tu persistes à te montrer aussi méprisant.
Une attitude aussi méprisante et agressive n'est souvent rien d'autre qu'un réflexe inconscient d'autodéfense...
Marsh Posté le 10-09-2005 à 14:20:47
capigloo1 a écrit : Les gens qui faisaient du développement logiciel quand tu portais encore des couches savent ce que les mots "compiler" et "compilateur" veulent vraiment dire. |
le bytecode est le langage natif de la machine virtuelle, compiler en bytecode pour la JVM et compiler en binaire pour ta machine, c'est exactement la meme chose
Marsh Posté le 10-09-2005 à 14:26:51
capigloo1 a écrit : Une expression telle que <<compiler en bytecode>> est bel et bien un abus sémantique. |
Citation : Il est dommage que tu sois trop intelligent pour le comprendre, et navrant que tu persistes à te montrer aussi méprisant. |
Merci pour la scéance freud, je te dois combien?
Marsh Posté le 10-09-2005 à 14:27:20
ya même des processeurs qui traitent du bytecode java nativement
Marsh Posté le 10-09-2005 à 14:53:48
capigloo1 a écrit : |
bah nan. Dans des bouquins sur le sujet on parle de "compilation en langage intermediaire" et vu qu'on peut considerer le bytecode comme etant un langage intermediaire, y'a pas de probleme
tu luttes contre l'évidence
Java n'est pas compilé en natif par le compilo java, mais en bytecode
la JVM fait ce qu'elle veut derriere (inteprete / compile)
c'est la meme chose avec c#/.net (et pourtant je sais pas si t'as vu, mais eux ils recrachent des .exe. Dingue non ?)
Sinon pour la question du topic : C is teh shit. J'ai du mal a le conseiller pour du developpement, mais il me faut quand meme bien reconnaitre qu'il apprends certains choses. M'enfin dans l'absolu C++ peut etre potable comme langage de debut, mais bon, compte que tu vas en chier quand meme un peu
Marsh Posté le 10-09-2005 à 15:04:31
Et si l'on se mettait d'accord pour appeler un chat un chat ?
http://en.wikipedia.org/wiki/Compi [...] _languages
Marsh Posté le 10-09-2005 à 15:09:43
capigloo1 a écrit : Et si l'on se mettait d'accord pour appeler un chat un chat ? |
Genre
Citation : A compiler is a computer program that translates a series of instructions written in one computer language (called the source language) into a resulting output in another computer language (also called the object or target language). |
qui indique que tu as tord
Marsh Posté le 10-09-2005 à 15:15:45
;
Citation : A compiled language is a programming language whose implementations are typically compilers (translators which generate machine code from source code), and not interpreters (step-by-step executors of source code, where no translation takes place). |
No comment!
Marsh Posté le 10-09-2005 à 15:18:25
JVM, ça veut quand même dire Java Virtual MACHINE
Marsh Posté le 10-09-2005 à 15:20:12
Non! Ca veut dire Java VIRTUAL machine.
Marsh Posté le 10-09-2005 à 15:24:48
Une machine virtuelle est une machine, elle existe simplement dans l'espace d'un processus. Mais du point de vue des programmes qui topurnent dessus, cela ne gène en rien. Il existe des machines virtuelles PC dans lesquelles on peut installer windows.
Marsh Posté le 09-09-2005 à 21:09:25
Je suis noob en programmation (j'ai deja fait un peu de Basic).
Je souhaiterais apprendre un langage de prog plus évolué
C'est utile d'apprendre le C ou il vaut mieux passer au C++ directement ?
L'un est plus dur que l'autre ?
Message édité par xav92210 le 11-09-2005 à 19:19:47