Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: Projet-Z / Packs de ressources: Tilesets médiévaux (...) / News: Et le grand gagnant est... (...) / Scripts: Texte ondulant et texte (...) / Tutos: Résoudre le bug du Game Over (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

88 connectés actuellement

26585673 visiteurs
depuis l'ouverture

8 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Lumen

RPG Maker VX

Level Up!

Le Temple de Valor

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > La Taverne > Topic de l'informatique

Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

Reprise du message précédent:

xvw - posté le 06/05/2020 à 11:00:25 (730 messages postés)

❤ 1

yo

Citation:

Vue est mieux que React et Angular, tu penses, donc ?


Les mauvaises langues diront que les trois sont mauvais...

Concernant Babel coté Node, ça a un peu de sens hein. Babel est nécéssaire côté client parce que tu n'as pas de contrôle sur le navigateur (et donc par extension l'interpréteur javascript qu'il utilise) donc il est nécéssaire de produire le javascript "le moins futuriste possible" (par norme; ES4 ou 5) pour être supporté par le plus de monde. Comme Node s'exécute sur un serveur où tu contrôles la version de Node que tu utilises... tu es beaucoup moins limité par les évolutions du langage. Donc la dernière version de Node embarque généralement les fonctionnalités "spécifiées" de JS.

mon blog


Suite du sujet:

Lünn - posté le 06/05/2020 à 12:47:22 (4207 messages postés)

❤ 0

Citation:

Vue est mieux que React et Angular, tu penses, donc ?


Disons que tu peux prendre en main Vue assez rapidement.
Mais avec le temps je ne vois honnêtement pas l'intérêt d'utiliser un framework pour un projet perso. Sauf peut-être si on veut en faire une App mobile par la suite. J'ai toujours eu du mal à comprendre comment convertir une app web sur mobile. D'après mes souvenirs il faut utiliser un conteneur qui va ouvrir une page web (cordova, ionic ?).

Aujourd'hui j'utilise un CMS si j'ai besoin d'un blog mais... sinon node/express suffisent non ?

Tu utilises quoi de l'ES6 ?

Node permet déjà require(), module.exports = {}... etc

Citation:

Donc la dernière version de Node embarque généralement les fonctionnalités "spécifiées" de JS.


J'ai fouillé dans mon dernier chatBot, mes seules dépendances sont express, soclet.io et lodash (pour manipuler des objets je crois).


AzRa - posté le 06/05/2020 à 13:08:50 (10840 messages postés)

❤ 0

Citation:

Tu utilises quoi de l'ES6 ?

Node permet déjà require(), module.exports = {}... etc


J'ai appris avec l'ES6, donc en fait j'en utilise les fonctionnalités sans savoir si elles sont nouvelles ou anciennes.
Les seules dont je sais qu'elles sont bien de l'ES6 c'est celles que tu cites : require et export. Après j'ai cru comprendre que const n'existait pas non plus en ES5 mais ça me semble un peu gros ? (Encore qu'en fait il suffit de mettre une majuscule à sa variable pour en faire une constante, en pratique, or ça je suppose que ça a toujours existé ?)

En tout cas, oui, Node en tant que tel permet d'utiliser l'ES6, mais pas avec Express en tant que serveur, ou alors vraiment une version récente dont je n'aurais pas encore entendu parler.
Sinon oui, ça marche pour des programmes locaux que tu fais tourner dans ton terminal/invite de commandes. Ça oui.

Citation:

J'ai fouillé dans mon dernier chatBot, mes seules dépendances sont express, soclet.io et lodash (pour manipuler des objets je crois).


Pour ce projet j'en ai 3 :
"dotenv": "^8.2.0",
"express": "^4.17.1",
"socket.io": "^2.3.0"


Lünn - posté le 06/05/2020 à 13:22:45 (4207 messages postés)

❤ 0

Et tu accèdes à ton serveur / vps en ssh ?

On peut utiliser require() et module.export sur Node, sans Babel.
Pour const, je pense surtout que c'est récent sur les objets (pas pour les variables).

