Et le goto, c'est pas MAL....
Il faut juste l'utiliser a bon escient.
Et le goto, c'est pas MAL....
Il faut juste l'utiliser a bon escient.
Personnellement, je considère que quand on fait appel à l'Argumentum ad populum (et plus généralement à n'importe quel sophisme), on ne fait que démontrer le bien fondé de l'argument opposé…
Lorsque le sujet est l'observation d'un comportement "critiquable" au sein d'une population, j'ai rarement vu pour ma part cette population concernée adhérer à cette critique… D'ailleurs, toutes vos citations "pensent que…" ou affirment, mais aucune n'apporte un argument ou une expérience concrète. Tous les intervenants ici s'appuient sur leur compétence personnelles qui évidemment sont au top… Alors si vous avez des cas où vous connaissez des devs ayant une techno favorite qui bossent sur une autre techno en s'adaptant aux usages de cette techno, je serai ravis de voir le code produit, mais sur les forums, je sais que de tels cas sont à croire sur parole car le code est classé Secret Défense. Pour ma part, je devrai rester sur ce que j'observe depuis des années : des admins/réseau incapables d'appréhender l'objet en Python, des devs Java incapables de penser flux en Python, des devs Android qui font tout en Classes et incapable d'utiliser à bon escient les Struct en Swift/iOS, des devs Objective-C en stress quand il faut faire confiance à ARC… Et quand je parle "d'incapacité", ce n'est pas péjoratif de ma part, mes stagiaires l'admettent d'un "nous sommes formatés à…". Mais évidemment, ce n'est pas l'élite qui intervient sur Developpez…
Comme beaucoup ici, j'ai commencé par le BASIC, celui du commodore 64. Avec son langage limité et ses POKE & PEEK, et l'absence totale de structuration telles que procedures, fonctions, while, until, c'était une bonne formation à l'assembleur
Le passage au TurboBasic, TurboPascal puis au C dans mes études supérieures a été une bénédiction, puis j'ai fait autre chose. Le BASIC, je le frôle toujours quand je fais du VBA mais franchement je préfère le Python.
Concernant l'influence du premier langage, je n'ai jamais adhéré au concept de classe, je trouve ça bien trop verbeux pour pas grand'chose, c'est peut-être aussi dû à la petitesse des projets que j'ai eu à traiter, et une mauvaise influence du BASIC originel. Proc() et Func() suffisent à mes besoins. Quant à la programmation fonctionnelle, j'y suis hermétique et c'est dommage. BASIC je te hais pour ce que tu m'as fait !
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
Quant à moi, si j'ai commencé aussi par le Basic, c'était le GFA BASIC sur l'ATARI ST. Lui était très structuré, permettant de faire du code très propre. Je suis ensuite passé facilement au (Turbo) Pascal, et ça ne m'a pas empêché de glisser vers le C puis le C++. Au contraire, ça m'a aidé pour le PL/SQL que je pratique à côté des Java, Javascript, etc. Il y a en effet deux grandes familles de langages : C / C++ / Java / C# / Python ; Pascal, Ada (et PL/SQL ). Lisp, COBOL, Haskell sont à part.
Ce n'est pas en réalité le premier langage qui compte, c'est au contraire le fait d'apprendre plusieurs langages, cela permet de mieux percevoir les différences entre chacun et les forces/faiblesses des différents langages en fonction des usages notamment.
Oui en effet, il ne faut confondre le "langage informatique" et le langage humain qui sont deux choses de niveaux différents
lorsque l'on code : l'un sert à la réflexion (à la pensée consciente) et à l'expression d'idées, de solutions, etc... L'autre
n'est que la mise en pratique de cette réflexion adaptée aux machines. A moins d'être une machine personne ne
réfléchit "en code programmé" même si lorsque je développe ou analyse sur un problème donné je "visualise" (pas sur
du terme exact) parfois le code je voudrais obtenir ou plutôt "sa forme générale" pour être plus précis. Cette image
que je me fais de mon code, qui précède l'écriture je pense que cela ressemble à la façon dont on réfléchit en composant
un texte pour l'écrire correctement mais l'on sait déjà par avant ce que l'on veut dire
Pourtant un language informatique aussi évolue, se voit mettre à jour, notre approche de son utilisation peut totalement changer. (dernières évolutions du C++, JS et tous ses frameworks, Node, ...)
Et tout comme pour les langues vivantes selon notre langue maternelle on aura plus ou moins de facilité à dire telle ou telle chose.
Exemples à la con : basketball, en anglais ça passe, en français... balle au panier ? ça sonne faux, on a gardé le terme anglais
La dernière fois je jouais et un skill permet d'avoir du temps bonus, en anglais on a appelé ça "use the time-thingy", c'est clair pour tout le monde, en français j'aurais sûrement dit "utilisons la compétence pour le temps", plus lourd
L'anglais de manière générale est plus concis pour décrire ce genre de chose imo
Contre-exemple : le dodgeball, qu'en français on retrouvera sous balle au prisonnier - on a perdu un peu de la définition/description du terme anglais
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Et bien non. Les deux s’appellent "langage" car tous les deux ont une syntaxe et une grammaire afin de décrire une pensée parfaitement consciente.
Pour aller plus loin, il y a aussi le langage mathématique qui permet tout autant d'exprimer les concepts et des idées même si comme pour les langages informatiques c'est un langage spécialisé;
Il est intéressant de remarquer que le langage mathématique est actuellement le même sur toute la planète ce qui permet de faciliter les échanges d'idées lorsque l'on est Chinois Russe ou Français.
Ceux qui abandonnent une liberté essentielle pour une sécurité minime et temporaire ne méritent ni la liberté ni la sécurité.
Benjamin Franklin
L'analogie s'arrête là. Le langage « naturel » est associé, cérébralement, à tout un ensemble de souvenirs, d'affects, de processus cognitifs qui lui donnent un rôle bien plus étendu et une puissance évocatrice bien plus importante que ceux des langages réguliers décrits dans la hiérarchie de Chomsky. Ca explique d'ailleurs pourquoi, alors que les moyens mis en oeuvre sont colossaux, la traduction automatique « complexe » n'a toujours pas dépassé le stade de l'expérimentation.
Pour en revenir au sujet de départ, je ne crois absolument pas qu'un langage informatique pratiqué longtemps « imprègne » au point de rendre inapte à l'apprentissage d'un autre, fut-il d'un autre paradigme. Ca a autant de sens que de dire qu'il est très difficile de passer du vélo à la moto... Par contre, ce que je veux bien croire, c'est qu'il existe chez les informaticiens, comme chez d'autres corps de métier, un certain conformisme qui fasse barrière à certains types de changements ; le frein serait donc culturel, pas fonctionnel.
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
Et ils utilisent cul de sac, à la, je ne sais quoi, et plein d'autres, parfois sans savoir que c'est français à la base, et après ?
Ca n'empêche pas la langue anglaise d'être dans l'ensemble plus concise que le français qui se tape plein de petits mots de liaison de que à et consors un peu partout qui alourdissent le tout, ni d'utiliser des termes anglais comme parking, week-end. Donc tu cherches à prouve quoi ?
Ce qui manque le plus à la traduction automatique c'est le contexte de cette traduction. Tous tes souvenirs etc ne font que donner du sens au contexte et donc modifier la signification que tu perçois de tel ou tel mot/phrase dans tel contexte.L'analogie s'arrête là. Le langage « naturel » est associé, cérébralement, à tout un ensemble de souvenirs, d'affects, de processus cognitifs qui lui donnent un rôle bien plus étendu et une puissance évocatrice bien plus importante que ceux des langages réguliers décrits dans la hiérarchie de Chomsky. Ca explique d'ailleurs pourquoi, alors que les moyens mis en oeuvre sont colossaux, la traduction automatique « complexe » n'a toujours pas dépassé le stade de l'expérimentation.
Ca ne rend pas totalement inapte comme tu le raccourcis si vite, mais ça change forcément ta façon de penser un problème et sa résolution.Pour en revenir au sujet de départ, je ne crois absolument pas qu'un langage informatique pratiqué longtemps « imprègne » au point de rendre inapte à l'apprentissage d'un autre, fut-il d'un autre paradigme. Ca a autant de sens que de dire qu'il est très difficile de passer du vélo à la moto... Par contre, ce que je veux bien croire, c'est qu'il existe chez les informaticiens, comme chez d'autres corps de métier, un certain conformisme qui fasse barrière à certains types de changements ; le frein serait donc culturel, pas fonctionnel.
Comme le manque de manipulation de pointeur me fait défaut à chaque fois que je fais un peu de Python et passe quelques minutes à trouver une parade.
C'est aussi pour ça qu'apprendre une nouvelle langue est plus simple quand on est plus jeune, moins imprégné et habitué, cerveau non encore trop formaté, et que certaines langues sont plus simples à l'apprentissage selon ta langue maternelle
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Il ne dit pas qu'il rend inapte à l'apprentissage d'un autre langage, mais qu'on ne codera pas forcément de la bonne façon dans ce langage en s'entêtant à appliquer ce que l'on connait déjà, un bon exemple est le JS ou il existe maintenant plein de langage qui compile vers le JS permettant de développer en POO classique.
C'est-à-dire jamais
Sérieusement, au cours des 15 dernières années, j'ai utilisé goto une seule fois (et encore c'était pour la blague, pendant un hackathon... je ne l'aurais pas fait dans du code de production). On s'en passe très bien, et s'il disparaissait des langages modernes (certains s'en sont déjà débarrassés d'ailleurs) la plupart des gens ne s'en rendrait même pas compte.
(une exception à cette règle : les fichiers .bat de Windows. C'est à peu près le seul langage que je connaisse où l'utilisation de goto est presque inévitable)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
Je suis assez d'accord, dans une vision complexe, le langage n'est pas une entité neutre. Non seulement nous interagissons avec lui même en plus il modifie indirectement nos paradigmes (feedback).
Sur un plan technique, il n'y a qu'a voir la domination de certain paradigme par rapport à d'autre, ce n'est sans doute pas étrangers à la popularité des premiers langages choisi (même si ce n'est sans doute pas l'unique raison).
Sur un plan de la réflexion dans un sens plus large, j'ai personnellement l'impression que beaucoup de développeurs subissent une forme de "déformation professionnelle", dans le sens où le paradigme analytique devient une espèce de pierre de rosette, applicable à tout.
Hum, et en langage C ?
Comment tu fais en langage C pour gérer les erreurs ?
Typiquement une fonction qui ouvre X fichier, et si l'un d'eux échoue, il faut afficher le message d'erreur correspondant et fermer tout les fichiers ?
Personnellement, c'est le seul moment où goto est vraiment une bonne (voir la meilleur pour moi) alternative.
Il permet de concentrer la libération des ressource en un seul endroit, ce qui permet d'avoir moins de chance de bug/fuite mémoire.
Mon expérience:
Au collège: le Basic (sur une calculatrice)
A la fac: Pascal, Lisp, C, ASM et rapidement le C++,
A titre perso: Perl (pour faire du Web backend à l'époque), PHP, Python
Au taffe: Java le langage avec lequel je bosse principalement depuis 17 ans, le Javascript (et la pléthore de framework associés dont Angular).
Donc même si on a commencé avec BASIC on est pas cloîtré dans ce seul paradigme ad vitam æternam ou alors on est réfractaire au changement et l'informatique n'est pas fait pour nous.
De même que dans 95% des projets dans lesquels j'ai travaillé jusqu'à présent, un langage objet (Java ou autre) convenait parfaitement pour résoudre tout les cas d'implémentation de manière optimale, c-a-d du point de vue de l'algorithme, de l’écho système technique du client, des performances et de la maintenabilité attendues.
Après chercher le langage exotique qui résoudra de manière la plus élégante et la performante possible un pb donné est souvent un mauvais calcul car une fois la solution développée il faudra chercher la compétence capable de maintenir la solution et c'est là que cela peu coûter très cher.
Je vous trouve optimistes.
Globalement, les gens qui s'expriment sur ce forum ont tous un niveau culturel/scientifique/informatique très au-dessus du programmeur de base.
Alors pour nous ( je me mets dans le lot), la citation initiale est totalement fausse, on a le background suffisant pour évoluer et franchir certaines barrières.
Mais à côté de cela, il y a toute une population de programmeurs ou de pseudos-programmeurs qui n'ont pas le même niveau.
Et il est tout à fait possible que pour cette population, la manière de raisonner soit forgée par le premier langage appris.
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager