Topic de 22ForEveur :

NPM, concrètement, ça sert à quoi

Le 20 février 2021 à 19:35:22 UnaryOperator a écrit :

Le 20 février 2021 à 19:32:36 22ForEveur a écrit :

Le 20 février 2021 à 19:29:31 UnaryOperator a écrit :

Le 20 février 2021 à 19:25:05 22ForEveur a écrit :

Le 20 février 2021 à 19:23:43 UnaryOperator a écrit :

Le 20 février 2021 à 19:21:28 22ForEveur a écrit :

Le 20 février 2021 à 19:17:51 UnaryOperator a écrit :

Le 20 février 2021 à 19:16:18 22ForEveur a écrit :

Le 20 février 2021 à 19:12:12 UnaryOperator a écrit :

Le 20 février 2021 à 19:10:25 22ForEveur a écrit :

Le 20 février 2021 à 19:09:09 UnaryOperator a écrit :
npm ça sert à gérer les dépendances.
Tu renseignes les librairies utilisées par ton projet dans un package.json, et ensuite npm se charge de tirer toutes les dépendances transitives (et de t'avertir autant que possible si certaines sont cassantes).

Après il y a yarn que tu devrais considérer aussi :noel:

Et ça sert à quoi ?
Car j'ai juste besoin de Vue, le reste, je m'en fous...

Et je n'ai rien compris à ce délire de serveur pour générer le front et compagnie (Je ne connais que le serveur PHP, mais le serveur JS, je ne connais pas du tout)

je ne connais pas bien l'écosystème front, mais j'imagine qu'entre ton code source et ce qui sera servit par le navigateur (souvent du code package/minifié, optimisé, par ex avec webpack) il y a un monde. npm sert justement à "préparer" ton app pour la prod.

Je n'utilise rien de tout ça perso...
Juste des fichiers .vue et JS

Tes fichiers .vue ne sont pas lus par le navigateur. Le navigateur lit des fichiers js.
D'où la nécessité de build ces fichiers vue pour qu'ils soient traduits en "js" et qu'ils soient compréhensibles par le navigateur.

Ahhh
Et pourquoi on n'écrit pas en JS directement ?

Je ne comprendrais jamais le délire de frontix à rendre tout inutilement lourd

Parce que tu n'es pas capable de minifier les fichiers et de les optimiser pour un affichage web. C'est tout-à-fait normal ce genre de pratique.

En backend on fait la même chose : on code sous la forme d'un langage compréhensible par les dev. Et dans la majorité des cas le code est compilé pour être optimisé pour la machine.

Mais QUOI ?
J'ai toujours fait du PHP et du JS sans framework sans rien, et ça a toujours bien marché...
Pourquoi avoir besoin de tout ce bordel ?

Parce que PHP et JS c'est peut-être pas les meilleurs outils :hap:

Perso, je préfère avoir un truc que je comprends et qui marche du premier coup, qu'un merdier qui dépend de 5000 packages, et où il faut une usine à gaz pour avoir un semblant de truc fonctionnel...

Sauf que ton code JS "pur" non minifié, ton css pas forcément optimisé (pas de sprite-css), et je parle pas de la résolution des images... et bien tout ça sur un site à fort trafic c'est pas optimal et ça a un coût non négligeable.

C'est pourquoi on a toute cette usine logicielle pour builder.
Et bien avant npm, on utilisait gulp, grunt, branch pour le build... et ensuite bower pour la gestion des dépendances.

C'est pas nouveau. Aujourd'hui on a standardisé les pratiques.

Mouais, je ne suis pas convaincu du truc je t'avoue...
Je suis dev C/Linux à la base, c'est peut-être pour ça

Le 20 février 2021 à 19:36:41 UnaryOperator a écrit :

Le 20 février 2021 à 19:33:26 22ForEveur a écrit :

Le 20 février 2021 à 19:30:42 LePandaBrun a écrit :

Le 20 février 2021 à 19:25:05 22ForEveur a écrit :

Le 20 février 2021 à 19:23:43 UnaryOperator a écrit :

Le 20 février 2021 à 19:21:28 22ForEveur a écrit :

Le 20 février 2021 à 19:17:51 UnaryOperator a écrit :

Le 20 février 2021 à 19:16:18 22ForEveur a écrit :

Le 20 février 2021 à 19:12:12 UnaryOperator a écrit :

Le 20 février 2021 à 19:10:25 22ForEveur a écrit :

Le 20 février 2021 à 19:09:09 UnaryOperator a écrit :
npm ça sert à gérer les dépendances.
Tu renseignes les librairies utilisées par ton projet dans un package.json, et ensuite npm se charge de tirer toutes les dépendances transitives (et de t'avertir autant que possible si certaines sont cassantes).

Après il y a yarn que tu devrais considérer aussi :noel:

Et ça sert à quoi ?
Car j'ai juste besoin de Vue, le reste, je m'en fous...

Et je n'ai rien compris à ce délire de serveur pour générer le front et compagnie (Je ne connais que le serveur PHP, mais le serveur JS, je ne connais pas du tout)

je ne connais pas bien l'écosystème front, mais j'imagine qu'entre ton code source et ce qui sera servit par le navigateur (souvent du code package/minifié, optimisé, par ex avec webpack) il y a un monde. npm sert justement à "préparer" ton app pour la prod.

Je n'utilise rien de tout ça perso...
Juste des fichiers .vue et JS

Tes fichiers .vue ne sont pas lus par le navigateur. Le navigateur lit des fichiers js.
D'où la nécessité de build ces fichiers vue pour qu'ils soient traduits en "js" et qu'ils soient compréhensibles par le navigateur.

Ahhh
Et pourquoi on n'écrit pas en JS directement ?

Je ne comprendrais jamais le délire de frontix à rendre tout inutilement lourd

Parce que tu n'es pas capable de minifier les fichiers et de les optimiser pour un affichage web. C'est tout-à-fait normal ce genre de pratique.

En backend on fait la même chose : on code sous la forme d'un langage compréhensible par les dev. Et dans la majorité des cas le code est compilé pour être optimisé pour la machine.

Mais QUOI ?
J'ai toujours fait du PHP et du JS sans framework sans rien, et ça a toujours bien marché...
Pourquoi avoir besoin de tout ce bordel ?

Et depuis quand tu fais de l'assembleur en Web ? (Même si je trouve ça plus simple que tout ce bazar)

Trouver l'assembleur plus simple que l'écosystème web...
Et des framework comme vue js servent principalement à gagner du temps sur tes devs, ainsi que d'avoir une architecture et une syntaxe similaires entre différents projets

Puis, react par exemple, permet de mettre à jour l'État d'un composant localement sans avoir à recharger toute ta page Web et donc de gagner en perf

Ben au moins on sait précisément ce qu'on fait en C/ASM/Java
Là, on tente de faire de la magie noire sans savoir ce que ça fait réellement

Tu parles de Java et de C, mais c'est la même chose. Ces deux langages sont compilés. Ce que tu écris, ce n'est pas ce qui est exécuté par la machine.

Oui, je sais, mais en C, j'ai juste à faire "gcc ...", et ça marche

Le 20 février 2021 à 19:37:51 22ForEveur a écrit :

Le 20 février 2021 à 19:36:41 UnaryOperator a écrit :

Le 20 février 2021 à 19:33:26 22ForEveur a écrit :

Le 20 février 2021 à 19:30:42 LePandaBrun a écrit :

Le 20 février 2021 à 19:25:05 22ForEveur a écrit :

Le 20 février 2021 à 19:23:43 UnaryOperator a écrit :

Le 20 février 2021 à 19:21:28 22ForEveur a écrit :

Le 20 février 2021 à 19:17:51 UnaryOperator a écrit :

Le 20 février 2021 à 19:16:18 22ForEveur a écrit :

Le 20 février 2021 à 19:12:12 UnaryOperator a écrit :

Le 20 février 2021 à 19:10:25 22ForEveur a écrit :

Le 20 février 2021 à 19:09:09 UnaryOperator a écrit :
npm ça sert à gérer les dépendances.
Tu renseignes les librairies utilisées par ton projet dans un package.json, et ensuite npm se charge de tirer toutes les dépendances transitives (et de t'avertir autant que possible si certaines sont cassantes).

Après il y a yarn que tu devrais considérer aussi :noel:

Et ça sert à quoi ?
Car j'ai juste besoin de Vue, le reste, je m'en fous...

Et je n'ai rien compris à ce délire de serveur pour générer le front et compagnie (Je ne connais que le serveur PHP, mais le serveur JS, je ne connais pas du tout)

je ne connais pas bien l'écosystème front, mais j'imagine qu'entre ton code source et ce qui sera servit par le navigateur (souvent du code package/minifié, optimisé, par ex avec webpack) il y a un monde. npm sert justement à "préparer" ton app pour la prod.

Je n'utilise rien de tout ça perso...
Juste des fichiers .vue et JS

Tes fichiers .vue ne sont pas lus par le navigateur. Le navigateur lit des fichiers js.
D'où la nécessité de build ces fichiers vue pour qu'ils soient traduits en "js" et qu'ils soient compréhensibles par le navigateur.

Ahhh
Et pourquoi on n'écrit pas en JS directement ?

Je ne comprendrais jamais le délire de frontix à rendre tout inutilement lourd

Parce que tu n'es pas capable de minifier les fichiers et de les optimiser pour un affichage web. C'est tout-à-fait normal ce genre de pratique.

En backend on fait la même chose : on code sous la forme d'un langage compréhensible par les dev. Et dans la majorité des cas le code est compilé pour être optimisé pour la machine.

Mais QUOI ?
J'ai toujours fait du PHP et du JS sans framework sans rien, et ça a toujours bien marché...
Pourquoi avoir besoin de tout ce bordel ?

Et depuis quand tu fais de l'assembleur en Web ? (Même si je trouve ça plus simple que tout ce bazar)

Trouver l'assembleur plus simple que l'écosystème web...
Et des framework comme vue js servent principalement à gagner du temps sur tes devs, ainsi que d'avoir une architecture et une syntaxe similaires entre différents projets

Puis, react par exemple, permet de mettre à jour l'État d'un composant localement sans avoir à recharger toute ta page Web et donc de gagner en perf

Ben au moins on sait précisément ce qu'on fait en C/ASM/Java
Là, on tente de faire de la magie noire sans savoir ce que ça fait réellement

Tu parles de Java et de C, mais c'est la même chose. Ces deux langages sont compilés. Ce que tu écris, ce n'est pas ce qui est exécuté par la machine.

Oui, je sais, mais en C, j'ai juste à faire "gcc ...", et ça marche

ben là c'est pareil. T'as juste à faire npm build et ça marche.

Le 20 février 2021 à 19:38:35 UnaryOperator a écrit :

Le 20 février 2021 à 19:37:51 22ForEveur a écrit :

Le 20 février 2021 à 19:36:41 UnaryOperator a écrit :

Le 20 février 2021 à 19:33:26 22ForEveur a écrit :

Le 20 février 2021 à 19:30:42 LePandaBrun a écrit :

Le 20 février 2021 à 19:25:05 22ForEveur a écrit :

Le 20 février 2021 à 19:23:43 UnaryOperator a écrit :

Le 20 février 2021 à 19:21:28 22ForEveur a écrit :

Le 20 février 2021 à 19:17:51 UnaryOperator a écrit :

Le 20 février 2021 à 19:16:18 22ForEveur a écrit :

Le 20 février 2021 à 19:12:12 UnaryOperator a écrit :

Le 20 février 2021 à 19:10:25 22ForEveur a écrit :

Le 20 février 2021 à 19:09:09 UnaryOperator a écrit :
npm ça sert à gérer les dépendances.
Tu renseignes les librairies utilisées par ton projet dans un package.json, et ensuite npm se charge de tirer toutes les dépendances transitives (et de t'avertir autant que possible si certaines sont cassantes).

Après il y a yarn que tu devrais considérer aussi :noel:

Et ça sert à quoi ?
Car j'ai juste besoin de Vue, le reste, je m'en fous...

Et je n'ai rien compris à ce délire de serveur pour générer le front et compagnie (Je ne connais que le serveur PHP, mais le serveur JS, je ne connais pas du tout)

je ne connais pas bien l'écosystème front, mais j'imagine qu'entre ton code source et ce qui sera servit par le navigateur (souvent du code package/minifié, optimisé, par ex avec webpack) il y a un monde. npm sert justement à "préparer" ton app pour la prod.

Je n'utilise rien de tout ça perso...
Juste des fichiers .vue et JS

Tes fichiers .vue ne sont pas lus par le navigateur. Le navigateur lit des fichiers js.
D'où la nécessité de build ces fichiers vue pour qu'ils soient traduits en "js" et qu'ils soient compréhensibles par le navigateur.

Ahhh
Et pourquoi on n'écrit pas en JS directement ?

Je ne comprendrais jamais le délire de frontix à rendre tout inutilement lourd

Parce que tu n'es pas capable de minifier les fichiers et de les optimiser pour un affichage web. C'est tout-à-fait normal ce genre de pratique.

En backend on fait la même chose : on code sous la forme d'un langage compréhensible par les dev. Et dans la majorité des cas le code est compilé pour être optimisé pour la machine.

Mais QUOI ?
J'ai toujours fait du PHP et du JS sans framework sans rien, et ça a toujours bien marché...
Pourquoi avoir besoin de tout ce bordel ?

Et depuis quand tu fais de l'assembleur en Web ? (Même si je trouve ça plus simple que tout ce bazar)

Trouver l'assembleur plus simple que l'écosystème web...
Et des framework comme vue js servent principalement à gagner du temps sur tes devs, ainsi que d'avoir une architecture et une syntaxe similaires entre différents projets

Puis, react par exemple, permet de mettre à jour l'État d'un composant localement sans avoir à recharger toute ta page Web et donc de gagner en perf

Ben au moins on sait précisément ce qu'on fait en C/ASM/Java
Là, on tente de faire de la magie noire sans savoir ce que ça fait réellement

Tu parles de Java et de C, mais c'est la même chose. Ces deux langages sont compilés. Ce que tu écris, ce n'est pas ce qui est exécuté par la machine.

Oui, je sais, mais en C, j'ai juste à faire "gcc ...", et ça marche

ben là c'est pareil. T'as juste à faire npm build et ça marche.

Sauf qu'un npm build ça converti ton vuejs par exemple en fichier js minifier
Donc au final on compile vers un language interprété
Alors que dans le cas de Java ou C on compile pour que ce soit interprété par la machine directement

C'est pas le même niveau d'abstraction au niveau du Code :hap:

Le 20 février 2021 à 19:42:15 LePandaBrun a écrit :

Le 20 février 2021 à 19:38:35 UnaryOperator a écrit :

Le 20 février 2021 à 19:37:51 22ForEveur a écrit :

Le 20 février 2021 à 19:36:41 UnaryOperator a écrit :

Le 20 février 2021 à 19:33:26 22ForEveur a écrit :

Le 20 février 2021 à 19:30:42 LePandaBrun a écrit :

Le 20 février 2021 à 19:25:05 22ForEveur a écrit :

Le 20 février 2021 à 19:23:43 UnaryOperator a écrit :

Le 20 février 2021 à 19:21:28 22ForEveur a écrit :

Le 20 février 2021 à 19:17:51 UnaryOperator a écrit :

Le 20 février 2021 à 19:16:18 22ForEveur a écrit :

Le 20 février 2021 à 19:12:12 UnaryOperator a écrit :

Le 20 février 2021 à 19:10:25 22ForEveur a écrit :

Le 20 février 2021 à 19:09:09 UnaryOperator a écrit :
npm ça sert à gérer les dépendances.
Tu renseignes les librairies utilisées par ton projet dans un package.json, et ensuite npm se charge de tirer toutes les dépendances transitives (et de t'avertir autant que possible si certaines sont cassantes).

Après il y a yarn que tu devrais considérer aussi :noel:

Et ça sert à quoi ?
Car j'ai juste besoin de Vue, le reste, je m'en fous...

Et je n'ai rien compris à ce délire de serveur pour générer le front et compagnie (Je ne connais que le serveur PHP, mais le serveur JS, je ne connais pas du tout)

je ne connais pas bien l'écosystème front, mais j'imagine qu'entre ton code source et ce qui sera servit par le navigateur (souvent du code package/minifié, optimisé, par ex avec webpack) il y a un monde. npm sert justement à "préparer" ton app pour la prod.

Je n'utilise rien de tout ça perso...
Juste des fichiers .vue et JS

Tes fichiers .vue ne sont pas lus par le navigateur. Le navigateur lit des fichiers js.
D'où la nécessité de build ces fichiers vue pour qu'ils soient traduits en "js" et qu'ils soient compréhensibles par le navigateur.

Ahhh
Et pourquoi on n'écrit pas en JS directement ?

Je ne comprendrais jamais le délire de frontix à rendre tout inutilement lourd

Parce que tu n'es pas capable de minifier les fichiers et de les optimiser pour un affichage web. C'est tout-à-fait normal ce genre de pratique.

En backend on fait la même chose : on code sous la forme d'un langage compréhensible par les dev. Et dans la majorité des cas le code est compilé pour être optimisé pour la machine.

Mais QUOI ?
J'ai toujours fait du PHP et du JS sans framework sans rien, et ça a toujours bien marché...
Pourquoi avoir besoin de tout ce bordel ?

Et depuis quand tu fais de l'assembleur en Web ? (Même si je trouve ça plus simple que tout ce bazar)

Trouver l'assembleur plus simple que l'écosystème web...
Et des framework comme vue js servent principalement à gagner du temps sur tes devs, ainsi que d'avoir une architecture et une syntaxe similaires entre différents projets

Puis, react par exemple, permet de mettre à jour l'État d'un composant localement sans avoir à recharger toute ta page Web et donc de gagner en perf

Ben au moins on sait précisément ce qu'on fait en C/ASM/Java
Là, on tente de faire de la magie noire sans savoir ce que ça fait réellement

Tu parles de Java et de C, mais c'est la même chose. Ces deux langages sont compilés. Ce que tu écris, ce n'est pas ce qui est exécuté par la machine.

Oui, je sais, mais en C, j'ai juste à faire "gcc ...", et ça marche

ben là c'est pareil. T'as juste à faire npm build et ça marche.

Sauf qu'un npm build ça converti ton vuejs par exemple en fichier js minifier
Donc au final on compile vers un language interprété
Alors que dans le cas de Java ou C on compile pour que ce soit interprété par la machine directement

C'est pas le même niveau d'abstraction au niveau du Code :hap:

C'est faux dans le cas de Java (avant graalvm). Le build produit du bytecode, qui est interprété par la JVM.
C'est qu'au bout d'un moment, que certains fragments de bytecode sont compilés par la JVM (via JIT) en code natif.

Le 20 février 2021 à 19:49:22 UnaryOperator a écrit :

Le 20 février 2021 à 19:42:15 LePandaBrun a écrit :

Le 20 février 2021 à 19:38:35 UnaryOperator a écrit :

Le 20 février 2021 à 19:37:51 22ForEveur a écrit :

Le 20 février 2021 à 19:36:41 UnaryOperator a écrit :

Le 20 février 2021 à 19:33:26 22ForEveur a écrit :

Le 20 février 2021 à 19:30:42 LePandaBrun a écrit :

Le 20 février 2021 à 19:25:05 22ForEveur a écrit :

Le 20 février 2021 à 19:23:43 UnaryOperator a écrit :

Le 20 février 2021 à 19:21:28 22ForEveur a écrit :

Le 20 février 2021 à 19:17:51 UnaryOperator a écrit :

Le 20 février 2021 à 19:16:18 22ForEveur a écrit :

Le 20 février 2021 à 19:12:12 UnaryOperator a écrit :

Le 20 février 2021 à 19:10:25 22ForEveur a écrit :

Le 20 février 2021 à 19:09:09 UnaryOperator a écrit :
npm ça sert à gérer les dépendances.
Tu renseignes les librairies utilisées par ton projet dans un package.json, et ensuite npm se charge de tirer toutes les dépendances transitives (et de t'avertir autant que possible si certaines sont cassantes).

Après il y a yarn que tu devrais considérer aussi :noel:

Et ça sert à quoi ?
Car j'ai juste besoin de Vue, le reste, je m'en fous...

Et je n'ai rien compris à ce délire de serveur pour générer le front et compagnie (Je ne connais que le serveur PHP, mais le serveur JS, je ne connais pas du tout)

je ne connais pas bien l'écosystème front, mais j'imagine qu'entre ton code source et ce qui sera servit par le navigateur (souvent du code package/minifié, optimisé, par ex avec webpack) il y a un monde. npm sert justement à "préparer" ton app pour la prod.

Je n'utilise rien de tout ça perso...
Juste des fichiers .vue et JS

Tes fichiers .vue ne sont pas lus par le navigateur. Le navigateur lit des fichiers js.
D'où la nécessité de build ces fichiers vue pour qu'ils soient traduits en "js" et qu'ils soient compréhensibles par le navigateur.

Ahhh
Et pourquoi on n'écrit pas en JS directement ?

Je ne comprendrais jamais le délire de frontix à rendre tout inutilement lourd

Parce que tu n'es pas capable de minifier les fichiers et de les optimiser pour un affichage web. C'est tout-à-fait normal ce genre de pratique.

En backend on fait la même chose : on code sous la forme d'un langage compréhensible par les dev. Et dans la majorité des cas le code est compilé pour être optimisé pour la machine.

Mais QUOI ?
J'ai toujours fait du PHP et du JS sans framework sans rien, et ça a toujours bien marché...
Pourquoi avoir besoin de tout ce bordel ?

Et depuis quand tu fais de l'assembleur en Web ? (Même si je trouve ça plus simple que tout ce bazar)

Trouver l'assembleur plus simple que l'écosystème web...
Et des framework comme vue js servent principalement à gagner du temps sur tes devs, ainsi que d'avoir une architecture et une syntaxe similaires entre différents projets

Puis, react par exemple, permet de mettre à jour l'État d'un composant localement sans avoir à recharger toute ta page Web et donc de gagner en perf

Ben au moins on sait précisément ce qu'on fait en C/ASM/Java
Là, on tente de faire de la magie noire sans savoir ce que ça fait réellement

Tu parles de Java et de C, mais c'est la même chose. Ces deux langages sont compilés. Ce que tu écris, ce n'est pas ce qui est exécuté par la machine.

Oui, je sais, mais en C, j'ai juste à faire "gcc ...", et ça marche

ben là c'est pareil. T'as juste à faire npm build et ça marche.

Sauf qu'un npm build ça converti ton vuejs par exemple en fichier js minifier
Donc au final on compile vers un language interprété
Alors que dans le cas de Java ou C on compile pour que ce soit interprété par la machine directement

C'est pas le même niveau d'abstraction au niveau du Code :hap:

C'est faux dans le cas de Java (avant graalvm). Le build produit du bytecode, qui est interprété par la JVM.
C'est qu'au bout d'un moment, que certains fragments de bytecode sont compilés par la JVM (via JIT) en code natif.

Pourtant Java est considéré comme étant un language compilé ? J'y comprend plus rien

Le 20 février 2021 à 19:50:51 LePandaBrun a écrit :

Le 20 février 2021 à 19:49:22 UnaryOperator a écrit :

Le 20 février 2021 à 19:42:15 LePandaBrun a écrit :

Le 20 février 2021 à 19:38:35 UnaryOperator a écrit :

Le 20 février 2021 à 19:37:51 22ForEveur a écrit :

Le 20 février 2021 à 19:36:41 UnaryOperator a écrit :

Le 20 février 2021 à 19:33:26 22ForEveur a écrit :

Le 20 février 2021 à 19:30:42 LePandaBrun a écrit :

Le 20 février 2021 à 19:25:05 22ForEveur a écrit :

Le 20 février 2021 à 19:23:43 UnaryOperator a écrit :

Le 20 février 2021 à 19:21:28 22ForEveur a écrit :

Le 20 février 2021 à 19:17:51 UnaryOperator a écrit :

Le 20 février 2021 à 19:16:18 22ForEveur a écrit :

Le 20 février 2021 à 19:12:12 UnaryOperator a écrit :

Le 20 février 2021 à 19:10:25 22ForEveur a écrit :

Le 20 février 2021 à 19:09:09 UnaryOperator a écrit :
npm ça sert à gérer les dépendances.
Tu renseignes les librairies utilisées par ton projet dans un package.json, et ensuite npm se charge de tirer toutes les dépendances transitives (et de t'avertir autant que possible si certaines sont cassantes).

Après il y a yarn que tu devrais considérer aussi :noel:

Et ça sert à quoi ?
Car j'ai juste besoin de Vue, le reste, je m'en fous...

Et je n'ai rien compris à ce délire de serveur pour générer le front et compagnie (Je ne connais que le serveur PHP, mais le serveur JS, je ne connais pas du tout)

je ne connais pas bien l'écosystème front, mais j'imagine qu'entre ton code source et ce qui sera servit par le navigateur (souvent du code package/minifié, optimisé, par ex avec webpack) il y a un monde. npm sert justement à "préparer" ton app pour la prod.

Je n'utilise rien de tout ça perso...
Juste des fichiers .vue et JS

Tes fichiers .vue ne sont pas lus par le navigateur. Le navigateur lit des fichiers js.
D'où la nécessité de build ces fichiers vue pour qu'ils soient traduits en "js" et qu'ils soient compréhensibles par le navigateur.

Ahhh
Et pourquoi on n'écrit pas en JS directement ?

Je ne comprendrais jamais le délire de frontix à rendre tout inutilement lourd

Parce que tu n'es pas capable de minifier les fichiers et de les optimiser pour un affichage web. C'est tout-à-fait normal ce genre de pratique.

En backend on fait la même chose : on code sous la forme d'un langage compréhensible par les dev. Et dans la majorité des cas le code est compilé pour être optimisé pour la machine.

Mais QUOI ?
J'ai toujours fait du PHP et du JS sans framework sans rien, et ça a toujours bien marché...
Pourquoi avoir besoin de tout ce bordel ?

Et depuis quand tu fais de l'assembleur en Web ? (Même si je trouve ça plus simple que tout ce bazar)

Trouver l'assembleur plus simple que l'écosystème web...
Et des framework comme vue js servent principalement à gagner du temps sur tes devs, ainsi que d'avoir une architecture et une syntaxe similaires entre différents projets

Puis, react par exemple, permet de mettre à jour l'État d'un composant localement sans avoir à recharger toute ta page Web et donc de gagner en perf

Ben au moins on sait précisément ce qu'on fait en C/ASM/Java
Là, on tente de faire de la magie noire sans savoir ce que ça fait réellement

Tu parles de Java et de C, mais c'est la même chose. Ces deux langages sont compilés. Ce que tu écris, ce n'est pas ce qui est exécuté par la machine.

Oui, je sais, mais en C, j'ai juste à faire "gcc ...", et ça marche

ben là c'est pareil. T'as juste à faire npm build et ça marche.

Sauf qu'un npm build ça converti ton vuejs par exemple en fichier js minifier
Donc au final on compile vers un language interprété
Alors que dans le cas de Java ou C on compile pour que ce soit interprété par la machine directement

C'est pas le même niveau d'abstraction au niveau du Code :hap:

C'est faux dans le cas de Java (avant graalvm). Le build produit du bytecode, qui est interprété par la JVM.
C'est qu'au bout d'un moment, que certains fragments de bytecode sont compilés par la JVM (via JIT) en code natif.

Pourtant Java est considéré comme étant un language compilé ? J'y comprend plus rien

Non Java est un langage semi-compilé (ou semi-interprété selon le point de vue).
Le code source java (fichiers .java) est traduit en bytecode lors de la compilation.

Ce bytecode est un type de format binaire, mais n'est pas directement exécutable par l'OS. Il est interprété par la JVM avant d'être remanié et optimisé en interne. Et, certains fragments, sont compilés en code natif par JIT lors du runtime.

C'est un abus de langage de dire que Java est un langage compilé.

Donc y a language interprété, semi-compilé et compilé ?
Donc C c'est compilé en code natif ou c'est semi-compilé ?

Édit : Java on m'a toujours vendu ça comme étant compilé pourtant :rire:

Le 20 février 2021 à 19:55:59 LePandaBrun a écrit :
Donc y a language interprété, semi-compilé et compilé ?
Donc C c'est compilé en code natif ou c'est semi-compilé ?

C est un langage purement compilé, selon l'OS cible on utilisera pas le même compilateur.
Java est un langage semi-compilé, on utilise le même build et c'est la JVM qui fera le travail de "glue code" avec l'OS sur lequel est exécuté le code.
JS et PHP sont des langages interprétés.

Le 20 février 2021 à 19:55:59 LePandaBrun a écrit :
Donc y a language interprété, semi-compilé et compilé ?
Donc C c'est compilé en code natif ou c'est semi-compilé ?

Édit : Java on m'a toujours vendu ça comme étant compilé pourtant :rire:

A partir du moment où tu as besoin d'une VM pour faire tourner le code (la JVM dans le cas de Java) ça veut dire que le résultat de la compilation n'est pas du code natif mais un code intermédiaire (bytecode) :noel:

Je comprends rien mais c'est fascinant. https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

Le 20 février 2021 à 20:02:49 Forcevive a écrit :
Je comprends rien mais c'est fascinant. https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

Suffit de lire wikipedia :
https://fr.wikipedia.org/wiki/Java_(langage)

Une particularité de Java est que les logiciels écrits dans ce langage sont compilés vers une représentation binaire intermédiaire qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation.

Le langage binaire intermédiaire (bytecode... fichiers .class) est ensuite interprété par la JVM.
Mais la JVM contient en interne un compiler (JIT) qui fait de la compilation brutale en code natif. Donc la JVM est d'abord un interpréter... mais aussi un compilateur :hap:

Quelques éléments de réponse ici
https://stackoverflow.com/a/14708631/7443775

Le 20 février 2021 à 20:06:01 UnaryOperator a écrit :

Le 20 février 2021 à 20:02:49 Forcevive a écrit :
Je comprends rien mais c'est fascinant. https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

Suffit de lire wikipedia :
https://fr.wikipedia.org/wiki/Java_(langage)

Une particularité de Java est que les logiciels écrits dans ce langage sont compilés vers une représentation binaire intermédiaire qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation.

Le langage binaire intermédiaire (bytecode... fichiers .class) est ensuite interprété par la JVM.
Mais la JVM contient en interne un compiler (JIT) qui fait de la compilation brutale en code natif. Donc la JVM est d'abord un interpréter... mais aussi un compilateur :hap:

Quelques éléments de réponse ici
https://stackoverflow.com/a/14708631/7443775

Je suis pas l'op, j'ai fait 0 info dans ma vie à part une tentative avortée de html avec le site du 0 https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

Le 20 février 2021 à 20:07:43 Forcevive a écrit :

Le 20 février 2021 à 20:06:01 UnaryOperator a écrit :

Le 20 février 2021 à 20:02:49 Forcevive a écrit :
Je comprends rien mais c'est fascinant. https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

Suffit de lire wikipedia :
https://fr.wikipedia.org/wiki/Java_(langage)

Une particularité de Java est que les logiciels écrits dans ce langage sont compilés vers une représentation binaire intermédiaire qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation.

Le langage binaire intermédiaire (bytecode... fichiers .class) est ensuite interprété par la JVM.
Mais la JVM contient en interne un compiler (JIT) qui fait de la compilation brutale en code natif. Donc la JVM est d'abord un interpréter... mais aussi un compilateur :hap:

Quelques éléments de réponse ici
https://stackoverflow.com/a/14708631/7443775

Je suis pas l'op, j'ai fait 0 info dans ma vie à part une tentative avortée de html avec le site du 0 https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

On commence tous par là
Puis vient JS et le début des emmerdes :rire:

Le 20 février 2021 à 21:17:43 LePandaBrun a écrit :

Le 20 février 2021 à 20:07:43 Forcevive a écrit :

Le 20 février 2021 à 20:06:01 UnaryOperator a écrit :

Le 20 février 2021 à 20:02:49 Forcevive a écrit :
Je comprends rien mais c'est fascinant. https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

Suffit de lire wikipedia :
https://fr.wikipedia.org/wiki/Java_(langage)

Une particularité de Java est que les logiciels écrits dans ce langage sont compilés vers une représentation binaire intermédiaire qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation.

Le langage binaire intermédiaire (bytecode... fichiers .class) est ensuite interprété par la JVM.
Mais la JVM contient en interne un compiler (JIT) qui fait de la compilation brutale en code natif. Donc la JVM est d'abord un interpréter... mais aussi un compilateur :hap:

Quelques éléments de réponse ici
https://stackoverflow.com/a/14708631/7443775

Je suis pas l'op, j'ai fait 0 info dans ma vie à part une tentative avortée de html avec le site du 0 https://image.noelshack.com/fichiers/2021/03/7/1611492741-ahi-gros.png

On commence tous par là
Puis vient JS et le début des emmerdes :rire:

Faites du C et de la programmation UNIX, c'est beaucoup mieux que le Web...
L'embarqué c'est cool aussi !

Bordel c'est quoi ces explications comment vous voulez que l'op comprenne avec ça https://image.noelshack.com/fichiers/2019/06/5/1549652527-issoumainss.png

Données du topic

Auteur
22ForEveur
Date de création
20 février 2021 à 19:04:58
Nb. messages archivés
36
Nb. messages JVC
36
Voir le topic sur JVC

Afficher uniquement les messages de l'auteur du topic

En ligne sur JvArchive

JvArchive compagnon

Découvrez JvArchive compagnon , l'userscript combattant la censure abusive sur le 18-25 !