Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2517 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Auteur Sujet :

Jeune de 16 ans veut apprendre Java !

n°1499500
MagicBuzz
Posté le 05-01-2007 à 18:39:10  profilanswer
 

Reprise du message précédent :
pour moi, un langage évolué comme le C# ou même la daube qu'est Java est tout à fait pertinant pour apprendre l'algorythmie.
 
bon, après, aucun langage n'arrive au petit orteil d'ADA en ce qui concerne l'apprentissage mais bon... au moins avec un langage évolué on arrive rapidement à faire un petit truc fun qui marche alors qu'en ADA, rien que pour afficher les 10 premiers éléments d'une factorielle tu pleures :D

Message cité 3 fois
Message édité par MagicBuzz le 05-01-2007 à 18:39:20
mood
Publicité
Posté le 05-01-2007 à 18:39:10  profilanswer
 

n°1499502
Ace17
Posté le 05-01-2007 à 18:44:20  profilanswer
 

MagicBuzz a écrit :

pour moi, un langage évolué comme le C# ou même la daube qu'est Java est tout à fait pertinant pour apprendre l'algorythmie.


Par contre, l'orthographe c'est pas encore ca...  

n°1499506
MagicBuzz
Posté le 05-01-2007 à 18:49:57  profilanswer
 

c'est de la faute d'IntelliSense [:magicbuzz]

n°1499507
nyrk
Posté le 05-01-2007 à 18:50:12  profilanswer
 

MagicBuzz a écrit :

pour moi, un langage évolué comme le C# ou même la daube qu'est Java est tout à fait pertinant pour apprendre l'algorythmie.


 
Quitte à prendre quelque chose de pertinent, autant prendre un langage comme Scheme plutôt que de s'emmerder avec les paradigmes imposés par Java (définir une classe pour faire un "hello, world", spécifier les types concrets des objets, se voir imposer un cycle de compilation rigide etc.)

n°1499509
MagicBuzz
Posté le 05-01-2007 à 18:51:14  profilanswer
 

VB, y'a que ça de vrai :spamafote:

n°1499511
0x90
Posté le 05-01-2007 à 18:52:04  profilanswer
 

nyrk a écrit :

Quitte à prendre quelque chose de pertinent, autant prendre un langage comme Scheme plutôt que de s'emmerder avec les paradigmes imposés par Java (définir une classe pour faire un "hello, world", spécifier les types concrets des objets, se voir imposer un cycle de compilation rigide etc.)


 
Parce que y'a aucun paradigme imposé dans Scheme peut-être ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1499514
nyrk
Posté le 05-01-2007 à 18:58:39  profilanswer
 

0x90 a écrit :

Parce que y'a aucun paradigme imposé dans Scheme peut-être ?


 
Ai-je dit le contraire ? Je pointais simplement l'emmerdement que constituent les modèles imposés par Java. De mon point de vue, Scheme n'impose aucun modèle particulièrement déroutant quand il s'agit d'implémenter les algorithmes d'un cours de base sur l'algorithmique.

n°1499515
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2007 à 19:07:26  profilanswer
 

MagicBuzz a écrit :

pour moi, un langage évolué comme le C# ou même la daube qu'est Java est tout à fait pertinant pour apprendre l'algorythmie.


Lol :o

MagicBuzz a écrit :

bon, après, aucun langage n'arrive au petit orteil d'ADA en ce qui concerne l'apprentissage mais bon... au moins avec un langage évolué on arrive rapidement à faire un petit truc fun qui marche alors qu'en ADA, rien que pour afficher les 10 premiers éléments d'une factorielle tu pleures :D


Bof, l'ADA fait chier pour des conneries, Haskell aussi a un type system furieux. Moins que les anciens ADA probablement, mais très contraignant néanmoins, cf la citation de sigfpe:

Citation :

Haskell is so strict about type safety that randomly generated snippets of code that successfully typecheck are likely to do something useful, even if you've no idea what that useful thing is.


 
Et ce en étant largement moins chiant et moins verbeux qu'Ada :o

nyrk a écrit :

les paradigmes imposés par Java (définir une classe pour faire un "hello, world", spécifier les types concrets des objets, se voir imposer un cycle de compilation rigide etc.


Ce ne sont pas des paradigmes :fou:


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1499519
nyrk
Posté le 05-01-2007 à 19:15:41  profilanswer
 

masklinn a écrit :


Citation :

Haskell is so strict about type safety that randomly generated snippets of code that successfully typecheck are likely to do something useful, even if you've no idea what that useful thing is.



 

Citation qui repose sur du vent ?

 
Citation :


Ce ne sont pas des paradigmes :fou:

 

Appelle ça comme il serait correct de l'appeler, tu m'as compris. :o

Message cité 1 fois
Message édité par nyrk le 05-01-2007 à 19:16:09
n°1499521
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2007 à 19:26:20  profilanswer
 

nyrk a écrit :

Citation qui repose sur du vent ?


[:petrus dei]
 
Pas compris la remarque


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 05-01-2007 à 19:26:20  profilanswer
 

n°1499522
MagicBuzz
Posté le 05-01-2007 à 19:29:31  profilanswer
 

masklinn a écrit :

Et ce en étant largement moins chiant et moins verbeux qu'Ada :o


ADA j'ai dit que c'était bien pour apprendre "tout court". Pour l'algo, c'est pas loin d'être une horreur, parceque rien que pour compiler un prog qui fait la division entre deux nombre saisis en paramètre t'as 500 lignes de surcharges, d'exceptions et autres à taper pour que ça compile. Donc pour l'algo... ;)
 
Par contre, quand t'arrives à écrire un prog ADA qui marche du premier coup, t'as toutes les bases nécessaires pour appréhender la plupart des langages sans sourciller.
Par rapport au C par exemple, où on peut faire tout et surtout n'importe quoi, c'est un gros avantage. L'ADA t'oblige à écrire des algos qui ne reposent pas sur des économies de bout de chandelle, ce qui est propre à un bon algo : c'est pas au niveau de sa transcription en langage qu'on doit s'occuper de l'améliorer, mais en amont, lors de sa conception.
 
Pour un algo complexe, c'est particulièrement intéressant de trouver à la conception la solution la moins coûteuse, plutôt que de prendre la première qui passe, et rendre le code illisile à coup d'optimisations "alakon".


Message édité par MagicBuzz le 05-01-2007 à 19:30:03
n°1499524
MagicBuzz
Posté le 05-01-2007 à 19:30:59  profilanswer
 

PS : D'ailleurs, moi j'ai toujours appris l'algo avec une feuille et un crayon.
 
La transcription dans la langage, c'est ensuite "juste du pissage" de code pour moi. C'est deux métiers totalement différents qui reposent généralement sur les épaules de d'une même personne. Mais à la base, je suis loin d'être convaincu qu'un langage soit mieux qu'un autre pour ce qui est de l'algo.
Alors qui peut le plus peut le moins : transcrire un algo objet en C, c'est pas super évident. Avec un langage évolué, c'est limpide. D'où ma phrase à propos de C# ou Java.


Message édité par MagicBuzz le 05-01-2007 à 19:33:39
n°1499526
nyrk
Posté le 05-01-2007 à 19:34:28  profilanswer
 

masklinn a écrit :

[:petrus dei]
 
Pas compris la remarque


 
Je vois pas l'intérêt d'affirmer une telle chose vu le flou que représentent les mots "likely" et "useful", ici.

n°1499529
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2007 à 19:49:18  profilanswer
 

MagicBuzz a écrit :

Par contre, quand t'arrives à écrire un prog ADA qui marche du premier coup, t'as toutes les bases nécessaires pour appréhender la plupart des langages sans sourciller.


Pas d'accord, certains uniquement, et impératifs uniquement. Avoir fait de l'Ada ne t'aidera pas à apprendre l'Erlang ou le Forth. À part dans le sens où, personne n'utilisant Ada, il y a des chances pour que les gens l'apprenant aient appris nombre d'autres langage et aient donc des facilités dans le domaine (ou soient intéressés par l'apprentissage de nouveaux langages en permanence)

MagicBuzz a écrit :

La transcription dans la langage, c'est ensuite "juste du pissage" de code pour moi. C'est deux métiers totalement différents qui reposent généralement sur les épaules de d'une même personne. Mais à la base, je suis loin d'être convaincu qu'un langage soit mieux qu'un autre pour ce qui est de l'algo.


Un langage "bon pour apprendre l'algo" c'est justement un langage dans lequel cette transcription n'existe pas, ou quasiment pas, un langage où la transcription est naturelle et le code aussi clair que l'algo/pseudocode "papier"

nyrk a écrit :

Je vois pas l'intérêt d'affirmer une telle chose vu le flou que représentent les mots "likely" et "useful", ici.


1. C'est une plaisanterie avec un fond de vérité (comme beaucoup de citations dans ma collection, la taille du fond variant mais étant souvent grande), pas un axiome... [:petrus75]
2. C'est un sentiment qu'ont énormément d'utilisateurs d'Haskell et qui découle de son système de types extrèmement strict et fin, ceci étant l'une des caractéristique principales d'Ada (avec une gestion d'erreur là aussi extrèmement stricte puisque toute erreur possible se doit d'être gérée). J'avais une citation sur le sujet mais je ne la retrouve pas là tout de suite, mais en substance elle disait qu'en Ada si on réussit à compiler un programme il n'aura pas de bugs.

 

Bien sûr d'autres sont plus critiques sur le sujet (d'Ada), d'où cette citation de Bruce Powel Douglass

Citation :

C treats you like a consenting adult. Pascal treats you like a naughty child. Ada treats you like a criminal.


3. Je ne vois pas en quoi les mots "likely" et "useful" sont flous...

Message cité 2 fois
Message édité par masklinn le 05-01-2007 à 19:55:12

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1499530
kadreg
profil: Utilisateur
Posté le 05-01-2007 à 19:51:54  profilanswer
 

masklinn a écrit :

J'avais une citation sur le sujet mais je ne la retrouve pas là tout de suite, mais en substance elle disait qu'en Ada si on réussit à compiler un programme il n'aura pas de bugs.


 
c'est de moi ça ?

n°1499531
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2007 à 19:55:28  profilanswer
 

kadreg a écrit :

c'est de moi ça ?


Je serais incapable de te le dire


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1499533
MagicBuzz
Posté le 05-01-2007 à 20:07:08  profilanswer
 

masklinn a écrit :

Je serais incapable de te le dire


c'est en tout cas ce que j'ai appris lorsque j'ai fais mes études.
 
après quelques croûtages en règles avec pourtant une compilation correcte, le prof a dû revenir sur cette affirmation.
cependant, ADA est un des rares langages où dès l'écriture, à tout moment, on sait comment il va se comporter, et sans surprise. donc même si le compilo a laissé passer des bugs potentiels, on est sûr à chaque instruction de ce qu'elle va faire.
 
inversement, en C par exemple, on peut parfaitement caster un uint en int, et se retrouver avec un superbe dépassement de capacité, sans que ce soit visible au premier coup d'oeil : c'est à dire que là où ADA va lever une exception à l'exécution, le programme C va continuer comme si de rien n'était, et commencer à faire du grand total n'importe quoi (et peut-être planter 1000 lignes de code plus loin).

Message cité 1 fois
Message édité par MagicBuzz le 05-01-2007 à 20:07:45
n°1499541
masklinn
í dag viðrar vel til loftárása
Posté le 05-01-2007 à 20:39:10  profilanswer
 

MagicBuzz a écrit :

c'est en tout cas ce que j'ai appris lorsque j'ai fais mes études.

 

après quelques croûtages en règles avec pourtant une compilation correcte, le prof a dû revenir sur cette affirmation.
cependant, ADA est un des rares langages où dès l'écriture, à tout moment, on sait comment il va se comporter, et sans surprise. donc même si le compilo a laissé passer des bugs potentiels, on est sûr à chaque instruction de ce qu'elle va faire.


Je suis au courant, j'ai un peu regardé Ada ;)

 

Mais justement, c'est pareil pour Haskell, pire même puisque pour chaque fonction on sait si elle contient des effets de bord (IO, modification d'état, ...) parce que ça fera partie de son type :D

 

