C++ ou Java ?

Inscrit
1 Mars 2014
Messages
120
Reactions
0
#21
immortel32 a dit:
Deux petites réflexions:
"Points positifs du Java: il est portable"... Il y a un mauvais sous-entendu dans cette partie, personnellement j'ai compris cette phrase comme "le Java est portable, pas le C++". Or, il est certain que le C++ est portable (Qt est un framework entièrement portable, la STL est portable, la bibliothèque Boost est portable etc...). Normalement, tu peux réaliser à peu près n'importe quel programme avec le Framework Qt (énormément de modules & fonctionnalités dont le GUI et le réseau qui sont plutôt intéressants pour un bot ^^).
"Java n'est pas utilisé en entreprise"... Ca aussi c'est faux, et même je pense que Java est plus utilisé en entreprise que le C++ (là c'est une estimation personnelle). En tous cas, c'est sûr que le langage Java est très utilisé en entreprise =)
Le c++ est portable aussi mais moins que le Java. Rien que par exemple les socket linux/windows c'est pas la même chose !
Après Qt règle tous les problème c'est vrai !
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#22
Sachant qu'il avait jamais programmé de sa vie, je lui ai conseillé par skype une initiation en douceur à Python.
Et en plus, on a vite un truc qui marche !
La gestion des sockets est grandement simplifiée par rapport au C++, et même si le langage n'est pas aussi puissant, c'est justement pour cela qu'il est simple !
 

Gohu

Membre Actif
Inscrit
16 Novembre 2013
Messages
222
Reactions
2
#23
Dommage le mieux aurait été de commencer avec de la programmation de bas niveau :)
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#24
Euh ? Pourquoi ?
D'accord c'est cool les pointeurs, les flux, et tout le reste, mais je vois pas l'intérêt pour un débutant, à part de lui donner une chance de croire que c'est super compliqué. Au début, j'ai voulu apprendre l'ASM... J'ai plus essayé de programmer pendant 6 mois :p
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#25
J'ai rien contre le python, j'ai vu un ému Elder scroll online en python et il était très simple (à comprendre) et super fonctionnel, après je ne sais pas si c'est aussi simple pour l'écrire ^^".
 
Inscrit
1 Mars 2014
Messages
120
Reactions
0
#26
Labo a dit:
Euh ? Pourquoi ?
D'accord c'est cool les pointeurs, les flux, et tout le reste, mais je vois pas l'intérêt pour un débutant, à part de lui donner une chance de croire que c'est super compliqué. Au début, j'ai voulu apprendre l'ASM... J'ai plus essayé de programmer pendant 6 mois :p
L'ASM c'est peut être un peu hard pour débuter mais c'est vrai que commencer avec un langage bas niveau, de mon point de vue, c'est préférable.
Au moins tu comprends mieux comment la mémoire fonctionne et ton ordi en général et tu prend les bons réflexes. A l'inverse si tu commence par un langage de haut niveau, comprendre pourquoi faut free un pointeur après l'avoir alloué est, je pense, plus dur :p (pas plus dur à comprendre mais plus dur à prendre le réflexe).
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#27
DeepSpiderZ dit vrai, un langage de bas niveau permettra de mieux comprendre un système d'exploitation, particulièrement la mémoire car des langages comme Java utilisent des outils comme le garbage collector et autres, donc on a moins la main sur la gestion de la mémoire.
Même chose pour les threads, avant d'en faire on commence généralement par des forks, puis a terme on compare les deux pour voir le quel utilisé dans quel circonstance.
Car c'est souvent quelques chose de mal gérer (les threads).
Egalement pour l'ordonnaceur du CPU, avec les priorités des processus.
Le C est appeler justement langage de bas niveau du fait que l'on plus la main sur le système que des langage de haut niveau et de ce fais je pense que c'est mieux pour comprendre comment fonction un PC.

Après ScriptMan, reste a voir si tu souhaite "apprendre a programmer dans un langage" ou "apprendre a programmer dans un langage et mieux comprend comment fonctionne mon ordinateur" :)
 
