Non pas que ces one-liners ne soient pas utiles. C'est juste
que c'est chiant de se retrouver avec "un module = une fonction
= une ligne".
C'est sans doute par design, parce que JS est interprété et parfois téléchargé.
Prenons du code C (ou Rust, ou Go). Le compilo va éliminer le code mort, et comme il n'y a pas d'introspection à l’exécution, ce n'est pas une tache trop complexe.
C'est beaucoup plus difficile de faire ça au lancement d'un programme non compilé, vu qu'il n'y a pas stricto sensu de séparation entre compilation et exécution.
Dans le cas de python, il n'y a pas d'échange réseau, donc la pénalité d'avoir du code en trop est minime. Ça prends de l'espace disque, ça ralenti un peu le lancement, mais ça va. Et quand tu as des besoins spécifiques, tu peux revenir sur des alternatives (rust, C, etc)
Dans le cas de JS, c'est autre chose. Si tu veux du code du coté client, tu es assez vite coincé. Pour commencer, il n'y as pas trop d'alternatives pour faire du code sur le terminal client (eg, un navigateur). Il y a JS et les trucs par dessus JS. Flash et Java, c'est un peu mort depuis longtemps. Et maintenant, il y a WASM, mais c'est un changement récent. Donc il y a eu un moment ou il fallait faire avec.
À coté de ça, la solution de "je m'en fout d'avoir du code qui sert à rien" n'est pas applicable. Car non seulement ça va te coûter de l'argent (la BP est pas gratuite), mais en plus, ça va te coûter de la réactivité. Et ç'est multiplié par le nombre de clients.
Donc si tu peux pas passer sous le tapis le problème de "j'ai trop de code", et qu'un compilo ne peux pas trop t'aider (car c'est un langage de script), il y a pas trop de solutions, faut faire le taf à la main, eg avoir des libs avec 1 fonction, pour donner un contrôle fin pour les gens qui le veulent.
[^] # Re: D'un extrême à l'autre ?
Posté par Misc (site web personnel) . En réponse au journal De l'art d'être indépendant des dépendances. Évalué à 10.
C'est sans doute par design, parce que JS est interprété et parfois téléchargé.
Prenons du code C (ou Rust, ou Go). Le compilo va éliminer le code mort, et comme il n'y a pas d'introspection à l’exécution, ce n'est pas une tache trop complexe.
C'est beaucoup plus difficile de faire ça au lancement d'un programme non compilé, vu qu'il n'y a pas stricto sensu de séparation entre compilation et exécution.
Dans le cas de python, il n'y a pas d'échange réseau, donc la pénalité d'avoir du code en trop est minime. Ça prends de l'espace disque, ça ralenti un peu le lancement, mais ça va. Et quand tu as des besoins spécifiques, tu peux revenir sur des alternatives (rust, C, etc)
Dans le cas de JS, c'est autre chose. Si tu veux du code du coté client, tu es assez vite coincé. Pour commencer, il n'y as pas trop d'alternatives pour faire du code sur le terminal client (eg, un navigateur). Il y a JS et les trucs par dessus JS. Flash et Java, c'est un peu mort depuis longtemps. Et maintenant, il y a WASM, mais c'est un changement récent. Donc il y a eu un moment ou il fallait faire avec.
À coté de ça, la solution de "je m'en fout d'avoir du code qui sert à rien" n'est pas applicable. Car non seulement ça va te coûter de l'argent (la BP est pas gratuite), mais en plus, ça va te coûter de la réactivité. Et ç'est multiplié par le nombre de clients.
Donc si tu peux pas passer sous le tapis le problème de "j'ai trop de code", et qu'un compilo ne peux pas trop t'aider (car c'est un langage de script), il y a pas trop de solutions, faut faire le taf à la main, eg avoir des libs avec 1 fonction, pour donner un contrôle fin pour les gens qui le veulent.