Et comme le langage est fonctionnel pur (pas d'effets de bords, pas de variables locales, les variables sont en fait des constantes [bind-once]) il y a des classes complètes de bugs qui ne peuvent tout simplement pas exister [:dawa]

MagicBuzz a écrit :

inversement, en C par exemple, on peut parfaitement caster un uint en int, et se retrouver avec un superbe dépassement de capacité, sans que ce soit visible au premier coup d'oeil


Ou trasher ses pointeurs avec des pointer arithmetics foireux, ou flinguer sa pile, ou utiliser une zone mémoire non initialisée, ou écraser des zones mémoires allouées à d'autres structures, ou plein d'autres trucs très marrant mais assez gênants quand on voudrait une application avec peu de bugs, je sais [:ddr555]


Message édité par masklinn le 05-01-2007 à 20:40:25

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1499914
FlorentG
Posté le 07-01-2007 à 12:33:44  profilanswer
 

Pour apprendre les bases de l'algo, le mieux reste le QBasic :o :o

 

Tu te fais pas chier avec les types, les machins les trucs, t'as juste ce qu'il faut, tu va direct au but, t'as pas un langage à la con en-dessous avec 20 000 trucs à faire.

 

Genre faire de l'algo avec du Java ou du C# c'est n'importe quoi, le moindre truc que tu veux faire, tu te tapes cash une classe avec fonction main et tout, ce qui fait déjà trop d'information pour débuter.

 

Pour se concentrer sur un truc, mieux vaut ne pas avoir de bruit autout. Alors tu fais ça en QBasic, t'as ton code devant toi, rien autour, t'as juste l'essentiel

Message cité 1 fois
Message édité par FlorentG le 07-01-2007 à 12:33:56
n°1499924
masklinn
í dag viðrar vel til loftárása
Posté le 07-01-2007 à 12:41:18  profilanswer
 

FlorentG a écrit :

Pour apprendre les bases de l'algo, le mieux reste le QBasic :o :o

 

Tu te fais pas chier avec les types, les machins les trucs, t'as juste ce qu'il faut, tu va direct au but, t'as pas un langage à la con en-dessous avec 20 000 trucs à faire.


Marrant, on dirait une description de Python mais au sujet d'un langage moche :o

 

Et pour les types, le problème de Java et C# n'est pas d'en avoir mais de devoir les préciser en permanence y compris (et surtout) quand ça n'a strictement aucun intérêt et que ça fait perdre un maximum de temps :o

 

Parce qu'avoir des types, c'est le bien, quand on a pas de types on se retrouve avec PHP alors bon voila quoi [:totoz]


Message édité par masklinn le 07-01-2007 à 12:43:46

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1499939
Mickey551
Posté le 07-01-2007 à 13:12:58  profilanswer
 

en meme temps le java c'est quend meme un peut compliqué, le C++ je crois que ça permet de commencer en douceur, avec des additions, des boucles et tt le tralala et de migrer doucement vers de la prog GUI.

n°1499950
masklinn
í dag viðrar vel til loftárása
Posté le 07-01-2007 à 13:23:51  profilanswer
 

Mickey551 a écrit :

en meme temps le java c'est quend meme un peut compliqué, le C++ je crois que ça permet de commencer en douceur, avec des additions, des boucles et tt le tralala et de migrer doucement vers de la prog GUI.


C'est une blague?
 
Non parce que Java à la base c'est une simplification du C++, tout ce qui était complexe et (de l'avis de Sun) générateur d'erreur a été dégagé (gestion manuelle de la mémoire, pointeurs, operator overloading, templates, MI, séparation .h/.cpp, ...).
 
Et ça reste beaucoup moins complexe que le clusterfuck qu'est le C++ [:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1499958
Ace17
Posté le 07-01-2007 à 13:48:54  profilanswer
 

masklinn a écrit :

J'avais une citation sur le sujet mais je ne la retrouve pas là tout de suite, mais en substance elle disait qu'en Ada si on réussit à compiler un programme il n'aura pas de bugs.


 
Heuuu je ne suis pas un excellent programmeur ADA mais je peux te dire que je vois plus souvent des "constraint error" (erreur a l'execution) que des erreurs de compilation. J'ai pu observer une promo réaliser un compilo en ADA, ce qui changeait par rapport a l'epoque ou ca se faisait en C, c'est que sur les ecrans a la place de "Segmentation Fault" on avait "Constraint Error" et ca n'etait pas forcement plus utile pour déboguer ...
 

n°1499960
Mickey551
Posté le 07-01-2007 à 13:52:59  profilanswer
 

masklinn a écrit :

C'est une blague?
 
Non parce que Java à la base c'est une simplification du C++, tout ce qui était complexe et (de l'avis de Sun) générateur d'erreur a été dégagé (gestion manuelle de la mémoire, pointeurs, operator overloading, templates, MI, séparation .h/.cpp, ...).
 
Et ça reste beaucoup moins complexe que le clusterfuck qu'est le C++ [:pingouino]


 
apres certaine notion connue, je dit pas que le java c'est pas super simple a utiliser, mais faut deja connaitre les pointeurs, les types, les classes.
 
perso je connaissait C++ avant java, et le java, evidement, ça m'a parus facile, mais les gars a coté de moi qui connaissait pas le C++, ont eu du mal a comprendre les etiquettes, et pk ça marchait pas sur les int, et les void, les contructeurs, c'est quoi un garbage, ou elle est la memoire  ect...


Message édité par Mickey551 le 07-01-2007 à 13:54:20
n°1499965
Tamahome
⭐⭐⭐⭐⭐
Posté le 07-01-2007 à 14:20:46  profilanswer
 

elle est passée où la blonde aux gros seins du topic ?

n°1499966
benou
Posté le 07-01-2007 à 14:21:16  profilanswer
 

pour moi, la meilleur façon d'apprendre la prog c'est :
- commencer par ADA pour apprendre à coder proprement / expérimenter l'aglorythmie qui se traduit bien du pseudo-code en ADA
- faire du C en même temps ou juste après pour comprendre les mécanismes bas niveau et s'habituer à cette syntaxe largement utilisée (java, C++, C#, javascript )
- passer à un langage moderne : C++, Java, C# dans le cadre de projets conséquents pour s'habituer à la manpulation d'un IDE, apprendre à utiliser un vrai environnement de dev (avec repository, bugtracker, etc.), s'habituer à la recherche/réutilisation de libs externes
 