Inscrit
1 Mars 2014
Messages
120
Reactions
0
#28
S'amuser à recoder des fonction comme malloc par exemple ça aide bien à comprendre comment fonctionne la mémoire :) (je parle en C)
 
A

Anonymous

Invité
#29
Moonlight-Angel a dit:
D'accord avec immortel, Java est utilisé en entreprise bien plus qu'on le croit (et le fait que ce genre de langage soit utilise en entreprise m'échappe complètement \o/).
Je crois même que le C/C++ sont moins utilisés qu'auparavant (au profit du C# et autres langages barbares "modernes"), mais restent très utilisés.
Le Java est très utilisé pour plusieurs raisons:
  • Premièrement, même si le C++ est "portable" grâce au boulot des créateurs de la STL, de Qt, de Boost, ou de tout autre bibliothèque/framework dit portable, le Java reste bien plus "portable". C'est à dire que la liste des système supportés par Java (les système où un programme Java marche) est plus grande que celle du C++, et convient sûrement plus au entreprises (qui ne tournent pas toutes sur Windows, Linux, ou même Mac, mais parfois avec des systèmes d'exploitation bien moins connus).
  • De plus, comme l'ont dit pas mal de gens ici, le Java est "simplifié" par rapport au C++ (là encore, je me fie aux autres, je n'ai jamais fais de Java dans ma vie :-*)

DeepSiderZ a dit:
Le c++ est portable aussi mais moins que le Java. Rien que par exemple les socket linux/windows c'est pas la même chose !
Petite précision dans ta phrase: "par exemple la gestion des socket par linux/windows c'est pas la même chose !". Lorsque tu utilises QSocket ou Boost.asio, la gestion des socket en C++ est totalement transparente, ton code reste exactement le même, et ce quelque soit le système cible ^^

Pour ce qui est de la préférence d'un langage bas-niveau pour commencer, je suis d'accord avec l'avis général... On m'a toujours dis "qui peux le plus peux le moins", c'est à dire que celui qui a compris comment marchait un langage bas-niveau n'aura pas de difficulté majeure à comprendre un langage haut-niveau ([troll]sauf pour les syntaxes pourries à la Python >.>[/troll]).
 

Gohu

Membre Actif
Inscrit
16 Novembre 2013
Messages
222
Reactions
2
#30
Labo, je ne parlais pas d'un langage d'aussi bas niveau quand j'ai dit ca. C'était simplement pour signaler que les bases de
la programmation sont plus "apparentes" dans un langage de bas niveau qui permet un plus grand controle de ta machine. Un langage comme le python c'est simplement fait pour executer des petits scripts rapides (selon mon point de vue bien sur) et non pour coder tout un projet (bien que j'affectionne moi aussi le python). L'ASM me parait en effet un peu hard pour commencer mais le mieux pour apprendre la programmation reste un langage comme le C qui ne possede pas de POO. La POO n'est pas un indispensable dans la programmation, c'est d'ailleurs pour cela que le shell *nix est codé en C et non en C++. Je pense que la POO n'est qu'un "outils" a la programmation et qu'elle ne doit pas etre apprise lorque on se penche pour la premiere fois sur la programmation :)
 
A

Anonymous

Invité
#31
Sinon il y a un excellent compromis pour ne pas avoir à faire ce choix : le D.

