La plupart des points me semble obsolètes. J'ai fais pas mal de delphi
et ça doit être la seule implémentation qui a survécu (avec FreePascal
qui est plus ou moins compatible avec delphi).
Concernant les strings, le vieux type pascal n'est plus utilisé depuis
belle lurette. Les chaînes sont complétement dynamiques.
Pour le typage des tableaux, c'est toujours vrai mais on peut utiliser
des tableaux dynamique sans taille fixe.
Concernant les variables d'itération dans une boucle for, c'est toujours
vrai, elles sont indéfinies en dehors de la boucle.
Je crois qu'il y a un "default" sur le case et un "break" (mon pascal
est rouillé).
Les gros reproches que j'ai vis à vis du pascal moderne "Object Pascal"
comme ils disent c'était l'absence de généricité et la pauvreté des
conteneurs. Ainsi qu'une gestion de la création et destruction des
objets manuelle et très pénible.
De toutes façons c'est mort...
La plupart des points me semble obsolètes. J'ai fais pas mal de delphi
et ça doit être la seule implémentation qui a survécu (avec FreePascal
qui est plus ou moins compatible avec delphi).
Concernant les strings, le vieux type pascal n'est plus utilisé depuis
belle lurette. Les chaînes sont complétement dynamiques.
Pour le typage des tableaux, c'est toujours vrai mais on peut utiliser
des tableaux dynamique sans taille fixe.
Concernant les variables d'itération dans une boucle for, c'est toujours
vrai, elles sont indéfinies en dehors de la boucle.
Je crois qu'il y a un "default" sur le case et un "break" (mon pascal
est rouillé).
Les gros reproches que j'ai vis à vis du pascal moderne "Object Pascal"
comme ils disent c'était l'absence de généricité et la pauvreté des
conteneurs. Ainsi qu'une gestion de la création et destruction des
objets manuelle et très pénible.
De toutes façons c'est mort...
La plupart des points me semble obsolètes. J'ai fais pas mal de delphi
et ça doit être la seule implémentation qui a survécu (avec FreePascal
qui est plus ou moins compatible avec delphi).
Concernant les strings, le vieux type pascal n'est plus utilisé depuis
belle lurette. Les chaînes sont complétement dynamiques.
Pour le typage des tableaux, c'est toujours vrai mais on peut utiliser
des tableaux dynamique sans taille fixe.
Concernant les variables d'itération dans une boucle for, c'est toujours
vrai, elles sont indéfinies en dehors de la boucle.
Je crois qu'il y a un "default" sur le case et un "break" (mon pascal
est rouillé).
Les gros reproches que j'ai vis à vis du pascal moderne "Object Pascal"
comme ils disent c'était l'absence de généricité et la pauvreté des
conteneurs. Ainsi qu'une gestion de la création et destruction des
objets manuelle et très pénible.
De toutes façons c'est mort...
Non c'est faux. On ne peut juste pas modifier la valeur de la variable
d'itération dans une boucle for mais elles existent en dehors des
boucles et il faut même les déclarer.
Non c'est faux. On ne peut juste pas modifier la valeur de la variable
d'itération dans une boucle for mais elles existent en dehors des
boucles et il faut même les déclarer.
Non c'est faux. On ne peut juste pas modifier la valeur de la variable
d'itération dans une boucle for mais elles existent en dehors des
boucles et il faut même les déclarer.
Oui mais elles sont *indéfinies* en dehors de la boucle
for i := 0 to 30 do begin
...
end;
write (i);
La valeur de i dans le write n'est pas définie, ie i != 30
Ça j'en suis sûr parce que je me suis fait avoir...
Oui mais elles sont *indéfinies* en dehors de la boucle
for i := 0 to 30 do begin
...
end;
write (i);
La valeur de i dans le write n'est pas définie, ie i != 30
Ça j'en suis sûr parce que je me suis fait avoir...
Oui mais elles sont *indéfinies* en dehors de la boucle
for i := 0 to 30 do begin
...
end;
write (i);
La valeur de i dans le write n'est pas définie, ie i != 30
Ça j'en suis sûr parce que je me suis fait avoir...
Le 26-11-2009, ? propos de
Re: go,
Yliur ?crivait dans fr.comp.os.linux.debats :
>
>> Disons que j'ai un soft qui est un serveur en java et qui
>> tourne 24h/24. Là, tu es _obligé_ de faire le ménage toi-même si tu
>> ne veux pas que le truc se mette à bouffer toute la mémoire avec
>> des connexions TCP (et donc des threads) mortes qui continuent à
>> polluer la JVM. Les problèmes, ça arrive _très_ vite avec ce gen re
>> de gag.
>>
>
> Des serveurs d'application java qui tournent 24h/24 ce n'est pas
> exceptionnel. Je ne vois pas dans quel cas des connexions TCP
> pourraient être conservées comme ça. Tu as un exemple (sur un
> serveur d'application ou un serveur que tu écris toi-même, qui est
> peut-être le cas dont tu parles) ?
J'ai des exemples avec un progiciel écrit en java
effectivement développé par une équipe maison (qui connaît
parfaitement ces technos). Le truc était utilisé entre la France et
des pays à accès internet aléatoires que je ne citerais pas. Il a
fallu bricoler tout un système pour faire le ménage dans les threads
morts sur des timeout de sockets et des trucs plus bizarres encore.
Au début, ça se soldait par un redémarrage du truc tous les jours à
6h00 du matin. Aujourd'hui, la chose est stabilisée, mais ça n'a pas
été simple. La solution a été de coller un thread de surveillance qui
'pingue' le client. Si le client ne répond pas à trois ping
consécutifs, sa session sur le serveur est libérée. Tous les
mécanismes prévus par Java fonctionnaient parfaitement avec une
socket locale, mais plus avec une socket réseau dès lors que l'accès
était de mauvaise qualité.
>> Le problème de cette gestion des ressources, c'est que ça
>> cache tout et que le programmeur qui n'est pas passé par la case C
>> ne sait plus exactement ce qui se passe.
>>
>> JKB
>>
>
> Oui, s'il n'a pas appris à programme il fait vite des bêtises ;) .
La question est donc : peut-on directement attaquer par un
truc comme java ?
JKB
Le 26-11-2009, ? propos de
Re: go,
Yliur ?crivait dans fr.comp.os.linux.debats :
>
>> Disons que j'ai un soft qui est un serveur en java et qui
>> tourne 24h/24. Là, tu es _obligé_ de faire le ménage toi-même si tu
>> ne veux pas que le truc se mette à bouffer toute la mémoire avec
>> des connexions TCP (et donc des threads) mortes qui continuent à
>> polluer la JVM. Les problèmes, ça arrive _très_ vite avec ce gen re
>> de gag.
>>
>
> Des serveurs d'application java qui tournent 24h/24 ce n'est pas
> exceptionnel. Je ne vois pas dans quel cas des connexions TCP
> pourraient être conservées comme ça. Tu as un exemple (sur un
> serveur d'application ou un serveur que tu écris toi-même, qui est
> peut-être le cas dont tu parles) ?
J'ai des exemples avec un progiciel écrit en java
effectivement développé par une équipe maison (qui connaît
parfaitement ces technos). Le truc était utilisé entre la France et
des pays à accès internet aléatoires que je ne citerais pas. Il a
fallu bricoler tout un système pour faire le ménage dans les threads
morts sur des timeout de sockets et des trucs plus bizarres encore.
Au début, ça se soldait par un redémarrage du truc tous les jours à
6h00 du matin. Aujourd'hui, la chose est stabilisée, mais ça n'a pas
été simple. La solution a été de coller un thread de surveillance qui
'pingue' le client. Si le client ne répond pas à trois ping
consécutifs, sa session sur le serveur est libérée. Tous les
mécanismes prévus par Java fonctionnaient parfaitement avec une
socket locale, mais plus avec une socket réseau dès lors que l'accès
était de mauvaise qualité.
>> Le problème de cette gestion des ressources, c'est que ça
>> cache tout et que le programmeur qui n'est pas passé par la case C
>> ne sait plus exactement ce qui se passe.
>>
>> JKB
>>
>
> Oui, s'il n'a pas appris à programme il fait vite des bêtises ;) .
La question est donc : peut-on directement attaquer par un
truc comme java ?
JKB
Le 26-11-2009, ? propos de
Re: go,
Yliur ?crivait dans fr.comp.os.linux.debats :
>
>> Disons que j'ai un soft qui est un serveur en java et qui
>> tourne 24h/24. Là, tu es _obligé_ de faire le ménage toi-même si tu
>> ne veux pas que le truc se mette à bouffer toute la mémoire avec
>> des connexions TCP (et donc des threads) mortes qui continuent à
>> polluer la JVM. Les problèmes, ça arrive _très_ vite avec ce gen re
>> de gag.
>>
>
> Des serveurs d'application java qui tournent 24h/24 ce n'est pas
> exceptionnel. Je ne vois pas dans quel cas des connexions TCP
> pourraient être conservées comme ça. Tu as un exemple (sur un
> serveur d'application ou un serveur que tu écris toi-même, qui est
> peut-être le cas dont tu parles) ?
J'ai des exemples avec un progiciel écrit en java
effectivement développé par une équipe maison (qui connaît
parfaitement ces technos). Le truc était utilisé entre la France et
des pays à accès internet aléatoires que je ne citerais pas. Il a
fallu bricoler tout un système pour faire le ménage dans les threads
morts sur des timeout de sockets et des trucs plus bizarres encore.
Au début, ça se soldait par un redémarrage du truc tous les jours à
6h00 du matin. Aujourd'hui, la chose est stabilisée, mais ça n'a pas
été simple. La solution a été de coller un thread de surveillance qui
'pingue' le client. Si le client ne répond pas à trois ping
consécutifs, sa session sur le serveur est libérée. Tous les
mécanismes prévus par Java fonctionnaient parfaitement avec une
socket locale, mais plus avec une socket réseau dès lors que l'accès
était de mauvaise qualité.
>> Le problème de cette gestion des ressources, c'est que ça
>> cache tout et que le programmeur qui n'est pas passé par la case C
>> ne sait plus exactement ce qui se passe.
>>
>> JKB
>>
>
> Oui, s'il n'a pas appris à programme il fait vite des bêtises ;) .
La question est donc : peut-on directement attaquer par un
truc comme java ?
JKB
batyann811 , dans le message
<4b0eacf7$0$991$, a écrit :
> Justement parce que c'est juste un pointeur déguisé.
Non.
batyann811 , dans le message
<4b0eacf7$0$991$ba4acef3@news.orange.fr>, a écrit :
> Justement parce que c'est juste un pointeur déguisé.
Non.
batyann811 , dans le message
<4b0eacf7$0$991$, a écrit :
> Justement parce que c'est juste un pointeur déguisé.
Non.
> De plus les idées de Ritchie sur les enums ou l'absence de booleens
> ne devaient pas être si bonne puisque Stroustrup s'est senti obligé
> d'y apporter quelques corrections.
Remouais. Une autre référence pas controversée du tout.
Personnellement, l'évocation de ce type aurait plutôt
tendance à me faire vomir.
> Cependant je ne doute pas que Ritchie a
> fait ces choix en toute conscience. Il voulait un langage d'assez
> bas niveau et certainement un compilateur assez simple à écrire. Le
> drame c'est que son langage a trop bien marché...
Le drame, ce n'est pas que ce langage ait bien marché. Son
drame, c'est qu'il est utilisé dans plein de domaines où il existe des
langages bien mieux fichus. Le C, c'est avant tout pour de
l'écriture système. Lorsqu'on fait du calcul, on devrait
utiliser le Fortran qui a été écrit pour cela. Pour l'embarqué ou le
sensible, ADA est tout indiqué. Le problème est qu'on utilise du C
(ou C++, même combat) partout en partant du principe que c'est une
panacée, ce qui n'est pas le cas. Écrire un code C parfaitement
portable et qui récupère toutes les erreurs de toutes le fonctions,
c'est un sacré boulot et quasiment personne ne le fait, alors que
c'est assez trivial dans d'autres langages.
> De plus les idées de Ritchie sur les enums ou l'absence de booleens
> ne devaient pas être si bonne puisque Stroustrup s'est senti obligé
> d'y apporter quelques corrections.
Remouais. Une autre référence pas controversée du tout.
Personnellement, l'évocation de ce type aurait plutôt
tendance à me faire vomir.
> Cependant je ne doute pas que Ritchie a
> fait ces choix en toute conscience. Il voulait un langage d'assez
> bas niveau et certainement un compilateur assez simple à écrire. Le
> drame c'est que son langage a trop bien marché...
Le drame, ce n'est pas que ce langage ait bien marché. Son
drame, c'est qu'il est utilisé dans plein de domaines où il existe des
langages bien mieux fichus. Le C, c'est avant tout pour de
l'écriture système. Lorsqu'on fait du calcul, on devrait
utiliser le Fortran qui a été écrit pour cela. Pour l'embarqué ou le
sensible, ADA est tout indiqué. Le problème est qu'on utilise du C
(ou C++, même combat) partout en partant du principe que c'est une
panacée, ce qui n'est pas le cas. Écrire un code C parfaitement
portable et qui récupère toutes les erreurs de toutes le fonctions,
c'est un sacré boulot et quasiment personne ne le fait, alors que
c'est assez trivial dans d'autres langages.
> De plus les idées de Ritchie sur les enums ou l'absence de booleens
> ne devaient pas être si bonne puisque Stroustrup s'est senti obligé
> d'y apporter quelques corrections.
Remouais. Une autre référence pas controversée du tout.
Personnellement, l'évocation de ce type aurait plutôt
tendance à me faire vomir.
> Cependant je ne doute pas que Ritchie a
> fait ces choix en toute conscience. Il voulait un langage d'assez
> bas niveau et certainement un compilateur assez simple à écrire. Le
> drame c'est que son langage a trop bien marché...
Le drame, ce n'est pas que ce langage ait bien marché. Son
drame, c'est qu'il est utilisé dans plein de domaines où il existe des
langages bien mieux fichus. Le C, c'est avant tout pour de
l'écriture système. Lorsqu'on fait du calcul, on devrait
utiliser le Fortran qui a été écrit pour cela. Pour l'embarqué ou le
sensible, ADA est tout indiqué. Le problème est qu'on utilise du C
(ou C++, même combat) partout en partant du principe que c'est une
panacée, ce qui n'est pas le cas. Écrire un code C parfaitement
portable et qui récupère toutes les erreurs de toutes le fonctions,
c'est un sacré boulot et quasiment personne ne le fait, alors que
c'est assez trivial dans d'autres langages.
> >> Pour te fixer un peu les idées et enfoncer le clou, le
>> recours à un goto signifie quasiment toujours que tu essaies de
>> récupérer un cas que tu as oublié de traiter, c'est un cataplasme
>> sur une jambe de bois. NOTE BIEN QUE J'AI ÉCRIT QUASIMENT
>> TOUJOURS. Je le mets en majuscules parce que ta comprenette est
>> bouchée à l'émeri.
>
> C'est pour ca qu'a chaque fois que je vois des goto, ils sont
> toujours dans des series de conditions et pointent tous vers un
> point unique.
Va jusqu'au bout de ton raisonnement et tu verras que c'est
justement l'utilisation du goto la plus mauvaise qui soit. Je
ne vais pas essayer de t'expliquer, il me faudrait beaucoup trop de
temps, tu prendras une éternité pour comprendre et je n'en ai pas la
patience.
> >> Pour te fixer un peu les idées et enfoncer le clou, le
>> recours à un goto signifie quasiment toujours que tu essaies de
>> récupérer un cas que tu as oublié de traiter, c'est un cataplasme
>> sur une jambe de bois. NOTE BIEN QUE J'AI ÉCRIT QUASIMENT
>> TOUJOURS. Je le mets en majuscules parce que ta comprenette est
>> bouchée à l'émeri.
>
> C'est pour ca qu'a chaque fois que je vois des goto, ils sont
> toujours dans des series de conditions et pointent tous vers un
> point unique.
Va jusqu'au bout de ton raisonnement et tu verras que c'est
justement l'utilisation du goto la plus mauvaise qui soit. Je
ne vais pas essayer de t'expliquer, il me faudrait beaucoup trop de
temps, tu prendras une éternité pour comprendre et je n'en ai pas la
patience.
> >> Pour te fixer un peu les idées et enfoncer le clou, le
>> recours à un goto signifie quasiment toujours que tu essaies de
>> récupérer un cas que tu as oublié de traiter, c'est un cataplasme
>> sur une jambe de bois. NOTE BIEN QUE J'AI ÉCRIT QUASIMENT
>> TOUJOURS. Je le mets en majuscules parce que ta comprenette est
>> bouchée à l'émeri.
>
> C'est pour ca qu'a chaque fois que je vois des goto, ils sont
> toujours dans des series de conditions et pointent tous vers un
> point unique.
Va jusqu'au bout de ton raisonnement et tu verras que c'est
justement l'utilisation du goto la plus mauvaise qui soit. Je
ne vais pas essayer de t'expliquer, il me faudrait beaucoup trop de
temps, tu prendras une éternité pour comprendre et je n'en ai pas la
patience.
Celle que tu as judicieusement viré et qui concernait ta comparaison
foireuse entre le nombre de goto présents dans sendmail et dans
qmail.
Elle était dans le tien. Tu ne sais même plus ce que tu écris, ça
devient franchement grave.
le 'quelques jours' prouve que tu n'as jamais été confronté à de la
réécriture de code. Ce ne sont pas quelques jours, mais au mieux
quelques semaines parce qu'il faut y inclure la validation. Enfin,
venant d'un bricoleur...
Non, ce n'est _pas_ bien. Et ce n'est pas parce qu'il y en a en
pagaille un peu partout que c'est bien. Je te mets d'ailleurs au
défi de débugguer un truc qui merdoie lorsque tu as des goto
partout (surtout en multithreadé, parce que là...).
C'est pour ca qu'a chaque fois que je vois des goto, ils sont toujours
dans des series de conditions et pointent tous vers un point unique.
Va jusqu'au bout de ton raisonnement et tu verras que c'est
justement l'utilisation du goto la plus mauvaise qui soit. Je ne
vais pas essayer de t'expliquer, il me faudrait beaucoup trop de temps,
tu prendras une éternité pour comprendre et je n'en ai pas la patience.
Je n'ai pas de leçon de programmation à recevoir d'un type comme
toi. D'ailleurs, je n'essaie pas non plus de t'en donner parce que
le boulot serait énorme. Je ne parle pas de leçon de programmation
pour bricoler un petit script en perl dans un coin, mais pour coder
des applications sérieuses.
Non, on n'est pas d'accord. Tu justifies l'utilisation du goto, je
prétends que le goto est une verrue dans les applications normales
et ne se justifie que dans des applications noyau pour des raisons
totalement différentes.
Celle que tu as judicieusement viré et qui concernait ta comparaison
foireuse entre le nombre de goto présents dans sendmail et dans
qmail.
Elle était dans le tien. Tu ne sais même plus ce que tu écris, ça
devient franchement grave.
le 'quelques jours' prouve que tu n'as jamais été confronté à de la
réécriture de code. Ce ne sont pas quelques jours, mais au mieux
quelques semaines parce qu'il faut y inclure la validation. Enfin,
venant d'un bricoleur...
Non, ce n'est _pas_ bien. Et ce n'est pas parce qu'il y en a en
pagaille un peu partout que c'est bien. Je te mets d'ailleurs au
défi de débugguer un truc qui merdoie lorsque tu as des goto
partout (surtout en multithreadé, parce que là...).
C'est pour ca qu'a chaque fois que je vois des goto, ils sont toujours
dans des series de conditions et pointent tous vers un point unique.
Va jusqu'au bout de ton raisonnement et tu verras que c'est
justement l'utilisation du goto la plus mauvaise qui soit. Je ne
vais pas essayer de t'expliquer, il me faudrait beaucoup trop de temps,
tu prendras une éternité pour comprendre et je n'en ai pas la patience.
Je n'ai pas de leçon de programmation à recevoir d'un type comme
toi. D'ailleurs, je n'essaie pas non plus de t'en donner parce que
le boulot serait énorme. Je ne parle pas de leçon de programmation
pour bricoler un petit script en perl dans un coin, mais pour coder
des applications sérieuses.
Non, on n'est pas d'accord. Tu justifies l'utilisation du goto, je
prétends que le goto est une verrue dans les applications normales
et ne se justifie que dans des applications noyau pour des raisons
totalement différentes.
Celle que tu as judicieusement viré et qui concernait ta comparaison
foireuse entre le nombre de goto présents dans sendmail et dans
qmail.
Elle était dans le tien. Tu ne sais même plus ce que tu écris, ça
devient franchement grave.
le 'quelques jours' prouve que tu n'as jamais été confronté à de la
réécriture de code. Ce ne sont pas quelques jours, mais au mieux
quelques semaines parce qu'il faut y inclure la validation. Enfin,
venant d'un bricoleur...
Non, ce n'est _pas_ bien. Et ce n'est pas parce qu'il y en a en
pagaille un peu partout que c'est bien. Je te mets d'ailleurs au
défi de débugguer un truc qui merdoie lorsque tu as des goto
partout (surtout en multithreadé, parce que là...).
C'est pour ca qu'a chaque fois que je vois des goto, ils sont toujours
dans des series de conditions et pointent tous vers un point unique.
Va jusqu'au bout de ton raisonnement et tu verras que c'est
justement l'utilisation du goto la plus mauvaise qui soit. Je ne
vais pas essayer de t'expliquer, il me faudrait beaucoup trop de temps,
tu prendras une éternité pour comprendre et je n'en ai pas la patience.
Je n'ai pas de leçon de programmation à recevoir d'un type comme
toi. D'ailleurs, je n'essaie pas non plus de t'en donner parce que
le boulot serait énorme. Je ne parle pas de leçon de programmation
pour bricoler un petit script en perl dans un coin, mais pour coder
des applications sérieuses.
Non, on n'est pas d'accord. Tu justifies l'utilisation du goto, je
prétends que le goto est une verrue dans les applications normales
et ne se justifie que dans des applications noyau pour des raisons
totalement différentes.
Mais par exemple quand tu veux tester le résultat d'une série de
fonctions que tu appelles (cas où elles renvoient une valeur
indiquant qu'il y a eu ou non une erreur, donc sans exceptions) ? Ca
évite d'imbriquer des appels qui sont séquentiels juste pour gérer
les erreurs.
Mais par exemple quand tu veux tester le résultat d'une série de
fonctions que tu appelles (cas où elles renvoient une valeur
indiquant qu'il y a eu ou non une erreur, donc sans exceptions) ? Ca
évite d'imbriquer des appels qui sont séquentiels juste pour gérer
les erreurs.
Mais par exemple quand tu veux tester le résultat d'une série de
fonctions que tu appelles (cas où elles renvoient une valeur
indiquant qu'il y a eu ou non une erreur, donc sans exceptions) ? Ca
évite d'imbriquer des appels qui sont séquentiels juste pour gérer
les erreurs.