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

  1. #201
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    C'est faux : tous les développeurs du monde ne comprennent pas forcément bien l'anglais, y compris en France.
    Avoir une excellente maîtrise de l'anglais est une compétence professionnelle essentielle au travail de développeur.

    Un développeur qui ne maîtrise pas l'anglais est un développeur qui aura du mal à comprendre 99% du code d'autres développeurs et qui aura dans le meilleur des cas un an de retard dans sa formation vu le temps nécessaire à l'apparition de sources de qualité pour se former aux technologies récentes et à leurs évolutions.

    L'anglais est la langue de l'informatique, ce n'est même pas un débat. La maîtriser correctement est donc indispensable pour travailler dans ce domaine.

  2. #202
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 470
    Points : 6 107
    Points
    6 107
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Avoir une excellente maîtrise de l'anglais est une compétence professionnelle essentielle au travail de développeur.
    Pour comprendre les ressources en anglais sur le développement logiciel (code, documentation technique, articles, vidéos, etc.), il y a besoin d'avoir un certain niveau en anglais, mais certainement pas « une excellente maîtrise ».

  3. #203
    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 Sodium Voir le message
    Avoir une excellente maîtrise de l'anglais est une compétence professionnelle essentielle au travail de développeur.

    Un développeur qui ne maîtrise pas l'anglais est un développeur qui aura du mal à comprendre 99% du code d'autres développeurs et qui aura dans le meilleur des cas un an de retard dans sa formation vu le temps nécessaire à l'apparition de sources de qualité pour se former aux technologies récentes et à leurs évolutions.

    L'anglais est la langue de l'informatique, ce n'est même pas un débat. La maîtriser correctement est donc indispensable pour travailler dans ce domaine.
    Il y a des boîtes qui ne reprennent pas du code de prestataires ou dont le client n'a pas de succursales à l'étranger. Du code en Anglais, à part pour la partie Edition de Logiciel de notre boîte, ou pour les quelques clients qui ont des antennes à l'étranger, il n'y en a pas.

    Là où je bosse on est peut-être 5 sur 45 à avoir cette maîtrise de l'anglais. La plupart savent "déchiffrer", pour se documenter, mais ça s'arrête là. Et ça ne nous empêche pas d'être assez bien côté.

    Une connaissance minimale d'anglais est nécessaire, mais la maîtrise non, et le code en anglais encore moins. C'est comme le mythe de la maîtrise des maths nécessaire en informatique.

  4. #204
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Une connaissance minimale d'anglais est nécessaire, mais la maîtrise non, et le code en anglais encore moins.
    Et après on se demande pourquoi les français sont systématiquement 5 ans à la bourre sur le reste du monde niveau technologies

  5. #205
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Et après on se demande pourquoi les français sont systématiquement 5 ans à la bourre sur le reste du monde niveau technologies
    Pour avoir maîtrisé l'anglais (fut un temps, avant de sortir de l'école et d'être confrontée à la réalité), je peux t'assurer que 95 % du reste du monde n'a pas une maîtrise parfaite de l'anglais, ce qui inclut les anglophones (exactement au même titre que les francophones n'ont pas tous une parfaite maîtrise du français). Tout dépend de ce qu'on appelle "maîtriser". Le reste du monde fait comme nous, il se débrouille.

  6. #206
    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 Sodium Voir le message
    Et après on se demande pourquoi les français sont systématiquement 5 ans à la bourre sur le reste du monde niveau technologies
    Il suffit de la maîtriser suffisamment pour ne pas être à la traine. Si tu sais te débrouiller pour comprendre correctement des documents en anglais, faire des recherches en anglais, parfois poser des questions en anglais, et chercher dans un dictionnaire, ça suffit. Ce n'est pas un excellent niveau en anglais qui va te donner 5 ans supplémentaires de maîtrise.

    Tu travailles en France ?

  7. #207
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Avoir une excellente maîtrise de l'anglais est une compétence professionnelle essentielle au travail de développeur.
    Ça implique que 95% des développeurs français sont des mauvais !

  8. #208
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Citation Envoyé par Sodium Voir le message
    Et après on se demande pourquoi les français sont systématiquement 5 ans à la bourre sur le reste du monde niveau technologies
    Clairement ça n'a absolument aucun rapport. C'est pas les développeurs qui décident des technos à utiliser sur tel ou tel projet ça se passe nettement au dessus hiérarchiquement. T'as déjà vu une offre d'emploi qui dit "on fait tel projet mais on sait pas dans quelle techno" ? Bah non. C'est même souvent des profils non-techniques qui décident parce qu'ils tiennent les cordons de la bourse et que le commercial de sa SS2I préférée lui propose un lot de x devs <insert-random-framework-J2EE-pourri> disponibles pour pas cher.

    Après là où je te rejoins c'est que pour être bon et à jour c'est absolument obligatoire de bien maitriser l'anglais technique et même l'anglais classique. Il est nécessaire de pouvoir regarder une conférence vidéo en anglais sans sous titre et de comprendre par exemple. Sinon impossible d'être à jour (en avance pour la France ).
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  9. #209
    Membre extrêmement actif
    Avatar de Sodium
    Femme Profil pro
    Développeuse web
    Inscrit en
    Avril 2014
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeuse web

    Informations forums :
    Inscription : Avril 2014
    Messages : 2 324
    Points : 2 006
    Points
    2 006
    Billets dans le blog
    1
    Par défaut
    Clairement ça n'a absolument aucun rapport. C'est pas les développeurs qui décident des technos à utiliser sur tel ou tel projet ça se passe nettement au dessus hiérarchiquement. T'as déjà vu une offre d'emploi qui dit "on fait tel projet mais on sait pas dans quelle techno" ? Bah non. C'est même souvent des profils non-techniques qui décident parce qu'ils tiennent les cordons de la bourse et que le commercial de sa SS2I préférée lui propose un lot de x devs <insert-random-framework-J2EE-pourri> disponibles pour pas cher.
    Je ne parle pas du choix des technos mais de l'attitude snob bien française de refuser de se soumettre à un standard.

    La majorité des évolutions informatiques récentes ont été réalisées par des anglophones. La majorité des programmes sont écrits en anglais. L'immense majorité des ressources de qualités pour l'apprentissage sont réalisées en anglais et il faut des mois pour qu'apparaissent potentiellement des ressources de qualité en français. C'est comme ça et c'est une excellente chose car cela signifie qu'une seule langue permet de communiquer avec les développeurs du monde entier.

    Donc oui, si vous voulez être un bon développeur, apprenez et pratiquez régulièrement l'anglais et écrivez vos programmes en anglais car on n'est jamais certain de qui est susceptible de devoir le lire.

  10. #210
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Pour ma part, je pense que c'est une bonne chose qu'un tel programme soit écrit en français, car il permet de la relecture de code "citoyenne".
    C'est à dire que tout citoyen français est en capacité de lire le code, et de tenter, autant qu'il peut, de le comprendre.

    En revanche, je rejoins sodium pour dire que la maîtrise de l'anglais devrait être un pré-requis pour les développeurs.
    D'ailleurs, pour valider une diplôme d'ingénieur en informatique, il faut justifier d'un certain niveau au TOIEC.

  11. #211
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    L'anglais ? Ce n'est jamais que du français mal prononcé.
    Georges Clémenceau

  12. #212
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par Conan Lord Voir le message
    Pour avoir maîtrisé l'anglais (fut un temps, avant de sortir de l'école et d'être confrontée à la réalité), je peux t'assurer que 95 % du reste du monde n'a pas une maîtrise parfaite de l'anglais, ce qui inclut les anglophones (exactement au même titre que les francophones n'ont pas tous une parfaite maîtrise du français). Tout dépend de ce qu'on appelle "maîtriser". Le reste du monde fait comme nous, il se débrouille.
    Il faut arriver à lire et à écrire, c'est à dire communiquer à l'écrit. Parler l'anglais c'est un plus, mais ça ne sert pas toujours. J'ai par exemple eu à travailler en tandem avec des développeurs situés aux Philippines, en communication écrite ça ne posait aucun problème, mais à l'oral leur accent était incompréhensible pour moi, et le mien incompréhensible pour eux.

  13. #213
    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 Marco46 Voir le message
    Il est nécessaire de pouvoir regarder une conférence vidéo en anglais sans sous titre et de comprendre par exemple. Sinon impossible d'être à jour (en avance pour la France ).
    Ca c'est quand tu es un peu haut dans la hiérarchie ou passionné. Moi-même je comprends tout juste (selon qui parle) les conférences en anglais sans sous-titres, avec 802/999 au TOEIC. A la sortie d'école d'ingénieur il me semble que le score requis est 750. Mais il me semble qu'il n'y a pas cette demande à l'université (j'ai passé le TOEIC dans mon coin).

    On va avoir bien du mal à recruter à la FAC.

  14. #214
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut
    Citation Envoyé par pascal-od Voir le message
    Publier des infos sur le site web serait de l'inconscience au niveau de la sécurité. Avec un tel enjeu politique, il y a bien trop de monde qui rêve d'un piratage du site web.
    Admettons...
    un piratage, si certains sont tentés, ils n'auront pas besoin de ça, passer en revue tous les exploits du moment est souvent plus efficace. Mais évidemment ce serait faciliter la tache... Il n'empêche que... le contenu dévoilé est pauvre
    Publier l'ensemble, c'est offrir la possibilité à des yeux différents de regarder ton code et lever des loups que tu n'imagines même pas.
    Citation Envoyé par pascal-od Voir le message
    Quel serait ici techniquement l'avantage des jointures explicites par rapport aux jointures implicites ?
    Je ne suis pas un spécialiste, donc je vais me garder des certitudes. Si quelqu'un sait mieux répondre que moi, qu'il n'hésite pas.

    La question est combien de fois cette ou ces requêtes sont exécutées, ainsi que toutes celles qui ne nous sont pas données à voir.
    Et sur quels jeux de données travaillons-nous ?

    Cela a trait à l'optimisation des requêtes...
    Un SGBD travaille sur des ensembles (de données), qu'il va grouper, croiser, réduire, afin d'offrir des réponses correspondantes à tes critères de requêtes.
    En utilisant des jointures explicites, le mot-clef join, tu donnes des indications à l'optimisateur de requête, celui qui va faire ces opérations, sur la façon dont tu mets en relation ces tables, pour ensuite filtrer les résultats (la clause where).
    C'est peut être pas optimal selon comment tu écris ces jointures et leur ordre, mais toi tu connais tes données et leur organisation. Néanmoins tu optimises le jeu de résultats sur lequel va se faire le filtrage.

    Quand tu as tout dans la clause where, tu mets tout le contenu de toutes les tables en mémoire, puis tu demandes à l'optimisateur SQL de se débrouiller avec toutes tes clauses. A lui de trouver lesquels appliquer en premier, puis croiser, puis réduire. En gros à lui de déterminer le meilleur plan d'exécution. Et plus tu mets de clauses et plus les combinaisons entre tables augmentent, et moins cette recherche du meilleur plan sera rapide, voir possible.

    De toute façon cette syntaxe fait partie de la norme SQL depuis 1992. Quand je me suis fait remarquer à ce sujet par SQLpro c'était en 2004. On est en 2018 et je dois vous expliquer ça, à des développeurs de métier ?

    2 autres points comme ça en relisant ce même code d'où j'avais pris la requête : ConnecteurDonneesPropositionsOracle.java
    le gars utilise des statements et des prepared statements : visiblement il utilise les 2e quand il a des paramètres à passer. C'est bien d'un point de vue sécurité, éviter les injections SQL.

    Mais les prepared statements c'est aussi garder en mémoire un plan d'exécution de la requête, c'est écrit ici par exemple: https://docs.oracle.com/javase/7/doc...Statement.html : "This object can then be used to efficiently execute this statement multiple times. "
    Or ses grosses requêtes avec une dizaine de tables jointes, mais qui n'ont pas de paramètres, bah ils les passent avec un java.sql.statement, pas avec un preparedstatement. Donc sans optimisation d'aucune sorte. Pas de rétention du plan d'exécution qui sera recalculé probablement à chaque fois. C'est peut être des ms, mais tous ces ms comptent, croyez-moi
    Ces prepared statement existent dans tous les langages, même les plus anciens.
    D'un point de vue pratique je vous fais pas de dessin sur la différence entre garder un plan d'exécution en mémoire, et ressortir des milliers de lignes de données pour évaluer comment il conviendra de les assembler avant de les filtrer.
    Donc pour ma part sur mes serveurs dotés de plusieurs Go de RAM, j'utilise uniquement des requêtes préparées. Et je cherche pas à savoir si ça irait plus lentement sans. C'est plus que probable. Au pire ça ne nuit pas.

    Et quand on travaille avec des données, autant en tirer le meilleur, c'est du bon usage des SGBDR.


    Et quand je lis l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stmt.setFetchSize(1000000);
    bah en regardant la ref, je comprends que le gars réserve un million de lignes en retour. Ca fait déja pas mal
    Et je ne fais pas de Java, la dernière fois que j'ai écris du java j'avais 20 ans de moins.

    Enfin bref ... existerait-il une argumentation raisonnable contre l'utilisation du mot clef "join" en SQL ?




    Citation Envoyé par Sodium Voir le message
    Je ne parle pas du choix des technos mais de l'attitude snob bien française de refuser de se soumettre à un standard.

    La majorité des évolutions informatiques récentes ont été réalisées par des anglophones. La majorité des programmes sont écrits en anglais. L'immense majorité des ressources de qualités pour l'apprentissage sont réalisées en anglais et il faut des mois pour qu'apparaissent potentiellement des ressources de qualité en français. C'est comme ça et c'est une excellente chose car cela signifie qu'une seule langue permet de communiquer avec les développeurs du monde entier.

    Donc oui, si vous voulez être un bon développeur, apprenez et pratiquez régulièrement l'anglais et écrivez vos programmes en anglais car on n'est jamais certain de qui est susceptible de devoir le lire.
    J'abonde...
    Je crois qu'il n'y a pas photo, sans maitrise à minima de l'anglais, je vois pas comment on peut prétendre rester à la page.

    Cependant pour le problème que tu évoques du retard technologique, je crois que c'est aussi sinon en majeure partie lié à la façon dont l'informatique existe en France, essentiellement à travers de la prestation de service vendue par des SSII.
    Peu d'éditeurs, pas beaucoup de startup, donc probablement peu de gens amenés à développer des vrais produits, de vrais applis et des vrais offres de service numériques pour lesquelles les responsabilités ne soient pas diluées, divisées eg sans notion de projet commun, et de concurrence.
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  15. #215
    Membre émérite
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Points : 2 278
    Points
    2 278
    Par défaut
    Citation Envoyé par LSMetag Voir le message
    Ca c'est quand tu es un peu haut dans la hiérarchie ou passionné. Moi-même je comprends tout juste (selon qui parle) les conférences en anglais sans sous-titres, avec 802/999 au TOEIC. A la sortie d'école d'ingénieur il me semble que le score requis est 750. Mais il me semble qu'il n'y a pas cette demande à l'université (j'ai passé le TOEIC dans mon coin).

    [...]
    Ça dépend des universités et des formations. Dans l'institut universitaire franco-allemand où j'ai fait mes études le dernier examen d'anglais du master n'est autre que le TOEIC, accompagné d'un oral. Pour l'anecdote, j'ai eu 850/990 au TOEIC sans m'être pointé aux cours d'anglais de tout le semestre.
    De retour, plus sportif mais toujours aussi moche.
    _____________
    Pro: Programmation en C/C++ (embarqué ou non)
    Loisir: Programmation en C++11/14/17 avec la STL ou Qt 5

  16. #216
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par fredoche Voir le message
    Admettons...
    Cela a trait à l'optimisation des requêtes...
    Un SGBD travaille sur des ensembles (de données), qu'il va grouper, croiser, réduire, afin d'offrir des réponses correspondantes à tes critères de requêtes.
    En utilisant des jointures explicites, le mot-clef join, tu donnes des indications à l'optimisateur de requête, celui qui va faire ces opérations, sur la façon dont tu mets en relation ces tables, pour ensuite filtrer les résultats (la clause where).
    C'est peut être pas optimal selon comment tu écris ces jointures et leur ordre, mais toi tu connais tes données et leur organisation. Néanmoins tu optimises le jeu de résultats sur lequel va se faire le filtrage.

    Quand tu as tout dans la clause where, tu mets tout le contenu de toutes les tables en mémoire, puis tu demandes à l'optimisateur SQL de se débrouiller avec toutes tes clauses. A lui de trouver lesquels appliquer en premier, puis croiser, puis réduire. En gros à lui de déterminer le meilleur plan d'exécution. Et plus tu mets de clauses et plus les combinaisons entre tables augmentent, et moins cette recherche du meilleur plan sera rapide, voir possible.
    Merci pour les explications (le SQL ne fait pas partie de mon domaine de compétences, d'où ma question)

  17. #217
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Citation Envoyé par fredoche Voir le message
    Enfin bref ... existerait-il une argumentation raisonnable contre l'utilisation du mot clef "join" en SQL ?
    Je n'ai pas la réponse, mais j'ai peut-être le début d'une explication.
    Quand on a veut recruter un 'gros calibre', qui connait bien les SGBDR, on fait quoi, on prend un chasseur de tête, et on lui demande de débaucher quelqu'un de chez Oracle. Et dans l'école ORACLE, on a longtemps utilisé Where au lieu de Join, on se retrouve donc avec des leaders/développeurs qui n'appliquent pas la norme.
    Des informaticiens travaillant sur les SGBD, j'en ai cotoyé des dizaines, venant de plein d'horizons différents, et je pense que dans les faits, au maximum 20% utilisent 'naturellement' la syntaxe recommandée, 40% utilisent Where, mais savent que join on est plus standard, et 40% ne savent même pas qu'il existe une autre syntaxe que celle qu'ils utilisent.

    En terme de performance, les 2 syntaxes sont strictement équivalentes. Il y a quelques ayatollas qui ont des comptes à régler avec l'entreprise ORACLE, et qui disent que si on n'utilise pas la syntaxe recommandée, c'est qu'on est le dernier des idiots ou à peu près... ça me paraît excessif comme point de vue. Les 2 syntaxes se valent.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  18. #218
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par fredoche Voir le message
    Je ne suis pas un spécialiste, donc je vais me garder des certitudes. Si quelqu'un sait mieux répondre que moi, qu'il n'hésite pas.
    La syntaxe ANSI permet une milleure lisibilité du code en séparant les conditions de jointures des filtres.
    C'est d'autant plus vrai lorsque l'on utilise aussi des jointures externes, et définitivement pour les rares cas où l'on a besoin de faire un produit cartésien (CROSS JOIN).
    Mais la syntaxe n'a absoluement rien à voir avec les performances, en tout cas sur Oracle.

    Citation Envoyé par fredoche Voir le message
    C'est peut être pas optimal selon comment tu écris ces jointures et leur ordre, mais toi tu connais tes données et leur organisation. Néanmoins tu optimises le jeu de résultats sur lequel va se faire le filtrage.
    C'est le rôle de l'optmiseur (Cost Based Optimizer) de définir l'ordre d'accès aux tables, l'ordre des tables dans les jointures n'a plus d'impact depuis 20 ans (Rule Based Optimizer).

    Citation Envoyé par fredoche Voir le message
    Quand tu as tout dans la clause where, tu mets tout le contenu de toutes les tables en mémoire, puis tu demandes à l'optimisateur SQL de se débrouiller avec toutes tes clauses.
    Heureusement que la base ne fait pas de produit cartésien avec tout en mémoire...

    Citation Envoyé par fredoche Voir le message
    A lui de trouver lesquels appliquer en premier, puis croiser, puis réduire. En gros à lui de déterminer le meilleur plan d'exécution. Et plus tu mets de clauses et plus les combinaisons entre tables augmentent, et moins cette recherche du meilleur plan sera rapide, voir possible.
    C'est justement le rôle de l'optimiseur de déterminer le meilleur plan d'exécution, pour ça il s'appuie sur les statistiques disponibles (et qui doivent refléter correctement la réalité) mais également sur toutes les contraintes qui sont déclarées en base (clé étrangère, primaire, unique ou contrainte check).

    Citation Envoyé par fredoche Voir le message
    Or ses grosses requêtes avec une dizaine de tables jointes, mais qui n'ont pas de paramètres, bah ils les passent avec un java.sql.statement, pas avec un preparedstatement. Donc sans optimisation d'aucune sorte. Pas de rétention du plan d'exécution qui sera recalculé probablement à chaque fois.
    Le plan d'exécution est évidemment potentiellement toujours disponible en cache avec statement ou preparedstatement...
    Quand on a une requête comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from t where id = 1;
    select * from t where id = 2;
    ....
    Ce sont des requêtes différentes qui doivent être parsées pour chaque nouvelle valeure du paramètre, l'utilistaion des preparedstatement permet de transformer toutes ces requêtes en une seule et limite donc drastiquement les étapes de parsing de la requête améliorant la montée en charge et les performances. C'est également obligatoire pour des raisons de sécurité (injection sql) comme mentionné.
    Mais l'utilisation de preparedstatement n'a rien à voir avec la mise à disposition du plan de requête côté serveur de base de données, donc sans paramètre ça ne me gène pas particulièrement de ne pas utiliser un preparedstatement.

    Citation Envoyé par fredoche Voir le message
    Donc pour ma part sur mes serveurs dotés de plusieurs Go de RAM, j'utilise uniquement des requêtes préparées. Et je cherche pas à savoir si ça irait plus lentement sans. C'est plus que probable. Au pire ça ne nuit pas.
    Oui, je dirais que ça ne nuit pas

    Citation Envoyé par fredoche Voir le message
    Et quand je lis l'instruction
    Là je suis d'accord, j'ai direct tiqué en voyant stmt.setFetchSize(1000000); ça me semble également vraiment trop.

    Citation Envoyé par fredoche Voir le message
    Enfin bref ... existerait-il une argumentation raisonnable contre l'utilisation du mot clef "join" en SQL ?
    Que les choses soient claires, j'utilise quotidiennement JOIN et la syntaxe ANSI.
    La syntaxe ANSI permet de normaliser par exemple les jointures externes, avant on avait (+) pour Oracle, (*) pour Sqlserver, et rien pour mysql je crois, c'est donc une bonne chose et je l'utilise.

    Mais elle est disponible sur Oracle depuis la version 9 (en 2001), il existe donc des développeurs qui ont travaillé plusieurs années sans cette syntaxe, qui n'y trouve aucun intérêt en terme de lisibilité et qui sont très compétents.
    Par ailleurs Oracle réalise potentiellement diverses transformation, lors du parsing de la requête, et au final, la requête générée n'est plus écrite en format ANSI (du moins actuellement), ça n'est donc définitivement pas ce critère que j'utiliserai pour critiquer la compétence d'un développeur Oracle.

    Quitte à critiquer quelque chose dans le code qui n'est vraiment pas optimisé côté Oracle, c'est la méthode preparerExport() :
    https://framagit.org/parcoursup/algo...pelOracle.java
    Elle supprime puis recréer une table temporaire à chaque exécution.
    Sur Oracle c'est mauvais, une table temporaire est définitivement créée et seules les données sont temporaires (et ça fait vraiment trop Sqlserver).
    L'autre table pourrait simplement être vidée (TRUNCATE).

  19. #219
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 451
    Points : 197 705
    Points
    197 705
    Par défaut Parcoursup : des élus appellent à une plus grande transparence, notamment sur les algorithmes locaux
    Parcoursup : des élus appellent à une plus grande transparence, notamment sur les algorithmes locaux
    utilisés par les facultés pour faire le tri

    Admission Post-Bac (APB) était le système du ministère français de l'Enseignement supérieur et de la Recherche qui, entre 2009 et 2017, a permis d'orienter les nouveaux bacheliers dans les formations de l'enseignement supérieur public en France. Mais il a été remplacé le 15 janvier 2018 par Parcoursup.

    La création de Parcoursup visait, entre autres, à refléter des changements opérés par le ministère pour corriger une non-conformité du traitement APB à la loi Informatique et Libertés. La CNIL a en effet demandé au ministère de « cesser de prendre des décisions concernant des personnes sur le seul fondement d’un algorithme et de faire preuve de plus de transparence dans son utilisation ».

    Parcoursup reprend donc la même plateforme que son prédécesseur, avec néanmoins une nouvelle charte graphique et de nouveaux paramètres. Le nombre de vœux évolue également, tout comme les critères.

    Lundi 21 mai, le Ministère de l'Enseignement Supérieur et de la Recherche (MESRI) a publié les algorithmes utilisés par la plateforme Parcoursup dans le cadre de la procédure nationale de préinscription pour l'accès aux formations initiales du premier cycle de l'enseignement supérieur.

    Dans un communiqué, nous pouvons lire que « Dès le 22 mai, plus d'un candidat sur deux avait reçu au moins une première proposition, conformément aux prévisions faites par les équipes de Parcoursup. Le premier délai de réponse aux propositions d'admission reçues par les candidats le 22 mai est arrivé à son terme cette nuit. Au 29 mai, un total de 1,6 millions de propositions ont été faites à 551 274 candidats. Chaque jour, la situation de dizaines de milliers de candidats évolue, les listes d'attente sont actualisées et le nombre de premières propositions augmente. C'est la preuve que Parcoursup fonctionne, que les candidats s'en sont appropriés les principes et qu'ils exercent jour après jour la liberté de choix qui leur a été donnée ».

    À la veille de l'ouverture de la plateforme, Frédérique Vidal avait fixé comme premier objectif plus de 2/3 des candidats avec une première proposition avant les épreuves du baccalauréat dont les épreuves écrites débuteront le lundi 18 juin pour la totalité des filières (générale, technologique, professionnelle) et des séries (S, ES, L, etc). Parcousup estime donc que cet objectif est atteint avec une très forte avance puisque 551 274 sur 812 056 inscrits (soit 67,89 % de réponse, ce qui représente un peu plus que ⅔) avaient déjà reçu une proposition à la date du 29 mai 2018..

    Nom : parcoursup.png
Affichages : 2529
Taille : 168,9 Ko

    Vers une plus grande transparence ?

    Mais un député du Pas-de-Calais, Daniel Fasquelle, a écrit une question à Mounir Mahjoubi, le secrétaire d’État chargé du numérique, et appelle à plus de transparence :

    À l'heure où des milliers de futurs bacheliers attendent encore les résultats de leur affectation au sein des différentes formations dans lesquelles ils ont postulé, il s'interroge sur la transparence réelle que constitue cette publication dès lors que le code source publié contient des appels à des algorithmes locaux non publiés. La question semble d'autant plus centrale que ces algorithmes locaux jouent un rôle essentiel dans le dispositif « Parcoursup » dans la mesure où ils permettent aux établissements de procéder à leurs sélections. Il s'interroge également sur le fait que la documentation du modèle des données n'a pas été publiée, rendant de facto inutilisable le code source mis à disposition du public. Dès lors, il s'interroge sur les raisons de cette publication partielle des algorithmes et codes sources employés dans la prise de décision administrative. Une telle démarche pourrait s'apparenter à un exercice de communication à défaut de répondre à l'obligation générale de transparence telle qu'instaurée dans la loi Lemaire. Il souhaite également savoir si le Gouvernement entend se livrer à une réelle démarche de transparence algorithmique en rendant publics les algorithmes locaux utilisés par les établissements de l'enseignement supérieur.

    Il fait d’ailleurs écho au sénateur communiste des Hauts-de-Seine Pierre Ouzoulias s'insurge contre les « boîtes noires » que représentent pour lui les algorithmes d'établissements dans la procédure Parcoursup, estimant qu'ils vont être à l'origine d'une « sélection sociale »

    Parcoursup collecte par le biais d’une plateforme nationale des données relatives à la scolarité et la vie sociale (CV, lettre de motivation, stages, etc.) des candidats à l’entrée à l’université. Ces données sont mises à disposition des équipes pédagogiques pour sélectionner les dossiers des étudiants qu’elles veulent accueillir. Sur son blog, Julien Gossa s’est efforcé de montrer que les « moyens supplémentaires » mis en œuvre par le gouvernement ne permettent de financer que trois minutes de travail par dossier. Autant dire que les CV et les lettres de motivation ont bien peu de chances d’être lues !

    Pis, il est certain que de nombreuses universités organisent un pré-tri des dossiers pour rejeter ceux qui ne seront même pas examinés. Cette sélection est réalisée à partir des données de Parcoursup, à l’aide de tableurs et en fonction de critères qui leur sont propres : les fameux « algorithmes locaux », ces outils de tri dont chaque faculté se sert pour sélectionner leurs étudiants.

    Sources : Parcoursup, Nos Députés, EducPros, L'étudiant

    Et vous ?

    Partagez-vous l'avis de ces élus qui estiment que le gouvernement devrait faire un meilleur exercice de communication ?

    Voir aussi :

    Admission Post-Bac : la CNIL interpelle le ministère de l'Enseignement supérieur, sur plusieurs manquements à la loi Informatique et Libertés
    Admission Post-Bac (APB) devient Parcoursup et la CNIL clôture la mise en demeure, estimant que le gouvernement s'est enfin mis en conformité
    L'Éducation nationale envoie une partie de l'algorithme admission post-bac... sur format papier, Droit des lycéens demande de l'aide pour l'analyser
    France : le ministère de l'Éducation nationale interdit les sorties de classe Apple, car elles seraient plus à titre commercial qu'éducatives
    Réforme du bac : Blanquer supprime les séries au lycée pour la voie générale, quelles conséquences sur l'enseignement supérieur en informatique ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  20. #220
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par Stéphane le calme Voir le message
    Et vous ?
    Partagez-vous l'avis de ces élus qui estiment que le gouvernement devrait faire un meilleur exercice de communication ?
    Il est déjà trop tard, la communication aurait du se faire bien plus tôt. Expliquer avant la publication des premiers résultats comment ça allait se passer, montrer une simulation de l'évolution de l'affectation des vœux avec des courbes etc.

Discussions similaires

  1. Sécurité & admission Post Bac
    Par yannick57 dans le forum Etudes
    Réponses: 3
    Dernier message: 08/03/2011, 00h04
  2. Réponses: 7
    Dernier message: 10/02/2009, 11h58
  3. Etudes post-bac STG
    Par Misya dans le forum Etudes
    Réponses: 15
    Dernier message: 03/06/2008, 15h38
  4. [Avis] Mon CV pour poste BAC+4/+5 en J2EE
    Par Machiavel dans le forum CV
    Réponses: 23
    Dernier message: 31/12/2007, 19h41

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