Que pensez-vous de l'avenir de C++ par rapport à C# ou même Java ? Cette question s'oriente surtout sur le devenir des logiciels de développement :P
Version imprimable
Que pensez-vous de l'avenir de C++ par rapport à C# ou même Java ? Cette question s'oriente surtout sur le devenir des logiciels de développement :P
Le C++ restera, car il a été conçu pour les performances d'un vrai langage compilé. Tant qu'on ne proposera pas (officiellement) des versions de Java ou C# qui donne du vrai code compilé, sans s'encombrer de vérifications inutiles, le C++ n'a pas de soucis à se faire.
J'aurais tendance a dire que C++ (avec C) sont de imbatables sur à peu prés tous les points: certes il ne sont pas toujours simple à utiliser et il est donc compréhensible que la plupart des débutant s'oriente de préférence vers de chose plus "simples" (Java, C#). Pourtant, en progréssant, les developpeurs sont tenté pour des raisons de performance de se diriger vers des languages plus puissant que sont C/C++ (voire ASM).
Pour bien des avantages (surtout au niveau de la puissance) C++ reste toujours plus avantageux que Java/C# dans certaines situations. On peut a titre d'éxemple (paradoxal, certes) citer le fait que malgrés le dénigrement de Visual C++ de la part de Microsoft, c'est toujours le language qu'utilisent leurs propres developpeurs!
Je crois que le seul risque pour C++ est de voir apparaitre des nouveaux conceptes de programation plus puissant que l'OO. Mais on en est pas encore là!
Je pense que C++ (et C) ont encore de l'avenir devant eux.
N'oublions pas que les machines virtuelles JAVA et le CLR DOTNET
sont elles-même écrites grâce à ces langages.
N'oublions pas que les systèmes d'exploitations sont écrits grâce
à ces langages.
c et c++ sont les langages systèmes par défaut (et par excellence :wink: ), et le seront encore très longtemps, puisque l'essentiel des efforts sont sur la création de langage de plus haut niveau (java et c#) ces derniers ont été inventé pour faire de l'applicatif.
La question est :
Peut on faire une application puissante (système, jeux , etc..) sans pointeur ?
Perso je ne le pense pas, donc le c et c++ restera.
Moi je dirai que chose langage a un domaine d'application plus ou moins restreint :
- Java et C# pour des applications ultra-portable (le principe de machines virtuelles est une excellente idée, la preuve certains téléphones portables utilisent Java !)
- ASM pour avoir une performance optimale : certaines parties de libraires sont écrites en ASM adapté à une architecture donnée (AMD K7, processeur Alpha, MMX, etc.). Certains parties des OS est écrite en ASM (je suis pas sûr que ce soit indispensable à l'heure actuelle ...)
- PHP pour écrire des applications web en très peu de temps : j'ai écrit un programme qui décode les fichiers email de Eudora & Mozilla en 6 heures grâce aux expressions régulières ! L'avantage de PHP est qu'il intègre une multitudes de librairies dans le langage. Utilise des regexp est très simple dans PHP (comparé au C par exemple où il faut gérer la mémoire)
- Pascal pour apprendre à programmer ou développer rapidement des applications (Pascal intègre plus de fonctions de base que le C)
- C et C++ : pour le reste ... pour faire du code portable et très rapide !
- etc.
@+ Haypo
le C et le C++ sont les langages les plus rapides du moments apres l'asm, ils sont la seul alternative a l'assembleur pour faire des appli ou la vitesse d'execution est primordiale. De plus, le C++ est a un niveau si proche de l'asm, que ca m'etonerais qu'un langage BEAUCOUP plus performant sorte dans les années a venir.
causa sui >> tout a fait d'accord, le seul risque pour le C++ est qu'il aparraisse un nouveau concept de prog plus puissant que la POO.
Bien que la plupart des compilateurs acceptent l'asm inline, il y a quand même des possibilité pour creer un langage de entre l'asm et le C++. Il y a pas mal d'optimisations asm qu'on rencontre assez souvent, mais pour lesquelles on est obligé de passer par l'asm inline. Cependant un tel langage ne serait plus portable.
Le fait que le C++ soit rapide ne rentre plus du tout en compte pour sa survie. Même pour un jeu, on retrouve des trucs salement codés, qui font qu'un jeu 'simpl' ne tourne que sur un 700 MGhz minimum. L'optimisation n'est plus tellement un soucis. Elle reste utilie que pour une classe très reduite dede programmes, os, émulateurs, encodeurs. Ca represente une partie ridicule.
Quant aux fonctions de bases que l'on trouve comme donné dans l'exemple php les expressions regulières, si l'on programme avec un programme comme Borland C++ Builder avec la CLX (j'en parle parce que je connais, j'imagine que les MFC font pareil) les AnsiString ont déja beacoup de fonctions pour trravailler sur les chaines. Je ne crois pas que le fait que les fonctions standard soient limité constitue un problème.
oui le C++ n'est pas encore mort !!!
mais a tout les fan d'ASm et autre optimisations extreme :-) je vous mets au defit de developper en assembleur les programmes d'aujourd'hui avec leur complexite.
Les language comme java C# ne sont pas des langages pour debutants ce sont de langages encore de plus haut niveau que C++ qui permet de s'abstraire de toute une serie de problemes de plus ils ne permettent plus les veilles fintes de programmeur C (je n'ai absolument rien contre eux).
Pour programmer en Java ou en C# il faut avoir un minimum d'approche objet alors qu'en C++ on peut tres bien faire du C.
Mais il est vrai que C++ est plus rapide mais n'arrive t-on pas a un niveau ou on peut laisser de cote la rapidite pur (largement comblee par les processeur de nouvelle generation) et essaye d'avoir un soft bcp plus stable. C'est pas parceque c'est java ou C# que c'est pas plein de bug ca depends du programmeur mais au moins il y a toute une serie de pieges qui sont evites.
Le seul argument que je lis ici et la a l'avantage de C++ c'est la rapidite et c'est toujours le meme.
Personnellement un programme bien modelise est bcp plus performant que toute autre optimisation de code (souvent illisible) optimisation en ASM ou encore optimisation de compilation(les compilo sont assez optimise).
La performance n'est pas seulement combien de nano seconde il faut a un programme pour executer une operation mais aussi combien d'heures il te faudra pour relire ton code et le comprendre 1 an apres, comment pourras tu maintenir ton code pour les 10 ans qui vienne.
c#est ca egalement la performance.
Ah bah là non, je ne peux pas laisser dire ça !!!Citation:
Mais il est vrai que C++ est plus rapide mais n'arrive t-on pas a un niveau ou on peut laisser de cote la rapidite pur (largement comblee par les processeur de nouvelle generation) et essaye d'avoir un soft bcp plus stable.
Perso mon domaine, c le développement 3D, et je passe mon temps à faire comprendre aux gens que le fait de se reposer sur la puissance d'un processeur pour compenser les erreurs d'optimisation est la pire des chose à faire !!! Je vois deux raisons principales :
- Avec ce genre de raisonnement, on n'aurait pas encore les jeux qu'on a actuellement. En outre, le fait que les processeurs actuels soit beaucoup plus puissants que leurs prédécesseurs n'a rien de nouveau, c'était déjà le cas dans les années 80 !
- Le fait de tout faire à la bourrine sans optimiser ne fera pas forcément que ça tournera beaucoup moins vite, mais risque en revanche d'altérer très fortément la REGULARITE d'éxecution : la vitesse sera très dépendante des conditions d'exécution et aura tendance à varier beaucoup trop d'une seconde à l'autre rendant le jeu injouable (désolé je prend le point de vue du dvlpeur 3D, mais je pense que c aussi applicable ailleurs...)
Ceci dit, je suis bien d'accord qu'il ne faut pas faire du code illisible à force de vouloir tout le temps optimiser. Il y a surement un juste milieu... Mais de là à utiliser java ou c#, ya de la marge !
En tout cas je peux t'assurer que les performances de java ne lui permettent pas d'exécuter un jeu vidéo complexe de façon acceptable, justement à cause de toutes les vérifications au runtime qui en font la facilité d'utilisation.
Je suis tout a fait d'accord que la rapidité n'est pas un argument, et je l'ai mentionné precedement. Mais dire qu'optimiser un code le rend illisible ca par contre c'est terriblement faux. Je travaille actuellement sur un projet sur lequel j'ai passé beacoup de temps pour l'optimisation. Ca fait plus d'un an que je suis dessus. Mais les lignes de codes que j'ai ecrites il y a un an et optimisée reste pour moi lissibles instantanément. C'est aussi ca savoir ecrire du code opitmiser, savoir l'ecrire tellement. Mais si effectivement tu en est incapable, mieux vaut ne rien optimiser.
Encore une fois il existe enormement d'Api C++, qui lui permet de n'être pas moins désirable que le Java ou le C#.
8O euh petite rectification C# et java ne sont pas des langage sans pointeur !!!!Citation:
Envoyé par jorix
au contraire tout est pointeur sauf que vu du developpeur il le voit pas et ca lui facilite pas ma la vie !!!
masi encore TOUT EST POINTEUR
pour toi c"est lisible ... et si un autre gars doit s"occuper de ce code ds 2 ans... :wink:Citation:
Envoyé par Blustuff
Citation:
Envoyé par Blustuff
je ne fais pas de denigrement de C++ je programme actuellement en C++
mais je me "revolte" un peu contre une partie des developpeur C/C++ (pas tous bien heureusement) qui ne font que defendre sasn essaye d"apprendre.
A mon avis si ces personnes avaient ete la au debut de l"air de l'info on serait encore taper de l"assembleur...
Oui C# et Java sont base sur C++ mais en encapsulant des notions comme celle de pointeur.
Oui C++ est plus rapide mais le probleme c"est qu'il contient plein de pieges de programmation
Pour ce Qui est de l"optimisation
1 optimise ta strructure de programme ( pour le rendre flexible et evolutif)
2 optimise ton code avec les truc de base pas d"instanciation ds les boucles for.
une fois que tu as fasi ca et que ca te convient toujours pas fais de l"optimisation extreme avec des truc illisibles masi c"est a tes risque et perile.!!!!!!
tout le monde parle de 3D et tout masi regarder ce qui ce fait en reconstruction 3D en java en imagerie medical ..Citation:
Envoyé par patapetz
Exemple d"image medical 4000x4000 code sur 12 ou 14 bit et c'est pas une image qu"un scanner genere....
@+
Ca depends des domaines dans lequel tu travailles. Si tu developpe des applications sur des stations de travail, des PC ou des serveur, oui tu peux compenser la rapidite du code par celle du processeur. Par contre dans de l'embarque ce n'est pas possible.Citation:
Envoyé par sebA
En plus je ne suis pas persuader que se reposer entierement sur la vitesse des processeurs soient une bonne chose en soi.
Certes optimiser un code au point de le rendre illisible et immaintenable est une des pires choses a faire mais il est possible d'obtenir un code relativement rapide, stable et qui reste lisible.
c'est exactement ma pensee :D
On optimise pas du code comme ca parce que l'on trouve qu'il n'est pas assez rapide. C'est vant qu'il faut se poser la question de si il faut l'optimiser ou non. AMILIN a lu mon code optimisé en asm, et l'a trouvé tout a fait lisible. Je ne programme rarement que pour moi.
Un truc dont on n'a pas parlé et qui rejoins un peu l'avis de SebA, c que les compilateurs sont aussi des optimiseurs, et effectuent cette tâche de mieux en mieux.
Par exemple, tout le monde sait qu'il ne fo pas écrire :
maisCode:
1
2
3
4
5
6
7 for (i=0; i<10000; i++) { if (a > 0) { /* code qui ne modifie pas a */ } else { /* code qui ne modifie pas a */ } }
Or, cette optimisation, qui rend le code un peu moins lisible, n'est pas utile pour peu que vous utilisiez un bon compilateur optimiseur, et que vous sachiez régler les options d'optimisation, puisque le compilateur n'hésitera pas à faire lui-même cette optimisation...Code:
1
2
3
4
5
6
7
8
9
10 if (a > 0) { for (i=0; i<10000; i++) { /* code qui ne modifie pas a */ } } else { for (i=0; i<10000; i++) { /* code qui ne modifie pas a */ } }
ca c'est maintenant un sujet d'optimisation. Pour continuer cette discution, lire le post-it du forum C++ à ce sujet. Il y en 5 pages pleine. Il y est notement dit que les compilateurs ne font pas tout. Et l'exemple si dessous pourra être optimisé si sa structure est suffisement simple. Moi je préfère ne pas compter dessus, mais si cela n'en vaut pas la peine, autant laisser la plus lisible effectivement.
Je ne suis pas capable malheureusement de donner un avis tres technique sur la question, mais dans mon cas je entre java et c++, c'est le c++!! c'est tellement plus rapide!
En tout dans mon domaine (systeme), c'est c et c++ regneront encore longtemps! (et sous unix c'est encore mieux)
le c# jamais essaye!
de plus, si on considère le schéma donné par Epictète
http://www.usethesource.com/cgi-bin/index.pl?section=Software
C et C++ représentent des milliards de lignes de code de matière grise,
réutilisables pour beaucoup
qui va renoncer à cet investissement intellectuel ?
Bon, y'a un truc qu'il faut clarifier : chaque langage a son domaine d'application ! Ce n'est pas parce que le C++ est super rapide, qu'il convient à toute application. Le PHP et Perl sont largement meilleur pour tout ce qui est gestion des chaînes de caractères ! (en passant, le C++ supporte très peu de fonction de gestions des chaînes de caractères dans la librairie de base, même pas de trim, hu hu hu!) J'ai par exemple écrit un parser d'email (fichier Eudora/Mozilla) en une soirée en PHP grâce aux expressions régulières. Faire la même chose en C++ m'aurait pris une semaine. Et puis en PHP (et Java ?), on ne gère plus la mémoire : c'est le compilateur/interpréteur qui s'occupe des pointeurs et tous ces trucs super chiant qui font des SIGSEGV (arg!).
C/C++ c'est bien beau, mais c'est hyper lourd ! (je suis qd même un très grand fan de C++ ;-)
@+ Haypo
Les chaînes de caractères n'ont jamais été implémentées en c++ (pur, sans librairies) pour la simple raison que ça n'est qu'une abstraction:je préfère savoir ce que cache le code que je tape plutot que d'utiliser un type de données 'string' opaque (les classes C++ montrent encore le code de gestion qu'il y a derrière) je ne vois pas en quoi php serait plus rapide pour les chaînes que le c++, quoique peut etre plus 'pratique' au niveau de ce que le programmeur tape, une différence qui s'atténue (quand meme !) quand on commence à utiliser la librairie. Coté gestion de la mémoire je n'aime pas laisser les autres faire le boulot à ma place... et je n'ai jamais eu d'access violation (version windows des seg fault) avec mes pointeurs, il suffit de faire correspondre les new et les delete, un code 'bien écrit' aide le programmeur à éviter ces problèmes.
Haypo, encore une fois, le C++, ne se limite pas aux fonctions standard... Quand on parle de code réutilisable, de nombre de projet C/C++, c'est pour ca. Ton projet de parse d'email, je pourrais le faire en autant de temps en utilisant la CLX. (Et ca n'est pas un manque de modestie, je ne connais pas parfaitement ces instances, je ne la manipule que rarement, et beaucoup l'utilisent infiniment mieux que moi, seulement, c'est très simple.) Et la CLX n'est pas la seule API a fournir ces fonctions.
Je ne crois pas que le domaine d'application fasse défaut au C++. Imaginez que les serveurs web interprettent des scripts en C++, et le langage reprendra encore de l'ampleur (je ne parle pas des cgi, ils ont l'air en declin, mais ce n'est pas mon domaine non plus, je ne sais pas trop)
Si c'est vraiment le cas, je vois 3 possibilités :Citation:
Envoyé par bleyblue
- soit tu as un microprocesseur à la place du cerveau
- soit tu n'as jamais eu à faire à un projet VRAIMENT gros
- soit tu as effectivement des fuites de mémoire dans tes progs, mais elle ne se sont pas encore manifestées... croise les doigts !
eh non, j'ai déjà fait de gros projets... vous croyez vraiment qu'une fuite de mémoire ça arrive tous les jours ? ça arrive uniquement à ceux qui ne font pas attention (bon je vais me taire j'avoue que ça m'arrive mais je finis généralement par trouver la faute) !
Ce que je voulais dire, c'est que dire qu'une erreur ne survient jamais dans ses prog est aussi débile que d'affirmer qu'on aura jamais d'accident de voiture (ou autre). Tu as beau faire toujours super gaffe, tu n'en est pas moins humain...
ah oui j'aurait peut etre pas du dire 'jamais'. en tout cas j'ai rarement des erreurs de ce type, car il n'est pas compliqué de les éviter. Je ne dis pas que ça n'est pas possible...
Quand on utilise des langages proches de la machine comme C ou C++, on est libre de se tirer une balle dans le pied autant que l'on est libre de faire tout ce que l'on veut.
Quel débat ! Moi je dirais simplement que chaque langage a un domaine d'application dans lequel il excelle (sinon il n'est pas utilisé et personne n'en cause et donc il n'existe plus).
Je dirais que le C++ a un avenir encore certain, mais que Java n'est pas en reste. Comme l'a dit quelqu'un : les téléphones portables sont programmables en java maintenant. Il y a même John Romero (celui qui a fait le célèbre Daikatana qui a été présenté 3 fois de suite au salon de l'E3 :lol:) qui se consacre maintenant à ça : les jeux en java sour téléphone portable.
Mais sinon pour en revenir à l'avenir du C++ il faut voir plus large : l'avenir de l'informatique. Moi je pense que ce qui va se développer c'est la reconnaissance de la parole (avec disparition du clavier), d'autres périphériques de pointage que la souris (il y a des stylos à retour de force qui permettent d'évoluer dans un univers à 3 dimensions qui sont en cours d'élaboration). La réalité virtuelle se développe aussi : bientot les écrans seront remplacés par soit des casques soit par des projecteurs holographiques en 3D. Mais bon pour tout ça c'est pas pour les années qui viennent. Mais faut voir loin... Et est-ce que tout ça sera programmable en C++ où ce sera tellement laborieux qu'il faudra un langage de plus haut niveau.
la distinctinction entre langage de haut et de bas niveau diverge énormément selon les personnes.
Communément, on parle de niveau d'abstraction.
Or pour ce qui est des nouvelles technologies, il suffit de bibliothèques supplémentaires, c'est tout. Je ne pense pas que la hauteur du language évolue en fonction des bibliothèques. pour moi la hauteur d'un langage dépend donc du niveau d'abstraction le plus bas, pas le plus haut...
Le C++ va certainement resté incontournable pendant encore longtemps, ne serais-ce que pour maintenir le nombre halluciant de projets développés en C/C++.
L'avenir du C++ dépend simplement de son évolution propre, de la bonne volonté des boites créant les compilos et de l'évolution des librairies non standart (voir de l'émergence de l'une d'entre elle comme standart).
Prenons un exemple pour chaque catégories :
-> la norme C++: ça fait plus de 5 ans qu'elle n'as pas changé !
pourtant il y a beaucoup de bonnes idées dans les langages concurent de même nature (je pense entre autre au Pascal (Delphi) ). ils serait peut être temps que les mecs de l'ISO travaillent un peu plus dessus....
-> compilos : le mot réservé 'export' n'est toujours pas implémenté dans tous les compilos que je connaisse.
-> les libs: ben si aucune librairie n'éxistait, je me vois mal recommencé à utilisé l'API windows tel quel.
Les librairies peuvent compensées les lacunes du C++ face par exemple au java. Si des dlls standarts aussi complètes que ce que fait java existaient , un programme C++ ne serait pas plus gros. c'est d'ailleurs ce qu'essaye (entre autre) de prouver m$ avec le C#
Mais il y a de quoi resté confiant, le C a très bien passé le cap de l'objet, mais il ne faut pas que ce language reste statique pour perdurer.
[/list][/quote][/code]
Tu te vois prgrammer des graphismes en 3D entièrement en assembleur ? Heureusement qu'il y a des langages de plus haut niveau. Maintenant à partir de là c'est ce que je voulais dire quand je disais qu'il faudra un langage de plus haut niveau : on ne sait pas à quoi ressemblera l'ordinateur de demain. Et peut être qu'aucun langage actuel n'est adapté à la programmation des futures évolutions. Je veux dire que récemment il n'y a pas eu de grandes innovations. Toutes les nouveautés étaient des améliorations.Le concept de l'ordinateur n'a pas beaucoup évolué.Citation:
Envoyé par Fëanor13
Imagines si par exemple on n'utilse plus un système binaire mais ternaire ou quaternaire. Tout est à refaire : des circuits aux OS en apssant par les compilateurs etc. Il me semble que les russes avaient déjà tenté de faire des machines en ternaire.
Imagines encore pire : si on se base sur une logique sui laisse place à une subjectivité. Une machine non déterministe par exemple. Tout le concept de programmation est à revoir ! Et à mon sens c'est une notion qu'il faudra implanter aux machines si on veut espérer qu'elles puissent s'auto-programmer ou auto-évoluer.
Le C++ n'a plus de place dans un contexte comme ceci. Mais c'est pour quand ? mystère.
Sinon pour ta définition de langage haut/bas niveau je suis d'accord. Bas niveau c'est proche de la machine et haut niveau c'est plus abstrait.
ben pour la 3D, ça me dérange pas de codé en C++ avec la lib OpenGL et Glut. les libs compensent le bas niveau.
Pour ce qui est du bas et du haut niveau, tu n'as pas tout a fait compris mon explication. je pense que :
Java est considéré comme de plus haut niveau que le C++ car le niveau d'abstraction minimal est plus élevé que le niveau d'abstraction minimal du C++. Pourtant pourtant l'abstraction des MFC ou de QT est comparable à celui du java.
pource qui est des ordinateurs ternaires ou quaternaires, je pense que cela ne changerai rien au languages, mais tous les compilos seraient à refaire et tous les progs à recompiler.
Il s'agit plutot de comcept de prog, et c'est vrai que l'on a pas inventé grand chose depuis l'objet et le générique (templates).
pourtant même des conceptes éxistant n'existent pas en C++, comme par exemple les ensembles et les intevals de Pascal (on doit les faire à la main), etc...
si les outils évolus (je pense à la reconnaissance vocal au lieu du clavier), cela ne change pas le fait que des libs complèteront ce qui existe déjà. dans une appli graphique type CLX ou MFC, on ne gère plus vraiment les entrées clavier, c'est le système qui s'en occupe, ou alors des libs nous font passer outre ces détails...
Si les conceptes de prog évolunt (logique floue, etc...) le C++ aussi peut évolué comme il l'a déjà fait en passat du C au C with class, puis au C++
Pour le haut/bas niveau c'est bien ce que j'avais compris.
Sinon en fait pour le reste tu ne vois pas le fond du problème. Pour ce qui est des ordinateurs ternaires ou quaternaires : tous les circuits logiques sont différents : les ALU, FPU, mémoires, etc. L'assembleur ne sera pas du tout pareil. Beaucoup d'opérations se feront autrement. Notemment parce que les informations seront codées de façon radicalement différente. Et quand je dis ça c'est pas juste passer de mots mémoire de 32 à 64 bits par exemple. Imagines carrément que l'information soit compressée en hard. sur des bits prenant 4 valeurs c'est tout à fait possible d'imaginer des nouveaux concepts de compression en temps réel.
Notre vision de la programmation repose sur des notions comme les expression, les variables, les sauts et donnent des choses un peu plus évolués dans les langages de plus haut niveau comme les boucles, etc. Mais si ces notions étaient remises en question ? Si la machine ne se programmait plus en entier mais serait "éduquée" ? Par exemple on ne lui dirait plus comment faire une chose mais ce qu'elle doit faire. On ne contrôlerait plus la manière dont elle la fait. Toutes les subtilités que l'on utilise au quotidien serait inutiles. Tu vois ce que je veux dire ?
Et pour les périphériques à reconnaissance vocale je ne pensais pas aux bricoles qu'on a aujourd'hui. Je pensais à un périphérique qui analy en même temps qu'il reçoit. Pa exemple quand je te parle tu entends des mots. si plusieures personnes parlent tu distingue les différentes voix. Hors ceci est très complexe par un ordinateur selon la manière dont on voit l'informatique en ce moment. Je ne crois pas qu'avec les notions algorithmiques et matérielles que l'on a en ce moment on puisse traiter efficacement ces choses.
Imaginez que la moindre petite bestiole est capable de raisonnement. Elle peut réagir en fonction de ce que ses sens lui donnent comme information. La petite bestiolle elle a pas un gros P4 dans la tête et pourtant elle distingue en direct les "voix" et les "visages", "formes" etc. Je ne suis pas sur que l'on se dirige dans la bonne direction en continuant d'utiliser un C++ en rajoutant des librairies ad vitam eternam. Il y a plus simple, c'est obligé !
En quoi ça va supprimer le boucles, les if, les else, les exceptions et les objets ???????Citation:
Envoyé par Metal Tom
T'es tu déjà intéressé au réseaux neuronaux ? La pluspart sont codés en C++Citation:
Envoyé par Metal Tom
Voui mais dans un monde comme ça il n'y aurait plus de programmeur mais que des utilisateurs. On lui dit quoi faire, comme pour un chien. Ya plus de programmateurs de chiens à ce que je sache...Citation:
Envoyé par Metal Tom
Capteur plus processeur préprogrammé. Où est le neuf ?Citation:
Envoyé par Metal Tom
La reconnaissance vocale y arrive de plus en plus. laisse lui le temps. il y a cinquante ans, le informatitiens avaient du mal à faire faire une division à leur machine.Citation:
Envoyé par Metal Tom
Tu surestime énormément ce qu'est capable de faire l'homme. la puissance de calcul d'un ordinateur atteint à peine actuellement celle d'une mouche. Il s'agit de machins mécaniques réagissant à des courants éléctriques précis à des moments précis, alors que le moindre nerf (sur quelques milliards) est capable de réagir sans faille à une intansité électrique de n'importe quelle intensité, de n'importe quelle fréquence et durée et à (presque) n'importe quel temps. Un P4 est une lamentable grossièreté à coté de ce qu'est un système nerveux quel qu'il soit.Citation:
Envoyé par Metal Tom
C'est beau les idéaux... mais ici on parle d'argumentation et de techniques..Citation:
Envoyé par Metal Tom
Désolé si j'ai été un peu sec, mais ça fait trois posts que je me répète.
Pour ce qui est d'autres types de langages, adaptés à la logique floue par exemple, ils existent mais il ne s'agit pas forcément de langage de programmation. De même notre langage à nous, humains si suppérieurs [ironie], est faite pour la communication et non pas la description d'algorythme. Il ne s'agit même plus de niveau d'abstraction ou de concept de programmation différents, mais de langue de NATURE différente, c'est pour ça que je ne considère pas ce que disent les militaire comme étant de ma langue...
Fallait regarder la suite.Citation:
Envoyé par Fëanor13
Je pensais à quelque chose qui se fait matériellement. Plus dans le sens de neurones "biologiques" que de réseaux neuronaux.Citation:
Envoyé par Fëanor13
Pas totalement. Toi tu pars du fait que l'ordinateur serait comme un chien et démontre qu'il serait comme un chien. Moi je pense que l'ordinateur de l'avenir sera construit d'une telle manière qu'il apprendra tout lui même. Mais encore faut-t-il le construire. Naturellement je n'ai aucune idée sur la manière de procéder. Sinon j'aurais plus pmon P3 700 et encore moins mon P200MMX :-)Citation:
Envoyé par Fëanor13
Fallais lire la suite aussi. Désolé j'ai peut être du mal a exprimer mes idées :-)Citation:
Envoyé par Fëanor13
C'est vrai que du chemin a été parcouru. Mais je suis convaincu qu'on est encore à la préhistoire de l'informatique. Comme tu dis : patience.Citation:
Envoyé par Fëanor13
Ce que je disais allait dans ce sens. Soit je m'exprime mal sois tu comprends mal ce que je veux dire. Mais là n'est pas la question. Imagines un processeur qui utilse une structure comparable à un système nerveux. Là je pense que tu saisis le bond que ferait l'informatique. C'est une des raisons qui me fait penser que l'informatique aura beaucoup de liens avec la biologie dans l'avenir. D'ailleurs les algorithmes génétiques, et tous les trucs là le prouvent.Citation:
Envoyé par Fëanor13
E,n fait comme je parle du futur, si ce que je dis existe au niveau technique ce que je dis n'a plus de sens.Citation:
Envoyé par Fëanor13
Pas de prob. Pour une fois qu'un débat avance :-)Citation:
Envoyé par Fëanor13
Il a d'ailleurs été démontré que le langage "français" ne suffisait pas à décrire les mathématiques. C'est pour ça que les informaticiens font de la logique. C'est le plus bas niveau de tout concept de langage, matériel, etc. Donc si on utilise une autre logique, tout change ! Et je sens que ça va changer bientôt ça. Les logiques divalentes ne suffisent plus à tout décrire.Citation:
Envoyé par Fëanor13
Exemple : un morceau de papier avec écrit d'un côté : "ce qu'il y a d'écrit de l'autre côté est vrai" et de l'autre côté : "ce qu'il y a d'écrit de l'autre côté est faux". Avec la logique utilisée habituellement il n'y a aucun moyen de modéliser ce shéma. On tombe sur une absurdité !
Je pense qu'une logique tétravalente pourra régler le problème.Code:(A->B) -> ((nonA->B) ->non B)
G regardé ce que tu appelai logique tétravalente, d'ou la lenteur de ma réponse.
Tu stigmatise trop la différence entre architecture logicielle et matérielle. En fait il n'ya pas tant de différence que cela
Disons qu'une architecture logiciel émule simplement une architecture matérielle et c'est à peut près la seul différence. à l'origine de l'informatiqe, la prog se faisait en branchant des cables.
Maintenant, ces branchements sont fait via des commandes assembleur, mais il n'y a pas bcp de différences. Pour les réseaux neuronaux C pareil. on simule une architecture matérielle qui aurait éxactement le même comportement avec les même caractéristiques.
on s'apperçoit par exemple que les réseaux neuronaux ont une grande capacité d'apprentissage.
-> il leurs faut des profs, pas des codeur
l'avantage d'émuler de tels architectures, c'est qu'on peut en changer.
(à chaque problème correspond une architecture optimale différente)
A propos du chien : un chien ça apprend, si si!
Avec la logique tétravalente, il s'agit de cognition, et ça, ça se code pas, ça ne s'ordonne pas, ça s'apprend, via des essais, des confrontation de sa propre cognission avec des exemples concret.
-> prof et non pas codeur
=> langage informationnel et non plus impératif.
Pour ce qui est de passer à des architectures matérielles entrainent obligatoirement des modification de programmer, c'est pas en passant par des valeurs de 3 ou quatres ou même 50 valeurs/bit qui changera quoi que ce soit, mais seulement à une structure analogique où on ne pourra plus faire de comparaison de valeur exacte.
quand à modéliser ce genre de problème -> à quoi ça peut servir dans un logiciel.
Je te rappel que programmer sert à faire des logiciels.
un hyppothétique langage servirai-t-il à construire ces ordinateurs ou à leur dire quoi faire? s'il s'agit du deuxième cas, pourquoi pas nos langues odinaires, et dans ce cas, en quoi est-ce programmer que de parler ?
Nos raisonnements commencent à converger. Sauf que moi ce que je conclus c'est qu'il faudra une couche supplémentaire pour réaliser tout ça de manière plus "naturelle". Tout comme il serait difficile (mais pas impossible, je suis d'accord) d'écrire un gros programme actuel en assembleur ou même basic. Le C++ est une couche par dessus le C. Qui lui même est une couche au dessus de l'assembleur à sa manière.
Je pense qu'il faut soit une nouvelle couche soit une manière différente de procéder. Je ne dis pas qu'avec les moyens actuels c'est impossible : peu de choses sont réellement impossibles en informatique. Mais ce serait plus "facile" ou plus "naturel" dans un autre système. Mais quelle gueule il aurait : mystère.
tu parle d'un ordinateur analogique ou numérique ???
dans le premier cas j'écris qu'il n'y a plus de langage de programmation
et pour le second cas je reste persuadé que le C++ suffis amplement:
le c++ est très bein pour construire un système type réseaux neuronal...
(on peut en faire un en moins de 500 lignes)
le C++ a encore de beau jours devant lui.
C'est un peu un langage batard qui se trouve entre 2 mondes:
- le monde des langages de bas niveau (C)
- le monde de la POO (Java)
Le C++ n'est qu'une adaptation du C a la POO, le Java qui a été dés le départ concus comme un langage orienté objet et a une structure beaucoup plus 'solide' que le C++.
Ces 2 mondes continuront d'évoluer et d'exister (on aura toujours besoin de prog rapide et la POO n'est pas pret de disparaitre).
J'ai quand meme l'impression que bon nombre de programmeurs sont séduit par la simplicité, l'homogénéhité et solidité de la structure du langage java.
Je veux dire par la que quelqu'un qui veu faire de la POO pure va plutot programmer en Java plutot qu'en C++. La POO en C++ est plutot un bidouille installé par dessu un noyau C. Le C++ posséde des concepts assez tordu (héritage en diamant,...) qui peuvent rebuter certain programmeur.
Analogique ou numérique, je ne suis pas madame soleil. Je ne sais pas de quoi le futur est fait.
Sino je suis d'accord que le C++ suffit et suffira pendant quelques années. Mais quand il y aura des changements radicaux ça ne suffira plus. Et je ne parle pas des réseaux neuronaux vu que c'est de l'informatique de hier, aujourd'hui et du futur proche. Mais bon j'ai l'impression qu'on est à peu près d'accord.