Sortie de la béta de VS 2005

Youp je poste vite fait comme d’hab, sur un petit souvenir : pour ceux qui trouvent gcc un peu trop lent (oui, j’avoue que recompiler un kernel est une joie intense, surtout quand on a rien prévu “pendant”), j’étais tombé un jour sur une page du monsieur qui a codé “Transcode” (un petit encodeur vidéo supuissant, fait avec ses petites mimines de Polytechnicien dynamique), et donc, pendant son temps libre (oui, je sais ce que je vous pensez) il a developpé un compilateur c/c++ qui selon les bench que j’avais vu à l’époque mettait un gros vent (8x plus rapide) dans la gueule de ce paysan de gcc.
Ca s’appelle TinyC++ (tcc), ca se chope sur :
http://fabrice.bellard.free.fr/tcc/

PS :: désolé d’amener cette news si loin dans le off-topic

edit : ortho

Ce message a été édité par lordpaolo le 30/06/2004

'Tain je viens de faire mumuse quelques heures avec le C#, comment c’est bon !

ya PAS DE POINTEURS ! C’est GE-NI-AL ! ya un type “string” qui fait tout bien comme il faut, et c’est bonheur !

Tellement que j’étais content j’ai porté un petit bout dejeu d’av’ textuel en mode console que j’avais fait times ago, un vrai plaisir.

Putain d’inertie qui va faire que je vais devoir me taper du pascal, du cobol et du C pendant mes études, et probablement encore du C++ apres, ça sera d’autant plus frustrant de se prendre la tête sur ces foutus pointeurs de chie en sachant que je pourrais faire ça bien plus rapidement en C#.

Bon bref, à part l’absence des pointeurs (apres tout c’est aussi le cas dans d’autres languages), ya tout plein de classes de partout (même l’entrypoint doit être dans une classe à ce que j’ai pu voir), en fait ya plus que ça, puisque tout le code doit être dans une classe (un poil chiant du coup, faut tout instancier, ya moyen d’utiliser une classe comme une méthode C classique ?).  En tout cas, si la finale express reste gratuite, j’en echangerais pas un paquet contre deux barils de Dev C++.

Vivement que mon moteur 3D que j’aime faire mumuse avec sorte en version .NET, ce qui devrait plus tarder.

[quote]'Tain je viens de faire mumuse quelques heures avec le C#, comment c’est bon !

ya PAS DE POINTEURS ! C’est GE-NI-AL ! ya un type “string” qui fait tout bien comme il faut, et c’est bonheur !

Tellement que j’étais content j’ai porté un petit bout dejeu d’av’ textuel en mode console que j’avais fait times ago, un vrai plaisir.

Putain d’inertie qui va faire que je vais devoir me taper du pascal, du cobol et du C pendant mes études, et probablement encore du C++ apres, ça sera d’autant plus frustrant de se prendre la tête sur ces foutus pointeurs de chie en sachant que je pourrais faire ça bien plus rapidement en C#.

Bon bref, à part l’absence des pointeurs (apres tout c’est aussi le cas dans d’autres languages), ya tout plein de classes de partout (même l’entrypoint doit être dans une classe à ce que j’ai pu voir), en fait ya plus que ça, puisque tout le code doit être dans une classe (un poil chiant du coup, faut tout instancier, ya moyen d’utiliser une classe comme une méthode C classique ?).  En tout cas, si la finale express reste gratuite, j’en echangerais pas un paquet contre deux barils de Dev C++.

Vivement que mon moteur 3D que j’aime faire mumuse avec sorte en version .NET, ce qui devrait plus tarder.[/quote] franchement un moteur 3D en .NET, je pense qu’on peut attendre encore longtemps, parce que le .NET ça porte bien son nom, c’est super pour faire du réseau ou des applis bien haut niveau, mais si tu veux un truc performant et rapide comme un moteur 3D, le C/C++ avec gcc il me semble que c’est ce qu’il y a de plus efficace, et justement avec les optimisations possibles grâce aux pointeurs par exemple …

Si tu veux faire du haut niveau avec des types String sans pointeurs, Java fait ça très bien depuis un moment, et va le faire encore mieux avec la nouvelle version 1.5 …

enfin bon, moi je dis ça mais bon en tant que développeur Hardware, les pointeurs je trouve ça tellement superbe pour taper exactement où tu veux dans la mémoire, pis bon le C c’est déjà du haut niveau pour moi, la plupart du temps c’est asm-time !!!

Juste comme ça, y a des pointeurs en C# =)

Clad > Et oui, c’est de la prog objet, donc classes. Mais rien empeche d’utiliser des fonctions statiques (qui permettent donc de pas avoir a instancier une classe). Mais faut pas en abuser, hein, après c’est plus l’esprit du truc. Au passage, tu remarqueras que le Main est lui même une fonction statique.

Sinon, le Tzim, lui qui connait déja .net 1.1, il aime entre autre les generics :P et les classes partielles… et surement plein d’autres trucs qu’il a pas encore eu le temps d’aller voir en profondeur (notemment MSBuild, le truc qui mets make 10 pieds sous terre).

ouais, mais à mon avis il doit être au tout début et il doit s’embêter avec des *char pour afficher à la console, alors voilà quoi, quand il voit un type String que tu peux utiliser comme ça, au début ça le fait encore bander …

Bon, pour préciser 2-3 trucs :
Il y a possibilité de pointeurs, mais c’est clairement pas obligatoire, et c’est ce qui fait surement plaisir à notre ami Clad.
Pour la 3D, je ne pense pas que les chtits gars de chez MS qui ont pondu DirectX Managed l’aie fait pour le plaisir, quand on vois la quantité de taf qui a été fait (c’est loin d’un simple Wrapping des classes COM, même si le modele objet ressemble d’assez près). Donc pour la 3D, surement pas dans nos jeux de demain, mais y’a fort a penser qu’on puisse retrouver du .net dans des mods ou, plus probablement, dans des outils de design/mapping… ou la performance a un peu moins d’importance. Au passage le Nom “.net” est une affreuse erreur marquetting de la part de MS de mon point de vue. Limiter le champs d’application de .net au réseau et au web est un grosse confusion, et c’est relativement facheux, quand on vois que ca va devenir LA plateforme de devel pour windows.

[quote]franchement un moteur 3D en .NET, je pense qu’on peut attendre encore longtemps, parce que le .NET ça porte bien son nom, c’est super pour faire du réseau ou des applis bien haut niveau, mais si tu veux un truc performant et rapide comme un moteur 3D, le C/C++ avec gcc il me semble que c’est ce qu’il y a de plus efficace, et justement avec les optimisations possibles grâce aux pointeurs par exemple …[/quote]C’est pas vrai… enfin ca depend ce que t’appelle un moteur 3d. Si tu considere une re-implementation complete, de haut en bas, genre un concurent de directx ou opengl, effectivement on peut parler du fait que c’est pas adapte. Mais si tu considere un moteur 3d se reposant sur directx ou opengl y a pas de raison. Il faut arreter les mythes sur le code managed c’est pas performant blabla, parceque on a l’experience de java, et que ca devrait s’appliquer a tout code managed. Les articles de recherche sur le sujet demontrent que pour la plupart des utilisations non liees a une interaction directe avec le hardware, et sans contraintes de liberation synchrone de la memoire (quand on est pas ric-rac en memoire quoi), les perfs sont largement comparables/identiques. Donc oui un moteur 3d en managed c’est tout a fait raisonable et possible, tout depend du niveau auquel tu te place. Il faut savoir ou faire la transition dans son choix de compromi “productivite”/“performance” en fonction de ce qu’on fait. Dans un boucle tres serree ou la diff de perf est de 1% par operation le consequence sont tres sensible, meme une faute de page de plus et on peut gagner a moooort, mais des qu’on monte un chouilla ce genre de consideration sur les perfs deviennent ridicules par rapport au gain de productivite. Il y a qu’a voir dans directx 9 l’utilisation des interface managed.

Donc oui, le code managed c’est pas pour tout faire, c’est clair, personne va remettre ca en cause, surtout pas moi. Mais il faut pas non plus le rejeter pour des pan entiers de developpement juste parceque c’est cense “aller vite” et qu’on a une certaine conception de ce qu’est le code JITe base sur Java. Surtout qu’en plus il y a tout en .Net pour pouvoir manipuler la memoire directement si tu en as envie, pointeur, pin down de zone pour eviter de se taper avec le GC, d’ailleur le GC est un composant optionel qui n’a pas a etre forcement utilise, comme on peut le faire en C++.Net. Enfin tout ca pour dire: c’est flexible, faut pas dire “non ca va trop pas pour tous ces types d’applis” avant de bien reflechir a ce qui est possible. D’ailleurs, attendez vous a des surprises dans longhorn…

Moi, les jeux en code managé, j’y crois. Il faut simplement bousculer quelques idées reçues, et que les programmeurs hard-core C++ cessent de se sentir menacés par C# parce que c’est trop facile et que ça doit cacher quelque chose.
Un Quake compilé en C++ managé (qui donne donc à peu près le même code IL qu’un redéveloppement en C#, hein) tourne sans optimisations particulières 20% plus lentement que la version C++ non managée. Avec .NET 1.1.
Alors d’une part ça peut s’optimiser, et d’autre part, 20%, c’est moins que le gain de puissance des machines en 6 mois, à vue de nez. Il suffit de voir ce qu’on fait sur une machine comme la XBOX pour se rendre compte que la puissance brute ne fait pas tout et que d’autres paramètres sont bien plus importants.

N’oublions pas que le code managé, c’est:

  • Une productivité accrue (d’une force…)
  • Plus de risque de buffer-overruns (tant qu’on reste dans le domaine managé)
  • La mémoire managée automatiquement (et ça, les hard-core C++, va falloir arrêter de penser que c’est mal, c’est ce qui peut vous arriver de mieux)
  • Des API cohérentes (un seul type de string, youpi!)

Le managé, c’est bon, mangézan.[/quote]

Hello
Est-ce qu’a votre avis ils vont sortir cette version beta en dvd, comme ca avait ete fait pour le premier .Net ? (et qui plus est avec envoi gratos, avec une reduc de 500$ sur le produit final).
Non pas parce que je developpe sous tous les langages (si seulement je le faisais sur 1 :confused: ), mais juste au cas ou ! (et puis j’aurai plus la license auto acquise avec l’universite, donc 500$ ou equivalent de reduc’, ca le ferait)

En tant que hardore c++ developper, je vais finir par me laisser convaincre par ces arguments Je dois avouer que si je n’ai jamais voulu me mettre au code managé, c’est peut être tout simplement le répugance d’informaticien de se dire que finalement, on apprend à utilisier un logiciel plutôt que du code brut (enfin moi c’est comme ça que je le vois, je suis peut être bête après tout).

Bon ensuite pour revenir à la question des moteurs 3D, je ne vois pas trop l’intérêt d’un code managé car finalement, l’instansiation d’une fenêtre est relativement simple, (hop createWindowEx, hop setCooperativeLevel. Enfin c’est du résumé là), et ensuite le code derrière franchement, je ne vois pas en quoi le fait qu’il soit managé apporte quoi que ce soit. Je veux dire par là que je défini mes classes et leurs primitive de dessins et il n’y a pas besoin de supers outils pour faire ça plus vite.

Ensuite je profité de la présence de glop et d’autres personnes pour poser une question simple, et pas si hs que ça: voilà il y a un an j’ai développé une petite lib de skinnage de mes fenêtres, avec, essentiellemnet, les propriétés de transparence offertes depuis win2k, et je me demandais s’il n’y avait pas moyen de faire ça en managé, parce que bon dieu, qu’est que je me suis pris la tête dessus, pire que mon moteur 3D ISo en fait D’autant plus que certains contrôles résistent au skinnage de manière honteuse (je pense aux scroll bar, obligé de les recoder moi même).

Ce message a été édité par BodySplash le 01/07/2004

voilà, je la sentais venir, chaque fois qu’on ose un peu critiquer .NET on se fait traiter de hardcore quelque-chose !!!

Enfin bon moi je travaille que sur des systèmes sans .NET (Linux et surtout le monde embarqué) et le pas ric-rac en mémoire j’ai pas, mais alors vraiment pas souvent, et c’est sûr que j’ai de la peine à m’enthousiasmer devant le très haut niveau du .NET (tout comme du Java par exemple) … Et c’est pour ça que je fais mon Master en Computer Engineering et non pas en Software Engineering !!!

Maintenant je suis d’accord qu’une suite intégrée de dév c’est génial pour la productivité, là tout à fait d’accord : J’ai développé un truc en C dernièrement avec un gars qui bossait avec CodeWarrior sur son G4. Le debugger était nickel, c’était génial tout ce qu’il pouvait faire. Seulement la cible était un IPAQ avec Linux (distrib Familiar) … ben voilà, c’est pas portable ce genre de trucs … quand on a commencé à tester sur la cible, mon truc débile avec des Makefile, gcc et gdb (pour lequel il existe une interface graphique sous Linux, DDD, c’est pas byzance mais c’est déjà pas mal) a tourné tout de suite sans problème, mais lui ça lui a pris 1 sem pour que ça tourne, pis après il a encore fallu mettre ensemble.

Donc voilà, c’est pas très portable … et donc franchement si tu fais du haut niveau destiné à une plateforme Win, c’est surement top moumoute, vraiment je discute pas là-dessus … mais j’ai un peu peur de voir tout le monde ne faire que du haut niveau, et que sur des plateformes Win !!!

[quote]mais j’ai un peu peur de voir tout le monde ne faire que du haut niveau, et que sur des plateformes Win !!![/quote]Sans vouloir troller (sisi je le jure) c’est justement ça, entre autre, le but et on ne peut pas en vouloir à MS pour ça. C’est pour ça que y’a des gens qui font Mono, une plateforme .NET libre, histoire de pas se retrouver coincé sous un OS.

[quote]mais j’ai un peu peur de voir tout le monde ne faire que du haut niveau, et que sur des plateformes Win !!![/quote]j’ai bien peur que ce soit leur but (un peu hein)

Je sais bien que c’est leur but, et c’est ça qui fait peur, c’est que si on se met à enseigner le .NET dans les écoles, non seulement ils auront un monopole monstre sur les OS  et en plus les développeurs ne pourront plus se passer de leurs outils !!!

[quote]Je sais bien que c’est leur but, et c’est ça qui fait peur, c’est que si on se met à enseigner le .NET dans les écoles, non seulement ils auront un monopole monstre sur les OS  et en plus les développeurs ne pourront plus se passer de leurs outils !!![/quote]Bon ok, on peut avoir peur du monopôle pour les raisons évidents de hausses de prix et ce genre de chose, mais en même temps, à qui devons-nous nous plaindre? Nous ne pouvons pas passer à notre temps à jeter la pierre à MS, nous sommes tous autant responsables. Nous sommes tous plus ou moins des spécialistes dans notre domaine, et donc la tâche d’éduquer les gens à une autre vision de l’informatique nous reviens entièrement. Ensuite, étant donné que les informaticiens en général sont très fiers d’appartenir à cette poignet d’élus capables de faire fonctionner un ordinateur, ils n’aiment pas partager leurs secrets, mais préfèrent dire: “Eh regarde ce Newb, il a installé Win ME quel boulet c’est pas possibile”. Oui mais voilà, qui est venu lui expliquer pourquoi il ne fallait pas l’installer? La majorité de la population se comporte face à l’informatique comme un enfant face à quelque chose qui le dépasse. Le rôle de l’éducation, il passe par nous, et seulement nous, car MS continuera toujours à vendre son bifteck, tandis que la communauté Linux continuera dans son coin sans faire parler d’elle, tellement fière de sa différence et de son aura de guru de l’informatique.

Bref pour faire cours, c’est bien gentil de gueuler, mais le jour ou les informaticiens arrêteront d’être orgueilleux, alors le monde pourra découvrir autre chose que windows.

P.S: de toute manière en info, il ne faut pas oublier que parfois le monople a du bon pour imposer des standards. Rappelez vous le codage des cartes sons sous dos, ou bien les protocoles réseaux propriétaires à chaque constructeur.

Ce message a été édité par BodySplash le 01/07/2004

Oui puis faut relativiser le fantasme du “ils le font pour bloquer les gens”. C’est pas du tout ca l’esprit mais alors a des milliards de km de ca. Le truc c’est “on va faire un truc qui dechire, le mieux possible”. Apres si les gens trouvent ca bien aussi et que ca les encourage a developper pour la plate forme win c’est tout benef (evidement). Mais le but principal c’est de faire un truc qui dechire, pas de faire un truc pour emprisonner les gens. Apres, bien sur, on est pas mere theresa, on va pas tout porter sous linux juste pour faire plaisir a des gens qui sont pas nos clients… on va chercher a repondre en priorite aux besoins de nos clients, pas aux besoins des gens qui ont aucune intention de nous donner des sous. Il y a largement assez de trucs a faire pour qu’on ai le choix et a choisir, on travaille pour les gens qui nous payent faut pas pousser non plus…

Enfin je vois certainement pas ce qu’il y a de mal a apprendre .Net a qui que ce soit, c’est un langage de programmation, ca a rien a voir, si ca permet au gens de voir ce qu’il est possible de faire, c’est tant mieux. J’ai fait du Caml dans mes etudes, je m’en sert pas DU TOUT  mais j’ai beaucoup appris sur ce qu’etait un langage fonctionel et sur le pouvoir de la recursivite. C’etait ultra instructif. On peut apprendre ENORMEMENT avec .Net et avec Rotor l’implementation open source quasi complete des compilateurs, JIT, garbage collector et autre techniques d’info modernes qui, qu’on le veuille ou non, representent une bonne partie du futur de l’informatique.

Que ca soit pour l’education ou l’industrie si .Net est le meilleur outil pour faire un boulot donne, en faire une religion de dire “ha non, surtout pas” c’est d’une connerie crasse. Laissez les technos se battrent sur leur merite propres et que le meilleur gagne, point barre. Si c’est trop mieux de devel en .Net pour une entreprise et que ca lui apporte plus de flexibilite dans le devel, plus de productivite et un meilleur produit au final, il y a aucun argument valable qui soit pas d’ordre religieux contre ca. Maintenant c’est valable dans l’autre sens, si un prog X ou Y est trop mieux sous linux et que pour repondre aux besoins de l’entreprise il vaut mieux l’utilise sous linux, faudrait etre trop con pour pas l’utiliser pour des raison ideologiques.

[quote]Que ca soit pour l’education ou l’industrie si .Net est le meilleur outil pour faire un boulot donne, en faire une religion de dire “ha non, surtout pas” c’est d’une connerie crasse.

N'importe quoi. On peut parfaitement choisir une solution alternative pour des raisons autres que techniques. Si j'ai pas envie d'utiliser une technologie ou un logiciel particulier parce qu'ils sont supportés par une et une seule société dans le monde (société étrangère qui plus est), c'est pas de la connerie crasse, c'est une stratégie comme un autre. Que les administrations et les écoles utilisent Windows ça me dérange au plus haut point. Pourtant je suis pas un fanboy linux, j'ai XP et une mandrake plantée depuis 8 mois environ.

Je remets pas en cause que .NET est très bien pour un tas d’applications et que Microsoft ait envie de fournir une bonne suite de dev pour leurs clients, tant mieux !

Mais moi j’ai peur que dans dix ans on arrive à la même situation que maintenant avec les OS où des gens doivent faire de gros efforts et gratuitement ou presque parce que peu de boites investissent la dedans pour avoir une alternative niveau OS avec les langages de programmation …

ça serait vraiment un appauvrissement des possibilités de l’informatique !!!

Ce message a été édité par Longfield le 01/07/2004
Ce message a été édité par Longfield le 01/07/2004

[quote]société étrangère qui plus est[/quote]Je ne vois pas où est le “plus” là-dedans, ahem…