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: Quels sont vos langages de programmation préférés pour le Web en 2017 ?

Votants
249. Vous ne pouvez pas participer à ce sondage.
  • PHP

    94 37,75%
  • JavaScript (NodeJS, AngularJS, VueJS...)

    91 36,55%
  • Java

    44 17,67%
  • C# (ASP.Net…)

    42 16,87%
  • Python

    36 14,46%
  • Ruby on Rails

    5 2,01%
  • Delphi/Intraweb

    3 1,20%
  • TypeScript (Angular...)

    29 11,65%
  • Autres, précisez lequel

    14 5,62%
  • Pas d'avis

    1 0,40%
Sondage à choix multiple
Langages serveur Discussion :

Quels sont vos langages de programmation préférés pour le Web en 2017 ? Et pourquoi ?


Sujet :

Langages serveur

  1. #61
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 627
    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 627
    Points : 10 551
    Points
    10 551
    Par défaut
    Citation Envoyé par LSMetag Voir le message
    Certains ont pris l'habitude de la POO et la compilation, donc on a adapté certains langages comme le Javascript via des extensions comme Typescript ou des langages compilant en Javascript comme Dart.
    Je ne suis pas expert , mais actuellement tu as un passage entre le développeur "au fond de son garage à coder des scripts" et un développement professionnel.

    Maintenant un site se doit d'être responsive afin de toucher différentes plateformes (iOS, Android, desktop, native ou pas, ...) et en plus on lui demande plus de choses (*), les développeurs doivent à la fois coder le plus rapidemment possible avec le plus de sécurité.

    On ne peut pas laisser péter un script de X milliers de lignes parce qu'il manque un "var" ou faire une addition entre 2 types différents.


    * -> par exemple, accès au matériel, hors ligne, chiffrement, moins de requêtes, ...


    Citation Envoyé par LSMetag Voir le message
    Après pour la multiplication des langages, je pense qu'il y a quand même un peu d'abus, mais il en faut aussi pour tous les goûts.
    C'est surtout que cela arrange certains de pouvoir faire du développement Web à des singes savants
    Actuellement en France, les organismes privés de formation Web pullulent : on forme "n'importe qui" afin de faire du site Web, parce que c'est cool et qu'on est en pénurie parce que le nombre de projets explosent.
    Et pour que cela puisse être fait, il faut des langages/ bibliothèques/ cadriciels de plus en plus abstraits/ haut niveau/ facile d'accès/ automatisés/ ...

  2. #62
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Je suis encore en formation (Bachelor en alternance après un Titre de Dev Web au Greta) donc évidemment mes avis ne prennent pas en compte toutes les phases de test et de finalisation que je n'ai pas beaucoup pratiqué.

    - PHP évidemment, pour sa courbe d'apprentissage. Mais je n'aime pas trop ce langage, difficile de dire pourquoi mais c'est comme ça. Je suis en train de me former sur Symphony mais je préfère quand même évoluer dans l'écosystème javaScript.

    - TypeScript (Angular Ionic) tout la souplesse du JS avec un typage plus fort. Trés simple à prendre en main et bien documenté.
    - NodeJs pour les petits projets, rien à dire.

    - Java pour les besoins du Bachelor et pour mes futurs développement natifs. Là fini le coté "fun" du JS mais pour un ancien du C++ ca ne me pose pas trop de problème.

    Pour l'instant tout mes projets sont d'ordre pédagogiques, c'est la boite qui m'accueillera en alternance qui orientera mon choix de techno.

    Coté IDE :

    Visual Studio pour JS, TypeScript, Node, HTML et CSS
    PHP Storm pour Symfony
    eclipse pour java
    Le tout sur Mac et Windows (Je n'utilise Linux que contraint et forcé )

    J'ai juste effleuré le Python et je vais creuser encore un peu, mais peut être ne pas trop me disperser pour vraiment tout axer sur le dev mobile (natif et hybride)

  3. #63
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par foetus Voir le message
    C'est surtout que cela arrange certains de pouvoir faire du développement Web à des singes savants
    Actuellement en France, les organismes privés de formation Web pullulent : on forme "n'importe qui" afin de faire du site Web, parce que c'est cool et qu'on est en pénurie parce que le nombre de projets explosent.
    Et pour que cela puisse être fait, il faut des langages/ bibliothèques/ cadriciels de plus en plus abstraits/ haut niveau/ facile d'accès/ automatisés/ ...
    Je tiens a plussoyer cela pour y être passé. En gros je suis autodidacte et après 1 an à avoir crée et maintenu une application web je m'étais dis que j'allais en faire mon métier et du coup je m'étais inscrit a ce genre de formation de 3 mois afin de monter en compétences et d'avoir un truc a mettre sur le CV.

    Oh ben putain

    Sur une classe d'une quinzaine d'élèves, on était 2 à avoir déjà écrit une ligne de code dans notre vie (d'ailleurs on a rien appris du tout sur les 3 mois à par à faire du photoshop). Sur les autres il y en avait peut être 3-4 qui comprenaient bien et au bout des 3 mois c'était pas déconnant qu'ils postulent à un poste de dev junior. En revanche il y a une dizaine de personnes qui au bout des 3 mois ne savaient toujours pas comment fonctionnait une div et une boucle while et allaient se retrouver sur le marché du travail. Pour avoir discuter avec certains pole emploi leur a offert la formation en leur disant que le secteur était porteur, et évidemment ils se rendaient bien compte que ça allait pas marcher.

  4. #64
    Membre habitué
    Homme Profil pro
    CTO
    Inscrit en
    Mars 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : CTO

    Informations forums :
    Inscription : Mars 2012
    Messages : 62
    Points : 161
    Points
    161
    Par défaut
    J'ai mis Python parceque c'est un langage que j'aime, mais qui manque trois choses pour qu'ils les gouverne tous (les {} au lien de l'indentation les ; à la fin de chaque instruction et le typage fort introduit avec py3) et peut être la compilation

    Le Javascript est un langage que je déteste et ne devrait pas être utilisé à part quelques petites animations sur un site web.

    Comment pouvez vous accepter un langage, à moins d'avoir un couteau sous la gorge, qui renvoi ce genre de résultats:


    console.log(25 + true + "2"); # résultat 262

  5. #65
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    794
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 794
    Points : 987
    Points
    987
    Par défaut
    Citation Envoyé par Mister Nono Voir le message
    Bonjour,

    JAVA J2EE pour tout le monde. PHP quand on m'y oblige : malheureusement, la mode est encore à PHP...

    De plus et sauf erreur de ma part, JAVA est en passe d'être à la communauté du libre : alors que souhaiter de plus pour les Projets Informatiques ?

    C# avec Xamarin par exemple, c'est bien et puissant mais c'est un système propriétaire : dommage...

    JS c'est la grande mode mais avec on peut tout faire et faire n'importe quoi : bonjour les algorithmes mal conçus, les applications WEB buguées dont on supporte les malfaçons qu'une fois en production car langage non compilé et non typé comme PHP d'ailleurs. Sauf que pour PHP, des frameworks puissants comme symfony encouragent les bonnes pratiques existantes dans le monde JAVA.

    A+
    C# n'est pas propriétaire c'est un standard déposé auprès de l'ecma par ailleurs et xamarin ne l'est plus.

    Php jamais supporté cette plate-forme le langage est mal foutu avec des bugs et des manquements inadmissible. Java jamais accroché ils sont dans l'excès inverse de sur ingénierie. Sans parler des problèmes qui m' ont refroidit à une époque string en utf8 non standard (tu me diras mysql a le même très gros problème entre autre) aucune gestion des dates, class calandar qui n'a rien à voir avec son nom etc. Copie de linq mal foutu, mauvaise implémentation des générique entre autre.

    Perl, j'adore mais les ssi sont dépassés.

    Maintenant pour du Web s'est asp.net mvc core, asp.net webapi avec c#. Très bonne conception et mise en oeuvre, évolutions régulières, portable, léger, très rapide et modulaire.

    Pour le futur je resterai dessus, une première version c# de webassembly est arrivée et est simple efficace et bien pensée. Du tout bon.

  6. #66
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    794
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 794
    Points : 987
    Points
    987
    Par défaut
    Citation Envoyé par Dhafer1 Voir le message
    J'ai mis Python parceque c'est un langage que j'aime, mais qui manque trois choses pour qu'ils les gouverne tous (les {} au lien de l'indentation les ; à la fin de chaque instruction et le typage fort introduit avec py3) et peut être la compilation

    Le Javascript est un langage que je déteste et ne devrait pas être utilisé à part quelques petites animations sur un site web.

    Comment pouvez vous accepter un langage, à moins d'avoir un couteau sous la gorge, qui renvoi ce genre de résultats:


    console.log(25 + true + "2"); # résultat 262
    Javascript est une farce de toute façon. Essai la double négation tu vas bien rigoler
    😂

  7. #67
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 40
    Points : 68
    Points
    68
    Par défaut Ruby on rails...
    Ruby on rails est un framework, ruby est le language...

  8. #68
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 086
    Points
    2 086
    Par défaut
    Citation Envoyé par Dhafer1 Voir le message
    J'ai mis Python parceque c'est un langage que j'aime, mais qui manque trois choses pour qu'ils les gouverne tous (les {} au lien de l'indentation les ; à la fin de chaque instruction et le typage fort introduit avec py3) et peut être la compilation

    Le Javascript est un langage que je déteste et ne devrait pas être utilisé à part quelques petites animations sur un site web.

    Comment pouvez vous accepter un langage, à moins d'avoir un couteau sous la gorge, qui renvoi ce genre de résultats:

    console.log(25 + true + "2"); # résultat 262
    J'ai envie de dire : et alors? Si tu sais utiliser un langage, quel qu’il soit, tu connais ses règles, il n'y a aucun problème à l'utiliser convenablement. C'est comme une notion de contrat d'utilisation.

    C'est juste fatiguant de voir qu'il y en a encore pour savoir mieux que les autres quels sont le(s) langage(s) qui sont les meilleurs, et venir afficher leur inculture en criant haut et fort quels sont ceux qui ne "devraient pas exister".

  9. #69
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 627
    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 627
    Points : 10 551
    Points
    10 551
    Par défaut
    Citation Envoyé par blbird Voir le message
    J'ai envie de dire : et alors?
    Le problème c'est que le JavaScript et le PHP sont des langages de scripts.
    Et le deuxième problème, c'est en 1995 le JavaScript devait être ponctuel. Maintenant, jQuery ne fait que 10 000 lignes de code

    Ce n'est pas pour des queues de prunes qu'il y a Babel avec TypeScript.

  10. #70
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 086
    Points
    2 086
    Par défaut
    Citation Envoyé par foetus Voir le message
    Le problème c'est que le JavaScript et le PHP sont des langages de scripts.
    Et le deuxième problème, c'est en 1995 le JavaScript devait être ponctuel. Maintenant, jQuery ne fait que 10 000 lignes de code
    Ta notion de "problème" me semble particulière. En quoi est-ce un problème? Ca marche ou pas?

  11. #71
    Membre habitué
    Homme Profil pro
    Ingénieur .Net
    Inscrit en
    Décembre 2014
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur .Net
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 71
    Points : 147
    Points
    147
    Par défaut
    Citation Envoyé par Mister Nono Voir le message
    Bonjour,

    C# avec Xamarin par exemple, c'est bien et puissant mais c'est un système propriétaire : dommage...

    A+
    Ce n'est plus totalement vrai depuis le rachat de Microsoft : https://github.com/xamarin

    Seuls certains services sont propriétaires. Il est tout à fait possible de faire une application avec Xamarin sans rien débourser à ce dernier.

    D'ailleurs asp.net est également devenue open source. On peux facilement développer sous Linux ou MacOS.

  12. #72
    Membre habitué
    Homme Profil pro
    CTO
    Inscrit en
    Mars 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : CTO

    Informations forums :
    Inscription : Mars 2012
    Messages : 62
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par blbird Voir le message
    J'ai envie de dire : et alors? Si tu sais utiliser un langage, quel qu’il soit, tu connais ses règles, il n'y a aucun problème à l'utiliser convenablement. C'est comme une notion de contrat d'utilisation.

    C'est juste fatiguant de voir qu'il y en a encore pour savoir mieux que les autres quels sont le(s) langage(s) qui sont les meilleurs, et venir afficher leur inculture en criant haut et fort quels sont ceux qui ne "devraient pas exister".
    Oui c'est vrai Javascript est tellement bien, que des géants du Net plein "d'inculture" essaient tant bien que mal de le rendre assimilable par leurs équipes "inculturées" en créant Dart, Typescript, CoffeeScript. et autre joyausetés.

    Désolé mais sur des gros projets, beaucoup d'équipes, beaucoup de Turnover utiliser JS c'est le meilleur moyen de se tirer une balle dans le pied et se retrouver avec une dette technique monstrueuse.

    Excusez mon "incultivationnisme" si JS est un langage dégueulasse.

  13. #73
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Points : 4 203
    Points
    4 203
    Par défaut
    Citation Envoyé par Dhafer1 Voir le message
    Oui c'est vrai Javascript est tellement bien, que des géants du Net plein "d'inculture" essaient tant bien que mal de le rendre assimilable par leurs équipes "inculturées" en créant Dart, Typescript, CoffeeScript. et autre joyausetés.

    Désolé mais sur des gros projets, beaucoup d'équipes, beaucoup de Turnover utiliser JS c'est le meilleur moyen de se tirer une balle dans le pied et se retrouver avec une dette technique monstrueuse.

    Excusez mon "incultivationnisme" si JS est un langage dégueulasse.
    Dans ma boîte qui est pourtant Gold Partner Microsoft à tous les étages, à la pointe, et pas juste dans les technos Microsoft, beaucoup d'entre nous ont des difficultés et autres lacunes avec Javascript. Sur des gros projets c'est très flagrant.
    Nous l'utilisons avec JQuery et d'autres librairies comme KnockOut JS, Ionic 2,... Mais nous sommes beaucoup moins productifs qu'avec du SQL, du C#, du VB, voire même du PHP.

    Quand en 6 mois on apprend et réussi, avec succès, sur le tas, à utiliser des technos qui nous sont inconnues, comme .NET avec C#, que ce soit de l'Azure, de l'Entity Framework, du ASP MVC, du T-SQL, on se demande pourquoi en 1 ou 2 ans, alors qu'on l'utilise dans presque tous les projets, on continue de peiner avec JS...

    Peut-être qu'il faut beaucoup d'expérience, de passion, ou ne pratiquer quasiment que ça (NodeJS et cie) pour maîtriser. Ce n'est pas un simple langage. C'est toute une philosophie, éloignée de ce qu'on pratique habituellement. Moi je déteste et je trouve ça plutôt incongru.

  14. #74
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 086
    Points
    2 086
    Par défaut
    Citation Envoyé par Dhafer1 Voir le message
    Désolé mais sur des gros projets, beaucoup d'équipes, beaucoup de Turnover utiliser JS c'est le meilleur moyen de se tirer une balle dans le pied et se retrouver avec une dette technique monstrueuse.

    Excusez mon "incultivationnisme" si JS est un langage dégueulasse.
    Tu as des exemples de balle dans le pied avec de gros projets JS avec des devs qui savent ce qu'ils font? Je serais curieux de voir ca.

    Quelque soit le langage, si tu le fais utiliser par des développeurs qui ne l'aiment pas et/ou ne le comprennent pas, tu iras dans le mur. Ce n'est pas propre à un langage en particulier.

    C'est sûr que c'est beaucoup plus simple de dire que c'est de la merde, plutôt que d’avouer avoir du mal avec.

    Prend des développeurs expérimentés en DotNet, fait-leur faire du Java, ou inversement, même résultat.

    Quand au fait que les développeurs ne connaissent pas le JS, c'est de moins en moins vrai, regarde le résultat des enquêtes récentes, y compris celle-ci. Après il faut faire une différence entre le JS dans les pages HTML avec Ajax/JQuery, et le JS en code serveur (NodeJs), frameworks évolués (React, Angular, VueJs, ...), qui n'ont strictement rien à voir.

    Le JS n'est pas plus compliqué que n'importe quel autre élément de développement de l'écosystème DotNet ou Java ou PhP (ou autre langage scripté ou non). A un moment faudrait savoir : soit c'est un mauvais langage trop simpliste, soit il est trop évolué et trop compliqué à comprendre.

    Citation Envoyé par LSMetag Voir le message
    Quand en 6 mois on apprend et réussi, avec succès, sur le tas, à utiliser des technos qui nous sont inconnues, comme .NET avec C#, que ce soit de l'Azure, de l'Entity Framework, du ASP MVC, du T-SQL, on se demande pourquoi en 1 ou 2 ans, alors qu'on l'utilise dans presque tous les projets, on continue de peiner avec JS...
    Pourtant il y a tout ce qu'il faut, autant que du Dotnet, sur internet pour apprendre de la même façon. Et logiquement, tu devrais aller bien plus vite en JS/Html/Framework qui va bien (je conseil VueJs pour commencer), que de se taper la palanquée de l'écosystème Microsoft, quand il s'agit de points spécifiques d'un site web.

  15. #75
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2009
    Messages
    1 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 030
    Points : 4 203
    Points
    4 203
    Par défaut
    Citation Envoyé par blbird Voir le message
    Pourtant il y a tout ce qu'il faut, autant que du Dotnet, sur internet pour apprendre de la même façon. Et logiquement, tu devrais aller bien plus vite en JS/Html/Framework qui va bien (je conseil VueJs pour commencer), que de se taper la palanquée de l'écosystème Microsoft, quand il s'agit de points spécifiques d'un site web.
    Avec l'écosystème Microsoft (ou PHP ou Java) et quelques personnes qui expliquent bien (et des projets appropriés), ça reste plus facile car on a l'IDE pour nous tenir un peu la main, donner des suggestions de corrections ou refactoring, la compilation avec un bon debugger pour comprendre tout de suite nos erreurs, des logs. Sans oublier accessoirement des règles StyleCop pour les bonnes pratiques.

    Pour Javascript, à part une IDE qui fait de l'autocomplétion assez basique, ne détecte que des fautes de syntaxe, et les outils de développement des navigateurs à l'exécution, il n'y a rien. Pas d'erreur de typage, pas de proposition de variables correspondante vu que les types, donc le contexte, sont ignorés. Bref, j'exagère à peine en disant qu'on programme sur Notepad++.
    Tu es prévenu que ça ne va pas quand tu vois au mieux une page blanche ou une action qui ne se fait pas à l'exécution. Là tu vas voir le message rouge (si tant est qu'il y en ait un) dans la console du navigateur. Et là tu debugges comme tu peux avec les outils limités du navigateur et dans une console, pas sur un écran tout entier (sauf si tu es en multi-écran).

  16. #76
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 086
    Points
    2 086
    Par défaut
    Il semble que ce ne soit pas trop le langage le problème, mais les outils? Comme tout langage de script, c'est effectivement un peu plus compliqué que dans d'autres langages pour déboguer.

    Mais les logs sont là pour ça, comme dans beaucoup d'autres langages de script, et cela n'a jamais empêché personne de réussir à déboguer, même si c'est un peu plus long. A terme, cela permet de mieux prévoir les bugs avant de les avoir, ce qui est clairement un bon point pour un développeur.

    Mais les choses évoluent encore, et tu peux actuellement déboguer du JS serveur et avoir une complétion tout à fait correcte aussi : https://code.visualstudio.com/docs/languages/javascript

  17. #77
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 627
    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 627
    Points : 10 551
    Points
    10 551
    Par défaut
    Citation Envoyé par blbird Voir le message
    Il semble que ce ne soit pas trop le langage le problème, mais les outils?
    Non le langage aussi. De ce que j'ai expérimenté :
    • La notion de this qui est dynamique et que ne fonctionne pas avec des "références de méthode" (référence pour faire des callbacks d'évènements)
    • La notion de portée qui est une portée fonction (function scope). Le truc c'est que lorsqu'on crée une variable dans une boucle for elle existe après et peut masquer un paramètre.
    • La notion de chaîne de prototypes. Si tu as 2 fois la même méthode, il prendra la "plus proche". Et il faut gérer la chaîne de prototypes à la main. Et j'ai lu que les fonctions instanceOf et "je-ne-sais-plus" fonctionnent pas vraiment comme on le souhaite.
    • Il y a 2 types tableau. En réalité, il y a en 1, parce que lorsque tu fais "new Array" tu crées un objet
    • Lorsque tu oublies "var", tu as 90-95% de chance de faire une variable globale
    • toutes les conversions implicites pour toujours avoir un résultat.


    Et les trucs rigolos
    • Il y a 6-7 façons de faire des fonctions
    • Le hissage (hoisting)
    • l'objet global qui change : c'est document pour une page Web
    • Sur une variable entier, tu peux appeler des méthodes d'un objet (par exemple price.toString();)

  18. #78
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 086
    Points
    2 086
    Par défaut
    La plupart des éléments que tu cites ne sont pas des problèmes, mais des conséquences du fait que JavaScript est un langage orienté prototype (et pas un langage de POO classique) : on y fait de la composition d'objets (très souple), et non de l'héritage (plus structuré).

    Cette notion est essentiel (avec en plus le fait que ce soit aussi un langage de script) pour comprendre que la majorité des points que tu cites ne sont pas des problèmes, mais juste des différences.

    Tout ce que tu cites n'est absolument pas problématique, ce sont juste des règles à connaître spécifiques à un langage.

    De la même manière que dans d'autres langages, tu ne verras jamais de POO. Est-ce mal? Non, pas forcément.

    Un des meilleurs sites (en anglais) que je connaisse pour découvrir la POO orientée Prototype (ou de composition plutôt que d'héritage) est celui-là : https://medium.com/javascript-scene/master-the-javascript-interview-what-s-the-difference-between-class-prototypal-inheritance-e4cd0a7562e9

    A noter qu'aucune des deux méthodes n'est meilleur que l'autre, ce sont des conceptions et applications différentes de la POO. Mais venir critiquer l'une ou l'autre juste parce qu'on ne le comprend pas, c'est bien dommage.


  19. #79
    Invité
    Invité(e)
    Par défaut
    Sans rentrer dans le débat JS vs le reste du monde, utiliser la POO "orienté prototype" n'a strictement rien à voir avec l'utilisation de composition ou d'héritage. La très grande majorité des langages OO (tous ?) te permettent le design par composition ça n'a rien de spécifique aux prototypes. Je t'invite à te renseigner sur les interfaces.

  20. #80
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 086
    Points
    2 086
    Par défaut
    Citation Envoyé par Mrsky Voir le message
    Sans rentrer dans le débat JS vs le reste du monde, utiliser la POO "orienté prototype" n'a strictement rien à voir avec l'utilisation de composition ou d'héritage. La très grande majorité des langages OO (tous ?) te permettent le design par composition ça n'a rien de spécifique aux prototypes. Je t'invite à te renseigner sur les interfaces.
    Pourtant, c'est bien le Gang of Four, qui le dit. Ils sont ni plus ni moins que les créateurs de la POO de manière générale.

    Encore une fois, cela n'à rien à voir. Avec JS, de base, tu peux composer n'importe quel objet avec n'importe quel objet. Sans connaître ou modifier le code d'aucun des 2. Je serais curieux de savoir comment tu ferais pour interfacer 2 classes C# (ou Java) sans avoir à toucher au code de ces 2 classes?

    Je cite Wikipedia :
    La programmation orientée prototype est une forme de programmation orientée objet sans classe, fondée sur la notion de prototype. Un prototype est un objet à partir duquel on crée de nouveaux objets. Dans le langage de programmation orientée prototype Self, les propriétés d'un objet, qu'elles renvoient à des attributs ou à des méthodes, sont appelés slots ; il n'y a pas la même distinction entre les slots de données et les slots de code qu'on a avec les classes. La grande différence avec la programmation objet à classe est qu'on peut remplacer le contenu des slots, en ajouter d'autres ou changer la hiérarchie d'héritage que cela soit prévu dans l'objet original ou pas.
    Comme le JS se base avant tout ce le principe de la POO par Protrotype, la plupart des développeurs qui estiment que c'est un mauvais langage n'ont souvent juste pas bien compris la différence, ni les avantages (et inconvénients) qui vont avec.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/12/2015, 13h48
  2. Quel est votre langage de programmation préféré en 2013 ?
    Par Community Management dans le forum Langages de programmation
    Réponses: 102
    Dernier message: 18/09/2014, 08h40
  3. [Sondage] Quel est votre langage de programmation préféré en 2013 ?
    Par Community Management dans le forum Langages
    Réponses: 0
    Dernier message: 30/05/2013, 14h00
  4. Quel est votre langage de programmation préféré en 2009 ?
    Par Yogui dans le forum Débats sur le développement - Le Best Of
    Réponses: 315
    Dernier message: 26/10/2010, 18h58
  5. [Archive] Quel est votre langage de programmation préféré ? (2004..2008)
    Par Idelways dans le forum Débats sur le développement - Le Best Of
    Réponses: 403
    Dernier message: 04/02/2009, 01h56

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