OVH Cloud OVH Cloud

Midterm mailing

74 réponses
Avatar
Gabriel Dos Reis
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/#mailing2005-06

-- Gaby

10 réponses

1 2 3 4 5
Avatar
Stan
"Anthony Fleury" a écrit dans le message de
news: 42cc1a08$0$32363$
"Marc Boyer" a écrit dans le
message de news:


Et alors ? parce que c'est disponible dans d'autres langages on devrait
l'ajouter dans C++ ? Je ne sais pas si c'est l'avis des autres


Trop marrant.
Tu oublies un peu vite que le C++ a empreinté pas mal de
concepts issues d'autres langages nés avant lui.
La question a se poser est plutot : pourquoi ne pas envisager telle ou telle
évolution...
Un GC possédent des inconvénients mais aussi des avantages, sinon pourquoi
aurait-il fait l'objet de dissusion ?

programmeurs C++ ou si la majorité est contre moi, mais pour ma part je ne
veux pas d'un GC dans C++. Quand j'ai une variable en C++, je sais qu'elle
sera détruite à la fin du bloc si c'est une variable automatique, à la fin
du programme si c'est une static,


En quoi ce comportement sera-t-il différent avec un GC ?


Ce coût est-il si dissuadant que ca ? et requiert-il vraiment que des
concepts comme les sockets soient inclus dans la bibliothèque standard
d'un langage qui se veut plus général que ca ? En fait, le concept de
socket me parait trop "proche de l'OS" (et loin de l'idée que je me fais
des langages tels que C et C++) pour être mis dans C++, de même je ne vois
pas, comme java, mettre le concept d'interface graphique dans C++.


Pour argumenter, il faut connaitre un minimun son sujet.
Ca n'a pas l'air d'être le cas au vu de cette remarque.

--
-Stan


Avatar
Stan
"Fabien LE LEZ" a écrit dans le message de news:

On Wed, 06 Jul 2005 19:51:04 +0200, Anthony Fleury
:

En fait, le concept de
socket me parait trop "proche de l'OS" (et loin de l'idée que je me fais
des langages tels que C et C++) pour être mis dans C++,


D'autant qu'en fait, les sockets sont déjà standardisés. Je ne vois
pas l'utilité pour le comité de standardisation du C++ de rajouter une
standardisation par-dessus.



Heu, il ne s'agit pas de rajouter une standardisation par-dessus.
Le document n1838 pointé par le lien donné par Gaby est assez explicite :
This proposal is a pure extension. It proposes the implementation of a
network library,

but it does not require any changes to any of the standard libraries in C++.
In addition it

does not require any changes in the core language and can be implemented in
standard

C++.

--------------

Ta remarque sur les interfaces graphique a aussi son sens

pour le réseau; quel OS n'implémente pas le réseau ?

Pour avoir utilisé des bibliothèques bien conçues qui encapsulaient le

réseau, je vois un avantage évident à le proposer une implémentation
standardisée.

Mais ça n'engage que moi ;-)

--

-Stan


Avatar
Gabriel Dos Reis
"Stan" ( remove the dots )> writes:

| "Marc Boyer" a écrit dans le message
| de news:
| >
| > Quels nombreux autres ? Java ? Soulignons que Java
| > résoud ne nombreux problèmes par l'adjonction d'une
| > grosse couche intermédiaire, la JVM. Jusqu'à présent,
| > il me semble que C++ essayait d'être plus prêt de la
| > machine.
| >
|
| Quand je disais "de nombreux langages" j'inclus aussi ceux
| qui ne sont pas OO.
| Des concepts comme le GC ne datent pas d'hier et de nombreux
| langage en disposent.

Ce que les gens demandent, c'est une liste de ces « nombreux
langages. »
Moi aussi, j'ai mon langage avec son GC; mais il ne fait pas la mêe
chose que C++ et il n'a que 3 utilisateurs.

-- Gaby
Avatar
Anthony Fleury

Tu oublies un peu vite que le C++ a empreinté pas mal de
concepts issues d'autres langages nés avant lui.


Je n'ai jamais dit le contraire, et je n'ai jamais dit non plus que
chaque langage doit n'avoir que des choses propres à lui même. Je pense
que mon message initial était très mal formulée car je ne voulais pas
dire ca.

Un GC possédent des inconvénients mais aussi des avantages, sinon pourquoi
aurait-il fait l'objet de dissusion ?


Je n'ai jamais prétendu non plus que "les GC c'est LE mal absolu".

[...]

Pour argumenter, il faut connaitre un minimun son sujet.
Ca n'a pas l'air d'être le cas au vu de cette remarque.


