Aujourd’hui j’ai demandé un peu d’expertise extérieure pour savoir quelles étaient les différences de traitements entre un SELECT DISTINCT et un GROUP BY dans Mysql. La question a trouvé sa réponse et pour ceux que ça intéresse, le serveur fait les mêmes optimisations, au moins dans le cas le plus simple.
Ce qui m’a surpris c’est le nombre de gens qui ont fait une réponse basée sur leur simple intuition, souvent très mal conseillère, et parfois présentée comme une explication sûre.
Que les développeurs émettent des hypothèses ou puissent se tromper n’est pas choquant. Par contre se baser sur ses préjugés, ne pas chercher, vérifier, se documenter, ça c’est une vraie faute professionnelle (et ce encore plus quand les préjugés sont dramatiquement faux et injustifiés).
Dans nos métiers il doit y avoir curiosité et envie de chercher la solution, mais surtout cette solution doit être basée sur une compréhension des mécanismes sous-jacents, ou au moins de la documentation fiable, et le tout idéalement recoupé par des tests sérieux.
Peut-être tire-je trop vite aux conclusions mais j’ai l’impression que de plus en plus de développeurs se satisfont de cette façon de faire et oublient que leur travail ne devrait pas se baser sur des informations incomplètes et des pré-jugés. Collègues : Il est temps de vous réveiller.
5 réponses à “D’une façon d’aborder la technique”
C’est un peu le problème posé par notre métier : internet est accessible à tous et par tous. Facile de faire un site, même sans connaissance. Alors quant on a des certitudes, pourquoi chercher plus loin ?
C’est le fameux : « T’es webmaster toi ? Mais c’est pas un métier ça ! »
Et voilà, des gars comme toi arrivent et disent que si, c’est un métier et qu’il faut s’en donner les moyens : bosser un peu, réfléchir, chercher, … Faire son métier quoi !!
Vu la vitesse à laquelle va ce domaine, on ne sait rien et on a tout à apprendre et c’est tant mieux !
(Je suppose que tout ça peut se transposer à pleins d’autres domaines techniques)
Le manque d’esprit critique, autant vis à vis de son propre travail que celui des autres, est un réel problème actuellement.
La plupart des gens prennent pour argent comptant ce qu’ils lisent ou entendent, que ce soit sur le Net, à la radio, à la TV, dans les conférences, sans se poser la moindre question : si l’information est diffusée, c’est qu’elle est forcément fiable alors à quoi bon la remettre en question ?
Il n’y a qu’à voir, par exemple, le nombre de tutoriaux concernant PHP disponibles sur le Net qui ne sont que des simples copier/coller d’autres tutoriaux sans les remettre en question et qui contiennent les mêmes erreurs, ou qui ne vont suffisamment pas au fond des choses, à tel point qu’il y a maintenant des initiatives comme http://www.phptherightway.com pour remettre les choses au point.
Et c’est un problème plus global qui ne se limite malheureusement pas aux techniciens, car toute la société est touchée par ce phénomène, qui prend à mon avis en grande partie sa source d’une propagande marketing et politique de grande envergure induite par la société de consommation et le fonctionnement de nos institutions (temps de cerveau disponible, etc).
Il se passe rarement un jour sans que je ne sois pas heureux d’avoir suivi les cours de M. Ménager, aka Moulinex, en IUT, professeur de communication « à l’ancienne » à l’IUT de Reims, et qui m’a (vigoureusement) encouragé à développer mon esprit critique afin d’en faire bon usage.
Qu’il en soit ici remercié.
« Il existe trois catégories de développeurs web. D’abord ceux qui semblent toujours
tout savoir, quitte à ne vous répondre que quelques instants plus tard, et expriment
leur réponse avec un air d’autorité confiante dans l’exactitude de leurs propos,
laquelle se vérifie en effet à chaque fois. Ensuite ceux qui n’ont pas toutes les
réponses, et semblent ne pas trop savoir où les chercher. Enfin, ceux qui manifestement n’ont qu’une compétence empirique : leurs pages « tombent en marche ». »
Christophe Porteneuve avait déjà tout dit en 2006 ! La citation ci-dessus est tiré de son livre « Bien développer pour le web 2 ». J’ai pourtant bien l’impression qu’à l’époque ou j’ai lu ceci j’y trouvais une réponse à une question qui me travaillais depuis quelques années déjà et que tu poses ici.
Twitter avec sa limitation à 140 caractères n’aide pas à apporter de la nuance dans une réponse à un tweet, par ex. « (par contre j’ai pas testé) », « c’est ce qu’on m’a dit, j’ai jamais pris le temps de vérifier », etc
Ce n’est évidemment pas une excuse sur le fond mais parfois le doute peut profiter à un utilisateur de Twitter ;)
En fait c’est presque pire, twitter de part sa concision, n’aide à détailler ni les réponses ni les énoncés.
Par exemple, il n’était pas fait mention de MySQL, et ça a une influence.
Si on prend postgresql < 8.4 (oui on en trouve) distinct et group by se comportent différemment (sort … unique vs hashaggregate).
Et si on prend le problème plus global (dont l'énoncé pourrait très bien n'être qu'un résumé) les problèmes arrivent au niveau de group by si on a des expressions et des alias et qu'on ne sait pas bien les utiliser (courant).
Bref, c'est pas si évident de tirer des conclusions d'une question sur twitter et des réponses. Ça peut indiquer beaucoup de choses, et pas forcément ce qu'on attend initialement ;-)