---------------
ma vie, mon oeuvre - HomePlayer
n°1499968
FlorentG
Posté le 07-01-2007 à 14:26:00  profilanswer
 

benou a écrit :

pour moi, la meilleur façon d'apprendre la prog c'est :


:jap: C'est ce que j'ai suivi à peu près :

  • QBasic pour apprendre les bases (if-while-for-input-print)
  • C pour le bas-niveau, piger comment tout fonctionne à la base
  • Un tout p'tit peu d'assembleur pour voir vraiment comment ça se passe tout en dessous
  • Haut-niveau avec Java et .NET

n°1499970
0x90
Posté le 07-01-2007 à 14:34:19  profilanswer
 

benou a écrit :

pour moi, la meilleur façon d'apprendre la prog c'est :
- commencer par ADA pour apprendre à coder proprement / expérimenter l'aglorythmie qui se traduit bien du pseudo-code en ADA
- faire du C en même temps ou juste après pour comprendre les mécanismes bas niveau et s'habituer à cette syntaxe largement utilisée (java, C++, C#, javascript )
- passer à un langage moderne : C++, Java, C# dans le cadre de projets conséquents pour s'habituer à la manpulation d'un IDE, apprendre à utiliser un vrai environnement de dev (avec repository, bugtracker, etc.), s'habituer à la recherche/réutilisation de libs externes


 
Manque de fonctionnel tout ça :/


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1499972
Mickey551
Posté le 07-01-2007 à 14:41:41  profilanswer
 

stop les gars, il veut juste se faire plaisir en aprenant a prog, a ce rythme là, il va devenir flic ou fonctionnaire des impôt :D

n°1499980
masklinn
í dag viðrar vel til loftárása
Posté le 07-01-2007 à 15:14:38  profilanswer
 

Mickey551 a écrit :

apres certaine notion connue, je dit pas que le java c'est pas super simple a utiliser, mais faut deja connaitre les pointeurs


Pas vraiment, même le NPE -- qui est le seul endroit en Java où j'ai pu rencontrer une notion de "pointeur" -- ne parle en fait pas de pointeurs.


Bof, pas besoin de connaître quoi que ce soit en théorie des types pour faire du Java. Pas nécessairement du "bon" java, mais du java quand même


Oui, à la limite, et encore. Mais si on ne connait pas les classes on ne fait pas non plus du C++, on fait un espèce de trucs immonde entre le C et le C++...

Mickey551 a écrit :

perso je connaissait C++ avant java, et le java, evidement, ça m'a parus facile, mais les gars a coté de moi qui connaissait pas le C++, ont eu du mal a comprendre les etiquettes, et pk ça marchait pas sur les int, et les void, les contructeurs, c'est quoi un garbage, ou elle est la memoire  ect...


Et alors, c'est censé montrer que le C++ est plus simple que le Java? Où penses tu qu'ils en seraient si on leur faisait apprendre le C++?

benou a écrit :

pour moi, la meilleur façon d'apprendre la prog c'est :
- commencer par ADA pour apprendre à coder proprement / expérimenter l'aglorythmie qui se traduit bien du pseudo-code en ADA
- faire du C en même temps ou juste après pour comprendre les mécanismes bas niveau et s'habituer à cette syntaxe largement utilisée (java, C++, C#, javascript )
- passer à un langage moderne : C++, Java, C# dans le cadre de projets conséquents pour s'habituer à la manpulation d'un IDE, apprendre à utiliser un vrai environnement de dev (avec repository, bugtracker, etc.), s'habituer à la recherche/réutilisation de libs externes


Pour moi la meilleure façon de commencer ce serait plutôt:

 

