
FAQ DartConsultez toutes les FAQ
Nombre d'auteurs : 6, nombre de questions : 85, derni�re mise � jour : 29 ao�t 2016 Ajouter une question
Cette FAQ a �t� r�alis�e essentiellement � partir de la traduction de la FAQ officielle Dart.
Nous tenons � souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs et traducteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne pr�tend pas non plus �tre compl�te. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant r�dacteur, lisez ceci.
Je tiens � remercier l'ensemble de l'�quipe des r�dacteurs de www.developpez.com pour leurs remarques constructives. Ainsi que Lana.Bauer pour son implication dans la mise en ligne de cette FAQ.
Tous deux, nous d�sirons �galement remercier Mishulyna, Kenaryn et rawsrc pour leurs traductions, mais aussi BakSh0 pour sa relecture et son aide � la mise en ligne de la FAQ. Merci � Zoom61 pour la cr�ation du logo. Finalement, nous remercions jpcheck pour sa relecture orthographique.
Sur ce, nous vous souhaitons une bonne lecture.
N�h�sitez pas nous faire part de vos remarques sur le contenu de cette FAQ ou � nous faire vos propositions de contribution !
La r�daction Developpez.com.
- Quels sont les navigateurs compatibles avec le code issu de la compilation en JavaScript ?
- Pourquoi Dart n'est-il pas compatible avec IE8 et versions ant�rieures ?
- Quels navigateurs supportent nativement la machine virtuelle Dart ?
- Y a-t-il un support natif de Dart au sein de Chrome ?
- Pourquoi, apr�s compilation, le code d'un ��Hello World�� est-il si lourd compar� au code orignal Dart ?
- Comment d�boguer Dart apr�s qu'il a �t� compil� en JavaScript ?
- Est-ce que tout code Dart valide compilera en JavaScript ou y a-t-il des limitations ?
- Comment dart2js peut-il g�n�rer un code JavaScript plus performant que celui cod� manuellement ?
- Pourquoi ne pas compiler Dart en asm.js au lieu d'avoir cr�� une machine virtuelle d�di�e ?
[Traduction de la FAQ officielle]
Sont support�s :
- Internet Explorer, versions 9, 10, et 11 (Dart v1.5 sera la derni�re version � supporter encore IE9)�;
- Firefox, derni�re version�;
- Chrome, derni�re version�;
- Safari pour ordinateur, version 6�;
- Safari pour mobile, version 6.
[Traduction de la FAQ officielle]
Supporter les anciens navigateurs requiert beaucoup de ressources humaines et techniques. Dart est un pari pour le futur et le projet ne peut se permettre de gaspiller de pr�cieuses ressources dans le support de navigateurs amen�s � dispara�tre, voire d�j� obsol�tes. C'est pourquoi, dart2js g�n�re un code qui est bien plus efficient quand il est ex�cut� dans un navigateur r�cent supportant ECMAScript5 et autres fonctionnalit�s.
[Traduction de la FAQ officielle]
Au mois de d�cembre 2013, aucun navigateur ne peut ex�cuter du code Dart nativement sans passer par la compilation JavaScript. Cependant, l'�diteur de code Dart Editor qui est livr� avec une version de Chromium (appel�e Dartium) embarque le support de la machine virtuelle Dart. Ainsi, en plus d'ex�cuter Dart nativement, Dartium ayant une excellente interop�rabilit� avec l'�diteur de code permet le d�bogage complet des applications au sein m�me de l'�diteur. Attention, l'�diteur Dart Editor n'est plus disponible.
[Traduction de la FAQ officielle]
L'�quipe de Dart y travaille. On n'a pas d'�ch�ance, mais il est possible de suivre l'avancement avec les projets open source tels que Oilpan et Dartium. En attendant, Dart est pr�vu pour �tre compil� en JavaScript pour l'ex�cution au sein de tous les navigateurs modernes et le compilateur dart2js reste la priorit� pour l'�quipe.Attention: Chrome n'assumera pas le support de la Dart VM.
[Traduction de la FAQ officielle]
Nous pensons, bien s�r qu'il est important de cr�er � partir de Dart un code JavaScript l�ger et efficient, mais la plupart des d�veloppeurs ne coderont pas d'application ��Hello World��. C'est relatif et gr�ce � l'optimisation du code (suppression du code inutile), la minification et la compression, il est possible de g�n�rer du JavaScript efficient pour les applications Dart.
Kevin Moore a vu des possibilit�s d'am�liorations notables sur la taille du code JavaScript g�n�r� en s'appuyant sur son jeu HTML5.
L'�quipe de dart2js s'efforce de g�n�rer un code plus l�ger, mais reste plus focalis�e sur les applications du monde r�el que sur des exemples triviaux.
[Traduction de la FAQ officielle]
dart2js g�n�re un plan de code de mani�re � pouvoir d�boguer le code Dart dans les navigateurs ne supportant pas la machine virtuelle Dart. Cependant, dans certains rares cas, il est obligatoire d'inspecter le code JavaScript, cela reste malgr� tout assez ais�ment accessible avec les outils de d�bogage et de d�veloppement disponibles dans les navigateurs.
[Traduction de la FAQ officielle]
Nous avons pour intention que tout code Dart valide compile en JavaScript. Bien s�r, il y a des biblioth�ques qui ne seront ex�cut�es que sur le serveur parce qu'elles n'ont aucun sens dans un contexte de navigateur. Par exemple, la biblioth�que dart::io fournit un acc�s aux fichiers et r�pertoires du syst�me d'exploitation avec une API indisponible sur un navigateur.
[Traduction de la FAQ officielle]
Vous faites probablement r�f�rence � ce graphique. Il faut s'imaginer dart2js comme un vrai compilateur qui peut analyser un programme entier et faire des optimisations que vous n'auriez jamais faites ou m�me pens�es. Tout comme le compilateur gcc qui peut produire un code optimis� et efficient, dart2js tire avantage de la nature structur�e de Dart pour apporter des optimisations globales.
Nous ne disons pas que tout le code Dart compil� en JavaScript va s'ex�cuter plus rapidement que du JavaScript natif, mais nous travaillons de mani�re � rendre plus rapide le code des cas communs.
[Traduction de la FAQ officielle]
Dart aurait pu utiliser asm.js de deux mani�res : compilation directe de Dart en asm.js ou compilation de la machine virtuelle Dart en asm.js.
Cependant et apr�s de minutieux tests, il appara�t clair que les deux mani�res am�nent � une surcharge � l'ex�cution qui annule certains aspects b�n�fiques de Dart : d�marrage ultra rapide et meilleures performances.
Compilation d'application Dart en asm.js
asm.js est un sous-ensemble tr�s restreint de JavaScript principalement adapt� aux compilateurs C. Il n'inclut ni les objets JavaScript, ni les acc�s directs au DOM. Principalement, il autorise les op�rations arithm�tiques et les manipulations des tableaux typ�s.
Bien qu'il soit possible d'impl�menter les fonctionnalit�s dynamiques requises par Dart, cela p�naliserait lourdement la vitesse d'ex�cution et la l�g�ret� du code compar� � ce qui est d�j� fourni nativement par le moteur JavaScript. Par exemple, tout moteur JavaScript fournit un ramasse-miettes (henceforth GC) et en impl�menter un nouveau pour asm.js augmenterait la taille du code et ralentirait notablement le ramasse-miette natif disponible dans toute machine virtuelle JavaScript moderne.
Parall�lement, les machines virtuelles JavaScript ont consacr� beaucoup d'efforts pour rendre l'allocation dynamique efficiente utilisant un m�lange entre la g�n�ration dynamique de code et l'auto-optimisation.
Compilation de la machine virtuelle Dart en asm.je (par exemple avec emscripten)
Les arguments pr�c�dents s'y appliquent aussi ici. Une machine virtuelle Dart compilant en asm.js n�cessiterait d'impl�menter une sur-couche � asm.js fournissant des fonctionnalit�s d�j� disponibles nativement au sein des machines virtuelles JavaScript. En outre, asm.js n'autorise pas un acc�s direct � toutes les capacit�s d'une machine comme la gestion des processus ou l'acc�s � des jeux d'instructions sp�cifiques.
Fournir la machine virtuelle Dart (compil�e en asm.js) avec chaque programme Dart n�cessiterait une forte augmentation du t�l�chargement. M�me mis en cache, cela prendrait un certain temps pour que le client compile la machine virtuelle Dart concourant � un allongement des temps de d�marrage.
En outre, il faudrait r��crire le moteur de la machine virtuelle Dart afin qu'il g�n�re du code asm.js, car il est b�ti sur la g�n�ration de code dynamique pour atteindre des performances de pointe. (Dans une �tape annexe, la machine virtuelle JavaScript aurait besoin de compiler ce code en biblioth�que, ajoutant � la latence.)
Le code g�n�r� serait restreint aux jeux d'instruction disponibles au sein d'asm.js alors qu'une machine virtuelle native peut g�n�rer des instructions sp�cifiques � la plateforme.
Cela dit, ce serait super de voir la machine virtuelle Dart compil�e en asm.js. L'exp�rimentation aurait un int�r�t pratique limit�, mais cela serait un beau d�fi.
Proposer une nouvelle r�ponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plut�t sur le forum de la rubrique pour �aLes sources pr�sent�es sur cette page sont libres de droits et vous pouvez les utiliser � votre convenance. Par contre, la page de pr�sentation constitue une �uvre intellectuelle prot�g�e par les droits d'auteur. Copyright � 2025 Developpez Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'� trois ans de prison et jusqu'� 300 000 � de dommages et int�r�ts.