Bonjour à tous,
Récemment j'ai regardé les dérivés du C++ :
managed C++, C++/CLI, C++/CX, C#, et dans un autre domaine C++0x (ou C++11) Je dois dire que c'est un sacré fouilli, mais avec un peu de patience on comprend assez bien le concept général.
Ensuite, je regarde javascript/actionscript. Et là, surprise ! J'avais déjà bidouillé, comme tout le monde, dans ma jeunesse, en javascript et actionscript, mais je ne m'étais jamais rendu compte que c'est (selon moi) l'un des langages les plus compliqués et tordus que je n'ai jamais vu.
Superficiellement, c'est un langage très simple : c'est LE langage dans lequel, en bidouillant, même si vous n'avez jamais entendu parler ni de pointeur ni d'objet ni de référence, vous arriverez toujours à faire un petit bout de code qui marche à peu près.
Mais moi qui suis développeur, même après avoir lu 3 fois la page wikipedia sur javascript, je suis incapable de dire ce qu'est un 'var' : aucune idée de la structure de donnée C sous-jacente. La seule chose que j'ai compris c'est que ça dépend de la version de javascript/actionscript, et du navigateur web ou du plugin flash correspondant.
Est-ce que quelqu'un de gentil accepterait par exemple de compléter pour nous (dans les grandes lignes) la structure/classe var qu'on utiliserait si on écrivait un interprêteur javascript en C++ ?
Est-ce que php (j'ai l'intuition que oui) serait le seul langage qui pourrait rivaliser avec la complexité de javascript/actionscript dans le genre langage fourre-tout avec des milliards de versions différentes et aux concepts trop éparpillés pour être réels ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 /// le var du javascript en C++ struct var { /// un var peu contenir des champs std::map<string,var*> local_var_space; /// ou hériter des champs de ses types parents vector<std::map<string,var*>* > parent_var_spaces; union { /// etre une fonction qui prend des var en paramètre et retourne une référence un var var* (*function_ptr)(...); /// ou contenir une référence sur un var var* ref; /// ou une valeur d'un type de base int n; float f; string s; /// ... /// ou etre un tableau de var vector<var*> vec; }; /// pour le garbage collector int nb_refenrence; };
Pourquoi ce sont ces langages là (javascript/actionscript et php) qui ont percé sur le web alors que ce sont, j'ai l'impression, les deux langages les plus diaboliques qui n'aient jamais existé ?
Et pourquoi quand on tape 'javascript langage compliqué' sur google on ne trouve rien ? :-)
J'attends avec impatience vos avis. Merci !
Partager