Tu sais, la magie de C++, c'est que non seulement tu as les templates et les methodes virtuelles, mais tu as aussi les pointeurs de fonction et les pointeurs sur fonctions membres si t'as des besoins hyper-specifique ou bien si tu aimes faire des trucs degueulasses et impossible a maintenir.
Quand aux templates illisibles, c'est a se demander si:
- tu n'as vu que des templates codes par des schtroumpfs
- tu es ivre
- tu sais de quoi tu parles
Les templates sont un procede 10x plus propre que l'equivalent en C(les macros), 10x plus puissant, et qui ont l'avantage d'etre traites par le compilo et non pas par le preprocesseur.
Mon experience perso(je parles meme pas du boulot la) c'est un soft de +100'000 lignes ecrit en C++ pur a 2, qui est oriente perf(moteur de recherche), portable sur freeBSD, IRIX, Solaris, NT et Linux.
C'est pas du 'faux C++' mais du vrai C++ avec une hierarchie de classes, des classes templates,...
Ca fait plus de 9 ans perso que je code en C, et environ 5 ans en C++, je suis bien plus performant en C qu'en C++ et pourtant je me rends compte tres clairement qu'ecrire ce soft en C au lieu de C++ aurait eu pour resultat:
- un nombre de bugs bien plus gros
- un soft tres difficile a maintenir vu la taille et la complexite du soft
- un temps de developpement bien plus long
- une portabilite bien plus difficile a etablir
Quand aux perfs, elles sont tres bonnes, et je doutes tres fort qu'une version en C pur ait ete plus rapide tout simplement car l'ecrire en C aurait ete tellement complique qu'on aurait pas pu optimiser correctement la chose sans faire un merdier pas possible.
Ensuite, j'oses meme pas te parler de ce qu'on fait au boulot, c'est des projets qui depassent les 10 millions de lignes de code, et la tu vois tout de suite a quel point C++ ecrase C pour ce qui est maintenance de code.
Compare PostgreSQL (du pure C) et Oracle, et PostgreSQL sera bien plus rapide, seulement il supporte pas (encore) tout ce qui est clustering...
Moi je veux bien te parier 1 million de $ que sur des bases de grosse taille Oracle eclate PostgreSQL en vitesse.
Oracle c'est pas fait pour gerer les recettes de cuisine de grand-mere ou la gestion de stock d'une petite PME de 4 employes, par contre quand il s'agit de gerer les bases de donnees d'une societe de 10'000 employees qui sont accedees/updatees/... journalierement, ton PostgreSQL fond comme un glacon au soleil pendant qu'Oracle continue sont petit bonhomme de chemin.
C'est toute la difference entre faire du 0 a 100 en 1.2s mais pas pouvoir faire du 100 pendant plus de 500m, ou faire du 0 a 100 en 1.4s mais faire du 100 pendant des kilometres.
Si les templates te conviennent pas pour des raisons de place, rien ne t'empeche d'utiliser des classes et des methodes virtuelles, t'as l'overhead d'avoir un acces a la vtable, mais ca prend moins de place.
Resultat: en C++, t'as le choix des 2 approches, en C, tu ne peux pas faire l'approche template, et l'approche 'methodes virtuelles' (equivalente a jouer avec des pointeurs de fonctions en C) est bien plus chiante a faire en C qu'en C++ ou le compilo se charge de bcp de choses a ta place.
(me parle pas des define pour des templates, ca donne du code illisible, absolument pas maintenable et t'as 10x moins de possibilites, genre les parametres par defaut,...)
- templates --> bouffe un peu plus de place car specifique a chaque type de donnee mais le code est optimal pour ton type de donnee
- fonctions virtuelles --> bouffe moins de place, le code est identique pour tous les types de donnees, mais est un peu plus lent.
En C, le truc identique aux templates, ca n'existe pas, faut tout te degotter a la main
Le coup des fonctions virtuelles, tu peux magouiller pour faire un truc qui ressemble, mais le resultat est assez difficile a maintenir.
Il parait que Seagate et Maxtor sont derriere cette idee :+)
Non vous excitez pas, c'etait pour rire...
Hop, -1, gaspillez pas vos [-] pour moi(d'autres le feront pour vous)
An unlawful monopoly exists when only one firm controls the market for a product or service, and it has obtained that market power, not because its product or service is superior to others, but by suppressing competition with anticompetitive conduct. The Act is not violated simply when one firm's vigorous competition and lower prices take sales from its less efficient competitors -- that is competition working properly.
1) Nader veut eliminer le monopole de MS, hors un monopole n'est pas illegal en soi
2) Ce n'est pas le role du gouvernement de penaliser si besoin est, mais a la justice
Nader est un peu a cote de ses pompes sur le coup, surtout qu'il doit quand meme etre au courant que c'est Bush a la maison blanche, et pas sa grand-mere.
Le virus qui s'execute en local, que tu sois root avec un password hyper complexe, user avec un password hyper-complexe ou user dugland sans password, sur Windows ou Unix ca change rien, car il a pas besoin de s'authentifier une fois qu'il est sur ta machine, il accede directement a tous tes fichiers.
Par contre un virus pourrait essayer de faire un su(ou runas.exe) en utilisant un blank password pour attaquer d'autres comptes.
Sous XP si le virus essaye de faire ca sur un compte sans password, il n'y arrivera pas.
Decompiler et comprendre le code machine d'un virus(qui d'habitude contient tres peu de code), le passer a travers un debugger pour voir ce qu'il fait pas a pas, ne demande pas des genies, simplement des gens competents, et chez les societes d'AV, il y en a des gens competents.
Et sinon, ces societes ont pour la plupart des reseaux heterogenes avec un grand nombre d'OS differents(et de versions differentes), on en a aussi pour tester l'interop reseau, ils en ont surement aussi pour zieuter les modes de transmission de virus.
Par contre XP(pas 2000) limite l'acces aux comptes sans passwords.
Il est uniquement possible de se logger sur la console avec un compte sans password(en gros: faut etre devant la machine), pas d'acces depuis le reseau, pas depuis runas.exe,...
Non non, a la fin de l'install de Windows 2000 Pro(pas server/adv server), tu peux ajouter des utilisateurs a ton systeme, mais tu as le choix du groupe dans lequel tu les mets(dans un drop down menu), t'es pas oblige de les mettre dans le groupe admin.
P*tain de bordel de m*, je vais me mettre moi aussi a sortir des conneries de ce niveau sur Linux, on va voir combien de temps je tiens avant de me faire incendier comme quoi je fais du FUD, mensonges, propagande,...
Si tu l'execute en user il infectera les binaires sur lequels ton user a le droit d'ecrire.
Et le jour ou tu lanceras un de ces binaires en etant root, hop le virus se lance et il a acces a toute ta machine car le binaire tourne alors avec les droits root.
- WMI
- notre chere MMC(qui utilise entre autres WMI)
- group policies (qui permettent de definir des comportements/regles pour toutes les machines d'un domaine)
- un peu de wsh/vbscript quand c'est necessaire
- MSI pour packager les softs a installer sur les systemes
...
- SMS si tu veux faire encore plus, mais c'est un soft a part
Le truc que les gens comprennent pas c'est que sous Linux l'admin a distance passe le plus frequemment par telnet/ssh en se connectant sur la machine, sur Windows elle passe par DCOM et les permissions de domaine qui font que tu as un soft/script sur une machine, et tu diriges tout depuis la, sans avoir a te logger sur la machine cible, c'est une approche differente.
Backup ?
Tu mets les profiles des utilisateurs sur un serveur(en gros ca revient a exporter /home en NFS), que tu backup avec l'outil que tu veux, la plupart permettent de faire des backups a intervalles reguliers.
Ce truc la ne sert qu'a une chose: te proteger si tu te trompes.
Si tu te trompes pas en ecrivant ton allocation, ca sert a rien bien evidemment, mais le probleme est que tout le monde se trompe avec ca, et c'est une des causes les plus frequentes de buffer overflow.
Si t'as oublie un mutex sur ton tampon, c'est une erreur ! Mais le fait de specifier la taille du buffer a l'ecriture(strncpy) fait que tu n'auras pas un buffer overflow, peut-etre un autre probleme mais potentiellement moins grave.
Quand a strdup, c'est bien joli mais c'est le genre de truc a finir avec des memory leaks ca et ca fragmente monstrueusement ta memoire, faut a chaque fois allouer/desallouer, chaque allocation que tu fais est un risque de plus d'oublier de desallouer, c'est un test de plus a faire pour voir si malloc a fonctionne,...
C'est pas faisable pour des serveurs, c'est beaucoup trop lourd.
[^] # Re: c++ su><or
Posté par pasBill pasGates . En réponse à la dépêche Interview de Bjarne Stroustrup. Évalué à 5.
Quand aux templates illisibles, c'est a se demander si:
- tu n'as vu que des templates codes par des schtroumpfs
- tu es ivre
- tu sais de quoi tu parles
Les templates sont un procede 10x plus propre que l'equivalent en C(les macros), 10x plus puissant, et qui ont l'avantage d'etre traites par le compilo et non pas par le preprocesseur.
Mon experience perso(je parles meme pas du boulot la) c'est un soft de +100'000 lignes ecrit en C++ pur a 2, qui est oriente perf(moteur de recherche), portable sur freeBSD, IRIX, Solaris, NT et Linux.
C'est pas du 'faux C++' mais du vrai C++ avec une hierarchie de classes, des classes templates,...
Ca fait plus de 9 ans perso que je code en C, et environ 5 ans en C++, je suis bien plus performant en C qu'en C++ et pourtant je me rends compte tres clairement qu'ecrire ce soft en C au lieu de C++ aurait eu pour resultat:
- un nombre de bugs bien plus gros
- un soft tres difficile a maintenir vu la taille et la complexite du soft
- un temps de developpement bien plus long
- une portabilite bien plus difficile a etablir
Quand aux perfs, elles sont tres bonnes, et je doutes tres fort qu'une version en C pur ait ete plus rapide tout simplement car l'ecrire en C aurait ete tellement complique qu'on aurait pas pu optimiser correctement la chose sans faire un merdier pas possible.
Ensuite, j'oses meme pas te parler de ce qu'on fait au boulot, c'est des projets qui depassent les 10 millions de lignes de code, et la tu vois tout de suite a quel point C++ ecrase C pour ce qui est maintenance de code.
[^] # Re: Oracle et Java
Posté par pasBill pasGates . En réponse à la dépêche Interview de Bjarne Stroustrup. Évalué à 3.
Moi je veux bien te parier 1 million de $ que sur des bases de grosse taille Oracle eclate PostgreSQL en vitesse.
Oracle c'est pas fait pour gerer les recettes de cuisine de grand-mere ou la gestion de stock d'une petite PME de 4 employes, par contre quand il s'agit de gerer les bases de donnees d'une societe de 10'000 employees qui sont accedees/updatees/... journalierement, ton PostgreSQL fond comme un glacon au soleil pendant qu'Oracle continue sont petit bonhomme de chemin.
C'est toute la difference entre faire du 0 a 100 en 1.2s mais pas pouvoir faire du 100 pendant plus de 500m, ou faire du 0 a 100 en 1.4s mais faire du 100 pendant des kilometres.
[^] # Re: c++ su><or
Posté par pasBill pasGates . En réponse à la dépêche Interview de Bjarne Stroustrup. Évalué à 5.
Resultat: en C++, t'as le choix des 2 approches, en C, tu ne peux pas faire l'approche template, et l'approche 'methodes virtuelles' (equivalente a jouer avec des pointeurs de fonctions en C) est bien plus chiante a faire en C qu'en C++ ou le compilo se charge de bcp de choses a ta place.
(me parle pas des define pour des templates, ca donne du code illisible, absolument pas maintenable et t'as 10x moins de possibilites, genre les parametres par defaut,...)
[^] # Re: c++ su><or
Posté par pasBill pasGates . En réponse à la dépêche Interview de Bjarne Stroustrup. Évalué à 7.
- templates --> bouffe un peu plus de place car specifique a chaque type de donnee mais le code est optimal pour ton type de donnee
- fonctions virtuelles --> bouffe moins de place, le code est identique pour tous les types de donnees, mais est un peu plus lent.
En C, le truc identique aux templates, ca n'existe pas, faut tout te degotter a la main
Le coup des fonctions virtuelles, tu peux magouiller pour faire un truc qui ressemble, mais le resultat est assez difficile a maintenir.
[^] # Re: c++ su><or
Posté par pasBill pasGates . En réponse à la dépêche Interview de Bjarne Stroustrup. Évalué à 2.
Mais dans ce cas c'est parce que t'as rien compris a l'approche objet.
Les fonctions virtuelles c'est pas la pour faire joli.
[^] # Re: méconnaissance du protocole IRC
Posté par pasBill pasGates . En réponse à la dépêche Les données à suivre pour Europol. Évalué à 1.
[^] # Re: La lettre
Posté par pasBill pasGates . En réponse à la dépêche Nader demande au gouvernement états-unien des comptes. Évalué à -1.
Preferer un produit plutot qu'un autre pour des raisons plus politiques qu'autre chose ca revient a discriminer, et c'est illegal aussi.
[^] # Re: La lettre
Posté par pasBill pasGates . En réponse à la dépêche Nader demande au gouvernement états-unien des comptes. Évalué à 1.
An unlawful monopoly exists when only one firm controls the market for a product or service, and it has obtained that market power, not because its product or service is superior to others, but by suppressing competition with anticompetitive conduct. The Act is not violated simply when one firm's vigorous competition and lower prices take sales from its less efficient competitors -- that is competition working properly.
[^] # Re: La lettre
Posté par pasBill pasGates . En réponse à la dépêche Nader demande au gouvernement états-unien des comptes. Évalué à 6.
[^] # Re: La lettre
Posté par pasBill pasGates . En réponse à la dépêche Nader demande au gouvernement états-unien des comptes. Évalué à 0.
Le probleme etant que:
1) Nader veut eliminer le monopole de MS, hors un monopole n'est pas illegal en soi
2) Ce n'est pas le role du gouvernement de penaliser si besoin est, mais a la justice
Nader est un peu a cote de ses pompes sur le coup, surtout qu'il doit quand meme etre au courant que c'est Bush a la maison blanche, et pas sa grand-mere.
[^] # Re: oups (comme le modero)
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 0.
Terminal Services c'est fait soit pour:
1) se connecter a sa propre machine depuis chez soi
2) travailler a plusieurs sur une machine
Le point 2) signifie que c'est un serveur --> Win2k Server/AdvSrv/...
Le point 1), ben tu peux le faire avec WinXP Pro/Home.
Les gens sont pas sense se connecter a 20 sur une workstation, c'est sense etre la machine d'une seule personne.
[^] # Re: oups (comme le modero)
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 2.
Terminal Services est en standard dans... NT4 Terminal Server Edition.
[^] # Re: oups (comme le modero)
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 5.
[^] # Re: oups (comme le modero)
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 3.
[^] # Re: je ne vais pas pleurer
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à -1.
Par contre un virus pourrait essayer de faire un su(ou runas.exe) en utilisant un blank password pour attaquer d'autres comptes.
Sous XP si le virus essaye de faire ca sur un compte sans password, il n'y arrivera pas.
[^] # Re: Les editeurs d'antivirus on l'air impatients...
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 2.
Et sinon, ces societes ont pour la plupart des reseaux heterogenes avec un grand nombre d'OS differents(et de versions differentes), on en a aussi pour tester l'interop reseau, ils en ont surement aussi pour zieuter les modes de transmission de virus.
[^] # Re: je ne vais pas pleurer
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 2.
Par contre XP(pas 2000) limite l'acces aux comptes sans passwords.
Il est uniquement possible de se logger sur la console avec un compte sans password(en gros: faut etre devant la machine), pas d'acces depuis le reseau, pas depuis runas.exe,...
[^] # Re: oups (comme le modero)
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à -5.
[^] # Re: je ne vais pas pleurer
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 6.
C'est faux.
P*tain de bordel de m*, je vais me mettre moi aussi a sortir des conneries de ce niveau sur Linux, on va voir combien de temps je tiens avant de me faire incendier comme quoi je fais du FUD, mensonges, propagande,...
[^] # Re: Infos chez Symantec
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 2.
Si tu l'execute en user il infectera les binaires sur lequels ton user a le droit d'ecrire.
Et le jour ou tu lanceras un de ces binaires en etant root, hop le virus se lance et il a acces a toute ta machine car le binaire tourne alors avec les droits root.
[^] # Re: oups (comme le modero)
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à -5.
Non ?
[^] # Re: oups (comme le modero)
Posté par pasBill pasGates . En réponse à la dépêche Virus multiplate-formes Linux et Windows. Évalué à 0.
runas.exe, en command line.
[^] # Re: Chose intéressante < ?
Posté par pasBill pasGates . En réponse à la dépêche Dreamworks' continue l'esprit Linux. Évalué à 3.
- WMI
- notre chere MMC(qui utilise entre autres WMI)
- group policies (qui permettent de definir des comportements/regles pour toutes les machines d'un domaine)
- un peu de wsh/vbscript quand c'est necessaire
- MSI pour packager les softs a installer sur les systemes
...
- SMS si tu veux faire encore plus, mais c'est un soft a part
Le truc que les gens comprennent pas c'est que sous Linux l'admin a distance passe le plus frequemment par telnet/ssh en se connectant sur la machine, sur Windows elle passe par DCOM et les permissions de domaine qui font que tu as un soft/script sur une machine, et tu diriges tout depuis la, sans avoir a te logger sur la machine cible, c'est une approche differente.
Backup ?
Tu mets les profiles des utilisateurs sur un serveur(en gros ca revient a exporter /home en NFS), que tu backup avec l'outil que tu veux, la plupart permettent de faire des backups a intervalles reguliers.
[^] # Re: merci :)))
Posté par pasBill pasGates . En réponse à la dépêche wu-imapd. Évalué à 1.
Si tu te trompes pas en ecrivant ton allocation, ca sert a rien bien evidemment, mais le probleme est que tout le monde se trompe avec ca, et c'est une des causes les plus frequentes de buffer overflow.
Si t'as oublie un mutex sur ton tampon, c'est une erreur ! Mais le fait de specifier la taille du buffer a l'ecriture(strncpy) fait que tu n'auras pas un buffer overflow, peut-etre un autre probleme mais potentiellement moins grave.
Quand a strdup, c'est bien joli mais c'est le genre de truc a finir avec des memory leaks ca et ca fragmente monstrueusement ta memoire, faut a chaque fois allouer/desallouer, chaque allocation que tu fais est un risque de plus d'oublier de desallouer, c'est un test de plus a faire pour voir si malloc a fonctionne,...
C'est pas faisable pour des serveurs, c'est beaucoup trop lourd.
[^] # Re: Chose intéressante < ?
Posté par pasBill pasGates . En réponse à la dépêche Dreamworks' continue l'esprit Linux. Évalué à -9.