* Un langage clair et très haut niveau dans lequel "ça fonctionne", mais qui ne file pas des habitudes horribles. De cette manière l'élève peut être intéressé sans être complètement dégouté, et peut faire des choses utiles. Python est très bien pour ça, Ruby est également acceptable, Scheme peut probablement être une bonne idée mais il force l'apprentissage de concepts complexes très rapidement (récursion omniprésente)  et possède une syntaxe complètement en dehors du chemin classique. Introduire le concept d'environnement de devs immédiatement: versioning obligatoire dès cette étape. Introduire également la notion de qualité et de tests (unitaires et fonctionels)
* Introduire des contraintes (perfs) et complexités qui forcent tout d'abord l'introduction de la recherche algorithmique et structurelle (toujours les meilleurs gains), puis de la micro optimisation. Introduction du C à la fois en tant que langage et en tant qu'outil de gain de performances. Introduction et utilisation d'un langage très fortement typé (ADA) avec explication du pourquoi. Ajouter l'importance de la recherche de libs 3rd party (qui aura normalement commencé en première étape)
* Passer à un langage pour boulet (C++/Java/C#) pour montrer aux élèves ce sur quoi ils vont passer leur vie, au bout de 2 semaines introduire les IDEs pour éviter les suicides.
* Finir en introduisant les paradigmes de programmation hors impératifs/OO: fonctionnel (Haskell, Caml ou SML), distributed/parallel (Erlang?), logique (Prolog), DBC (Eiffel puisqu'il est l'un des rares langages basés sur le concept)
* Optionnellement, ajouter une descente vers l'ASM si la chose est encore possible à ce stade (pas sûr)

 

Et là tu finis avec des gens qui connaissent leur domaine et son capable de choisir en connaissance de cause.

Message cité 1 fois
Message édité par masklinn le 07-01-2007 à 15:15:48

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1499985
FlorentG
Posté le 07-01-2007 à 15:28:04  profilanswer
 

0x90 a écrit :

Manque de fonctionnel tout ça :/


Mais qui, au monde, à part Masklinn fait du fonctionnel ? :D

n°1499994
Mickey551
Posté le 07-01-2007 à 15:45:07  profilanswer
 

masklinn a écrit :

Pas vraiment, même le NPE -- qui est le seul endroit en Java où j'ai pu rencontrer une notion de "pointeur" -- ne parle en fait pas de pointeurs.
 
Bof, pas besoin de connaître quoi que ce soit en théorie des types pour faire du Java. Pas nécessairement du "bon" java, mais du java quand même
 
Oui, à la limite, et encore. Mais si on ne connait pas les classes on ne fait pas non plus du C++, on fait un espèce de trucs immonde entre le C et le C++...
 
Et alors, c'est censé montrer que le C++ est plus simple que le Java? Où penses tu qu'ils en seraient si on leur faisait apprendre le C++?
 
Pour moi la meilleure façon de commencer ce serait plutôt:
 
* Un langage clair et très haut niveau dans lequel "ça fonctionne", mais qui ne file pas des habitudes horribles. De cette manière l'élève peut être intéressé sans être complètement dégouté, et peut faire des choses utiles. Python est très bien pour ça, Ruby est également acceptable, Scheme peut probablement être une bonne idée mais il force l'apprentissage de concepts complexes très rapidement (récursion omniprésente)  et possède une syntaxe complètement en dehors du chemin classique. Introduire le concept d'environnement de devs immédiatement: versioning obligatoire dès cette étape. Introduire également la notion de qualité et de tests (unitaires et fonctionels)
* Introduire des contraintes (perfs) et complexités qui forcent tout d'abord l'introduction de la recherche algorithmique et structurelle (toujours les meilleurs gains), puis de la micro optimisation. Introduction du C à la fois en tant que langage et en tant qu'outil de gain de performances. Introduction et utilisation d'un langage très fortement typé (ADA) avec explication du pourquoi. Ajouter l'importance de la recherche de libs 3rd party (qui aura normalement commencé en première étape)
* Passer à un langage pour boulet (C++/Java/C#) pour montrer aux élèves ce sur quoi ils vont passer leur vie, au bout de 2 semaines introduire les IDEs pour éviter les suicides.
* Finir en introduisant les paradigmes de programmation hors impératifs/OO: fonctionnel (Haskell, Caml ou SML), distributed/parallel (Erlang?), logique (Prolog), DBC (Eiffel puisqu'il est l'un des rares langages basés sur le concept)
* Optionnellement, ajouter une descente vers l'ASM si la chose est encore possible à ce stade (pas sûr)
 
Et là tu finis avec des gens qui connaissent leur domaine et son capable de choisir en connaissance de cause.


 
alors 1)
 
les pointeur en java ça existe, il n'y a même pratiquement que ça, c'est pour ça que l'on utilise des new, sauf pour les types simples comme les int, ou l'on utilise uniquement le contenus de la variable, et pour expliquer pourquoi un "void fonction(int i, Integer I) va modifier le contenu du parametre passé en operande de l'integer mais pas de l'int a quelqu'un qui ne connais pas le principe des pointeurs, une solution; lui aprendre ce qu'est qu'un pointeur.
 
2) quand je dit classe, c'est de la prog objet dont je veut parler, en C++ on peut passer doucement d'un printf jesait pas quoi, a la creation d'un classe qui implemente le printf, et en faire apres des heritages, et des polymorphisme et tt le reste, alors qu'en java, tu n,e fait rien tabt que tu ne sait pas faire un constructeur.
 
3) si l'on connais le C++, je passage a java est quasi imediat, pour le contraire, ben bon courage, donc connaitre le C++ apporte bc.
 

n°1499995
zapan666
Tout est relatif
Posté le 07-01-2007 à 15:51:21  profilanswer
 

Mickey551 a écrit :


les pointeur en java ça existe, il n'y a même pratiquement que ça,


référence

Message cité 1 fois
Message édité par zapan666 le 07-01-2007 à 15:51:41
n°1499997
Mickey551
Posté le 07-01-2007 à 15:53:34  profilanswer
 


je vais pas t'envoyer mon cour non plus hein :D, mais je vais t'apprendre google :p
 
http://www.google.fr/search?client [...] che+Google

n°1500001
zapan666
Tout est relatif
Posté le 07-01-2007 à 16:00:16  profilanswer
 

Mickey551 a écrit :

je vais pas t'envoyer mon cour non plus hein :D, mais je vais t'apprendre google :p
 
http://www.google.fr/search?client [...] che+Google


et en C++, tu fais un pointeur comme une référence ?  [:autobot]  


---------------
my flick r - Just Tab it !
n°1500002
Mickey551
Posté le 07-01-2007 à 16:03:47  profilanswer
 

zapan666 a écrit :

et en C++, tu fais un pointeur comme une référence ?  [:autobot]


 
et bien va expliquer la difference a qq qui a appris a prog uniquement avec java !

n°1500003
0x90
Posté le 07-01-2007 à 16:05:15  profilanswer
 

Faut arrêter de fréquenter des arriérés aussi, c'est pas non plus de la magie noire un pointeur.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1500005
Mickey551
Posté le 07-01-2007 à 16:06:08  profilanswer
 

le topic a été créé par un noob de la prog, donc pour moi C++ c'est bon pour lui, et les pointeur ça peut qd meme donner mal a la tête qd on a pas bien l'habitude :lol:
 


Message édité par Mickey551 le 07-01-2007 à 16:11:17
n°1500007
masklinn
í dag viðrar vel til loftárása
Posté le 07-01-2007 à 16:08:48  profilanswer
 

FlorentG a écrit :

Mais qui, au monde, à part Masklinn fait du fonctionnel ? :D


Les gens qui bossent dans les télécoms quand ils veulent du 9 nines :o

Mickey551 a écrit :

alors 1)
 
les pointeur en java ça existe, il n'y a même pratiquement que ça


Pas au sens des pointeurs C, non. Il n'y a pas d'arithmétique de pointeurs, pas de manipulation complexes de ceux-ci, pas de déréférencement explicite, pas d'allocation explicite du pointee, les pointeurs sont cachés derrière la notion de référence, comme dans la très grande majorité des langages avec GC.

Mickey551 a écrit :

expliquer pourquoi un "void fonction(int i, Integer I) va modifier le contenu du parametre passé en operande de l'integer mais pas de l'int a quelqu'un qui ne connais pas le principe des pointeurs, une solution; lui aprendre ce qu'est qu'un pointeur.


Heuu je ne sais pas dans quel univers parallèle tu résides, mais en l'occurence dans le mien il ne le fait pas [:pingouino]
 

Code :
  1. import java.lang.Integer;
  2. public class Test {
  3.     public static void function(int foo, Integer bar) {
  4.         foo = 3;
  5.         bar = new Integer(5);
  6.     }
  7.     public static void main(String args[]) {
  8.         int foo = 0;
  9.         Integer bar = new Integer(0);
  10.         System.out.println("Pre function, foo = " + foo + ", bar = " + bar.intValue());
  11.         function(foo, bar);
  12.         System.out.println("Post function, foo = " + foo + ", bar = " + bar.intValue());
  13.     }
  14. }


Output:

$ java Test
Pre function, foo = 0, bar = 0
Post function, foo = 0, bar = 0


[:dawak]
Ce genre de trucs n'est faisable qu'en C# avec les outparameters et les références "à la C++", qui doivent être déclarées explicitement et ne font pas partie du comportement par défaut du langage.

Mickey551 a écrit :

2) quand je dit classe, c'est de la prog objet dont je veut parler, en C++ on peut passer doucement d'un printf jesait pas quoi


Printf c'est du C, pas du C++, ça revient à ce que je disais: faire du C++ sans POO, c'est pas du C++.

FlorentG a écrit :

a la creation d'un classe qui implemente le printf, et en faire apres des heritages, et des polymorphisme et tt le reste, alors qu'en java, tu n,e fait rien tabt que tu ne sait pas faire un constructeur.


[:pingouino]
Pas besoin d'un constructeur pour bricoler de l'impératif dans un `main`, non [:pingouino]

Mickey551 a écrit :

3) si l'on connais le C++, je passage a java est quasi imediat, pour le contraire, ben bon courage, donc connaitre le C++ apporte bc.


C'est pas un argument ça, c'est du grand n'importe quoi [:pingouino]
 
Pour la dernière fois, le Java a été fait pour être plus simple que le C++, il n'y a rien d'anormal à ce que le passage C++ -> Java soit relativement facile, c'est exactement dans cette optique que le Java a été créé, le contraire serait plus qu'étonnant [:dawak]

Message cité 2 fois
Message édité par masklinn le 07-01-2007 à 16:10:07

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1500012
Mickey551
Posté le 07-01-2007 à 16:20:54  profilanswer
 

masklinn a écrit :

Les gens qui bossent dans les télécoms quand ils veulent du 9 nines :o
 
Pas au sens des pointeurs C, non. Il n'y a pas d'arithmétique de pointeurs, pas de manipulation complexes de ceux-ci, pas de déréférencement explicite, pas d'allocation explicite du pointee, les pointeurs sont cachés derrière la notion de référence, comme dans la très grande majorité des langages avec GC.
 
Heuu je ne sais pas dans quel univers parallèle tu résides, mais en l'occurence dans le mien il ne le fait pas [:pingouino]
 

Code :
  1. import java.lang.Integer;
  2. public class Test {
  3.     public static void function(int foo, Integer bar) {
  4.         foo = 3;
  5.         bar = new Integer(5);
  6.     }
  7.     public static void main(String args[]) {
  8.         int foo = 0;
  9.         Integer bar = new Integer(0);
  10.         System.out.println("Pre function, foo = " + foo + ", bar = " + bar.intValue());
  11.         function(foo, bar);
  12.         System.out.println("Post function, foo = " + foo + ", bar = " + bar.intValue());
  13.     }
  14. }


Output:

$ java Test
Pre function, foo = 0, bar = 0
Post function, foo = 0, bar = 0


[:dawak]
Ce genre de trucs n'est faisable qu'en C# avec les outparameters et les références "à la C++", qui doivent être déclarées explicitement et ne font pas partie du comportement par défaut du langage.
 
Printf c'est du C, pas du C++, ça revient à ce que je disais: faire du C++ sans POO, c'est pas du C++.
 
[:pingouino]
Pas besoin d'un constructeur pour bricoler de l'impératif dans un `main`, non [:pingouino]
 
C'est pas un argument ça, c'est du grand n'importe quoi [:pingouino]
 
Pour la dernière fois, le Java a été fait pour être plus simple que le C++, il n'y a rien d'anormal à ce que le passage C++ -> Java soit relativement facile, c'est exactement dans cette optique que le Java a été créé, le contraire serait plus qu'étonnant [:dawak]


 
suis pas d'accord sur grand chose ;
 
si l'on modifie ton code de la maniere suivante;
 

Code :
  1. import java.lang.Integer;
  2. public class Test {
  3.     public static void function(int foo, Integer bar) {
  4.         foo = 3;
  5.         bar = 5;
  6.     }
  7.     public static void main(String args[]) {
  8.         int foo = 0;
  9.         Integer bar = new Integer(0);
  10.         System.out.println("Pre function, foo = " + foo + ", bar = " + bar.intValue());
  11.         function(foo, bar);
  12.         System.out.println("Post function, foo = " + foo + ", bar = " + bar.intValue());
  13.     }
  14. }


le nouvel Output:

$ java Test
Pre function, foo = 0, bar = 0
Post function, foo = 0, bar = 5


 
avec une notion de surcharge au passage.
 
 
printf ça marche en c et en c++, c'est une fonction certe ecrite en C mais qui fonctionne parfaitement en C++.

n°1500013
0x90
Posté le 07-01-2007 à 16:21:23  profilanswer
 

masklinn a écrit :


Printf c'est du C, pas du C++, ça revient à ce que je disais: faire du C++ sans POO, c'est pas du C++ orienté objet.


[:aloy]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5

Aller à :
Ajouter une réponse
 

Sujets relatifs
Mini débat, quelle implementation JAVA de serveur ftp preferez vous ?Recherche Enseignant Java pour Cours Particulier
Coder Java Sous MacJava Mysql besoin d'aide
Communication Client Java avec une Servlet via HTTPS / SSLPositionner une variable d'environnement Windows depuis Java ?
Java et LDAP iPlanetDifférence entre les HashSet et les LinkedHashSet dans l'API Java
[jedit] compiler .java ok, executer comment faire ?[C#] Apprendre ce language, oui, mais où ?
Plus de sujets relatifs à : Jeune de 16 ans veut apprendre Java !


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)