Je confesse, je ne fais pas partie du comité C++, et j'ai aussi de
nombreuses choses à apprendre encore dans le domaine (d'où mon intérêt à
lire et à participer ici où l'on apprend beaucoup).
Mon message et sa tournure étant assez maladroits visiblement, ce qui
fait que je n'ai pas réussi à dire ce que je voulais. Je retourne lire
les références données dans le papiers sur les GC à la place de
continuer la longue réponse que j'avais tapé au départ. Ca m'évitera de
m'enfoncer et ca m'enlèvera sûrement certains à prioris que j'ai sur les
GC dans un langage comme C ou C++. :-)


--
Anthony

Avatar
Stan
"Gabriel Dos Reis" a écrit dans le message de
news:
"Stan" ( remove the dots )> writes:

Ce que les gens demandent, c'est une liste de ces « nombreux
langages. »
Moi aussi, j'ai mon langage avec son GC; mais il ne fait pas la mêe
chose que C++ et il n'a que 3 utilisateurs.

-- Gaby


Langage possédant un GC ( tous ne sont pas OO ) :

C#
Caml
Clean
D
Dylan
Eiffel
Erlang
Haskell
ICI
Io
Java
JavaScript
Lisp
Lua
Mercury
ML
Modula-3
MOO
Oberon
Perl
PHP
Pico
POP-2
Prolog
Python
Q
Ruby
Scheme
Smalltalk
SNOBOL
Tcl
Visual Basic .NET
Visual Prolog

Faute de temps je n'ai pas fait une liste de ceux qui
possède une bibliothèque réseau et/ou mécanismes de synchronisation.
De ce que j'ai pu constater, les langages émergants fournissent
un tronc commun de bibliothèques ( genre graphique, réseau, traitement de
chaine etc...).
Evidemment il y a aussi les langages atypiques , genre ceux qui n'ont que 3
utilisateurs ;-)

La question qui ce pose, comme l'a fait remarquer Marc Boyer
est comment inscrire des évolutions ds C++ tout en conservant une certaine
compatibilité ascendante ( si c'est possible ) ?
Une idée ?

--
- Stan

Avatar
kanze
Anthony Fleury wrote:
"Marc Boyer" a écrit
dans le message de news:


Quand je disais "de nombreux langages" j'inclus aussi ceux
qui ne sont pas OO. Des concepts comme le GC ne datent pas
d'hier et de nombreux langage en disposent.


Et alors ? parce que c'est disponible dans d'autres langages
on devrait l'ajouter dans C++ ? Je ne sais pas si c'est l'avis
des autres programmeurs C++ ou si la majorité est contre moi,
mais pour ma part je ne veux pas d'un GC dans C++. Quand j'ai
une variable en C++, je sais qu'elle sera détruite à la fin du
bloc si c'est une variable automatique, à la fin du programme
si c'est une static, et quand je vais faire un delete pour une
variable allouée dynamiquement.


Et alors ? Quel rapport avec un glaneur de cellules ? La
présence ou l'absence d'un glaneur de cellules ne change
absolument rien en ce qui concerne les variables automatiques ou
statiques, ni en ce qui concerne le fonctionnement de delete.

Pour l'instant, je ne crois pas qu'il y a un consensus en ce qui
concerne la façon exacte que le GC s'integrera dans le C++, mais
ce qui est certain, c'est qu'il ne changera pas la sémantique
des programmes existants. À moins qu'ils ont des fuites de
mémoire, évidemment.

Pourquoi avoir un GC ??


Pour réduire la quantité de travail nécessaire pour écrire un
programme correct.

(enfin perso si il est inclut ca me plairait de récupérer le
comportement normal de mon compilateur C++)


La compatibilité avec l'existant me semble essentielle. La
possibilité de ne pas utiliser le GC aussi ; il existe des
applications où il ne convient pas (même si elles sont moins
nombreuses qu'on pourrait le croire).

En ce qui concerne les sockets, je ne suis pas sur que le
besoin soit pattent: POSIX existe, s'interface bien avec
C++.




Je me démande s'il vaut même la peine de réagir à une bêtise
aussi grosse. Je crois qu'il s'agit plutôt d'un troll.

Ca s'interface bien ?
A quel coût ?
As tu déja crée tes propres classes d'encapsulation des
sockets ?


Ce coût est-il si dissuadant que ca ?


Le coût, c'est que je ne peux pas utiliser mes classes dans les
interfaces avec d'autres bibliothèques. C'est un coût énorme,
prohibitif même. (Régarde tous les problèmes qu'on a avec
std::string et les bibliothèques qui précède la norme.)

et requiert-il vraiment que des concepts comme les sockets
soient inclus dans la bibliothèque standard d'un langage qui
se veut plus général que ca ?


Oui et non. Disons que l'argument est à peu près le même que
pour des entrées/sorties sur fichier. On pourrait bien imaginer
un langage qui ne supporte ni l'un ni l'autre.

En fait, le concept de socket me parait trop "proche de l'OS"
(et loin de l'idée que je me fais des langages tels que C et
C++) pour être mis dans C++, de même je ne vois pas, comme
java, mettre le concept d'interface graphique dans C++.


Je dirais que c'est précisement parce qu'il est si proche de
l'OS qu'il doit être normalisé. Actuellement, je ne peux pas
écrire du code portable qui utilise les sockets.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



Avatar
Marc Boyer
Le 06-07-2005, Stan a écrit :
"Marc Boyer" a écrit dans le message
de news:

Quels nombreux autres ? Java ? Soulignons que Java
résoud ne nombreux problèmes par l'adjonction d'une
grosse couche intermédiaire, la JVM. Jusqu'à présent,
il me semble que C++ essayait d'être plus prêt de la
machine.


Quand je disais "de nombreux langages" j'inclus aussi ceux
qui ne sont pas OO.
Des concepts comme le GC ne datent pas d'hier et de nombreux
langage en disposent.


Non, je voulais une liste des nombreux langages qui possèdes
GC + MT + API réseau, en restant sur le même marché que C++,
ie les langages généralistes ayant fait leurs preuves.

En ce qui concerne les sockets, je ne suis pas sur que le
besoin soit pattent: POSIX existe, s'interface bien avec
C++.


Ca s'interface bien ?
A quel coût ?


Pas supérieur à l'écriture en C il me semble.

As tu déja crée tes propres classes d'encapsulation des sockets ?


Pas vraiment eut besoin de faire une "super classe générale",
mais plutôt des mini trucs ad-hoc.
Sans parler de cette proposition, la question que je me
pose est celle de la "bonne" interface.
La proposition reste assez bas niveau: transfer de flux de char,
la contribution étant dans la gestion des erreurs et de IPv4/IPv6.
Est-ce la bonne solution ? Est-ce qu'une bibliothèque réseau C++
ne doit elle pas aussi gérer l'encodage des types primitifs ?
Veut-on des flux typés ?

Je ne me sens pas capable de répondre à ces questions,
mais il me semble qu'elles doivent être discutées avant une
normalisation.

Marc Boyer
--
À vélo, prendre une rue à contre-sens est moins dangeureux
que prendre un boulevard dans le sens légal. À qui la faute ?


Avatar
Gabriel Dos Reis
"Stan" ( remove the dots )> writes:

| La question qui ce pose, comme l'a fait remarquer Marc Boyer
| est comment inscrire des évolutions ds C++ tout en conservant une certaine
| compatibilité ascendante ( si c'est possible ) ?

Si cela n'était que ça.

| Une idée ?

Tu peux venir nous rejoindre au comité si tu as des idées et
propositions concrètes ; si tu n'en a pas c'est OK aussi.

[ Je répondrai à l'autre moitié de ton message plus tard. ]

-- Gaby
Avatar
Marc Boyer
Le 06-07-2005, Stan a écrit :
Une question qui peut sembler naïve, mais
pourquoi une telle inertie concernant l'évolution du C++ ?


Je te conseille en passant la lecture de
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1781.pdf

BS y parle justement des règles sur l'évolution du langage.

Marc Boyer
--
À vélo, prendre une rue à contre-sens est moins dangeureux
que prendre un boulevard dans le sens légal. À qui la faute ?

Avatar
Marc Boyer
En ce qui concerne les sockets, je ne suis pas sur que le
besoin soit pattent: POSIX existe, s'interface bien avec
C++.




Je me démande s'il vaut même la peine de réagir à une bêtise
aussi grosse. Je crois qu'il s'agit plutôt d'un troll.


Heuh, non. D'une naïveté que tu peines à imaginer
peut-être, mais je ne voulais pas faire le Troll.

Ca s'interface bien ?
A quel coût ?
As tu déja crée tes propres classes d'encapsulation des
sockets ?


Ce coût est-il si dissuadant que ca ?


Le coût, c'est que je ne peux pas utiliser mes classes dans les
interfaces avec d'autres bibliothèques. C'est un coût énorme,
prohibitif même. (Régarde tous les problèmes qu'on a avec
std::string et les bibliothèques qui précède la norme.)


Je ne comprends pas ta remarque. Je dois être très à
côoté de la plaque sur cette question.

Marc Boyer
--
À vélo, prendre une rue à contre-sens est moins dangeureux
que prendre un boulevard dans le sens légal. À qui la faute ?




1 2 3 4 5