- multiparadigme, sans dogme ( n'impose pas la POO à tout prix comme en Java par exemple )
- langage moderne, puissant qui produit des binaires natives et rapides
- langage garbage-collected
- portable, pas de framework à installer, et code complètement multiplateforme ( Linux, Windows, Mac, FreeBSD supportés )
- compilateur officiel ( compile TRES vite ) ou frontend pour GCC / frontend pour LLVM ( code TRES optimisé et plus rapide )
- librairie standard très fournie
- support IDE VisualStudio, MonoDevelop / XamarinStudio ( ainsi que Eclipse )
- supporte la reflection à la compilation ET au runtime
- système de templates puissant et à la syntaxe simplifiée
- plein d'outils pour faire du parallélisme dans le coeur du lanage : threads, message-passing, scopes "synchronized", partage de la mémoire avec shared ...
- et plein d'autres choses ...

La punchline de fin : La puissance de C++ avec le confort de Java.

Site officiel : http://dlang.org/
Livre en ligne complet en anglais : http://ddili.org/ders/d.en/
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#32
Je pense que tous les langages sus-cité peuvent être utilisé pour faire un bot dofus.

Pour commencer la programmation si tu n'en a jamais fait je te conseille un langage un peu plus simple ou tu ne vas pas trop te prendre la tête et découvrir les fonctions, les boucles, les variables etc.
Ensuite tu vas avoir besoin de sockets pour ton bot du coup tu auras deux choix :
Maîtriser complètement le bot en écrivant soit même son gestionnaire de sockets etc.
Utiliser des librairies ou des objets déjà présent pour gérer ses sockets.

J'ai toujours fait le deuxième choix car je considère que les gens qui ont développé les sockets (dans java par exemple) sont plus expérimentés que moi et ont forcément mieux fait le boulot. Du moment que j'arrive à me concentrer sur ce qui est le code métier de mon programme je suis content.

Le choix de la première solution va te permettre de connaître et maîtriser en profondeur ton programme. Cependant tu vas perdre de vu ton code métier et te concentrer grandement (du moins au début) sur des fonctionnalités essentielle au bot mais qui ne vont pas différé de ce qui peut déjà exister.


Il y a toujours en informatique des décisions à prendre. On ne peut pas tout faire, on ne peut pas tout suivre. On est obligé de s'éloigné de certains sujets et de se spécialiser.
Je comprends comment fonctionne une socket, comment les packets arrive à l'ordinateur, les différentes couches qu'il va traverser mais je serais incapable de coder de A à Z une socket. Je préfère utiliser des librairies ou je peux rentrer mon ip et mon port et récupérer les bytes qui transitent dans ma socket.

J'ai touché à pas mal de langage, le C/C++ peut être compliqué du fait des types de données, des pointeurs etc. En contrepartie tu comprends exactement comment ça fonctionne, tu maîtrises entièrement ce qu'il se passe et tu peux devenir un très bon dev en partant de C/C++.
Le java est très verbeux, il te faut taper du code encore et encore pour reproduire certaines choses. Cependant tu maîtrise assez bien ce qu'il se passe et il est, je trouve, plus accessible et tout aussi bien que le C/C++ pour comprendre comment ça fonctionne. J'ai par contre été très ennuyé par les convertions de types ou les choix logique du langages qui ne sont pas trop évident.

Le python à le vent en poupe ces temps-ci, c'est un langage qui peut être très puissant, cependant on ne sait pas trop en profondeur comment ça se passe au niveau de la machine. Les dev Python sont recherchés et très bien payés. C'est un langage qui est souvent associé aux postes de sysadmin ou de devsystème (je ne connais plus le terme, entre développer et sysadmin...).

Il te reste le ruby, pareil que le python il a le vent en poupe, il permet de faire pas mal de choses plus ou moins facilement. Les devs sont très recherchés et sont parmis les mieux payés.
On ne sait absolument pas comment ça se passe au niveau de la machine. L'installation d'un environnement ruby peut être rude au début (rbenv etc).

C#, je dirais que c'est du JAVA en plus simplifié et avec plus de code haut niveau.

Voilà. A toi de choisir ton poison. Il n'y a pas forcement de meilleurs langages pour commencer, tu choisis ce que tu veux et tu regardes si ça te correspond et surtout si ça correspond au projet que tu veux faire.
 
Inscrit
1 Mars 2014
Messages
120
Reactions
0
#33
De plus commencé par l'asm j'pense que y'a rien de pire ! Y'a pas beaucoup de mecs qui peuvent t'aider sur internet ... Perso quand j'ai fait un peu d'asm j'ai du lire la doc intel et ben faut vraiment etre motivé ~~" .... Et y'a rien de moins portable au monde que l'asm :p
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#34
Geraff a dit:
C'est un langage qui est souvent associé aux postes de sysadmin ou de devsystème (je ne connais plus le terme, entre développer et sysadmin...)
"DevOps" ;)
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#35
Entièrement d'accord avec Geraff !
Pour pouvoir avoir la motivation de s'attaquer à la mémoire, faut ressentir le plaisir sadique de pouvoir contrôler son ordi :twisted:
Et pour cela, je pense que Python est bien. Il introduit plein de concepts importants, et SURTOUT te force à indenter.
Les bibliothèques standards te permettent de faire tout ce que tu veux à moindre effort (pas comme en C++ où tu galères pour faire un client tcp simple), et la doc est GENIALE, avec des exemples, et des phrases.
De plus, il y a beaucoup de tutoriels sur internet qui expliquent bien pour compléter la doc.

