|
Publicité ' | ||||||||||||||||||||||||
|
|
#181 | ||
|
Expert Confirmé
![]() Inscription : septembre 2010 Messages : 1 366 ![]() |
@kurah
La notion de pointeurs te semble obscure ? Pourtant, tu n'as jamais manipulé que ça. Pas vraiment, en fait, tu as toujours manipulé des références. Voici comment on fait une référence : Code PseudoCode :
Comme tu le vois, c'est une simple paire (pointeur, compteur). Toutes ces références sont stockées dans une grande "table", unique pour l'application, qui contient les références de tous tes objets en mémoire. Et ton "langage" prend soin pour toi de faire deux choses : * Chaque fois que tu assignes une référence à une variable, le compteur est modifié : l'ancienne valeur voit compteur décrémenté, la nouvelle voit le sien incrémenté. Si une variable a son compteur a 10, cela signifie qu'il y a dix variables en mémoire qui ont cette référence. * Régulièrement, ton programme fait le tour de la table des références. Dès qu'il en repère une dont le compteur est à zéro, cela signifie qu'elle n'est plus accessible par ton programme. Alors il la nettoie (libération de l'adresse contenue dans le pointeur) et la retire de la table. Donc, un pointeur, c'est comme une référence, sauf que ce n'est pas automatiquement détruit. Et là tu peux comprendre à quoi ça sert : à faire tout ce que tu fais aujourd'hui avec des références mais beaucoup plus rapidement puisque : 1) Tu n'as pas besoin, à chaque assignation, de faire un à deux tests (vérifier que c'est différent de null) et deux incrémentations/décrémentations (des incrémentations "magiques" pour que deux threads puissent faire ça en même temps sans verrou) 2) Tu n'as pas besoin d'avoir régulièrement un ramasse-miettes qui vienne bouffer du CPU, voire interrompre ton programme, pour parcourir et modifier une structure de données lourde et complexe et réarranger la mémoire dans tous les sens, une opération très coûteuse en bande passante mémoire et incompatible avec les besoins de programmes devant fonctionner en temps réel. Est-ce que c'est complexe pour un amateur ? Peut-être mais c'est nécessaire pour maximiser les performances. Cela dit j'ai appris ça tout seul à 16 ans depuis un bouquin en essayant de réaliser un arbre binaire. Effectivement, je crois me souvenir m'être bien pris la tête au début mais, au bout de quelques jours, c'était rentré pour de bon. Maintenant, C, C++, C# et Objective-C n'ont pas grand chose à voir et tous ne présentent pas du tout le même niveau de difficulté. Commence donc par le C#, c'est un langage simple et puissant. Comme php, tu y manipuleras des références et non des pointeurs, ce qui te simplifiera la vie. Ta seule vraie difficulté sera d'apprendre à manier un langage au typage statique fort (contrairement à php & co) et à coder prorprement en objet. Et, avec le temps, tu comprendras que tout ce qui te semble obscur a sa raison d'être. @Souviron34 Attention, le fait que certains paradigmes a priori abscons aient une faible pénétration dans l'industrie ne signifie pas que, dans les domaines où ils sont employés, ils ne seraient que de peu d'intérêt et aisément substituables par autre chose. Si on regarde Erlang par exemple... |
||
|
|
20
|
|
|
#182 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 9 594 ![]() |
Citation:
On ne peut pas dire que la majorité de ce qui sort et/ou est à la mode vise la "simplification" et l'utilisation par le pékin moyen (pour te dire, les exemples qu'on m'a donné d'Haskell se sont révélés même pour moi totalement incompréhensibles.. Et pourtant j'ai déjà une formation scientifique ultra-poussée et une longue expérience et de nombreux langages...) PS: j'ai oublié par exemple un joli petit Tcl/Tk pour faire des IHm, qui était pas mal simple...
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
|
02
|
|
|
#183 |
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 8 ![]() |
Salut,
Moi je suis pas super d'accord avec cet article. D'accord on pourrait surement améliorer certaines approches, mais développer c'est un métier ! et comme tous les métiers, il faut un temps d'apprentissage,.... 1 an, 2 ans, 5 ans..... Tout le monde n'est pas fait pour être développeur, il faut un certaine façon de penser, et c'est comme çà pour tous les métiers, commercial, expert comptable,.... |
|
|
03
|
|
|
#184 |
|
Membre à l'essai
![]() Inscription : juillet 2008 Messages : 42 ![]() |
bon c'est décidé si un membre de ma famille à un problème de santé je vais tenter de faire un opération cœur ouvert. si j'ai du mal je pesterai contre les chirurgiens qui utilisent des mots abscons dans leur métier!
|
|
|
12
|
|
|
#185 | |
|
Membre chevronné
![]() Inscription : mars 2010 Messages : 281 ![]() |
Citation:
Tu ne t'es pas dit que le fait que tu ais 30 ans de programmation impérative derrière toi t'as peut être un tout petit peu formaté d'une façon incompatible avec l'approche Haskelienne? J'ai l'impression que ta longue expérience de nombreux langages inclue finalement assez peu de langages fonctionnels. Ca peut peut être expliqué que le grand scientifique que tu es n'arrive tout de même pas à t'y faire. |
|
|
|
10
|
|
|
#186 | |
|
Membre chevronné
![]() Inscription : mars 2010 Messages : 281 ![]() |
Citation:
Ensuite, j'aimerais bien savoir pourquoi les langages fonctionnelles n'auraient "rien de conceptuellement commun avec ce que pense le commun des mortels". J'ai fait un cours d'introduction à la programmation à des gosses de 15 à 17 ans en utilisant laby en version caml. Le but est de "programmer" une petite fourmi pour qu'elle sorte d'un labyrinthe. A partir d'un certain niveau, on leur apprend les boucle. J'ai un plusieurs jeunes, qui n'avaient *jamais* fait de programmation, et à qui *personne* n'avait expliqué les fonctions récursives qui ont naturellement utilisé ça. "Pour explorer toutes les branches, il suffit de dire comment explorer une branche, puis de recommencer". Hop, récursion. Ensuite me dire que "j'ai une liste contenant des entiers. Je veux la liste de leur carré. Je vais donc appliquer la fonction carré a chaque entier de la liste" est une notion vachement moins commune que "je vais donc prendre un pointeur sur le premier élément de la liste, et tant que ce pointeur n'est pas le pointeur null, je vais récupérer le contenu de la cellule, le remplacer par son carré, puis remplacer le pointeur courant par le pointeur next de la cellule pointé par le pointeur courant", ça frôle la mauvaise foi inacceptable. Peut être que justement si notre journaliste n'avait pas été confronté à des langages où il faut penser comme une machine pour programmer une machine, il aurait un peu moins râlé. |
|
|
|
40
|
|
|
#187 |
|
Membre du Club
![]() Inscription : septembre 2009 Messages : 30 ![]() |
Tiens c'est marrant, ici on explique pourquoi être littéraire est un atout pour passer à la programation: http://datablog.owni.fr/2011/06/14/%...ait-pour-vous/
|
|
|
10
|
|
|
#188 | |
|
Nouveau Membre du Club
![]() Enseignant Chercheur Inscription : juin 2008 Messages : 15 ![]() |
Je me marre comme une baleine lorsque je lis :
Citation:
MOVE COMPTECOURANT TO CLIENT .... À l'époque on croyait qu'une personne sachant l'anglais et connaissant un peu le problème pouvait le programmer sans difficulté. Alors Tomkins, ce n'est pas 40 ans de retard qu'il a, mais plus de 50 ! Et ce n'est pas parce qu'il est limité dans son approche de la programmation qu'il doit penser que les autres le sont aussi. |
|
|
|
30
|
|
|
#189 |
|
Membre Expert
![]() |
Il veut un langage naturel ? Il faut relancer le langage LOGO !
__________________
Je ne suis pas une adresse IP, je suis un homme libre ! |
|
|
01
|
|
|
#190 |
|
Nouveau Membre du Club
![]() Inscription : avril 2010 Messages : 73 ![]() |
Il y peut être un problème de choix des langages ou d'apprentissage (avec des bouquins ? quels bouquins ?). Il dit qu'il maitrise Javascript (jusqu'ou ???). Moi je trouve Javascript (que j'estime maitriser aussi pour autant) parfois plus obscur que le C. Le débogage est une corvée en javascript pour moi car il y a peu de rigueur, que la portabilité est à chier. Et peu d'outils, de documentation aussi...
Le développement demande de la rigueur. Moi je n'ai pas décidé de devenir neuro-chirurgien ou astrophysicien dans mon garage. |
|
|
10
|
|
|
#191 |
|
Invité régulier
![]() Chef de projet en SSII Inscription : avril 2011 Messages : 6 ![]() |
je peux comprendre la frustration d'utilisateurs intelligents qui ce retrouvent devant un langage abscon( apparement) mais pas plus qu'un melomane qui rencontre un violon .
Je doit dire que pour moi la frustration arrive avec toutes les simplifications du langage. En effet quoi de plus difficile que d'utiliser un langage simple ex: VBA et d'essayer de lui faire faire quelque chose d'original par exemple ecrire du texte en vertical dans une zone graphique. Là tout de suite cela devient presque impossible! La documentation est souvent trés difficile à trouver et l'internet avec tous ces forum peut parfoi égarer. |
|
|
01
|
|
|
#192 | |||
|
Invité de passage
![]() Nolwennig Inscription : janvier 2011 Messages : 1 ![]() |
Citation:
![]() ou le Small-Talk c'est pas vraiment naturel de réfléchir en poo ou poa Code :
|
|||
|
|
01
|
|
|
#193 |
|
Membre du Club
![]() Thomas Développeur informatique Inscription : avril 2007 Messages : 62 ![]() |
Développeur c'est un métier, c'est comme journaliste ou médecin^^. Si un développeur essaye de faire de lire un bouquin de médecine il va probablement rien comprendre et il ne va pas crier au scandale pour autant. Pourquoi ce journaliste a cru que notre métier était facile ?^^
__________________
«Placez votre main sur un poêle une minute et ça vous semble durer une heure. Asseyez vous auprès d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativité.» [ Albert Einstein ] «Il n’existe que deux choses infinies, l’univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue.» [ Albert Einstein ] |
|
|
01
|
|
|
#194 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 521 ![]() |
Citation:
Au mieux, il y a parfois un peu d'événementiel/réactif : "quand harry potter sorti, aller le voir".
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
|
40
|
|
|
#195 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : août 2003 Messages : 4 521 ![]() |
Citation:
C'est pourtant exactement ce que le journaliste demande : bidouiller des petits trucs simples. Lisez l'article et le reste du fil de discussion avant de ressasser les mêmes arguments SVP.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
|
20
|
|
|
#196 | |||
|
Membre éprouvé
![]() ![]() Ingénieur développement logiciels Inscription : mai 2008 Messages : 212 ![]() |
Citation:
"Simplifier" le langage est une notion assez floue...
__________________
[|] |
|||
|
|
10
|
|
|
#197 |
|
Membre régulier
![]() Développeur Web Inscription : mai 2008 Messages : 89 ![]() |
En programmation il y a plusieurs niveaux.
C'est sûr que s'il s'est dit "je connais le JavaScript, tiens ! je vais faire un peu d'Objective C". Lol, mais je rigole ! Ce n'est pas du tout le même niveau ! C'est comme si moi, je me disais : "Je bricolais plutôt bien ma mobylette étant jeune. Tiens, si je tentais de bricoler ma grosse berline allemande !". Ce n'est pas le même niveau. Il est sûr que si l'on veut s'attaquer à un niveau plus difficile (techniquement, en informatique, on parle de niveau de programmation inférieur), il faut être prêt à bosser. Pourquoi ne tenterait-il pas de faire de l'assembleur ! |
|
|
11
|
|
|
#198 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 158 ![]() |
Tu cherches le troll toi en comparant javascript à une mobylette et objective-c à une berline allemande
__________________
Mon blog techno, essentiellement JavaScript, et son billet hebdomadaire sur l'actualité jQuery. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
31
|
|
|
#199 |
|
Membre du Club
![]() |
Bonsoir,
Il se peut que le journaliste ait raison ! Car quand on envisage la "programmation" c'est envisager cela à deux niveaux distinct... Celui des développeurs et celui des utilisateurs. Si on envisage celui des utilisateurs seuls… Il serait souhaitable pour eux, qui connaissent leurs problèmes, qu'ils puissent y trouver une réponse informatique sans nécessairement passer par un développeur. Ors ce qu'on leurs proposent ce sont effectivement des langages trop complexes pour eux… Soit l'inverse de ce que proposait l'ère de la micro à l'origine, avec des ordinateurs individuels et des "basics" accessibles à tous. Bien évidement que ce n'est pas avec cela qu'on développe des applications trop complexe… Quoique ! C'est a partir de cela qu'une grande partie des grands développeurs d'aujourd'hui se sont formés, (il le fallait bien, l'enseignement ne fournissait pas encore des profs capables pour ça puisqu'au mieux ils apprenaient eux même) puis, ils sont devenus 10,15, 25 ans après ce qu'ils sont et prêche aujourd'hui avec les gourous. Mais aujourd'hui, on pourrait certainement développer des outils permettant aux utilisateurs de créer leurs applications sans nécessairement devoir passer la grosse artillerie nécessitant un bac +3 minimum en informatique, par la case "C", qu'il soit ++ ou autre. Ce qu'il leurs faut c'est un "créateur d'application" en langage quasi naturel... Et là je ne pense pas aux RAD, ou Access, Excel avec leurs VBA derrière, mais à un vrai générateur d'application sans langage de programmation comme on l'entend en informatique, mais quelques mots clefs s'intégrant dans une phrase ou s'utilisant dans un contexte donné qui ferait que l'utilisateur pourrait sans grande difficulté prendre les rennes et développer, et faire évoluer son application ! Ce type de générateur, j'en ai conçus un en 1987… et continué sont développement jusqu'en 1992… Moment ou est arrivé et suffisamment aboutis, le +/- stable Windows 3.11. Le générateur, je l'avais baptisé "Progene 3". L'utilisateur se créais son application de gestion de stock, une compta ou autre impliquant 6 ou 7 fichiers en interactions (SGBDR), les menus, formulaires d'impressions etc.. Soit une application complète (pas de graphique) avec pour seul langage de programmation 7 instructions qui se déclinais seule ou de manière combinée et donnait "l'intelligence du comportement" de son programme. Le reste c'était de l'organisation simple.. Apprendre cela se faisait en 2 ou 3 heures, et l'utilisateur était presque autonome, et rien que par téléphone, je pouvais ou du moins des collaborateurs et utilisateur eux même pouvait les aider... Une application bien réfléchie se réalisait en 2 ou 3 jours, plus des affinements ou adaptation au fur et à mesure des oublis ou nouveaux besoins. Donc très souple. Finie une application, ne se distinguais en rien d'une créer par un développeur. J'en ai vendu à l'époque via la Fnac entre autre un bon millier (depuis des écoles à un aéroport en passant par un hôpital, et des entreprises diverses et même quelques particuliers). Puis est venus le moment où il fallait que je l'adapte à ce nouveau type de plateforme Windows. Ce que je n'ai pas fait, et préféré prendre ma "retraite"… Trop lourd comme travaille seul et trop cher à plusieurs par manque de capacité aussi de mes collaborateur. Note : Il ne produisait aucun code, mais des fichiers contenant les formats des écrans (fenêtres), qu'ils soient menus, aides, de fichier et tous contenus et savaient ce qu'il fallait faire avec chaque donnée. Espèce de macro instruction. Il se composait donc de quelques programme ou "moteurs" exécutants ce que les fichiers instruction leurs demandait de faire. Détails cela fonctionnait aussi en réseaux et donc multiposte. Le rôle des développeurs, maintenant… ! C'est justement d'élever leurs niveaux dans le développement de produits d'utilisation simple ou l'utilisateur, qu'il soit particulier, prof, entrepreneur ou scientifique pourra se prendre en main pour résoudre son problème à lui ou a son entreprise. C'est justement ce que PC-Soft tente de proposer avec ses WinDev et autres en ayant une par de développement visuel et l'autre ouverte à des programmeurs plus pointu… (Pour ne vexer personnes). Mais voilà, ils ne vont pas au bout de leurs raisonnement a mon avis et produisent une usine à gaz, et de toute façons trop chère pour que les "amateurs" puissent s'y former ! L'avenir passe par demander à sa machine quelle résolve ses problèmes et non pour qu'elle vous en crée d'autre et vous asservissent en vous liant nécessairement à des développeurs… Je crois aussi que quelque part c'est aussi une crainte pour les développeurs. Créer de tels outils, c'est en quelques sortes scier la branche sur laquelle ils sont très bien assis. Bon, ce n'est qu'un avis, mais qui devrait répondre à ce journaliste en colère ! Et aussi aux développeurs. |
|
|
12
|
|
|
#200 |
![]() ![]() Germino LegrandDéveloppeur de jeux vidéo Inscription : octobre 2010 Messages : 370 ![]() |
Vous imaginez, vous, un journaliste à l'époque où Bill a écrit son OS demander la même chose ?
Non, sérieusement, s'il veut protester pour pouvoir programmer sous I-phone, ben il n'a qu'à demander à Apple de créer une application pour compiler un programme écrit dans un langage rien que pour I-phone. J'ai remarqué que dans tous les langages haut-niveau, il faut faire des pieds et des mains pour pouvoir utiliser tout ce qui est bas-niveau et donc nécessaire pour créer quelque chose auquel les créateurs des nombreux frameworks existants n'ont pas pensé... |
|
30
|
Copyright © 2000-2013 - www.developpez.com