javascript un langage compliqué !?
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++ ?
Code:
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;
}; |
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 ?
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 !