Ruby est beau, élégant, formateur, de plus en plus utilisé pour le développement web (avec RoR). Mais je ne le trouve pas assez "libre" pour un premier langage.
Comme un de mes amis le dit si bien : "Python, c'est un type sympa : tu veux un truc, il te le donne."

@DeepSiderZ oui, en effet, j'ai tenu 3 jours, après je suis retourné au TI-Basic :lol:
 
A

Anonymous

Invité
#36
Woaw ! J'ai fait une vrai polémique la :p 4 pages :lol:

Bon bien le post qui m'aura été je pense le plus utile sera celui de Geraff ! :)

Donc pour information je pense que je vais choisir JAVA après avoir regardé le tuto sur le C++ , le C et le JAVA sur le site du zéro.
J'étais sur le point d'imprimer tout le tuto sur le C++ mais finalement je vais choisir le Java qui me paraît plus facile a prendre en main, et qui me tente plus, question de goût.


@ Geraff : Voilà j'ai choisi mon poison :D

Et pour revenir sur ce que vous avez dit : J'ai jamais programmé mais j'ai scripté ^^'
Pendant plus de 6 mois avec un langage français sur le logiciel Actionaz (très limité mais très bien pour comprendre et commencer je trouve)
A ce moment la, jamais ne m'étais venu l'idée de faire de la programmation, c'était juste pour automatiser quelques trucs, du genre m'ouvrir toutes les pages/programmes que je souhaitai avoir/ m'identifier sur des forums ou autres ...
Ensuite il y a 1 mois j'ai décidé de me mettre à AutoIt , donc la encore du script, et puis ça m'a vite saoulé du fait que je voulais vraiment de la programmation, au début je m'étais dit que j'allais y aller petit à petit, mais AutoIt m'a vite trop saoulé ... (J'ai du faire maxi une 10 aine de script après avoir fini le tutoriel ..)

Un truc qui va falloir qu'on m'explique aussi ... :D
C'est : Pourquoi tous le monde ici considère AutoIt comme du Script, alors que : "Cadernis.fr , Le forum où on apprend à programmer tout et n'importe quoi", et pourtant il y a une section entièrement dédiée à AutoIt ... :shock:
 
Inscrit
1 Mars 2014
Messages
120
Reactions
0
#37
Parce que cadernis traite des bots D. en général et y'a des gens qui en font en Autoit du coup le fofo doit avoir une section pour ces personnes :)
 
A

Anonymous

Invité
#38
DeepSiderZ a dit:
Parce que cadernis traite des bots D. en général et y'a des gens qui en font en Autoit du coup le fofo doit avoir une section pour ces personnes :)
Certes mais c'est pas logique :D , ou alors faudrait penser a changer le slogan :lol:
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#39
Le slogan c'était juste pour passer entre les mailles de la loi et d'Ankama.
 
A

Anonymous

Invité
#40
Geraff a dit:
Le slogan c'était juste pour passer entre les mailles de la loi et d'Ankama.
D'accord d'accord ;)

Je vous donne un peu de mes nouvelles , j'avance pas très vite en ce moment parce que je suis en vacances avec des amis etc... donc je continue a lire le tuto JAVA quand je peux. Et en plus la j'ai pas de machine a disposition pour pouvoir faire du TP :?
Donc voilà, pour le moment ça me fait comme un bon avant gout et puis il me faudra attendre la rentrée pour pouvoir m'y mettre bien comme il se doit :lol:
 
Haut Bas