Citation:

En tout cas, oui, Node en tant que tel permet d'utiliser l'ES6, mais pas avec Express en tant que serveur, ou alors vraiment une version récente dont je n'aurais pas encore entendu parler.


Là je comprends pas trop.
J'utilise express surtout quand j'ai besoin de plusieurs URL :

Portion de code : Tout sélectionner

1
2
3
4
5
 
app.get('/', function(req, res) {
  res.send('hello world');
});
 



bot.js (node, express, socket.io)

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
var http = require("http");
 
var express = require("express");
var app = express();
 
/* la configuration d'express, les routes, etc : */
app.use(express.static("./public"));
app.get('/responses', function (req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.send(responses);
});
app.get('/ram', function (req, res) {
    res.send(ram);
});
app.get('/memory', function (req, res) {
    res.send(memory.responses);
});
 
/* serveur */
var server = http.createServer(app).listen(3333);
//socket.io
require('./sockets').listen(server);
 
var core = require('./core/core');
 



Socket.js :

Portion de code : Tout sélectionner

1
2
3
4
5
6
 
var socketio = require('socket.io');
var core = require('./core/core');
 
module.exports.listen = function(server) { ... }
 




trotter - posté le 06/05/2020 à 13:26:18 (9840 messages postés)

❤ 0

Par curiosité c'est quoi ce chat bot ?


AzRa - posté le 06/05/2020 à 13:30:07 (10840 messages postés)

❤ 0

Bordel j'ai confondu. Excuse. Oui, forcément, require marche. C'est pas de l'ES6, require. C'est de import que je voulais parler.

Essaye de remplacer

Portion de code : Tout sélectionner

1
var express = require("express");


Par

Portion de code : Tout sélectionner

1
import * as express from 'express';


Ou

Portion de code : Tout sélectionner

1
import express from 'express';


Dans ton code pour voir. Ça ne devrait plus fonctionner.

Citation:

Et tu accèdes à ton serveur / vps en ssh ?


J'ai encore un peu de mal avec certains termes techniques. Tu peux clarifier ce que tu veux dire par y accéder en ssh ? :amour2


Lünn - posté le 06/05/2020 à 14:03:14 (4207 messages postés)

❤ 0

Citation:

C'est pas de l'ES6, require. C'est de import que je voulais parler.


Ah oui en effet... tu viens de me rappeler que j'avais eu le même problème que toi. Dans node faut exporter les fonctions que tu stockes dans des fichiers .js, et require() les fichiers dans ton programme principal. C'est un peu différent. Ça ne doit pas être très compliqué à convertir.

Sinon regarde les évolutions de Node.js.

Par exemple mon fameux core.js du bot :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
var fs = require('fs');
 
/* fonction à utiliser dans ce fichier */
fonctionInterne1(array) {
  return ;
}
 
/* fonctions à exporter pour le programme principal */
module.exports = {
 
    fonction1: function () {
 
    },
 
    fonction2: function (input) {
 
    }     
};
 



Citation:

J'ai encore un peu de mal avec certains termes techniques. Tu peux clarifier ce que tu veux dire par y accéder en ssh ?


C'était pour savoir si tu pouvais te connecter à ton serveur en ligne de commande (ssh login@IP) et installer n'importe quoi sur ce serveur.

Citation:

Par curiosité c'est quoi ce chat bot ?


On en avait parlé il y a quelques années :) J'avais beaucoup étudié ton Genesis que j'ai encore sur mon ordi.

Mon bot fonctionne mais il est assez étrange. Disons qu'il tente de détecter plusieurs échelles de patterns dans une phrase. Il détecte premièrement les petits patterns, puis choisit un superpattern qui correspond le mieux à la somme des petits patterns. Une troisième couche d'analyse permet de réinterroger les superpatterns en cas de questions comme Pourquoi ? Comment ?

En gros : {{you}} {{happy}} > {{iAmHappy}} > {{why}} > {{whyIAmHappy}}

Mais clairement ça manque de réponses pour qu'il soit intéressant... je dois en avoir un 100aine, et je sais qu'il en faudrait au moins 1000 si c'est pas plus.


AzRa - posté le 06/05/2020 à 14:57:50 (10840 messages postés)

❤ 1

Citation:

Dans node faut exporter les fonctions que tu stockes dans des fichiers .js, et require() les fichiers dans ton programme principal. C'est un peu différent. Ça ne doit pas être très compliqué à convertir.


Ça ça va encore, oui. Après y a quand même plusieurs autre différences que j'aurais été obligé d'apprendre si Xiaoxiao n'était pas venu à la rescousse avec sa solution en Typescript. J'étais presque prêt à le faire mais tant qu'à apprendre de nouvelles choses j'aime autant que ça soit ça : des nouvelles choses. Pas des vieilles.

Mais ce "dans node" me gène un peu quand même. Je ne sais jamais trop comment le formuler parce que tout le monde a l'air de faire comme toi, mais c'est seulement dans le cadre d'un backend en node pour un site web, cette restriction. C'est dû à ce que xvw expliquait plus haut au sujet de la compatibilité avec les navigateurs.
Mais enfin si j'écris ce programme :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
const fs = require('fs');// pour pouvoir lire et créer des fichiers sur le DD
 
const data = 'hello world';
fs.writeFile("hello.txt", data, function(err) {
  if (err) {
    console.log(err);
  }
});
 


Et que je le sauve sous le nom de hello.js sur mon DD pour ensuite le lancer depuis mon terminal en tapant "node hello.js" c'est pas du node, ça ? :wouah

EDIT : Bon en fait t'as raison, ça foire avec import. Pourtant y a des const là-dedans, or c'est de l'ES6, ça, non ? :wouah

Lünn a dit:


C'était pour savoir si tu pouvais te connecter à ton serveur en ligne de commande (ssh login@IP) et installer n'importe quoi sur ce serveur.


Ah ok. Bah t'as ta réponse, je pense :F. Je sais même pas trop si c'est possible avec Heroku. Ça l'est probablement mais pas forcément avec le programme gratuit. Et si ça l'est, well, il me reste toujours à apprendre comment le jour où j'en aurai besoin.


Lünn - posté le 06/05/2020 à 15:08:34 (4207 messages postés)

❤ 1

Citation:

Dans Node


Regarde quand même le lien que j'ai posté sur les évolutions de Node et vérifie la version de Node utilisée sur Heroku. Du fait que tu sois sur le cloud, tu ne peux peut-être pas choisir une version particulière de Node (ce qui est possible sur un VPS).

Node latest-v13.x semble supporter ECMAScript par défaut, bien que ce soit expérimental.

Après si c'est que require à la place d'import... moi ça me gène pas tellement, c'est une manière d'organiser des fichiers, pas une syntaxe. Et la fonctionnalité existe.

Il y a des choses que je n'utilise en revanche pas encore comme "Class" en JS.

Globalement je suis d'avis d'utiliser un JS qui est OK pour les dernières versions des navigateurs (rien à battre d'IE), mais d'éviter encore les dernières nouveautés.

ps: je ne vois pas de problème dans ton programme non ?

Pour const moi j'en utilise (rarement), pour stocker des données invariables (c'est rare qu'une donnée soit invariable dans mes programmes en tous cas).
C'est d'utiliser const = {} (objet) qui doit être plus problématique.


AzRa - posté le 06/05/2020 à 15:27:58 (10840 messages postés)

❤ 0

Ok ok je regarde à ça.

Citation:

Heroku supports the latest Stable version of Node.js as well as all active LTS (Long-Term-Support) versions. Heroku will support new releases within 24 hours of the official release from the Node team.
Currently, supported versions are 10.x, 12.x, 13.x, and 14.x.


Que je vois sur le site d'Heroku.

Citation:

ps: je vois de problème dans ton programme non ?


Y en a pas. C'est juste que je viens de me rendre compte qu'en remplaçant require par import ça foirait aussi. Mais ça doit être dû à ma version de node. J'utilisais une version plus récente jusque récemment mais j'ai rétrogradé pour installer un dépendance pour un autre projet. J'ai la version 10.19.0 là. Du coup si ça se trouve avant je pouvais utiliser tout ça et c'est maintenant que j'ai rétrogradé que ça foire :F.


Lünn - posté le 06/05/2020 à 15:35:14 (4207 messages postés)

❤ 0

J'utilise Node 10.x pour que Ghost tourne bien.
Dernièrement ils conseillent de passer à Node 12.x.
Au premier coup d’œil c'est vraiment Node 13.x qui n'est pas une version stable qui supporterait ECMAScript (mais j'ai pas bien regardé la doc).

Si tu remplaces par require() faut pas oublier d'exporter dans les autres fichiers. C'est l'inconvénient, tu ne peux pas require() un fichier sans exporter ce que tu veux require dans ce fichier.

Sinon tu utilises quoi d'autre de problématique ?

Ce n'est qu'une question de temps avant que Node intègre tout ça, mais je pense pas qu'ils soient si en retard. T'es trop dans le turfu ! :p


AzRa - posté le 06/05/2020 à 15:45:16 (10840 messages postés)

❤ 0

Citation:

Sinon tu utilises quoi d'autre de problématique ?


C'était surtout avec Sequelize que c'était insolvable, cette histoire d'ES6 (encore pour un autre projet de bot de lending crypto). Mais je ne sais pas au juste à quel niveau précisément. J'ai pas été fouiller le détail de ce qui coinçait à l'époque.


trotter - posté le 06/05/2020 à 15:47:47 (9840 messages postés)

❤ 0

Super ton site Lünn. Dommage qu'on puisse pas tester le bot encore.

Pour info (j'y pense en voyant ton article/débat sur l'I.A., il y a eu un débat sur le moi, la conscience etc dans le topic du veganisme.


Xiaoxiao - posté le 06/05/2020 à 15:52:33 (529 messages postés)

❤ 1

xvw a dit:


Citation:

Vue est mieux que React et Angular, tu penses, donc ?


Les mauvaises langues diront que les trois sont mauvais...



Ahah, merci pour le fou rire ! :F
Car c'est exactement ce que certains collègues et moi-même vivons. On a essayé de proposer un stack avec React ou Vue / Laravel, mais encore une fois, c'est la techno JS qui n'a pas été appréciée à sa juste valeur. :(
En fait, ce sont des librairies qui effraient beaucoup techniquement aux non initiés de ce que j'ai pu constater.

Alors qu'à ce jour, chacun fait un peu comme bon lui semble avec le framework maison qu'on nous impose. Je ne vous explique pas les .js produits. C'est un langage tellement permissif...
Heureusement qu'il existe des alternatives comme TypeScript qui permettent d'utiliser les nouvelles normes sans avoir à se soucier de la rétro-compatibilité. :sriden

RPG Maker Détente, la communauté des détendus◄►Construct French, la communauté francophone des CONSTRUCTeurs


François Berhn - posté le 06/05/2020 à 15:55:47 (5402 messages postés)

❤ 0

Tonton Hellper

Typescript ça pue un peu aussi :pfr

La liste des raisons pour lesquelles le making se meurt, la cinquième va vous étoner | Des projets abandonnés, source d'inspiration :D | Mes jeux


Xiaoxiao - posté le 06/05/2020 à 15:59:26 (529 messages postés)

❤ 0

François Berhn a dit:


Typescript ça pue un peu aussi :pfr


Si tu le dis. :F
Quoi qu'il en soit, pour moi et les ESN que j'ai fréquentées, le choix est vite fait entre JS et TypeScript.

RPG Maker Détente, la communauté des détendus◄►Construct French, la communauté francophone des CONSTRUCTeurs


Lünn - posté le 06/05/2020 à 16:07:01 (4207 messages postés)

❤ 0

@trotter :
J'avais adoré ces discussions avec toi mais aussi les papys. On avait eu cette convers sur l'IA. Je leur avais demandé de publier nos conversations reformulées. "R", c'est Rots... "S" : Sylavnor, "N" : Nuki... Et "L" moi :) (mais je dis rien d'intéressant).

Le système du bot en soi est marrant et assez simple, mais c'est loin des ambitions que j'avais à l'époque. A chaque fois qu'on s'intéresse au TALN c'est dur de ne pas se diriger vers l'analyse grammaticale ou de ne pas utiliser des BDD énormes. Le but était de pas faire de questions/réponses, mais de ne pas non plus utiliser de BDD énormes. C'est à moitié réussi on va dire :)


François Berhn - posté le 06/05/2020 à 16:11:44 (5402 messages postés)

❤ 0

Tonton Hellper

Xiaoxiao a dit:


Si tu le dis. :F


Oui je le dis parce que je l'utilise au boulot et c'est vraiment triste :'(
J'ai pas noté tous les trucs que je trouve aberrants mais par exemple le fait d'avoir un type any c'est une jolie farce :F

Xiaoxiao a dit:


Quoi qu'il en soit, pour moi et les ESN que j'ai fréquentées, le choix est vite fait entre JS et TypeScript.


Perso, entre JS et TypeScript, je choisis Reason :p

La liste des raisons pour lesquelles le making se meurt, la cinquième va vous étoner | Des projets abandonnés, source d'inspiration :D | Mes jeux


Xiaoxiao - posté le 06/05/2020 à 16:25:30 (529 messages postés)

❤ 0

François Berhn a dit:


Oui je le dis parce que je l'utilise au boulot et c'est vraiment triste :'(
J'ai pas noté tous les trucs que je trouve aberrants mais par exemple le fait d'avoir un type any c'est une jolie farce :F


Je suis plutôt d'accord, mais il peut s'avérer utile. :p

François Berhn a dit:


Perso, entre JS et TypeScript, je choisis Reason :p


Merci pour cette découverte !

Mais passer du JS au TypeScript, ça a été une révélation et une bénédiction personnellement. :F J'ai vraiment du mal à aller voir ailleurs aujourd'hui. Cependant pour des raisons de chiffrage, j'utilise encore du JS aujourd'hui dans certains projets pro qui nécessiteraient beaucoup trop de jours / hommes pour faire la transition. :(

RPG Maker Détente, la communauté des détendus◄►Construct French, la communauté francophone des CONSTRUCTeurs


trotter - posté le 06/05/2020 à 16:39:23 (9840 messages postés)

❤ 0

Lünn a dit:


@trotter :
J'avais adoré ces discussions avec toi mais aussi les papys. On avait eu cette convers sur l'IA. Je leur avais demandé de publier nos conversations reformulées. "R", c'est Rots... "S" : Sylavnor, "N" : Nuki... Et "L" moi :) (mais je dis rien d'intéressant).

Le système du bot en soi est marrant et assez simple, mais c'est loin des ambitions que j'avais à l'époque. A chaque fois qu'on s'intéresse au TALN c'est dur de ne pas se diriger vers l'analyse grammaticale ou de ne pas utiliser des BDD énormes. Le but était de pas faire de questions/réponses, mais de ne pas non plus utiliser de BDD énormes. C'est à moitié réussi on va dire :)



Ca me dégoûte un peu de voir les chatbots utilisés pour :
-récupérer des informations personnelles ("je suis Robbi ton ami virtuel hihi dis moi tout je ne revendrai presque rien !")
-remplacer des humains ("Je suis Robbi votre téléconseiller. Je n'ai pas bien compris votre question.")
-se faire passer pour des humains ("Allo mamie c'est moi Robert, envoie moi de l'argent stp") - voir la conférence de google très flippante où un chatbot téléphone et réserve une table au restaurant.

:(


xvw - posté le 06/05/2020 à 16:54:00 (730 messages postés)

❤ 1

yo

Citation:

Ahah, merci pour le fou rire ! :F
Car c'est exactement ce que certains collègues et moi-même vivons. On a essayé de proposer un stack avec React ou Vue / Laravel, mais encore une fois, c'est la techno JS qui n'a pas été appréciée à sa juste valeur. :(
En fait, ce sont des librairies qui effraient beaucoup techniquement aux non initiés de ce que j'ai pu constater.



Les mauvaises langues (2) diront qu'elles effraient aussi les initiés. (J'ai donné des formations React/Redux chez "des grands groupes" parce que ça faisait partie de mon contrat).

J'ai toujours été incroyablement surpris du bruit conceptuel que Redux ajoute autours d'une bête machine de Moore. Mais je pense que le gros problème de javascript/TypeScript et spécifiquement des frameworks comme React, Vue et Angular, c'est qu'ils transmettent plusieurs idiomes qui deviennent des normes alors que c'était juste mal pensé à la base.

Toute personne aimant les langages statiquement typés ne peut qu'être que frustré par TypeScript.

mon blog


Xiaoxiao - posté le 06/05/2020 à 18:26:48 (529 messages postés)

❤ 1

xvw a dit:


Citation:

Ahah, merci pour le fou rire ! :F
Car c'est exactement ce que certains collègues et moi-même vivons. On a essayé de proposer un stack avec React ou Vue / Laravel, mais encore une fois, c'est la techno JS qui n'a pas été appréciée à sa juste valeur. :(
En fait, ce sont des librairies qui effraient beaucoup techniquement aux non initiés de ce que j'ai pu constater.



Les mauvaises langues (2) diront qu'elles effraient aussi les initiés. (J'ai donné des formations React/Redux chez "des grands groupes" parce que ça faisait partie de mon contrat).

J'ai toujours été incroyablement surpris du bruit conceptuel que Redux ajoute autours d'une bête machine de Moore. Mais je pense que le gros problème de javascript/TypeScript et spécifiquement des frameworks comme React, Vue et Angular, c'est qu'ils transmettent plusieurs idiomes qui deviennent des normes alors que c'était juste mal pensé à la base.

Toute personne aimant les langages statiquement typés ne peut qu'être que frustré par TypeScript.



Ce n'est pas être mauvaise langue, c'est juste un constat que j'ai pu faire d'après mon expérience personnelle avec les équipes avec qui j'ai collaboré.
Très récemment, après une simple présentation de React, les réactions à chaud étaient pleines d'appréhension sur la partie technique et l'apprentissage.
Mais heureusement que ça ne semble pas être une généralité.
Je suis d'accord avec le reste de ton message. :)

Edit: Ah au temps pour moi, sur smartphone j'ai lu "aussi les non initiés" et non "aussi les initiés". :p
Du coup, j'ai du mal à comprendre comment certaines personnes pourraient dire ça. :surpris3 Enfin, quoique, je connais quelqu'un de mon équipe qui pourrait le dire. :F

Edit 2: D'ailleurs cette conversation me rappelle que j'ai découvert React et avant tout Redux avec React Native (me demande pas comment j'ai pu découvrir React Native avant React par contre :F). <3

RPG Maker Détente, la communauté des détendus◄►Construct French, la communauté francophone des CONSTRUCTeurs


Lünn - posté le 06/05/2020 à 21:08:43 (4207 messages postés)

❤ 1

trotter a dit:



Ca me dégoûte un peu de voir les chatbots utilisés pour :
-récupérer des informations personnelles ("je suis Robbi ton ami virtuel hihi dis moi tout je ne revendrai presque rien !")
-remplacer des humains ("Je suis Robbi votre téléconseiller. Je n'ai pas bien compris votre question.")
-se faire passer pour des humains ("Allo mamie c'est moi Robert, envoie moi de l'argent stp") - voir la conférence de google très flippante où un chatbot téléphone et réserve une table au restaurant.

:(


Haha oui... j'ai un bouquin sur les chatbots qui résume un peu ça.
J'avoue m'être intéressé aux tests de personnalité pour capter des données, et au passage influencer les élections du délégué du personnel de mon agence... mais bon rassure toi mon âme d'artiste prend toujours le dessus. :lol

@xvw : je n'avais pas eu l'occasion de te dire que ton blog était très classe ! J'aime beaucoup de design.
Seul problème c'est que même moi qui m'intéresse énormément à ces sujets (sans avoir la formation), je n'y comprends pas grand chose. J'aurais aimé comprendre par exemple pourquoi tu affectionnes les langages statiquement typés, ce qu'ils apportent... etc J'ai pas les pistes pour revenir aux fondamentaux et par conséquent comprendre pourquoi le JS serait mal pensé. Le côté théorique de la programmation m'intéresse.

Je me suis intéressé à plein de langages, mais j'ai continué seulement avec ceux qui me servent : me permettent de faire du web. Aujourd'hui j'ai des VPS, donc je pourrais envisager d'utiliser d'autres technos...


Roi of the Suisse - posté le 06/05/2020 à 22:04:36 (27855 messages postés) - admin -

❤ 1

Alerte neige !

Moi j'aime pas ton blog, y a pas de dark mode, c'est un supplice à lire :tirlalangue2

Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


xvw - posté le 07/05/2020 à 10:21:07 (730 messages postés)

❤ 1

yo

Citation:

@xvw : je n'avais pas eu l'occasion de te dire que ton blog était très classe ! J'aime beaucoup de design.
Seul problème c'est que même moi qui m'intéresse énormément à ces sujets (sans avoir la formation), je n'y comprends pas grand chose. J'aurais aimé comprendre par exemple pourquoi tu affectionnes les langages statiquement typés, ce qu'ils apportent... etc J'ai pas les pistes pour revenir aux fondamentaux et par conséquent comprendre pourquoi le JS serait mal pensé. Le côté théorique de la programmation m'intéresse.



Merci beaucoup ! Même s'il est très clair (visuellement), j'y ai passé pas mal de temps. Si ça t'intéresse, le code du générateur se trouve ici : https://github.com/xvw/planet
L'idée c'est d'avoir plusieurs choses :

- Un outil pour saisir les activités "liées à des projets personnels" ce qui me permet de collecter des métriques (https://xvw.github.io/journal.html)
- Un outil pour gérer des tâches à réaliser (https://xvw.github.io/tasks.html)
- De la rédaction d'article (qui utilise Hakyll, un générateur de blog statique écrit en Haskell) (https://xvw.github.io/longs.html)
- Du suivi de projets (https://xvw.github.io/projects.html)
- Un gestionnaire de galeries (https://xvw.github.io/galleries.html)
- Une page de description (https://xvw.github.io/xavier.html)
- Un suivi de ma position (https://xvw.github.io/location.html)

Plus tard, j'aimerais avoir un suivi des livres que je lis, des films que je regarde etc. Mais c'est un projet qui prend beaucoup de temps. Heureux de lire que tu aimes bien son apparence !

Citation:

J'aurais aimé comprendre par exemple pourquoi tu affectionnes les langages statiquement typés, ce qu'ils apportent



Il y a plusieurs réponses, une courte, une moyenne et une très longue. Peut être qu'un jour, j'aurai le courage de rédiger la très longue sous forme de billet de blog, ici je vais essayer de donner une réponse moyenne.

L'énorme point fort des langages qui offrent une vérification statique des types, c'est qu'ils me permettent d'être moins "intelligent". Cette phase de vérification garantit (dans la mesure du possible) que j'ai pensé à l'intégralité des cas de mon programme. Cet garantie me permet de réfactorer mon code sereinement sans me demander sans arrêt si je n'ai pas oublié certains cas, le compilateur me le dit.
Par exemple, si je décide d'utiliser une liste pour représenter un ensemble de valeur et que, en court de développement, je me dis "tiens, j'essaie de n'avoir que des éléments uniques dans ma liste, donc chaque fois que j'insére un élément, j'applique la méthode [list.uniq], peut être que ce serait plus pertinent d'utiliser un Set, dont c'est le travail". Je dois, "partout où j'ai eu le partit pris que j'utilisais une liste" modifier mon code pour qu'il s'adapte au comportement du Set (donc, par exemple, aller retirer tous les .uniq de mon code).
Il est possible, évidemment, de s'en sortir au moyen de l'encapsulation mais dans un langage qui vérifie les types, je sais, avant d'exécuter (et tester) mon programme s'il est cohérent.
Ensuite, ça me permet de garder en tête des cas un peu chevelus, un cas d'école classique en faveur des langages statiquement typés, la gestion explicite de la nullité. Plutôt que me dire que toutes mes valeurs sont unifiées comme [ ma valeur | null | undefined ], je peux simplement déclarer un type :

Portion de code : Tout sélectionner

1
2
3
4
5
 
type 'a option = 
  | None 
  | Some of 'a
 



Qui concrètement me permet juste de gerer explicitement le cas où je n'ai pas de valeur. Le type de la fonction x.[ i ] pourrait être "tu me donnes un tableau de A, x, un entier, i, et je te renvoie un option de A. A l'usage, je serai obligé de déconstruire ma valeur pour l'exploiter ce qui fait que je ne peux plus jamais faire face à des NullPointerException (où "undefined is not a function").

Ce genre de cas (refactoring/nullité) sont des réponses pragmatiques. Et, par exemple; TypeScript s'en tirer "plutôt bien". Quand le système de type est riche comme dans les langages ML (Haskell/OCaml/ReasonML/F#) le système de types est plus riche est plus expressif, ce qui permet de dépasser l'aspect "utilitaire" d'un système de type et approcher une proximité "avec le domaine/métier" (cette présentation sur le sujet est vraiment très très claire https://www.youtube.com/watch?v=PLFl95c-IiU d'ailleurs, toutes les présentations de cette personne sont assez cool). En gros, un système de type expressif offre une manière sûre, mais élégante, de décrire une application. Couplé avec un paradigme de programmation "riche", comme la programmation fonctionnelle, il est possible d'écrire des programmes qui ont une surface "de code pouvant produire des erreurs" beaucoup plus petite.

Concernant les erreurs de conceptions de javascript, il y en a, selon moi, 3 qui sont vraiment signifiantes :
- la portée lexicale de "var" complètement fucked, mais fixé avec let et const en ES6
- le fait d'avoir deux types pour la nullité : undefined | null, même si ils ont une sémantique différente, dans les faits, leur distinction n'a aucun sens
- le fait que le "this" d'une fonction référence la fonction... fixé en ES6 avec les Fat Arrows (=>)

Comme je l'ai dit plus haut, javascript doit vivre avec ses utilisateurs. Le langage a donc beaucoup de mal à évoluer sainement, sans Babel (par exemple), c'est pour ça que je ne me sert de javascript "que comme une cible de compilation". Soit, j'écris mon programme en OCaml et je le compile en javascript. Ce qui me permet de profiter des avantages de OCaml tout en rendant mon programme exécuté dans un browser.

Parce que pour un langage de script, interprété, ça n'a pas de sens d'avoir un système de types vérifié (dans le browser), tu ne veux pas, à chaque page, que ton code doivent être "typechecké" avant d'être affiché pour tous les clients qui naviguent sur ta page.
Tout ça pour dire que tu n'as pas besoin d'avoir un serveur pour tester d'autres technologies. Par exemple en front-end ReasonReact (React avec ReasonML) ou Elm (qui est incroyablement agréable pour s'initier à la programmation fonctionnelle statiquement typé) donne un très bon avant gout !

Citation:

Moi j'aime pas ton blog, y a pas de dark mode, c'est un supplice à lire


La version 2 est en cours de développement (pour des milliers d'années) et elle devrait être sombre :P

mon blog


Roi of the Suisse - posté le 07/05/2020 à 10:25:54 (27855 messages postés) - admin -

❤ 0

Alerte neige !

Nice :kirby

xvw a dit:

- la portée lexicale de "var" complètement fucked

C'est quoi le problème de var ? La portée de la variable, c'est la fonction où elle a été déclarée :doute6

Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko

Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

Index du forum > La Taverne > Topic de l'informatique

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers