In article <49a1d3fd$0$17769$,
Sylvain SF wrote:voila ! que l'auteur expie cette injure au bon sens - et surtout
le fait d'utiliser le format d'un méchant éditeur qui fait des
sous en vendant cher des softs douteux jamais ouvert ! btw, on
aurait pu flamber aussi le flash dans ce fil, non ?
Euh la, par contre, tu ferais mieux de te taire.
In article <49a1d3fd$0$17769$ba4acef3@news.orange.fr>,
Sylvain SF <sylvain@boiteaspam.info> wrote:
voila ! que l'auteur expie cette injure au bon sens - et surtout
le fait d'utiliser le format d'un méchant éditeur qui fait des
sous en vendant cher des softs douteux jamais ouvert ! btw, on
aurait pu flamber aussi le flash dans ce fil, non ?
Euh la, par contre, tu ferais mieux de te taire.
In article <49a1d3fd$0$17769$,
Sylvain SF wrote:voila ! que l'auteur expie cette injure au bon sens - et surtout
le fait d'utiliser le format d'un méchant éditeur qui fait des
sous en vendant cher des softs douteux jamais ouvert ! btw, on
aurait pu flamber aussi le flash dans ce fil, non ?
Euh la, par contre, tu ferais mieux de te taire.
Exact. Quand on voit comment est utiliser le html, on peut se poser des
questions sur la bonne santé mentale de 90% des webmestres...
Il y a une petite différence entre PDF et Flash. L'un est un quasi
standard, l'autre sert aux neuneus à fabriquer des arbres de Noël !
Exact. Quand on voit comment est utiliser le html, on peut se poser des
questions sur la bonne santé mentale de 90% des webmestres...
Il y a une petite différence entre PDF et Flash. L'un est un quasi
standard, l'autre sert aux neuneus à fabriquer des arbres de Noël !
Exact. Quand on voit comment est utiliser le html, on peut se poser des
questions sur la bonne santé mentale de 90% des webmestres...
Il y a une petite différence entre PDF et Flash. L'un est un quasi
standard, l'autre sert aux neuneus à fabriquer des arbres de Noël !
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa:C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa<wykaaa@yahoo.fr>:
C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa:C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa :C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa <wykaaa@yahoo.fr>:
C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa :C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
Si dans quelques années, les languages (ou version de languages) à
garbage collector se sont définitivement imposées [...]
[...] de conception des interfaces de manière à
réllement isoler les objets
Si dans quelques années, les languages (ou version de languages) à
garbage collector se sont définitivement imposées [...]
[...] de conception des interfaces de manière à
réllement isoler les objets
Si dans quelques années, les languages (ou version de languages) à
garbage collector se sont définitivement imposées [...]
[...] de conception des interfaces de manière à
réllement isoler les objets
Fabien LE LEZ wrote:On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa:C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
Ne pourrait-on pas en dire presque autant d'un certain nombre des
différences entre C++ et Java ?
Dans l'approche présentée ici, n'y-a-t-il pas un risque de surcharge de
l'apprenant moyen, détourné vers des subtilités pas essentielles
(constructeur faisant de l'allocation dynamiques) et qui à l'arrivée
aura retenu une version plus ou moins foireuses des concepts compliqués
(et inutilisable car c'est des trucs où on ne peut pas se permettre une
seule erreur quand on s'en sert), mais ne maitrisera réellement pas les
bases ?
Si dans quelques années, les languages (ou version de languages) à
garbage collector se sont définitivement imposées (sauf pour quelques
applications très pointues), toute la partie passée à expliquer ces
subtilité sur l'allocation dynamique ne sera-t-elle pas un peu ridicule ?
Franchement personnellement je préfererais passer deux fois plus de
temps à être sûr que l'apprenant à *vraiment* compris les concept de
développement par couches, de conception des interfaces de manière à
réllement isoler les objets, de ne pas d'un seul coup exposer dans
l'objet A un truc qui manifestement devrait être interne mais voilà en
fait finalement l'objet B en a besoin et il ne voit pas comment faire
autrement que de le rendre publique, le concept de comment rendre
générique mais de ne pas de faire des couches de généricité pour le
plaisir sans aucun intérêt, de comment on peut refactoriser un code
quand on se rend compte qu'on s'était planté au départ, et de pourquoi
définir dès le départ les fonctionnalités attendus et écrire les tests
qui s'assurent qu'elles sont réalisées devient un énorme gain de
productivité à la fin.
Tiens les deux entrées de blog suivant sur le dévelopement d'un outils
python qui duplique le fonctionnement de gmake (et de presque
l'intégralité des subtilités de gmake) est une bonne illustration des
ces derniers principes (par exemple sur le fait que même les très, très
bons hackers savent tôt ou tard ils trouveront une erreur de conception
qui les obligera à refactoriser du code) :
http://benjamin.smedbergs.us/blog/2009-02-23/sanity-and-testcases-for-pymake/
http://vocamus.net/dave/?p97
D'ailleurs on pourrait se demander si aujourd'hui le meilleur language à
enseigner ne serait pas javascript, à condition de le faire proprement
en partant du concept de programmation par prototype et des liens avec
Self http://en.wikipedia.org//wiki/Self_(programming_language) et sur
une plate-forme en JIT, qui fait concurrence à pas mal d'autres
languages en rapidité d'exécution, ainsi qu'en utilisant les mécanismes
avancés piqués à Python (générateurs, itérateurs, assignation
déstructurante, expressions génératrices
http://fr.wikipedia.org/wiki/JavaScript#Version_1.7
https://developer.mozilla.org/fr/Nouveautés_dans_JavaScript_1.7
Fabien LE LEZ wrote:
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa<wykaaa@yahoo.fr>:
C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
Ne pourrait-on pas en dire presque autant d'un certain nombre des
différences entre C++ et Java ?
Dans l'approche présentée ici, n'y-a-t-il pas un risque de surcharge de
l'apprenant moyen, détourné vers des subtilités pas essentielles
(constructeur faisant de l'allocation dynamiques) et qui à l'arrivée
aura retenu une version plus ou moins foireuses des concepts compliqués
(et inutilisable car c'est des trucs où on ne peut pas se permettre une
seule erreur quand on s'en sert), mais ne maitrisera réellement pas les
bases ?
Si dans quelques années, les languages (ou version de languages) à
garbage collector se sont définitivement imposées (sauf pour quelques
applications très pointues), toute la partie passée à expliquer ces
subtilité sur l'allocation dynamique ne sera-t-elle pas un peu ridicule ?
Franchement personnellement je préfererais passer deux fois plus de
temps à être sûr que l'apprenant à *vraiment* compris les concept de
développement par couches, de conception des interfaces de manière à
réllement isoler les objets, de ne pas d'un seul coup exposer dans
l'objet A un truc qui manifestement devrait être interne mais voilà en
fait finalement l'objet B en a besoin et il ne voit pas comment faire
autrement que de le rendre publique, le concept de comment rendre
générique mais de ne pas de faire des couches de généricité pour le
plaisir sans aucun intérêt, de comment on peut refactoriser un code
quand on se rend compte qu'on s'était planté au départ, et de pourquoi
définir dès le départ les fonctionnalités attendus et écrire les tests
qui s'assurent qu'elles sont réalisées devient un énorme gain de
productivité à la fin.
Tiens les deux entrées de blog suivant sur le dévelopement d'un outils
python qui duplique le fonctionnement de gmake (et de presque
l'intégralité des subtilités de gmake) est une bonne illustration des
ces derniers principes (par exemple sur le fait que même les très, très
bons hackers savent tôt ou tard ils trouveront une erreur de conception
qui les obligera à refactoriser du code) :
http://benjamin.smedbergs.us/blog/2009-02-23/sanity-and-testcases-for-pymake/
http://vocamus.net/dave/?p97
D'ailleurs on pourrait se demander si aujourd'hui le meilleur language à
enseigner ne serait pas javascript, à condition de le faire proprement
en partant du concept de programmation par prototype et des liens avec
Self http://en.wikipedia.org//wiki/Self_(programming_language) et sur
une plate-forme en JIT, qui fait concurrence à pas mal d'autres
languages en rapidité d'exécution, ainsi qu'en utilisant les mécanismes
avancés piqués à Python (générateurs, itérateurs, assignation
déstructurante, expressions génératrices
http://fr.wikipedia.org/wiki/JavaScript#Version_1.7
https://developer.mozilla.org/fr/Nouveautés_dans_JavaScript_1.7
Fabien LE LEZ wrote:On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa:C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
Ne pourrait-on pas en dire presque autant d'un certain nombre des
différences entre C++ et Java ?
Dans l'approche présentée ici, n'y-a-t-il pas un risque de surcharge de
l'apprenant moyen, détourné vers des subtilités pas essentielles
(constructeur faisant de l'allocation dynamiques) et qui à l'arrivée
aura retenu une version plus ou moins foireuses des concepts compliqués
(et inutilisable car c'est des trucs où on ne peut pas se permettre une
seule erreur quand on s'en sert), mais ne maitrisera réellement pas les
bases ?
Si dans quelques années, les languages (ou version de languages) à
garbage collector se sont définitivement imposées (sauf pour quelques
applications très pointues), toute la partie passée à expliquer ces
subtilité sur l'allocation dynamique ne sera-t-elle pas un peu ridicule ?
Franchement personnellement je préfererais passer deux fois plus de
temps à être sûr que l'apprenant à *vraiment* compris les concept de
développement par couches, de conception des interfaces de manière à
réllement isoler les objets, de ne pas d'un seul coup exposer dans
l'objet A un truc qui manifestement devrait être interne mais voilà en
fait finalement l'objet B en a besoin et il ne voit pas comment faire
autrement que de le rendre publique, le concept de comment rendre
générique mais de ne pas de faire des couches de généricité pour le
plaisir sans aucun intérêt, de comment on peut refactoriser un code
quand on se rend compte qu'on s'était planté au départ, et de pourquoi
définir dès le départ les fonctionnalités attendus et écrire les tests
qui s'assurent qu'elles sont réalisées devient un énorme gain de
productivité à la fin.
Tiens les deux entrées de blog suivant sur le dévelopement d'un outils
python qui duplique le fonctionnement de gmake (et de presque
l'intégralité des subtilités de gmake) est une bonne illustration des
ces derniers principes (par exemple sur le fait que même les très, très
bons hackers savent tôt ou tard ils trouveront une erreur de conception
qui les obligera à refactoriser du code) :
http://benjamin.smedbergs.us/blog/2009-02-23/sanity-and-testcases-for-pymake/
http://vocamus.net/dave/?p97
D'ailleurs on pourrait se demander si aujourd'hui le meilleur language à
enseigner ne serait pas javascript, à condition de le faire proprement
en partant du concept de programmation par prototype et des liens avec
Self http://en.wikipedia.org//wiki/Self_(programming_language) et sur
une plate-forme en JIT, qui fait concurrence à pas mal d'autres
languages en rapidité d'exécution, ainsi qu'en utilisant les mécanismes
avancés piqués à Python (générateurs, itérateurs, assignation
déstructurante, expressions génératrices
http://fr.wikipedia.org/wiki/JavaScript#Version_1.7
https://developer.mozilla.org/fr/Nouveautés_dans_JavaScript_1.7
In article ,
Fabien LE LEZ wrote:On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa :C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.Ce qui explique peut-être pourquoi ce n'est pas abordé...
Il faudrait au moins mentionner a quoi ca sert, et quand.
Mais bon, je suis encore un peu plus extreme: je suis pour passer beaucoup
de temps sur l'encapsulation et l'abstraction, nettement moins de temps
sur l'heritage (qui est deja assez dangereux), et apres expliquer les pattern
utiles (l'inversion de dependances, et l'heritage implementation/interface,
seul cas "raisonnable" d'heritage multiple).
Le chiendent des notions complexes, comme la surcharge ou l'heritage
multiple, c'est qu'on ne voit jamais aucun soucis sur de petits projets.
C'est seulement lorsqu'on a deja 500 lignes de code qu'on voit les soucis
architecturaux qui, a terme, forcent a tout mettre a la poubelle et a
recommencer a partir de rien...
In article <ig7so4p2tg306mqak76hvj6kpr5f885ta5@4ax.com>,
Fabien LE LEZ <usenet17@x.edulang.com> wrote:
On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa <wykaaa@yahoo.fr>:
C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.
Ce qui explique peut-être pourquoi ce n'est pas abordé...
Il faudrait au moins mentionner a quoi ca sert, et quand.
Mais bon, je suis encore un peu plus extreme: je suis pour passer beaucoup
de temps sur l'encapsulation et l'abstraction, nettement moins de temps
sur l'heritage (qui est deja assez dangereux), et apres expliquer les pattern
utiles (l'inversion de dependances, et l'heritage implementation/interface,
seul cas "raisonnable" d'heritage multiple).
Le chiendent des notions complexes, comme la surcharge ou l'heritage
multiple, c'est qu'on ne voit jamais aucun soucis sur de petits projets.
C'est seulement lorsqu'on a deja 500 lignes de code qu'on voit les soucis
architecturaux qui, a terme, forcent a tout mettre a la poubelle et a
recommencer a partir de rien...
In article ,
Fabien LE LEZ wrote:On Sun, 08 Feb 2009 00:38:48 +0100, Wykaaa :C'est bizarre si ce n'est pas abordé car c'est plein de pièges.
personnellement, et je ne suis pas le seul, j'en déconseille l'emploi
sauf dans des cas très particuliers.Ce qui explique peut-être pourquoi ce n'est pas abordé...
Il faudrait au moins mentionner a quoi ca sert, et quand.
Mais bon, je suis encore un peu plus extreme: je suis pour passer beaucoup
de temps sur l'encapsulation et l'abstraction, nettement moins de temps
sur l'heritage (qui est deja assez dangereux), et apres expliquer les pattern
utiles (l'inversion de dependances, et l'heritage implementation/interface,
seul cas "raisonnable" d'heritage multiple).
Le chiendent des notions complexes, comme la surcharge ou l'heritage
multiple, c'est qu'on ne voit jamais aucun soucis sur de petits projets.
C'est seulement lorsqu'on a deja 500 lignes de code qu'on voit les soucis
architecturaux qui, a terme, forcent a tout mettre a la poubelle et a
recommencer a partir de rien...
Marc Espie a écrit :Le chiendent des notions complexes, comme la surcharge ou l'heritage
multiple, c'est qu'on ne voit jamais aucun soucis sur de petits projets.
C'est seulement lorsqu'on a deja 500 lignes de code qu'on voit les soucis
architecturaux qui, a terme, forcent a tout mettre a la poubelle et
a recommencer a partir de rien...
Pour moi, un petit logiciel, c'est jusqu'à, environ, 10 kloc de code...
C'est bizarre de dire "C'est seulement lorsqu'on a deja 500 lignes de
code qu'on voit les soucis architecturaux" car, quand on fait de
l'architecture, on n'a pas encore codé et si l'on fait de
l'architecture "proprement" (c'est-à-dire en respectant bien les
principes d'abstraction et d'encapulation) on ne devrait pas
rencontrer de gros soucis quel que soit le nombre de lignes de code
final.
Marc Espie a écrit :
Le chiendent des notions complexes, comme la surcharge ou l'heritage
multiple, c'est qu'on ne voit jamais aucun soucis sur de petits projets.
C'est seulement lorsqu'on a deja 500 lignes de code qu'on voit les soucis
architecturaux qui, a terme, forcent a tout mettre a la poubelle et
a recommencer a partir de rien...
Pour moi, un petit logiciel, c'est jusqu'à, environ, 10 kloc de code...
C'est bizarre de dire "C'est seulement lorsqu'on a deja 500 lignes de
code qu'on voit les soucis architecturaux" car, quand on fait de
l'architecture, on n'a pas encore codé et si l'on fait de
l'architecture "proprement" (c'est-à-dire en respectant bien les
principes d'abstraction et d'encapulation) on ne devrait pas
rencontrer de gros soucis quel que soit le nombre de lignes de code
final.
Marc Espie a écrit :Le chiendent des notions complexes, comme la surcharge ou l'heritage
multiple, c'est qu'on ne voit jamais aucun soucis sur de petits projets.
C'est seulement lorsqu'on a deja 500 lignes de code qu'on voit les soucis
architecturaux qui, a terme, forcent a tout mettre a la poubelle et
a recommencer a partir de rien...
Pour moi, un petit logiciel, c'est jusqu'à, environ, 10 kloc de code...
C'est bizarre de dire "C'est seulement lorsqu'on a deja 500 lignes de
code qu'on voit les soucis architecturaux" car, quand on fait de
l'architecture, on n'a pas encore codé et si l'on fait de
l'architecture "proprement" (c'est-à-dire en respectant bien les
principes d'abstraction et d'encapulation) on ne devrait pas
rencontrer de gros soucis quel que soit le nombre de lignes de code
final.
Il me semble cependant que,
dans nombres de cas de la vie réelle, les développeurs vont devoir vivre
encore longtemps avec la manipulation, certes délicate, de la mémoire et
l'allocation dynamique explicite.
Il me semble cependant que,
dans nombres de cas de la vie réelle, les développeurs vont devoir vivre
encore longtemps avec la manipulation, certes délicate, de la mémoire et
l'allocation dynamique explicite.
Il me semble cependant que,
dans nombres de cas de la vie réelle, les développeurs vont devoir vivre
encore longtemps avec la manipulation, certes délicate, de la mémoire et
l'allocation dynamique explicite.
Je ne suis pas d'accord sur "plus C# que Java" car Java est maintenant
presque dans le domaine du libre alors que C# est propriétaire et que
son langage intermédiaire (MSIL, l'équivalent du bytecode) n'est pas
très "inter-langages" (.NET supporte d'autres langages mais pas
l'ensemble de leurs bibliothèques, ce qui est très piégeant).
Je ne suis pas d'accord sur "plus C# que Java" car Java est maintenant
presque dans le domaine du libre alors que C# est propriétaire et que
son langage intermédiaire (MSIL, l'équivalent du bytecode) n'est pas
très "inter-langages" (.NET supporte d'autres langages mais pas
l'ensemble de leurs bibliothèques, ce qui est très piégeant).
Je ne suis pas d'accord sur "plus C# que Java" car Java est maintenant
presque dans le domaine du libre alors que C# est propriétaire et que
son langage intermédiaire (MSIL, l'équivalent du bytecode) n'est pas
très "inter-langages" (.NET supporte d'autres langages mais pas
l'ensemble de leurs bibliothèques, ce qui est très piégeant).