IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Quelle est la meilleure méthode pour apprendre la programmation ?

Votants
46. Vous ne pouvez pas participer à ce sondage.
  • avec un langage de bas niveau (C, assembleur...)

    15 32,61%
  • avec un langage de script

    8 17,39%
  • avec la programmation Web

    4 8,70%
  • avec un langage de haut niveau (Python, Go, Rust)

    15 32,61%
  • avec des livres

    21 45,65%
  • avec des tutoriels écrits

    32 69,57%
  • avec des tutoriels vidéos

    16 34,78%
  • avec un système de noeuds (Scratch)

    1 2,17%
  • au travers d'un framework

    3 6,52%
  • au travers d'un moteur de jeux vidéo

    2 4,35%
  • avec des sites interactifs dédiés (CodeCombat, Codingame, ...)

    4 8,70%
  • avec des jeux vidéos thématiques (7 Billion humans, TIS-100, Shenzen IO, Opus Magnum)

    4 8,70%
  • en école

    17 36,96%
  • en formation

    14 30,43%
Sondage à choix multiple
Débats sur le développement - Le Best Of Discussion :

Quelle est la meilleure méthode pour apprendre la programmation ?


Sujet :

Débats sur le développement - Le Best Of

  1. #41
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    J'ai quand même lu le wiki à la con :

    Il est assez difficile de donner une définition précise du typage fort. Un langage est fortement typé si :

    1. La compilation ou l'exécution peuvent détecter des erreurs de typage. Sinon, le langage est dit faiblement typé ;
    2. Les conversions implicites de types sont formellement interdites. Si de telles conversions sont possibles, le langage est faiblement typé.

    Le langage C réponds au 1, mais pas au 2. D'après le 1 le C est fortement typé, mais d'après le 2, c'est l'inverse. Comment écrire un wiki incompréhensible avec en en-tête, il est assez difficile de donner une définition précise du typage fort.

    Vous me faites tous rire avec vos certitudes.

    En fait même le wiki que vous utilisez comme référence dit que : Il est assez difficile de donner une définition précise du typage fort. Et vous, vous faites les glands avec vos certitudes...

    Le pire, c'est que des crétins vous donnent des étoiles à vos messages, alors que vous êtes bidons.

  2. #42
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 82
    Points : 178
    Points
    178
    Par défaut
    Citation Envoyé par Uther Voir le message

    C'est difficile de donner raison à l'un ou l'autre sur ce sujet étant donné qu'il y a un consensus indéniable sur le fait que la notion de typage fort/faible ne fait pas du tout consensus, contrairement à la notion de typages statique/dynamique.
    J'essaie de clarifier ces notions de typage fort/faible et de typage statique/dynamique.

    Typage faible : un langage qui autorise des conversions implicites entre variables de types différents est un langage faiblement typé. A ce titre C est un langage faiblement typé.

    Typage fort : langage qui n'autorise aucune conversion implicite entre variables. ADA est un langage fortement typé car on ne peut même pas affecté un entier à un float sans explicité la conversion. Toute conversion doit être explicitée.

    Typage statique : langage où toute expression possède un type déterminé à la compilation et n'en change pas à l'exécution. Le langage C est à typage statique contrairement à Python.

    Typage dynamique : langage dont le type des variables et des expressions peut être déterminées à l'exécution.

    Conclusion pour le langage C : c'est un langage faiblement typé statiquement et ces 2 notions ne doivent pas être confondues ce que la prose de certains ici laissent pourtant entendre...

    Voir : https://www.verimag.fr/PEOPLE/Lauren...es_cours_3.pdf en particulier la page 5.

  3. #43
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    Citation Envoyé par Jacti Voir le message
    J'essaie de clarifier ces notions de typage fort/faible et de typage statique/dynamique.

    Typage faible : un langage qui autorise des conversions implicites entre variables de types différents est un langage faiblement typé. A ce titre C est un langage faiblement typé.

    Typage fort : langage qui n'autorise aucune conversion implicite entre variables. ADA est un langage fortement typé car on ne peut même pas affecté un entier à un float sans explicité la conversion. Toute conversion doit être explicitée.

    Typage statique : langage où toute expression possède un type déterminé à la compilation et n'en change pas à l'exécution. Le langage C est à typage statique contrairement à Python.

    Typage dynamique : langage dont le type des variables et des expressions peut être déterminées à l'exécution.

    Conclusion pour le langage C : c'est un langage faiblement typé statiquement et ces 2 notions ne doivent pas être confondues ce que la prose de certains ici laissent pourtant entendre...

    Voir : https://www.verimag.fr/PEOPLE/Lauren...es_cours_3.pdf en particulier la page 5.
    Tu ne clarifies rien du tout.

    Le langage C est à fort typage, et les histoires de conversion n'ont rien à voir. Ce n'est pas parce que le langage est permissif sur les conversions, qu'un langage n'est pas fortement typé. Il est juste permissif, mais fortement typé. Cela oblige le développeur a prendre ses responsabilités lors de la conversion.


    Je pose toujours la question : montre-moi ton code, et je te dirai qui tu es. J'attends de voir ton code pour savoir si tu es crédible. Si tu veux, les glands qui se la pètent avec "j'essaie de clarifier", et qui n'ont aucun code source à présenter, j'y crois pas... Donc montre nous tes sources, après on pourra discuter de tes compétences, et juger si tu racontes des conneries.

    En ce qui me concerne, je fais de l'open source, et les liens sont dans ma description. Je partage mes codes sources, et c'est ouvert à toutes critiques.

  4. #44
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 559
    Points : 15 484
    Points
    15 484
    Par défaut
    Citation Envoyé par Jacti Voir le message
    Je maintiens que le langage C est à faible typage car il autorise les conversions implicites. En langage C on peut affecter un flottant à un entier sans "caster" ou l'inverse. On peut additionner un char et un entier. Le résultat est la somme du code ASCII du char avec l'entier. Si ce n'est pas du faible typage alors c'est quoi ?
    Et je maintiens que comme le terme faible typage n'a pas de définition consensuelle, c'est un débat qui n'a pas de sens. Selon ta définition tu as raison et selon la définition de moldavi, il a raison.

    Si on veut être constructif, il faut arrêter de parler de typage fort/faible. Ce qu'on peut dire sans ambiguïté sur le typage en C :
    • Il est statique
    • Il est moyennement laxiste au niveau conversions implicites.
    • Sa sécurité peut facilement être compromise par des manipulations de pointeurs


    Citation Envoyé par moldavi Voir le message
    C'est sympa vos liens wikipedia. Ils ne racontent que de la merde, mais c'est normal, n'importe quel gland peut participer à l'écriture.

    Je m'attendais à des liens vers des sommités de l'informatique.
    Ces articles sont bien sur discutables (comme expliqué celui en anglais a une meilleure approche). Les deux restent néanmoins mieux sourcés que vos propos, dont le principal élément de justification consiste à traiter de gland tous ceux qui ne partagent pas votre avis. Si vous avez des références de sommités sur le typage fort à partager, je veux bien les lire, mais il ne me semble pas qu'elles s’intéressent beaucoup à ce sujet. Quand je vois des articles de gens sérieux qui parlent de typage, c'est en général pour des choses bien plus précises que la notion de fort/faible.

    Citation Envoyé par moldavi Voir le message
    Je ne vois toujours pas de consensus
    Justement, c'est ce que j'essaie d'expliquer depuis le début : le cœur du problème c'est qu'il n'y a pas de consensus, sur la définition de typage fort. C'est pour ça que un débat là dessus en l'état n'a pas de sens. Si au départ on ne parle pas de la même chose, il n'y a pas la moindre chance de se mettre d'accord.
    Si on veut parler intelligemment de typage mieux vaut utiliser des notions plus claires comme le typage statique, la sécurité des types, le système de conversion, ...

    Citation Envoyé par moldavi Voir le message
    1. La compilation ou l'exécution peuvent détecter des erreurs de typage. Sinon, le langage est dit faiblement typé ;
    2. Les conversions implicites de types sont formellement interdites. Si de telles conversions sont possibles, le langage est faiblement typé.

    Le langage C réponds au 1, mais pas au 2. D'après le 1 le C est fortement typé, mais d'après le 2, c'est l'inverse. Comment écrire un wiki incompréhensible avec en en-tête, il est assez difficile de donner une définition précise du typage fort.
    Justement l'article explique que, comme il n'y a pas de définition consensuelle, il donne en exemple deux des différentes définitions du typage fort. Et en effet comme tu t'en rends compte, elles ne sont pas compatibles entre elles.
    C'est pour ça que Jacti et toi êtes en plein dialogue de sourds. La définition Jacti du typage fort se rapproche de la numéro 2, alors que la tienne se rapproche de la numéro 1. Aucune ne fait consensus dans la littérature et au final on s'en fout pas mal car cette notion est de moins en moins utilisée. Ils est plus intéressant d'utiliser des termes bien définis existant plutôt que de se battre inutilement sur des mots au sens vague.

  5. #45
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    @moldavi grand développeur parce qu'il fait de l'open source et @Uther m'ont convaincu

    Donc, tous les langages sont fortement typés même le C/ C++, mais "tu as Java, Ada par exemple, conversions explicites, pas de pointeurs, ... ils sont fortement typés, mais d'autres comme le C/ C++ il sont fortement types mais ... il sont fortement typés quoi ! Bon, d'toutes façons, c'est des questions à la con ça..."

    On peut aussi parodier le sketch de Coluche avec la lessive qui lave + blanc que blanc "Tu vois il y a des langages fortement typés comme le C et le C++. Mais Java et Ada sont + fortement typés"

  6. #46
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 82
    Points : 178
    Points
    178
    Par défaut
    Citation Envoyé par moldavi Voir le message
    Bonjour.

    C'est sympa vos liens wikipedia. Ils ne racontent que de la merde, mais c'est normal, n'importe quel gland peut participer à l'écriture.

    Je m'attendais à des liens vers des sommités de l'informatique.

    Je ne vois toujours pas de consensus, juste des glands qui écrivent ce qu'ils veulent sur wikipedia, sans aucune référence. C'est un peu léger pour être crédible.
    Voici une référence incontestable : Lucas Cardelli (https://fr.wikipedia.org/wiki/Luca_Cardelli) et son article "Type systems" (http://lucacardelli.name/papers/typesystems.pdf) en anglais. Je te recommande les pages 4 et 5 où il est question du langage C. L'article est en anglais mais ça vaut le coup de le lire en entier (Google traduction peut être ton ami) ou, si tu as un Mac, avec la dernière version de Safari qui inclut un traducteur.

  7. #47
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par Jacti Voir le message
    J'essaie de clarifier ces notions de typage statique/dynamique.
    C'est 1 notion de compilé et d'interpreté.
    @Uther a beau creusé pour nous sortir "statique veut dire 1 type n'est pas modifiable à l'exécution" ce qui est à la fois vrai et faux ... cela ne fait pas avancer le débat mais cela l'enlisse dans des notions trop "abscons"

    Pour le dire de façon 1 peu simpliste, le type n'existe que dans le code source ... comme pleins d'autres choses comme le notion "constant", la notion d'objet, ... (mais tu sembles avoir fait de l'assembleur ou 1 compilateur C, tu le sais )
    Le type sert au compilateur pour :
    • dimensionner la taille des variables. C'est pour cela que les types en C ne sont que des entiers. Même les chaînes de caractères sont des tableaux d'entiers. Les cas struct et union sont 1 peu particulier, mais ce sont des agglomérats
    • mettre en place des règles et des "contrats". Tu ne peux pas faire 1 écart type sur des "élèves" ou capitaliser des nombres. C'est typiquement le problème du JavaScript qui est très très permissif (certains en ont fait des vidéos)
    • en créer de nouveaux

    Il y a d'autres usages du compilateur, notamment en C++ qui "calcule" des expressions ou "génère" du code à ta place.

    Avec 1 langage interprété, tu n'as pas de compilateur, mais 1 "environnement" qui va lire et interpréter en temps réel, donc de façon dynamique. Et lorsque l'environnement est "farceur" comme celui du JavaScript, tu as des surprises

  8. #48
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 559
    Points : 15 484
    Points
    15 484
    Par défaut
    Citation Envoyé par foetus Voir le message
    Donc, tous les langages sont fortement typés même le C/ C++, mais "tu as Java, Ada par exemple, conversions explicites, pas de pointeurs, ... ils sont fortement typés, mais d'autres comme le C/ C++ il sont fortement types mais ... il sont fortement typés quoi ! Bon, d'toutes façons, c'est des questions à la con ça..."
    En effet si on y va sans méthode, c'est le bordel, c'est pour ça que je dis que si on veut aller quelque part, il faut d'abord savoir de quoi on parle. Or là on marche à l'envers : chacun à une bonne idée de quel langage il veut classer dans quelle case et adapte les définitions comme ça l'arrange pour que ça marche pour lui.

    Bien sur que tous les langages ne se valent pas en matière de sécurité offerte par le typage. Je n'ai aucun mal a dire que le typage du Rust et de l'Ada donnent plus de garanties que le Java, qui en donne plus que le C++, qui lui même fait mieux que le C et Python (mais pour des raisons différentes), et que le JavaScript se situe en fond de classement. Mais pour les classer sans nuance dans deux cases "typage faible" et "typage fort", il faut une définition claire de ces cases et personne n'est d'accord là dessus et c'est pas dans ce sujet de discussion qu'on va résoudre ce problème qui ne l'a pas été par bien d'autres plus qualifiés avant nous.

    Citation Envoyé par foetus Voir le message
    C'est 1 notion de compilé et d’interprété.
    Dans la pratique cette définition ne marche pas. Bien qu'on ait plutôt tendance à utiliser des interpréteurs pour les les langages a typage dynamique, ça n'a rien d'une nécessité. Il y a des compilateurs natif pour des langages dynamiques comme le JavaScript et LISP, et il y a des interpréteurs pour des langages à typage statique comme le Java, le C ou même le Rust (pour être précis une forme intermédiaire du Rust, mais c'est bien l'interpréteur qui effectue le contrôle des types).
    Le typage c'est une propriété du langage, pas de son l'implémentation.

  9. #49
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 82
    Points : 178
    Points
    178
    Par défaut
    Citation Envoyé par foetus Voir le message
    C'est 1 notion de compilé et d'interpreté.
    Ne mêlons pas l'implémentation aux concepts surtout qu'il y a des langage semi-compilé comme Java avec le bytecode , LeLisp avec la machine virtuelle LLM3, etc.
    De plus il existe des langages pour lesquels on peut avoir un compilateur et aussi un interpréteur...

  10. #50
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 264
    Points : 7 760
    Points
    7 760
    Billets dans le blog
    3
    Par défaut
    Dans un sujet aussi polémique que "la meilleure méthode de programmation", on aura finalement eu une polémique sur le typage des langages. Bien joué. {^_^}b
    Site perso
    Recommandations pour débattre sainement

    Références récurrentes :
    The Cambridge Handbook of Expertise and Expert Performance
    L’Art d’avoir toujours raison (ou ce qu'il faut éviter pour pas que je vous saute à la gorge {^_^})

  11. #51
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    Citation Envoyé par Matthieu Vergne Voir le message
    Dans un sujet aussi polémique que "la meilleure méthode de programmation", on aura finalement eu une polémique sur le typage des langages. Bien joué. {^_^}b
    C'est normal, car à la base j'ai suggéré du C et de l'assembleur pour leurs côtés formateurs et pragmatiques. Du coup ils ont dévié la conversation en disant que le langage C n'est pas typé, le propre des crétins, pour essayer de décrédibiliser mes propos (ils sont faibles d'esprit). Ils ont oubliés que je suis là depuis 2003, et qu'il y a 20 ans de cela, tout le monde ici nous expliquait, qu'un typage fort c'est un langage avec des char/short/int/long/longlong, présents jusqu'à la compilation.

    Les mecs essaient quand même de prouver qu'un langage comme le javascript, est à typage plus fort que le C, parce qu'l fait super bien les conversions. Enfin on n'en sait trop rien, le wikipédia n'est pas certain non plus...

    A la base, je pensais que l'on allait me demander pourquoi je préconise le C et l'assembleur (je l'ai déjà expliqué sur ce site). Ben en fait je suis tombé sur des crétins pétris de certitude qui me disent que le langage C est à typage faible. Du coup j'ai aussi fait monter la mayonnaise (j'aime bien l'humour).

    Mais si vous voulez parler du côté formateur et pragmatique d'une formation en assembleur et en langage C, je suis présent. Je suis en attente de vos questions, et non pas de vos assertions bouffies de certitudes, avec vos démonstrations à base de wikipédia.

    Citation Envoyé par foetus Voir le message
    @moldavi grand développeur parce qu'il fait de l'open source et @Uther m'ont convaincu

    Donc, tous les langages sont fortement typés même le C/ C++, mais "tu as Java, Ada par exemple, conversions explicites, pas de pointeurs, ... ils sont fortement typés, mais d'autres comme le C/ C++ il sont fortement types mais ... il sont fortement typés quoi ! Bon, d'toutes façons, c'est des questions à la con ça..."

    On peut aussi parodier le sketch de Coluche avec la lessive qui lave + blanc que blanc "Tu vois il y a des langages fortement typés comme le C et le C++. Mais Java et Ada sont + fortement typés"
    Grande intervention de ta part. Et malgré ta citation de Coluche, c'est évident qu'il a fait plus rire que toi.

    Si tu veux dans un monde de vrais scientifiques, il faut partager ses sources, pour faire avancer la science. Donc oui je partage mes codes sources, qui peut-être ne serviront à rien, mais je partage. Tu peux voir mes codes et me juger.

    Je vous demande juste de partager vos codes, parce que comme quelqu'un l'a déjà dit : montre-moi ton code, et je te dirai qui tu es. Je veux juste vérifier que je parle à des gens crédibles, de mon point de vue. Et mon point de vue sera votre code.

    Après si tu veux faire croire que tu es un mega développeur sans n'avoir jamais partagé un seul code source.... Peut-être que les crétins te croiront, moi pas. J'attends de voir ton code.


    Citation Envoyé par Jacti Voir le message
    Voici une référence incontestable : Lucas Cardelli (https://fr.wikipedia.org/wiki/Luca_Cardelli) et son article "Type systems" (http://lucacardelli.name/papers/typesystems.pdf) en anglais. Je te recommande les pages 4 et 5 où il est question du langage C. L'article est en anglais mais ça vaut le coup de le lire en entier (Google traduction peut être ton ami) ou, si tu as un Mac, avec la dernière version de Safari qui inclut un traducteur.
    Enfin, une source d'une sommité informatique (que je ne connais pas...). Peut-être une autre plus connue ? Voir des centaines d'autres pour former un consensus.

    Sinon si tu peux faire un résumé/vulgarisation de son bouquin (page 4 et 5). Fais au moins l'effort de résumer les passages intéressants, ou de donner ton avis objectif sur le contenu ce livre. Cela donnera peut-être plus envie de le lire.

  12. #52
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 559
    Points : 15 484
    Points
    15 484
    Par défaut
    Que de modestie et de respect des autres, ça fait plaisir !

    Citation Envoyé par moldavi Voir le message
    C'est normal, car à la base j'ai suggéré du C et de l'assembleur pour leurs côtés formateurs et pragmatiques. Du coup ils ont dévié la conversation en disant que le langage C n'est pas typé, le propre des crétins, pour essayer de décrédibiliser mes propos (ils sont faibles d'esprit).
    Tu es au minimum aussi coupable que les autres d'avoir dévié le sujet, on t'as répondu sur beaucoup de points, tu as choisi de ne répondre que sur l'utilisation du terme typage faible.

    Citation Envoyé par moldavi Voir le message
    Ils ont oubliés que je suis là depuis 2003, et qu'il y a 20 ans de cela, tout le monde ici nous expliquait, qu'un typage fort c'est un langage avec des char/short/int/long/longlong, présents jusqu'à la compilation.
    On t'as donné quelques références qui valent ce qu'elles valent, mais c'est quand même bien mieux que : "les gens sur un forum, il y a 20 ans". Puisse que tu nous le réclames avec tant d'insistance, j'aurais aimé de ta part que tu puisses aussi nous fournir des références de personnes connues et suffisamment nombreuses pour prouver qu'il y a consensus sur ta définition du typage fort.
    Sinon on peut aussi se mettre d'accord sur le fait qu'il n'y a pas de consensus et laisser tomber tomber ce sujet sans interet.

    Citation Envoyé par moldavi Voir le message
    Les mecs essaient quand même de prouver qu'un langage comme le javascript, est à typage plus fort que le C, parce qu'l fait super bien les conversions. Enfin on n'en sait trop rien, le wikipédia n'est pas certain non plus...
    C'est un très vilain sophisme de l'homme de paille que tu nous fais là. Quand on accuse les autres d'essayer de décrédibiliser ses propos, la moindre des choses est de ne pas faire de même.
    Personne ici n'a prétendu que JavaScript était fortement typé. S'il y a bien un langage qui met tout le monde d'accord sur la légèreté de son typage, c'est le JavaScript qui coche toutes les cases des diverses définitions, aussi bien au niveau du typage dynamique que des conversions implicites hasardeuses.

    Citation Envoyé par moldavi Voir le message
    A la base, je pensais que l'on allait me demander pourquoi je préconise le C et l'assembleur (je l'ai déjà expliqué sur ce site). Ben en fait je suis tombé sur des crétins pétris de certitude qui me disent que le langage C est à typage faible. Du coup j'ai aussi fait monter la mayonnaise (j'aime bien l'humour).
    Écoute, on ne peut pas parler à ta place. Si tu as des choses intéressantes à dire, dit les. Parce que le peu que tu as dit à propos de tes préconisations, avant de partir en hors sujet, était peu convaincant. Je t'ai expliqué pourquoi :
    • Pour le C, tu évoques juste vite fait la rigueur, le C reste quand même plutôt lacunaire sur ce point. Je dirais même que parmi les langages à typage statique, c'est celui qui contrôle le moins la rigueur. Si tu veux vraiment apprendre la rigueur, Rust et Ada sont vraiment adaptés.
    • Pour le C++ tu évoques le fait qu'il est objet, certes, mais parmi les langages objets, c'est un des plus complexe. Pour apprendre l'objet à un pur débutant, il y en a des beaucoup plus simples.
    • Pour l'Assembleur, c'est certes un langage intéressant pour bien comprendre le bas niveau. Mais comme le sujet c'est un langage pour découvrir la programmation depuis le niveau zéro de connaissance, c'est vraiment trop éloigné de ce qu'attend un débutant. L'assembleur est plutôt utile quand on a déjà un minimum de maitrise de l’algorithmie et que l'on veux approfondir en apprenant le bas niveau

    Malheureusement, tu n'as répondu à rien de tout ça pour te concentrer délibérément sur un point de forme plutôt que sur le fond. Si tu veux expliciter ta pensée et faire avancer le débat sur le fond, alors va y ! On attend que ça ! Parce que pour le moment tout ce qui se dégage de ton propos, c'est ton ego surdimensionné de super-développeur chevronné(alors que le sujet c'est les débutants qui découvrent la programmation) et ton mépris des glands™ qui n'ont pas ton avis.

  13. #53
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    A la limite je peux comprendre pourquoi en préconise le C !
    Même si pour ma part je ne le conseille pas au débutant ,depuis que je suis sur ce site (et ailleurs), je remarque que la plupart des débutants se mange des UB/segfault à répétition.
    Ce qui les éloigne à mon sens du but de la programmation : l'algorithmie et architecturer son code.

    Parce que oui la bonne façon de programmer en C ,c'est pas de demander aux gens de debugger leur code sur le net , mais d'utiliser valgrind , d'utiliser des méthodes de programmation assez propre au C ( par exemple limité les double /triple pointeur par exemple , si je le précise ,c'est que les débutant ont tendance à en foutre partout ce qui complexifie plus le code et plus sujette à des erreurs de pointeur).
    Et vraiment enseigner Valgrind pour un débutant c'est costaud , on a vu mieux comme introduction en C ,et pourtant ça me semble indispensable parce que forcément il se prendra un segfault quelque part.
    Bref au final un débutant passe souvent plus son temps à se soucier des problématique propre au C que a coder...


    Pour l'assembleur c'est un choix assez étrange de le conseiller, surtout que j'ai envie de dire quel assembleur ?
    Meme si pour moi l'assembleur n'est pas très "formateur" , parce que outre les même problématique qu'on peut avoir du C (dans le sens ou il va se soucier de choses pas forcément très pertinente).

    Le choix est assez compliqué pour le pratiquer, tu veux faire de l'assembleur sur PC ?
    Ok pas de soucis , mange toi les call convention , avant même qu'il débute , on va lui expliquer comment les compilateur fonctionne .. youpi...
    (Parce que oui sur Windows, si tu veux afficher un truc , t'es obligé de passé par des lib écrite en C...)
    En plus on devrait du coup enseigner le x86 , qui est quand même une architecture et un assembleur compliqué , et qui à mon sens n'est pas "pédagogique".
    Le x86 donne quand même de mauvaise connaissance , sur ce que devrait être un ISA. (ce que je trouve dommage).

    De plus le x86 donne une fausse croyance sur comment fonctionne le CPU (en tout cas moderne), dans le sens ou le code écrit sur du x86 et ce qui est réellement exécuter, y'a un petit monde , et justement il donne une mauvaise approche d'apprendre le "bas niveau" , parce que le x86 fait croire qu'on peut coder comme en 1980 , alors que le CPU ne l'est plus du tout architecturalement...

  14. #54
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2015
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 445
    Points : 1 953
    Points
    1 953
    Par défaut
    Bon, les djeunes, il faut vous calmer ! Vivant dans le milieu depuis le début des années 1980, j'ai assisté à la dérive des langages vers le scripting.
    En résumé : COBOL était un langage sans type, dans le sens où on accède à des segments de mémoire selon l'usage qu'on en a sur le moment.
    L'archétype général du langage fortement typé est Pascal, qui exige de connaître précisément la nature des données qu'on va traiter. Un char pourrait être un int, comme en C, mais Pascal ne vous laissera pas convertir naturellement l'un en l'autre. De manière analogue, un réel reste un réel, un entier un entier, et vous ne pouvez pas affecter un réel à un entier sans conversion explicite. Enfin, vous pouvez définir vos propres types, soit structurés, soit énumérés.
    COBOL, C, Fortran étaient en principe des langages compilés. Pascal l'était aussi, sauf dans le cas du Pascal UCSD, qui a été à ma connaissance la première machine à code intermédiaire (p-code).
    A l'époque, le seul langage interprété était BASIC, qui dans ses formes primitives n'a jamais à mes yeux présenté un intérêt évident pour les vrais projets. Mais il permettait de comprendre les bases du processus de la programmation, sans trop se soucier de la plomberie interne.
    Java est arrivé en libérateur, comme tueur de COBOL. Tout le monde s'est précipité dessus. Bon. Pour moi, il est aussi verbeux, touffu et confus que ce qu'il prétendait remplacer, avec des performances moindres.
    Ensuite, ce fut l'explosion, avec comme argument que la solution d'un problème quel qu'il soit pouvait être ramené à deux lignes de code si on savait s'y prendre, que la machine allait s'occuper du reste... À voir. Jusqu'ici, le seul fait que C++ et C persistent à être très utilisés dans le monde réel tend à mes yeux à invalider cette croyance.
    J'ai un regret : Le tandem fpc + Lazarus devrait bénéficier de beaucoup plus d'attention de la part des gens sérieux. Il permet la création d'applications complètes, performantes (quasiment au niveau du C), écrites lisiblement et portables sur à peu près n'importe quoi. La création d'interfaces utilisateurs reprend l'approche Delphi, elle est simple, intuitive et efficace. Free Pascal offre les accès bas niveau et les pointeurs (mais pas l'arithmétique ?) du C. C'est un Pascal avec des classes, sur le mode de C++, modulaire et puissant. Je ne comprends pas qu'il soit si méconnu. Sans doute un effet pervers de la mode ? Et enfin, il reste un langage fortement typé, qui oblige à un minimum d'analyse avant de commencer à écrire. Est-ce mal ?

    A l'autre extrême se trouve Python, permettant de manipuler très facilement des ensembles complexes de données au type fluctuant. Il le fait bien, mais au coût de l'efficacité.

  15. #55
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 82
    Points : 178
    Points
    178
    Par défaut
    Citation Envoyé par moldavi Voir le message

    Enfin, une source d'une sommité informatique (que je ne connais pas...). Peut-être une autre plus connue ? Voir des centaines d'autres pour former un consensus.

    Sinon si tu peux faire un résumé/vulgarisation de son bouquin (page 4 et 5). Fais au moins l'effort de résumer les passages intéressants, ou de donner ton avis objectif sur le contenu ce livre. Cela donnera peut-être plus envie de le lire.
    On ne peut pas citer une source plus connue que Luca Cardelli sur le typage. C'est vraiment LA sommité sur le sujet. Il n'y a pas plus top. As-tu vraiment lu sa biographie ? (si tu n'aime pas wikipedia, ce que je comprends, tu peux en voir une ici : https://www.ae-info.org/attach/User/...i%20-%20CV.pdf. C'est en anglais mais désolé, je travail principalement en anglais et pour la veille techno c'est bien mieux qu'en français).
    Ce que j'ai cité est l'un de ses très nombreux articles. Ce n'est pas un bouquin.
    Mon avis objectif c'est que c'est le meilleur article que j'ai lu sur les systèmes de types et pour cause (voir ci-dessus).
    On ne résume pas de tels articles car ça serait comme vouloir résumer une pièce de Racine ou Molière.
    Sinon d'autres références il y en a 34 à la fin de l'article de Cardelli, ça devrait largement te suffire bien que tout soit en anglais mais les traducteurs sont là pour t'aider.

    Enfin voici un exemple qui montre que le langage C n'est pas fortement typé :

    Un exemple de problème de typage en C est la comparaison d'un entier de type "unsi-
    gned int" (un type qui ne peut contenir que des entiers positifs) et "int" (ou "signed int"),
    qui peut représenter des nombres négatifs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    const unsigned int i = 23;
    const int j = -5;
    int main(void)
    {
    if ( i < j )
    printf("i < j\n");
    else
    printf("i > j\n");
    return 0;
    }
    à la compilation (avec les warning activés) un message équivalent à celui-ci apparaît :
    • test.c: In function 'main':
    • test.c:8: warning: comparison between signed and unsigned
    Le compilateur a repéré l'erreur de type, mais il compile le programme quand même. A
    l'exécution, le programme affichera que i est plus petit que j !

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/01/2009, 22h47
  2. Réponses: 2
    Dernier message: 10/07/2008, 12h29
  3. [HTML] quelle est la meilleure méthode pour changer la langue d'un site?
    Par poupouille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/02/2008, 12h17
  4. Réponses: 3
    Dernier message: 09/11/2007, 15h38
  5. Réponses: 20
    Dernier message: 27/06/2006, 17h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo