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

Emploi Discussion :

Emploi informatique 2021 : les langages les plus demandés et les mieux payés


Sujet :

Emploi

  1. #1
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 335
    Points : 130 271
    Points
    130 271
    Billets dans le blog
    1
    Par défaut Emploi informatique 2021 : les langages les plus demandés et les mieux payés
    Emploi informatique 2021 : les langages les plus demandés et les mieux payés
    Java, JavaScript et Python sont les plus populaires, mais Rust, C++ et Go sont les mieux rénumérés

    Après une année 2020 chaotique sous fond de pandémie, l'année 2021 a été une année de reprise générale. Le télétravail a été moins imposé que pour l'année précédente, mais est entré dans les mœurs et devient du coup davantage un choix.

    En quoi ces changements économiques et de méthodes de travail ont pu affecter les technologies sur lesquelles les développeurs travaillent ? Est-ce que les technologies qui payaient hier, payent toujours autant aujourd'hui ?

    C'est ce que je vous propose de découvrir grâce à cette étude basée sur les offres d'emplois postées en 2021 sur le portail Emploi de Developpez.com, spécialisé dans les offres d'emploi destinées aux développeurs et professionnels de l'informatique. Cette étude fait suite à cinq autres études réalisées les années précédentes. Celle-ci se situe en 2021, et donc concerne en particulier une reprise après une année pleine d'incertitudes, mais aussi une banalisation du télétravail.

    Méthodologie : nous avons pris l'ensemble des offres d'emploi postées sur le Portail Emploi et comptabilisé les annonces demandant chaque technologie. Dans le cas où une annonce demande plusieurs technologies (cas extrêmement courant), elle est donc décomptée pour chaque technologie étudiée, ce qui permet donc de dégager la demande globale pour chaque technologie, du moment qu'elle fait partie d'au moins une des compétences requises pour un poste. Notez également que la manière de déterminer les offres en fonction des technologies a évolué ce qui peut expliquer des petites différences sur les chiffres des années passées.

    Voici pour commencer la popularité des différents langages dans les 20 000 offres d'emploi postées en 2021 sur Developpez.com :


    Ainsi que l'évolution de la popularité des différents langages de 2013 à 2021 des langages les plus populaires :


    Java est toujours le leader incontesté des langages. Si en 2014, sa place a failli être remise en question, les choses se sont arrangées et l'écart a plutôt tendance à se creuser. Sa demande est en baisse cette année, mais l'écart très significatif avec le deuxième langage au podium, JavaScript, ne donne aucune raison de douter de sa position de leader dans les prochaines années.

    JavaScript est à la deuxième place du podium, place qu'il occupe depuis l'année 2015, mais sa position est désormais très fortement menacée par Python, actuel troisième, actuelle coqueluche du monde de l'enseignement et de plus en plus utilisé professionnellement, est en progression continue depuis 2013, et qui pourrait bien ravir à JavaScript la deuxième place dès 2022.

    PHP occupe actuellement la quatrième place du classement. La popularité de ce langage dans les offres d'emploi, qui était pourtant deuxième en 2013, n'a cessé de s'effondrer, mais actuellement il est en progression et a pu ainsi repasser devant C#, qui occupe l'actuelle cinquième place, et qui est globalement en baisse depuis 2013, malgré une remontée de 2018 à 2020.

    La sixième place a été arrachée de justesse par C, qui a doublé C++ en 2021. La popularité de ces deux langages est cependant relativement stable sur toute la période étudiée. Enfin, TypeScript, le nouveau langage Web de Microsoft, accuse une légère baisse mais c'est malgré tout solidement implanté à la septième place place pour un langage encore inconnu en 2016.

    Dans un deuxième graphique, pour une meilleure lisibilité, voici des langages moins populaires et leur progression :


    Ce qui est frappant dans l'évolution de ces technologies moins populaires, c'est leur extrême variabilité au fur et à mesure des années.

    Les technologies qui progressent cette année sont Go, Kotlin et Windev. Kotlin en particulier, le langage créé par JetBrains, a vu son utilisation bondir à partir de 2020. Le fait que Google ait déclaré Kotlin comme langage officiel pour le développement Android n'y est probablement pas pour rien.

    Les autres technologies de cette catégorie sont en baisses. Ce qui est notamment remarquable est la baisse de la demande en Cobol, après un bon significatif en 2020. Quant à Perl, le langage est de moins en moins populaire, mais ce n'est clairement pas une technologie morte.

    Enfin, dans ce dernier graphique, voici les langages de "niche" et leur progression :


    Ce qui frappe déjà, c'est un tassement vers le bas de ces technologies au fur et à mesure des années, peut-être une preuve que la multiplication des technologies dans un système informatique commence à être vu comme n'étant pas nécessairement un avantage.

    Rust est la technologie qui monte. Ses qualités commencent à être de plus en plus reconnues et cela commence à se voir au niveau des offres d'emploi. Objective-C en revanche, après un pic relatif en 2015, est une technologie en pente raide descendante, ce qui n'est pas une grande surprise suite à l'arrivée du langage Swift, nouveau langage de choix pour développer sous Apple, bien plus populaire. VB.NET n'est clairement pas en forme, et en pente raide descendante, n'ayant jamais vraiment décollé alors que C# a toujours eu les faveurs comme premier langage de la plate-forme .NET, mais il est toujours usité et demandé malgré tout, contrairement à Flash, mort dans les fait au niveau des offres d'emploi depuis 2017, bien avant la mort officielle du plugin.


    Tout cela est bien intéressant, mais combien ça rapporte ?

    Hé oui, savoir que telle ou telle technologie est beaucoup demandée est une chose, mais les salaires proposés suivent-ils la demande ? On dit souvent que "ce qui est rare est cher", est-ce que cela se vérifie aujourd'hui ?

    Méthodologie : pour le calcul des salaires, nous avons pris la moyenne de la fourchette de salaires des offres d'emploi postées sur le Portail Emploi ; les valeurs clairement trop éloignées de la moyenne sont ignorées dans le calcul. Il s'agit donc bien de propositions de salaires, et non pas de salaires réels actuellement versés à des personnes, dont l'expérience et l'ancienneté peuvent être très diverses. Si le nombre d'offres dans une technologie donnée est trop faible, cette dernière ne sera pas présentée au niveau de la comparaison des salaires pour éviter d'avoir une moyenne faussée. Les salaires dans cette étude sont exprimés en euros bruts mensuels.

    Paris est considérée comme l'une des villes les plus chères du monde, et en conséquence les salaires ne sont pas du même ordre qu'en province. Mais d'un autre côté, beaucoup de grosses entreprises technologies ont leur siège dans la capitale française. En raison de ces deux facteurs, l'étude des salaires distingue Paris du reste de la province, vu que la demande en technologie et les salaires proposés sont très différents.

    Pour commencer, voici les salaires moyens par technologie en Région Parisienne.


    « Très bien payés »
    ~ 5 000 euros
    « Bien payés »
    ~ 4 250 euros
    « Assez bien payés »
    ~ 4 000 euros
    « Correctement payés »
    ~ 3 750 euros
    « Mal payés »
    ~ 3 250 euros
    Rust
    Go, Ruby, Swift
    R, Scala, C++
    Kotlin, Python, C, PHP,
    JavaScript, Java, Perl
    C#, VBA, D,
    Windev, TypeScript

    Cette année, Rust décroche la couronne d'or du salaire moyen proposé le plus élevé en région parisienne. Si vous êtes rouillés dans cette technologie, c'est peut-être le moment de s'y remettre, car actuellement cela vaut de l'or et tout le monde sait que cela ne peut pas rouiller.

    Go, Ruby et Swift sont significativement en-dessous, mais malgré tout, ces technologies devraient vous assurer un train de vie comfortable. D'ailleurs, mêmes les technologies "mal payées" ont tout de même un salaire moyen proposé de 3 250 euros tout de même.

    C'est, semble-t-il, une bonne nouvelle ; peut-être que les employeurs considèrent moins les développeurs comme des « pisseurs de code », mais plus comme du personel qualifié bien payé pour produire du code de qualité.

    Et en province ?


    « Très bien payés »
    ~ 3 750 euros
    « Bien payés »
    ~ 3 500 euros
    « Assez bien payés »
    ~ 3 250 euros
    « Correctement payés »
    ~ 3 000 euros
    « Mal payés »
    ~ 2 750 euros
    Go, C++
    TypeScript, C, Ruby, Kotlin,
    R, Java, Scala, Swift, Python
    C#, JavaScript, Matlab, Dart,
    Cobol, Objective-C, D
    Abap, PHP, VB.NET, Perl
    Delphi, Windev, VBA

    Cette année, c'est Go qui monte sur la première marche podium. La surprise vient de la seconde place, remportée largement par le C++. Au niveau des lanternes rouges, on retrouve malheureusement une constance au fur et à mesure des années avec Delphi et VBA en particulier. Enfin ce n'est pas si mal payé tout de même.

    Conclusion

    Au fil de cette étude, quelques langages se sont distingués.

    Java est depuis toujours le numéro 1 des langages demandés dans les offres d'emploi. Sa domination n'est pas prête de s'éteindre. Les salaires proposés sont tout à fait corrects, particulièrement en province.

    JavaScript, la star incontournable du développement Web et numéro 2 des langages demandés dans les offres d'emploi depuis 2015n voit sa popularité s'essoufler. Les salaires proposés sont légèrement inférieurs à ceux de Java, honnêtes mais pas nécessairement la voie de la richesse.

    Python est un langage de plus en plus à la mode. Après s'être imposé dans l'enseignement en lieu et place du Pascal, son utilisation professionnelle ne cesse de grandir sans discontinuer, au point de flirter avec la deuxième place au détriment de JavaScript, quelque chose qui aurait été impensable il y a quelques années. En tout cas, les salaires proposés pour Python sont supérieurs à ceux pour JavaScript.

    PHP n'est plus un langage à la mode, et souvent décrié, voire méprisé par une certaine partie des développeurs, mais malgré tout, cette étude prouve qu'il reste incontournable et n'est absolument pas en voie d'extinction, bien au contraire. Les salaires proposés en revanche n'ont rien d'exceptionel, hélas.

    Kotlin, le langage de JetBrains, inconnu encore en 2015, a fait une montée fulgurante. S'il ne domine pas encore les langages majeurs, il se montre comme une alternative très solide à Java avec lequel il est compatible. Au niveau des salaires, Kotlin est, logiquement, mieux rénuméré que Java. Si on tient compte que l'importance de Java, il semble que Kotlin pourrait très bien être le nouvel eldorado.

    C# est clairement le langage favori de la plate-forme .NET, VB.NET n'arrivant pas à sa cheville. Globalement dans le temps, sa demande dans les offres d'emploi est stable, et reste tout de même à une très solide cinquième place. Au niveau salaire, la province semble être plus généreuse que la capitale. Mais vous ne gagnez pas autant qu'avec les nouveaux langages à la mode.

    Rust, le nouveau langage système créé par Mozilla, n'est pas encore très répandu, mais malgré sa spécialisation en tant que langage système, il semble promis à un brillant avenir dans sa branche, et cela se ressent dans les salaires proposés à l'embauche !

    Voir la précédente étude sur les langages (année 2020)

    Et vous ?

    Que pensez-vous de Kotlin et de Rust ?
    Pourquoi, selon vous, la demande en JavaScript semble être en berne ?
    Comment peut-on interpréter la dynamique plutôt moribonde de C#, vaisseau amiral de Microsoft ?
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  2. #2
    Membre émérite

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2006
    Messages : 666
    Points : 2 817
    Points
    2 817
    Billets dans le blog
    1
    Par défaut
    Personnellement, je suis content de la place de PHP, un langage trop souvent méprisé par les javaistes qui y voient un jouet, alors que c'est un langage qui a mûri et qui est réellement professionnel. On peut même s'en servir dans un autre cadre que la programmation Web; personnellement, j'adore faire des scripts systèmes avec, surtout quand un accès base de données est requis.

    En revanche cette montée de Python me donne réellement envie de m'intéresser à ce langage. Il doit y avoir des raisons pour sa montée en puissance dans tous les domaines.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Points : 391
    Points
    391
    Par défaut
    Citation Envoyé par Chuck_Norris Voir le message
    En revanche cette montée de Python me donne réellement envie de m'intéresser à ce langage. Il doit y avoir des raisons pour sa montée en puissance dans tous les domaines.
    Je pense que la monter en puissance d'ansible pour l'automatisation de l'installation d'environnements n'y est pas pour rien.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 793
    Points : 18 951
    Points
    18 951
    Par défaut
    Citation Envoyé par Chuck_Norris Voir le message
    En revanche cette montée de Python me donne réellement envie de m'intéresser à ce langage. Il doit y avoir des raisons pour sa montée en puissance dans tous les domaines.
    C'est connu :
    - Python est utilisé en éducation, et c'est en croissance.
    - Python est utilisé en Data science et en IA, et c'est en croissance, parce que c'est simple, et il y a toutes les API utiles.
    - Python est en train de remplacer Fortran chez les scientifiques et les ingénieurs non développeurs , parce que c'est simple, et il y a toutes les API utiles.

    Donc du coup il y a pas énormément d'offres pour les pur développeurs pour Python, par contre c'est très utilisé, car utilisé massivement par des non développeurs, et il y a beaucoup d'offres IA ou Data science ou scientifique ou autres avec Python.
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 272
    Points : 4 091
    Points
    4 091
    Par défaut
    Citation Envoyé par Chuck_Norris Voir le message
    En revanche cette montée de Python me donne réellement envie de m'intéresser à ce langage. Il doit y avoir des raisons pour sa montée en puissance dans tous les domaines.
    On peut faire un peu de tout en Python :
    - du web (Flask, Django, FastAPI, ...)
    - du scripting
    - traiter de la donnée facilement
    - de l'IA

    De plus ça peut être très rapide car il y a des librairies Python qui ne sont que des bindings vers des librairies natives

    Que pensez-vous de Kotlin et de Rust ?
    Pour Kotlin, je n'ai jamais essayé mais j'ai lu qu'il a été créé par des industriel et pas des universitaires donc qu'il allège le traitement de certaines données (les null par exemple)
    Pour Rust, je crois que sa croissance va continuer. En dehors de son apprentissage un peu ardu et du manque de librairies, je trouve qu'il a un excellent environnement :
    - les tests peuvent être écrit dans le même fichier que l'application
    - cargo qui permet de configurer un projet finement (dépendances, binaires, ...)
    - clippy qui vérifie les bonnes pratiques du langage

  6. #6
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Chuck_Norris Voir le message
    Personnellement, je suis content de la place de PHP, un langage trop souvent méprisé par les javaistes qui y voient un jouet, alors que c'est un langage qui a mûri et qui est réellement professionnel. On peut même s'en servir dans un autre cadre que la programmation Web; personnellement, j'adore faire des scripts systèmes avec, surtout quand un accès base de données est requis.

    En revanche cette montée de Python me donne réellement envie de m'intéresser à ce langage. Il doit y avoir des raisons pour sa montée en puissance dans tous les domaines.
    C'est surtout parce les professeurs dans les universités sont trop paresseux pour apprendre Ruby. Car dans le domaine de l'enseignement, Un langage qui permet l'apprentissage de la programmation procédurale, orientée-object et fonctionnelle en un seul langage, cela ne coure pas les rue. C'est sans compter qu'il n'existe aucune langage qui permet aussi facilement la maitrîse de la programmation orienté object. Je connais des gens qui ne ce sont jamais remis de leur expérience en C++. Ruby devrait de facto être le langage de l'enseignement de la programmation.

    Comment peut-on interpréter la dynamique plutôt moribonde de C#, vaisseau amiral de Microsoft ?
    Vu que la plupart des engins graphiques pour les jeux vidéo sont en C#. Cela ne doit pas être si moribond.

  7. #7
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 476
    Points : 11 051
    Points
    11 051
    Par défaut
    Citation Envoyé par smarties Voir le message
    Pour Rust, je crois que sa croissance va continuer. En dehors de son apprentissage un peu ardu et du manque de librairies, je trouve qu'il a un excellent environnement :
    (.../...)
    Je me permets amicalement (voir ci-dessous) ; tu n'es pas historiquement le seul loin de là, à commencer par moi :

    Le mot « librairie » est souvent utilisé à tort pour désigner une bibliothèque logicielle. Il s'agit d'un anglicisme fautif dû à un faux-ami (library).


    Source : Bibliothèque logicielle - Wikipedia
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

  8. #8
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Escapetiger Voir le message
    Tu viens de m'apprendre quelque chose de nouveau. Wikipédia comme outil de traduction de terme technique. Quand on le réalise, c'est comme l'oeuf de Colomb.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2016
    Messages : 34
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Escapetiger Voir le message
    Je me permets amicalement (voir ci-dessous) ; tu n'es pas historiquement le seul loin de là, à commencer par moi :

    Le mot « librairie » est souvent utilisé à tort pour désigner une bibliothèque logicielle. Il s'agit d'un anglicisme fautif dû à un faux-ami (library).


    Source : Bibliothèque logicielle - Wikipedia
    Je reprends aussi les gens là dessus souvent la dessus au boulot.

    Mais celui qui m'exaspère le plus c'est "cryptage" ou plus grave encore "chiffrage", et même des fois "encryptage" au lieu de "chiffrement"


    Citation Envoyé par Chuck_Norris Voir le message
    [...]

    En revanche cette montée de Python me donne réellement envie de m'intéresser à ce langage. Il doit y avoir des raisons pour sa montée en puissance dans tous les domaines.
    Je ne suis pas dev mais utilise presque exclusivement python (& bash & C). Et dans mon milieu (cyber) c'est largement répandu. Une force de python de mon point de vu c'est qu'en quelques minutes tu obtiens quelques chose de fonctionnel, notamment avec les bibliothèques natives réseau qui sont franchement triviales à utiliser. Quick & Dirty FTW

  10. #10
    Membre émérite

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2006
    Messages : 666
    Points : 2 817
    Points
    2 817
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Madmac Voir le message
    C'est surtout parce les professeurs dans les universités sont trop paresseux pour apprendre Ruby. Car dans le domaine de l'enseignement, Un langage qui permet l'apprentissage de la programmation procédurale, orientée-object et fonctionnelle en un seul langage, cela ne coure pas les rue. C'est sans compter qu'il n'existe aucune langage qui permet aussi facilement la maitrîse de la programmation orienté object. Je connais des gens qui ne ce sont jamais remis de leur expérience en C++. Ruby devrait de facto être le langage de l'enseignement de la programmation.
    Ruby ? Mort de rire. C'est has been. Cela a été populaire grâce à Rails, mais quand les gens se sont rendus compte à quel point c'était lourd et rigide de faire tourner un tel bouzin, ils sont vite revenus à des environnements professionnels comme Java, ou qui ont fait leurs preuves comme PHP.

    Ensuite, traiter les enseignants de paresseux à propos de leurs vacances je veux bien le croire mais pour le choix de Python ? Avant Python, ils enseignaient le Pascal, qui est un langage très verbeux. Également le Lisp, appelé ainsi parce que c'est une Liste Interminable de Stupides Parenthèses. Malgré ce qu'on peut en dire, Lisp est un langage qui ouvre vraiment l'esprit, et ça vous change un homme. Vous voyez la programmation différemment, même en revenant aux langages classiques.

    Citation Envoyé par Madmac Voir le message
    Vu que la plupart des engins graphiques pour les jeux vidéo sont en C#. Cela ne doit pas être si moribond.
    Mouais. Pour de la vraie perf, rien ne vaut le C++, plutôt que de se traîner un framework et du code managé pour un "engin" graphique (moi , j'aurais dit "moteur" ).

    Citation Envoyé par Falquiero Voir le message
    Mais celui qui m'exaspère le plus c'est "cryptage" ou plus grave encore "chiffrage", et même des fois "encryptage" au lieu de "chiffrement"
    +1.

    Le pire je pense, c'est ceux qui disent "développer en Basic" ou "programmer en Basic" alors que le terme correct est "bidouiller en Basic".

  11. #11
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Chuck_Norris Voir le message
    Ruby ? Mort de rire. C'est has been. Cela a été populaire grâce à Rails, mais quand les gens se sont rendus compte à quel point c'était lourd et rigide de faire tourner un tel bouzin, ils sont vite revenus à des environnements professionnels comme Java, ou qui ont fait leurs preuves comme PHP.
    Has been, peut-être en Europe. Mais pas dans le reste du monde. PHP une merde intégrale. À l'exception du web, il est inutilisable (En terme d'investissement de temps, PHP est le moins rentable. Javascript est bien meilleur investissement en temps). PHP : serveur. Javascript: serveur, client, application. Conclusion PHP est une perte de temps.

    Et la configuration de base de donnée est une plaie. Il est possible de faire aussi simple que le PHP en Ruby avec Sinatra. Et quand je compare Java à C#, j'ai envie de pleurer. Un simple "Hello world" double la taille du programme par deux. Je suis comme ces anciens soldats qui ont des traumatisme après avoir été au front: J'ai physiquement des vertiges simplement en regardant un code en Java.

    Rails est rigide par nature, car c'est qui permet au programmeur de ce concentrer sur sa tâche sans avoir à ce soucier de la base de données. Les solutions plus souples deviennent leur propre ennemi, lorsque l'on désire faire des sites qui ne fonctionnent pas en anglais. Oui, Rails demande plus d'effort, mais je peux faire un site en Japonais ou en arabe , sans changer quoi que ce soit à l'exception des dialogues. Alors qu'en PHP ..

    Convention plutôt que Configuration
    En général, ce problème de rigidité n'existe que pour les gens ont coupé les coins ronds. L'apprentissage de Sinatra leur aurait sauvé beaucoup de maux de tête. Ecrire une fonction pour gérer les cas d'exception est plus simple que de le faire en utilisant Rails. Faire des requêtes directement avec Active record est facile. Malheureusement, beaucoup de programmeurs ne connaissent rien à Sinatra. Rails n'est rien d'autre qu'un générateur REST à partir de la description des champs de votre base de donnée, par dessus Sinatra. il écrit pour vous mécaniquement toute les fonctions pour ces opérations suivante (
    - GET pour récupérer une ressource ;
    - PUT pour modifier l'état ou mettre à jour une ressource, qui peut être un objet, un fichier ou un bloc ;
    - POST pour créer cette ressource ; et
    - DELETE pour le supprimer.
    ), pour chacun des champs. Ce que ne fait pas Sinatra pour vous.

    Et il gère le casse-tête d'une modifications des champs d'une base de données existante. Et sur plusieurs types de base de données. Alors forcément cela impose des contraintes. Mais tenté de faire la même chose directement en PHP. Si tu es un professionel, tu devras apprendre un des clone de Rails (CakePHP ou Symphony). Avec la fabrication de l'application, il y a la maintenance et l'installation. Et les solution légères ne procurent aucun support pour ces aspects.

    On peut se lancer dans la fabrication de site en considérant les base de données comme des tableaux. Cela fonctionne un temps. Mais seulement une petite période. Mais à moment donnée, on doit transpirer et apprendre à les requête SQL. Et apprendre à les intégré à Rails.

    Ce qui ne sert pas Rails est que les concepteurs ont utilisé massivement la méta-programmation. Et comme Ruby a des capacités exceptionnelles de méta-programmation. Pour la majorité des programmeurs, le code de cela semblent n'avoir aucune sens. Un programme qui est modifié pendant son fonctionnement, c'est un truc difficile à concevoir quand on arrive d'un autre langage que Ruby.

    Citation Envoyé par Chuck_Norris Voir le message
    Ensuite, traiter les enseignants de paresseux à propos de leurs vacances je veux bien le croire mais pour le choix de Python ? Avant Python, ils enseignaient le Pascal, qui est un langage très verbeux.
    Quel progrès!!! Pascal a été mon second langage de programmation, après Lisp. Et Python n'est pas un progrès: moins de performance, et de moins bon outil de débogage. (L'avantage des langages à pile). Et je ne comprend que l'extension .py soit encore en usage. Alors que la norme devrait être .py2 et .py3 . Et en passant, Ruby est maintenant plus rapide que Python.

    Citation Envoyé par Chuck_Norris Voir le message
    Également le Lisp, appelé ainsi parce que c'est une Liste Interminable de Stupides Parenthèses.
    Malgré ce qu'on peut en dire, Lisp est un langage qui ouvre vraiment l'esprit, et ça vous change un homme. Vous voyez la programmation différemment, même en revenant aux langages classiques.
    Ruby offre la même liberté que Lisp, avec une meileur syntaxe.

    Mais retournons au sujet, je maintiens ma position, paresse ou incompétence. Être à l'aise avec la POO est une nécessité professionnelle. Pour le travail en groupe, c'est essentiel. Il n'y a pas de meilleur moyen de faire exploser les coûts d'un projet qu'un environnement qui ne permet pas l'encapsulation. La programmation objet est ce qui permet le plus facilement la répartition des tâches avec des programmeurs de différents calibres. Et en général, la qualité de l'enseignement dans ce domaine est pathétique. Avec résultat que les étudiants continuent à faire de la programmation procédurale avec des objets. J'ai même vu un programme professionnel où le type faisait de la conversion de type avec des objets

    Commencer l'enseignement de la programmation par un langage procédural est une erreur majeure. Alors que lorsque l'on débute avec un langage pur objet, les concepts d'encapsulation et d'abstraction s'apprendre sans effort. Ainsi que développement des méthodes de test.

    Si j'étais dans l'enseignement, mes élèves travailleraient sur la création d'une bibliothèque pur object pour C++. J'ai fais en partie l'exercice quand j'ai appris le C++. Et cette bibliothèque me sert toujours. Je n'ai jamais de fuite de mémoires causé par des chaînes de caractère.

    Et je les forcerais à faire deux projets en groupe. Un sur un langage procédural. Et l'autre sur un langage pur objet. Travailler en POO après un développement bordélique est une leçon qui devrait être connu par tous les programmeurs. Car les programmeurs devraient être également introduit aux aspects administratifs d'un projets. Après tout, un programmeur de plus de 35 ans est considéré comme un dinosaure. La préparation pour un rôle administratif devrait-être un plus.

    Citation Envoyé par Chuck_Norris Voir le message
    Mouais. Pour de la vraie perf, rien ne vaut le C++, plutôt que de se traîner un framework et du code managé pour un "engin" graphique (moi , j'aurais dit "moteur" ).
    C'est noté.Mais comme la majorité des programmeurs n'ont pas bien appris la POO, Les programme se retrouvent avec des fuites de mémoire car seulement une partie de programme gère automatiquement la récupération de mémoire. Et au tarif actuel, les entreprises ne méritent pas des programmeurs en C++.

    Les méthodes actuelles d'enseignement de la programmations sont comme enseigner la menuiserie sans les outils électrique. La programmation procédurale est pratiquement un archaïsme. Et une mauvaise habitude aussi difficile à quitter que la cigarette. Et l'enseignement devrait sérieusement considérer les impacts de leurs méthodes.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2008
    Messages : 167
    Points : 471
    Points
    471
    Par défaut
    Bon, alors c'est pas dredi, mais le cœur y est

    Citation Envoyé par Madmac Voir le message
    Has been, peut-être en Europe. Mais pas dans le reste du monde. PHP une merde intégrale. À l'exception du web, il est inutilisable (En terme d'investissement de temps, PHP est le moins rentable. Javascript est bien meilleur investissement en temps). PHP : serveur. Javascript: serveur, client, application. Conclusion PHP est une perte de temps.
    Je ne connais pas bien PHP, et il est vrai qu'il est essentiellement utilisé pour le Web. Mais comme tout langage, il a ses défauts.

    Citation Envoyé par Madmac Voir le message
    Et la configuration de base de donnée est une plaie. Il est possible de faire aussi simple que le PHP en Ruby avec Sinatra. Et quand je compare Java à C#, j'ai envie de pleurer. Un simple "Hello world" double la taille du programme par deux. Je suis comme ces anciens soldats qui ont des traumatisme après avoir été au front: J'ai physiquement des vertiges simplement en regardant un code en Java.
    Et la choucroute est meilleur à Strasbourg. Quoi que .

    Faire de la base de données est une plaie car généralement, les développeurs sont des b... en bases de données. Ils ne savent pas faire un schéma digne de ce nom, et les outils de mapping sont tous aussi infligeant les uns que les autres (Bon, pour être honnête, je suis un adepte des DAL faites main)

    Quant a Java et C#, comment dire. Il suffit de comparer une pile d'appel dans les deux langages pour comprendre .

    Citation Envoyé par Madmac Voir le message
    Rails est rigide par nature, car c'est qui permet au programmeur de ce concentrer sur sa tâche sans avoir à ce soucier de la base de données. Les solutions plus souples deviennent leur propre ennemi, lorsque l'on désire faire des sites qui ne fonctionnent pas en anglais. Oui, Rails demande plus d'effort, mais je peux faire un site en Japonais ou en arabe , sans changer quoi que ce soit à l'exception des dialogues. Alors qu'en PHP ..
    Ben faut pas confondre ce que t'offre un langage, et ce que t'offre son écosystème.
    Tu peux très bien faire des sites multilingues en PHP et les CMS en sont le parfait exemple.

    Citation Envoyé par Madmac Voir le message
    En général, ce problème de rigidité n'existe que pour les gens ont coupé les coins ronds. L'apprentissage de Sinatra leur aurait sauvé beaucoup de maux de tête. Ecrire une fonction pour gérer les cas d'exception est plus simple que de le faire en utilisant Rails. Faire des requêtes directement avec Active record est facile. Malheureusement, beaucoup de programmeurs ne connaissent rien à Sinatra. Rails n'est rien d'autre qu'un générateur REST à partir de la description des champs de votre base de donnée, par dessus Sinatra. il écrit pour vous mécaniquement toute les fonctions pour ces opérations suivante (
    - GET pour récupérer une ressource ;
    - PUT pour modifier l'état ou mettre à jour une ressource, qui peut être un objet, un fichier ou un bloc ;
    - POST pour créer cette ressource ; et
    - DELETE pour le supprimer.
    ), pour chacun des champs. Ce que ne fait pas Sinatra pour vous.

    Et il gère le casse-tête d'une modifications des champs d'une base de données existante. Et sur plusieurs types de base de données. Alors forcément cela impose des contraintes. Mais tenté de faire la même chose directement en PHP. Si tu es un professionel, tu devras apprendre un des clone de Rails (CakePHP ou Symphony). Avec la fabrication de l'application, il y a la maintenance et l'installation. Et les solution légères ne procurent aucun support pour ces aspects.
    Je savait pas que The Voice était développeur .

    Par contre, CakePHP est pas mal. C'est un générateur de code très utile.

    Citation Envoyé par Madmac Voir le message
    On peut se lancer dans la fabrication de site en considérant les base de données comme des tableaux. Cela fonctionne un temps. Mais seulement une petite période. Mais à moment donnée, on doit transpirer et apprendre à les requête SQL. Et apprendre à les intégré à Rails.

    Ce qui ne sert pas Rails est que les concepteurs ont utilisé massivement la méta-programmation. Et comme Ruby a des capacités exceptionnelles de méta-programmation. Pour la majorité des programmeurs, le code de cela semblent n'avoir aucune sens. Un programme qui est modifié pendant son fonctionnement, c'est un truc difficile à concevoir quand on arrive d'un autre langage que Ruby.
    Il existe des générateurs de code pour les DAL aussi. Et comme dit précédemment, une base de données, ça se conçoit.

    Citation Envoyé par Madmac Voir le message
    Quel progrès!!! Pascal a été mon second langage de programmation, après Lisp. Et Python n'est pas un progrès: moins de performance, et de moins bon outil de débogage. (L'avantage des langages à pile). Et je ne comprend que l'extension .py soit encore en usage. Alors que la norme devrait être .py2 et .py3 . Et en passant, Ruby est maintenant plus rapide que Python.

    Ruby offre la même liberté que Lisp, avec une meilleur syntaxe.

    Mais retournons au sujet, je maintiens ma position, paresse ou incompétence. Être à l'aise avec la POO est une nécessité professionnelle. Pour le travail en groupe, c'est essentiel. Il n'y a pas de meilleur moyen de faire exploser les coûts d'un projet qu'un environnement qui ne permet pas l'encapsulation. La programmation objet est ce qui permet le plus facilement la répartition des tâches avec des programmeurs de différents calibres. Et en général, la qualité de l'enseignement dans ce domaine est pathétique. Avec résultat que les étudiants continuent à faire de la programmation procédurale avec des objets. J'ai même vu un programme professionnel où le type faisait de la conversion de type avec des objets

    Commencer l'enseignement de la programmation par un langage procédural est une erreur majeure. Alors que lorsque l'on débute avec un langage pur objet, les concepts d'encapsulation et d'abstraction s'apprendre sans effort. Ainsi que développement des méthodes de test.

    Si j'étais dans l'enseignement, mes élèves travailleraient sur la création d'une bibliothèque pur object pour C++. J'ai fais en partie l'exercice quand j'ai appris le C++. Et cette bibliothèque me sert toujours. Je n'ai jamais de fuite de mémoires causé par des chaînes de caractère.

    Et je les forcerais à faire deux projets en groupe. Un sur un langage procédural. Et l'autre sur un langage pur objet. Travailler en POO après un développement bordélique est une leçon qui devrait être connu par tous les programmeurs. Car les programmeurs devraient être également introduit aux aspects administratifs d'un projets. Après tout, un programmeur de plus de 35 ans est considéré comme un dinosaure. La préparation pour un rôle administratif devrait-être un plus.
    Quel est le but de l'enseignement ? et bien c'est apprendre les bases de la programmation. Et pas apprendre un langage.

    Donc pour apprendre les bases (typage, fonction, ...), le pascal est l'une des bonnes solutions. Et le LISP également (ou le CAML )

    Pour ce qui est de la programmation orienté objet, il vaut mieux appréhender ces concepts après avoir fait le reste. Et apprendre des méthodologies (MERISE, RUP, ...), plus que les langages.

    Mes nièces apprennent le SCRATCH à l'école. C'est peut être pas POO, mais ça leur donne les bases, et "la logique" a avoir pour concevoir un programme (une ordi c'est c.. comme ces pieds, il fait ce que tu lui dit!)

    Citation Envoyé par Madmac Voir le message
    C'est noté.Mais comme la majorité des programmeurs n'ont pas bien appris la POO, Les programme se retrouvent avec des fuites de mémoire car seulement une partie de programme gère automatiquement la récupération de mémoire. Et au tarif actuel, les entreprises ne méritent pas des programmeurs en C++.
    Alors là, le report entre les fuites mémoires et la POO, je vois pas. Dès que tu fait du C++, il faut t'attendre à des fuites mémoires.
    Et au vu de la rareté des profils C++, je pense que les entreprises ne cherchent même plus.

    Citation Envoyé par Madmac Voir le message
    Les méthodes actuelles d'enseignement de la programmations sont comme enseigner la menuiserie sans les outils électrique. La programmation procédurale est pratiquement un archaïsme. Et une mauvaise habitude aussi difficile à quitter que la cigarette. Et l'enseignement devrait sérieusement considérer les impacts de leurs méthodes.
    Les outils électriques ne permettent qu'une seule chose : aller plus vite.
    Si tu coupe tes planches pas droit, ton meuble sera bancale, avec ou sans matériels électriques.

    Il ne faut pas confondre le but de l'enseignement (apprendre la théorie et les bases) et le travail de développeur (maîtriser un langage/environnement/librairies afin de faire des applications qui correspondent au besoins, développé rapidement, sans trop de bug ).

  13. #13
    Membre régulier Avatar de selmanjo
    Homme Profil pro
    Savant en programmation orienté objet
    Inscrit en
    Janvier 2020
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Savant en programmation orienté objet
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2020
    Messages : 55
    Points : 101
    Points
    101
    Par défaut Contexte d'étudiant : un avis
    En tant qu'étudiant, je pense qu'on devrait apprendre plus le POO, très utile pour faire un projet robuste. J'aime personnellement, le C, C++, le python, c'est un mélange de langages rapides et simples pour bidouiller. Je pense qu'il faut aussi apprendre les anciens langages de programmation pour apprendre des concepts utiles qu'on ignore sûrement.

  14. #14
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par jpouly Voir le message
    Bon, alors c'est pas dredi, mais le cœur y est

    Je ne connais pas bien PHP, et il est vrai qu'il est essentiellement utilisé pour le Web. Mais comme tout langage, il a ses défauts.

    Faire de la base de données est une plaie car généralement, les développeurs sont des b... en bases de données. Ils ne savent pas faire un schéma digne de ce nom, et les outils de mapping sont tous aussi infligeant les uns que les autres (Bon, pour être honnête, je suis un adepte des DAL faites main)


    Le langage a d'énormes problèmes. Et ce n'est pas étonnant a été fabriqué incrémentalement sans aucune planification préalable. C'est un des pire langage existant, particulièment pour le web. Mais la dernière fois que j'ai programmé avec, il fonctionnait toujours avec le ...ASCII. Comme la plupart des base de données sont configurés pour l'Unicode par défaut. Avec Ruby, je n'ai qu'à installer la base de donnée. Et je n'ai pas à me soucier de configuration pour les langues européennes. Et pour pouvoir stocker des données avec des caractères accentués, ce n'est pas de la tarte. Car la plupart des tutoriaux sont pensés pour le marché anglophones. Alors les caractères accentués, ce n'est pas vraiment leur priorité. La documentation sur le sujet est rarissime. Si tu aime perdre ton temps à tâtonner, PHP est le langage pour toi.

    Citation Envoyé par jpouly Voir le message
    Je savait pas que The Voice était développeur .
    Il a également un dérivé: Padrino

    Citation Envoyé par jpouly Voir le message
    Ben faut pas confondre ce que t'offre un langage, et ce que t'offre son écosystème.
    Tu peux très bien faire des sites multilingues en PHP et les CMS en sont le parfait exemple.
    Le support est seulement partiel. Une page HTML supporte facilement le support à la langue française. Mais si tu remplis un formulaire et que ton nom contient des caractères spéciaux. Tu peux savoir que le site fonctionne en PHP, sans même regardé les sources. Seulement à sa façon de massacrer ton nom. Ce n'est pas un problème avec Javascript, Ruby, Java et les langage réécrit en Java comme Jpython.

    Donc si tu prend tout en considération, apprendre Javascript est plus rationnel, puisqu'il fonctionne coté client et coté serveur. Et avec Nodes, tu peux même faire des scripts utilisables sur terminaux.

    Citation Envoyé par jpouly Voir le message
    Quel est le but de l'enseignement ? et bien c'est apprendre les bases de la programmation. Et pas apprendre un langage.
    Non tu dois en maîtriser au moin un. Tu as vu un tutoriel sur la programmation sans exemple de code? Si l'étudiant ne peut pratiquer ce qu'il apprend, cela reste terriblement théorique.

    Citation Envoyé par jpouly Voir le message
    Pour ce qui est de la programmation orienté objet, il vaut mieux appréhender ces concepts après avoir fait le reste.
    Mon expérience sur le terrain m'ont démonter le contraire.

    Citation Envoyé par jpouly Voir le message
    Et apprendre des méthodologies (MERISE, RUP, ...), plus que les langages.
    Préhistorique !
    T'es conscients que ces approches ont été fabriqué à une époque que le seul langage grand public qui était abordable pour un étudiant était le BASIC ? Il n'y a vraiment aucune excuse valable pour faire perdre du temps en apprentissage de speudo-langage.

    Citation Envoyé par jpouly Voir le message
    Mes nièces apprennent le SCRATCH à l'école. C'est peut être pas POO, mais ça leur donne les bases, et "la logique" a avoir pour concevoir un programme (une ordi c'est c.. comme ces pieds, il fait ce que tu lui dit!)
    Perte de temps! La programmation est un métier. Et il s'apprend en programmant. Fabriquer un jeu est une meilleure approche. Et plus amusant.


    Citation Envoyé par jpouly Voir le message
    Alors là, le report entre les fuites mémoires et la POO, je vois pas. Dès que tu fait du C++, il faut t'attendre à des fuites mémoires.
    Bien justement, le rapport est que lorsque tu fais du C++, uniquement avec des objets, tes chances de fuites sont autours de 0%.

    Citation Envoyé par jpouly Voir le message
    Et au vu de la rareté des profils C++, je pense que les entreprises ne cherchent même plus.
    Cela confirme que l'on devrait commencer par la programmation objet pour passer ensuite à la programmation procédural. Si les gens débutaient avec Ruby, ce ne serait pas les cas. Et si c'était la norme, Pascal serait bien en vie. Car faire du Pascal en multi-fichier, c'est du sport. En Object-Pascal, chaque objet est comme un domaine distinct pour le compilateur. Donc pas de conflit de fichiers.

    Citation Envoyé par jpouly Voir le message
    Les outils électriques ne permettent qu'une seule chose : aller plus vite.
    Si tu coupe tes planches pas droit, ton meuble sera bancale, avec ou sans matériels électriques.
    Tu n'as pas une grande expérience de la menuiserie. Parce qu'avec les outils électriques les problèmes se limitent pas mal à bien prendre ses mesures. Le ciseau à bois et le marteau reste nécessaire. Mais c'est pas mal tout ce qu'il reste. Ce débat me rappele mon cours d'électronique où j'ai dû apprendre l'électronique avec des amplis à lampes. Cela m'a jamais servi, évidemment.

    Citation Envoyé par jpouly Voir le message
    Il ne faut pas confondre le but de l'enseignement (apprendre la théorie et les bases) et le travail de développeur (maîtriser un langage/environnement/librairies afin de faire des applications qui correspondent au besoins, développé rapidement, sans trop de bug ).
    Bien justement, ils n'y arrivent pas à effleurer le sujet avec les outils qu'ils utilisent. Avec Ruby et Prolog, ils peuvent faire le tour de toutes les approches: https://fr.wikipedia.org/wiki/Paradigme_(programmation)

  15. #15
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par selmanjo Voir le message
    En tant qu'étudiant, je pense qu'on devrait apprendre plus le POO, très utile pour faire un projet robuste. J'aime personnellement, le C, C++, le python, c'est un mélange de langages rapides et simples pour bidouiller. Je pense qu'il faut aussi apprendre les anciens langages de programmation pour apprendre des concepts utiles qu'on ignore sûrement.
    Quelques bases en C sont essentiels, sans quoi il est impossible de comprendre les programmes. Les additions sur les pointeurs sont des concepts extra-terrestres pour la majorité des autres languages. Comme cette fonction ultre-rapide de racine carre:

  16. #16
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 451
    Points : 43 096
    Points
    43 096
    Par défaut
    c'est pas le meilleur exemple que tu as pris. Ce n'est pas un problème de langage, mais d'algorithmie
    Pour cet exemple, en dehors de l'aspect mathématique, il faut comprendre la représentation binaire des chiffres pour comprendre les ruses appliquées par cette fonction.
    Il est plus simple de multiplier par 2 dans un langage que de décaler la valeur d'un bit vers la gauche. Et pourtant la seconde solution est bien plus rapide. C'est d'ailleurs ce que fera le compilateur, il remplacera ta multiplication par un décalage de bits.

    L’arithmétique des pointeurs, c'est ni plus ni moins que de te placer sur l'élément adéquat de ta structure qu'elle soit un tableau, une liste Python, ou autre.
    Le C est plus bas niveau qu'un langage orienté objet, et requiert donc de maitriser des choses comme l'arithmétique des pointeurs que va faire implicitement un langage de plus haut niveau.

    Pour le PHP, il faut garder à l'esprit qu'à l’origine le langage a été conçu pour rendre les pages web dynamiques. Il est tout à fait possible de faire du PHP hors web mais c'est pas là qu'il sera le plus efficace, tout comme il est possible de faire du web avec autre chose que le PHP, mais là encore c'est pas le plus efficace.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  17. #17
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 685
    Points : 1 376
    Points
    1 376
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    c'est pas le meilleur exemple que tu as pris. Ce n'est pas un problème de langage, mais d'algorithmie
    Pour cet exemple, en dehors de l'aspect mathématique, il faut comprendre la représentation binaire des chiffres pour comprendre les ruses appliquées par cette fonction.
    Il est plus simple de multiplier par 2 dans un langage que de décaler la valeur d'un bit vers la gauche. Et pourtant la seconde solution est bien plus rapide. C'est d'ailleurs ce que fera le compilateur, il remplacera ta multiplication par un décalage de bits.
    Mais si tu ne sais pas ce que veut dire 0x5f3759df, tu as un gros problème

    Citation Envoyé par chrtophe Voir le message
    L’arithmétique des pointeurs, c'est ni plus ni moins que de te placer sur l'élément adéquat de ta structure qu'elle soit un tableau, une liste Python, ou autre.
    La philophie est la même, mais il y a une énorme différence: ce sont des addresses de mémoire qui sont additionné. Quand le calcule est terminé, ce que tu obtiens est un lien direct sur la donnée que tu désire. Si tu accède un tableau, ton programme doit trouvé la position de ton tableau, calculé la différence de mémoire avec la positon de départ. Et enfin accéder à la donnée que tu désirais.

    Et l'autre différence importante est qu'il est généralement impossible de modifier le contenue d'un élément de tableau sans sans accéder le tableau par référence.

  18. #18
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 451
    Points : 43 096
    Points
    43 096
    Par défaut
    Mais si tu ne sais pas ce que veut dire 0x5f3759df, tu as un gros problème
    C'est un nombre magique. En voici une explication.

    Il en existe d'autres, il me semble qu'il y a un bouquin la dessus, j'avais vu ça sur le net.

    Et l'autre différence importante est qu'il est généralement impossible de modifier le contenue d'un élément de tableau sans sans accéder le tableau par référence.
    Et alors ? Quel est l'impact quand tu fais appel à qq chose comme printf("%d",tableau_numerique[2]); ?
    C’est une vrai question, même si je connais des trucs, je suis pas programmeur de métier.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Réponses: 35
    Dernier message: 03/09/2020, 16h56
  2. Réponses: 48
    Dernier message: 10/09/2019, 12h17
  3. Réponses: 93
    Dernier message: 03/03/2019, 19h17

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