Noob : C ou C++ ou Java ?

Noob : C ou C++ ou Java ? - C++ - Programmation

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
Reply

Marsh Posté le 09-09-2005 à 21:09:25   

Reply

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

Reply

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.

Reply

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

Reply

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++) !


Message édité par capigloo1 le 10-09-2005 à 00:22:25
Reply

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 ?


Message édité par xav92210 le 10-09-2005 à 00:37:11
Reply

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++.
 

Reply

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 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++.


Java est moins utilsé que C++ pour du scientifique ? Je demande des sources  [:whatde]


---------------
[:whatde]
Reply

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 ?


Message édité par xav92210 le 10-09-2005 à 00:44:31
Reply

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++...)


Message édité par capigloo1 le 10-09-2005 à 00:48:23
Reply

Marsh Posté le 10-09-2005 à 00:43:58   

Reply

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 ;)

Reply

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é).

Reply

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 !

Reply

Marsh Posté le 10-09-2005 à 01:02:45    

capigloo1 a écrit :

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é).


 :heink:


---------------
[:whatde]
Reply

Marsh Posté le 10-09-2005 à 01:07:36    

pascal roske ! [:dawa]

Reply

Marsh Posté le 10-09-2005 à 01:09:21    

euh techniquement parlant, on n'est plus vendredi hein [:dawa]
les troll java vs c++ devront attendre un peu hein [:dawao]

Reply

Marsh Posté le 10-09-2005 à 01:15:07    

caÿ vendredi ! [:dawa]
 
Edit: grilled by Souk  :fou:


Message édité par red faction le 10-09-2005 à 01:15:39
Reply

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é [:dawa]

Citation :

Java et C++ ne sont pas destinés aux même types d'application.


Bien sûr que si [:spamafote]  

Citation :

C++ serait plus orienté scientifique/technique.


maisouibiensûr [:petrus75]

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.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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.

Reply

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.
 
 

Reply

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.
 
Nous sommes tous des cons, certains le savent, d'autres ne le savent pas.


 [:tartragnan]


Message édité par Elmoricq le 10-09-2005 à 10:01:46
Reply

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 [:petrus75]
Comme l'a déja dit Elmoriq, il est parfaitement possible de générer des exe à partir d'un bytecode Java [:petrus75]

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.


[:kiki]
C'est bien, t'es brave, mais ça ne change rien à la fausseté flagrante de tes propos et à ta méconnaissance du sujet [:itm]


Message édité par masklinn le 10-09-2005 à 10:07:54

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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

Reply

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 !


Message édité par capigloo1 le 10-09-2005 à 12:50:02
Reply

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.


Message édité par jlighty le 10-09-2005 à 16:09:27
Reply

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.

Reply

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.


Message édité par capigloo1 le 10-09-2005 à 13:13:00
Reply

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:
 
    * Java source code directly to native machine code,
    * Java source code to Java bytecode (class files),
    * and Java bytecode to native machine code.
 
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.


 
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 ?


 
[:draculax_tt]
 
Figure 1b : une phrase sortie de son contexte n'a plus le même sens


Message édité par Elmoricq le 10-09-2005 à 13:24:38
Reply

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)


Message édité par masklinn le 10-09-2005 à 18:37:49

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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...

Reply

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.
Une expression telle que <<compiler en bytecode>> est bel et bien un abus sémantique.


[:pingouino] 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 [:pingouino]

Reply

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.


  • Quand ça va au delà de la simple translation ça devient de la compilation. Le bytecode est le langage de la VM (comme le CIL est le langage du framework .Net et les assembleurs ceux des différents processeurs). La meilleure preuve en est des projets comme Jython ou IronPython qui compilent du code Python respectivement en bytecode Java et en CIL.
  • Et ça n'empêche en rien le fait que le Java soit compilable non seulement en bytecode mais aussi en code natif.
Citation :

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...


Merci pour la scéance freud, je te dois combien? [:smash62]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 10-09-2005 à 14:27:20    

ya même des processeurs qui traitent du bytecode java nativement

Reply

Marsh Posté le 10-09-2005 à 14:53:48    

capigloo1 a écrit :


Une expression telle que <<compiler en bytecode>> est bel et bien un abus sémantique.


 
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
 

Reply

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

Reply

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 ?
http://en.wikipedia.org/wiki/Compi [...] _languages


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 [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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).


:lol: No comment!


Message édité par capigloo1 le 10-09-2005 à 15:18:58
Reply

Marsh Posté le 10-09-2005 à 15:18:25    

JVM, ça veut quand même dire Java Virtual MACHINE


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 10-09-2005 à 15:20:12    

Non! Ca veut dire Java VIRTUAL machine.


Message édité par capigloo1 le 10-09-2005 à 15:20:29
Reply

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.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed