Juste un gros + 1 à ugo-sans-h ! J'aurais pas dit mieux !
C'est pour ça que je suis en train d'utiliser Dart pour mon CV, pour le faire découvrir au monde de l'entreprise.
Version imprimable
Juste un gros + 1 à ugo-sans-h ! J'aurais pas dit mieux !
C'est pour ça que je suis en train d'utiliser Dart pour mon CV, pour le faire découvrir au monde de l'entreprise.
On peut ne pas aimer js, mais on peut aussi éviter d'écrire des bêtises. Son implémentation repose sur Ecmascript. Ecmascript n'est pas là pour faire du remplissage de papier, c'est une norme, versionnée, sur laquelle repose les différentes versions de Javascript. Combien de langage peuvent se pré-valoir d'être normé ? Le problème de JS vient des interpréteurs intégrés dans les navigateurs, et surtout de l'historique lié à IE6 (merci Microsoft, au moins vouis avez retenu la leçon avec IE10/11)
Jquery n'est pas du js non plus et si les gens se formaient correctement au JS on aurait moins de soucis. Ca ne sert à rien d'utiliser systématiquement $() alors que document.querySelector/All fait pareil (à condition que sa cible d'utilisateur repose sur des navigateurs récents, mais pas tant que ça)
Typescript n'est pas un langage, mais tout comme coffeescript, une surcouche permettant d'écrire du code à compiler en js avant la mep (de manière manuelle ou auto). Ils ont leur propre implémentation d'un modèle objet sous Javascript, à chacun ses particularités.
Je ne suis pas contre Dart, j'aime ce qui est nouveau, mais quid de Dart sous FF, Opera, IE, ou du mobile ? Comme le dit Ugo-sansH il faut que la VM soit développée pour chaque navigateur dans chaque version d'OS. C'est pas gagné et du coup en attendant il faut dans tous les cas compiler en js pour être sur que ça marche partout, c'est dommage. On se retrouve alors avec une énième surcouche comme type/coffee script
Ce que je trouve étrange c'est qu'il n'y est aucun plugin navigateur permettant de disposer de la Machine Virtuelle sous FF ou Chrome. A moins que je ne l'ai tout simplement pas trouvé ?
On est d'accord sur le fait que JS soit normé. Et encore, Microsoft a créé son JScript avec sa propre norme.
Le problème, c'est qu'on se retrouve avec les mêmes soucis que ce qu'on peut constater avec le W3C. 10 ans pour chaque version de la norme (je ne parle pas des sous-version qui n'ajoutent presque rien), donc quelque chose qui quelque part n'est pas très propice à l'innovation ou la mode du moment.
Un autre problème dont vous avez parlé, le non respect des normes par chaque navigateur pendant un certain nombre d'années, qui en ont dégouté pas mal du JS.
Les Fans du paradigme objet et du compilé dont je fais partie n'apprécient pas la plupart du temps Javascript. Car contrairement aux langages compilés, on a rien qui nous dit avant l'exécution qu'il y a une erreur. On n'a aucun garde fou qui nous dit "ça va donner ça si vous le mettez dans cette variable" dont le type et la conversion sont implicites. Et à l'exécution, souvent l'erreur est représentée par la non exécution de la totalité (ou d'une partie quand on est chanceux) du script, avec juste un point d'exclamation dans la console et un message d'erreur ne correspondant souvent pas du tout au problème. Difficile également de parcourir le code Javascript pas à pas pour trouver l'erreur, sauf avec des "Alert". Ajoutez à ça les différentes interprétations des navigateurs...
Donc je maintiens qu'il faut être pratiquement expert en JS pour maîtriser et vraiment l'apprécier à sa juste valeur. On n'a pas d'IDE pour nous aider (ou si peu). Les problèmes rencontrés ne sont jamais typiques et résolvables facilement à l'aide de forums. A l'aide de Frameworks comme JQuery, on obtient au final une syntaxe moins verbeuse, un même résultat quel que soit le navigateur, et certaines briques déjà toutes faites.
Les experts en Javascript ça ne court pas les rues, surtout quand on leur demande d'être en même temps experts en J2EE ou .NET.
Ces Framework et le Dart2JS sont moins performants que du natif, mais ils permettent aux développeurs de niveau au moins intermédiaire d'être productifs et de ne pas plancher une demi-journée pour débugguer le moindre petit script. Et je ne parle même pas de la maintenabilité.
Quelque part ça m'est égal qu'on doive compiler Dart en JS. Au contraire, si ça permet de valoriser JS. Ce qui compte c'est que la conversion soit vraiment fiable. Les performances de Dart2JS sont tout à fait honorables d'ailleurs.
Donc la VM pour moi, c'est la cerise sur le gâteau.
Je suis prêt à parier que c'est purement commercial.
Vous avez vu comment Google abuse pour imposer Chrome ? Il est souvent installé avec d'autres logiciels si on ne prend pas soin de décocher la petite case peu visible, on a des pubs à la TV, dans la rue,...
J'ai vu aussi que la VM était toujours en développement.
Firefox est open source et ne va pas facilement faire confiance à un big brother comme Google. On voit ce qui s'est passé avec le h264. Au mieux, la VM, créée par Google ou par un développeur lambda en licence open source, sera téléchargeable et traitée comme le plugin Flash ou Java.
Microsoft est, tout comme Google, une société à but lucratif. Et ce n'est pas du tout le grand amour entre les 2.
Même chose pour Apple avec Safari. Apple étant encore plus fermé et big brother que Microsoft ou Google.
Bonjour je dois apprendre un language client pour une petite appli graphique. Je venais d'arrêter mon choix sur jquery, mais en lisant ceci j'hésite. Dart va-t-il être supporte sur ie et mobile ?
Cdt
Est-ce que tu VEUX apprendre un langage ou est-ce que tu DOIS l'apprendre ?
Cette nuance est très importante :
JQuery est une bibliothèque Javascript très utilisée, même dans le monde professionnel. Tu trouveras toujours du boulot dessus. Elle est assez mature (déja la version 2.0). Tu dois néanmoins connaître un minimum Javascript pou l'utiliser. Pour IE (version 9 minimum pour les nouvelles versions de JQuery) et mobile aucun problème.
Dart, c'est un peu un pari. C'est un autre langage que Javascript. Il te plaira peut-être plus si tu n'aimes pas Javascript, mais ce sera probablement à toi d'essayer de l'imposer. Il vient à peine de sortir et les entreprises ont toujours un train de retard, niveau technologie, surtout parce que souvent elles attendent que les autres aient essuyé les plâtres. Normalement le code généré est compatible tout navigateur, avec IE version 9 minimum.
Donc d'un point de vue avenir professionnel, Javascript et JQuery.
D'un point de vue étudiant ou passionné de POO, je dirais Dart, notamment pour essayer de le propager. Il ne faut pas oublier que l'avenir de Dart n'est pas défini puisqu'il vient de sortir. Cette techno peut très bien finir aux oubliettes comme elle peut finir par supplanter JS. Donc commencer un projet pro dessus est un pari risqué. Mais prouver qu'elle est très bonne et le faire savoir avec de vraies créations est également une option.
Je fais partie de la catégorie des passionnés téméraires ;)
Il manque à Dart (comme à JavaScript) quelques fonctionnalités fondamentales :
- des composants intégrés d'IHM type TextBox, Label, ComboBox, Grid ,... avec gestion d'events,
- un environnement pour concevoir des formulaires avec ces composants,
- une gestion intégrée de bibliothèque permettant d'enregistrer comme des cookies (si l'utilisateur l'accepte) de librairies de procédures et de ne refaire leur téléchargement qu'en cas de modification,
- de donner la possibilité d'utiliser un répertoire local (bac à sable) pour stocker/utiliser des données sur le PC.
Ok c 'est trés clair merci.
Ce que vous dites là est vrai et faux. oui Dart est comme TypeScript, GWT et CoffeeScript pour les navigateur qui ne le supportent pas encore qui nécessite de le compiler en Js. Mais Dart tout court sous Chrome est plus performant avec son VM que js avec le moteur V8. Le compilateur Dar2js est là pour introduire les developpeur à Dart et attendre que les autres navigateur le support.
Les langages c'est comme ça, une firme le développe s'il est bon les autres le supporte, c'est ce qui a fait de javascript ce qu'il est.
Il ne faut pas toujours comparer Dart, aux autres, Dart c'est une toute nouvelle expérience.
L'interet d'un nouveau langage est aussi de définir en standard (en mode natif ou avec les librairies fournies avec le langage) des fonctionnalités et un comportement plus évolués.Citation:
Dart est un langage de programmation dont le code est transformé en JS, ce n'est pas une librairie JS. Et ce que tu décris, probablement avec extJs en tête, c'est le rôle d'une librairie.
Et qu'ainsi on puisse compiler ce qu'on veut de manière efficace. Dart -> Js, ClojureScript->js, c'est tj du js... :)
Quand à du Google Dart comme natif... encore dix ans de programmeurs qui vont se foutre de notre gueule... ;)
Vous êtes vous bien renseigné ?
- Dart supporte le projet Polymer qui justement est là pour travailler par composants.
- Il y a des bibliothèques, vu que Dart intègre un gestion "pub" qui permet d'importer des plugins externes dans ses projets ("Dice" par exemple est sympa)
- Pour le bac à sable, je n'en sais rien.
Mais gardez en tête que le but premier de Dart, c'est d'offrir une alternative à Javascript pour le développeur. Comme Javascript, il dispose d'un ensemble déja conséquent de librairies considérant le fait qu'il vient de sortir.
Et pour les navigateurs Google, pour le moment, il offre quand même des performances 130% plus élevées que du JS natif, avec possibilités améliorées de débuggage (même en Dart2js).
Connaissez-vous une IDE Javascript disposant d'une IHM permettant de manipuler le DOM à sa guise et de créer ses composants ? Moi j'aimerais la connaître.
Les textbox et consort, c'est des éditeurs style Dreamweaver qui les créent et c'est de l'HTML de prime abord, pas du Javascript. J'imagine que vous devez vouloir que Dart Editor ressemble à Visual Studio ou NetBeans ?
Dart est un langage client comme Javascript, vient à peine de sortir et on lui demande déja ce qu'on n'a pas réussi à faire en 20 ans de JS.
Je ne pense pas qu'on puisse se contenter d'aborder Dart seulement sous l'angle de sa qualité technique ou du confort du développeur.
...
Le but de Google c'est quoi ?
Déjà aujourd'hui, un nombre croissant de sites web ne fonctionnent plus correctement sans les cdn jquery, mootools, angular que tout le monde nous enjoint d'utiliser. Un bête filtre 'anti-google' et un paquet de site n'est même plus praticable...
Mais à part pour générer des graphs coté client & dérouler des "autocomplete" javascript et ses librairies sont devenus superflus dans les interfaces depuis css3 et html5 ou devraient l'être ne serait-ce que pour des raisons d'accessibilité ou le référencement naturel.
Non le gros "plus" du javascript c'est la simplicité de mise en oeuvre du "tracking"... mais sur ce point javascript a des limitations : les échanges d'infos sont lisibles par l'utilisateur et l'accès aux favoris, historiques, mots de passe du navigateur est souvent impossible...
Quid de DART ? avez-vous des infos là dessus ?
Si je comprends bien, ça permettrait du même coup de régler tous les problème de compatibilité entre navigateur ?
Rien que pour ça ça vaudrait la peine.
Bon déja je me corrige. Quand je parle de librairies externes, je parle de librairies faites par des tiers pour Dart. Ca marche comme avec Maven, avec un fichier yaml de dépendances.
Après oui, la plupart maintenant ne peuvent plus se passer de librairies pour justement rester productifs avec Javascript. Ceux qui les utilisent juste pour de l'autocomplétion ou ce genre de babioles ne sont pas très futés. Ils divisent leurs performances alors que le coder à la main, ce n'est pas la mort. Me concernant, je m'intéresse à Angular parce que je suis très orienté architecture (donc MVC + binding ça me botte). Après, quelle idée aussi de les mettre sur Google. Il faut le stocker sur un serveur à soi ou lié au site du créateur.
J'avoue que comme je n'ai pas encore cherché à utiliser la VM Dart, je n'ai aucune idée de son fonctionnement. Donc pour le référencement de scripts, j'avoue que ça me semble compliqué. Je sais qu'habituellement, c'est le référencement des pages résultat en HTML qui est fait. Donc vu que Dart utilise aussi le DOM, ça devrait fonctionner pareil. Par contre, ce que je sais, c'est que la communauté est fortement mise à contribution :
https://groups.google.com/a/dartlang...#!forum/vm-dev
Accéder aux mots de passe utilisateurs, favoris et autres ? Mais vous n'y pensez pas ???? Heureusement qu'on ne peut pas !!!!
Pour la sécurité, je pense qu'il faut savoir manier intelligemment la programmation client et serveur, et créer des architectures sécurisées prenant en compte ce qu'on veut que le client puisse voir ou non, comme pour JS. Les utilisateurs, ici, ont des compétences techniques, sont vigilants et regarderont forcément avec WireShark ou autre les accès réseau quand on essaiera d'interroger un serveur depuis Dart ou d'utiliser leur base de données IndexedDB (une base No-SQL qui a l'air tout à fait suffisante pour le commun des gens).
Je n'ai pas la science infuse mais je suis plutôt confiant pour une fois vis à vis de Google.
Google et consorts encouragent des pratiques (stockage en clair de données sur serveur par ex, cookies,...) auxquelles je n'adhère pas. Avec tout langage on peut faire des bêtises. C'est aux développeurs d'être vigilants. J'enverrai toujours des données cryptées par les soins de l'utilisateur final à la base de données, en faisant en sorte que même moi je ne puisse pas les décrypter.
Ce n'est pas spécifique à Dart. La plupart des frameworks Javascript comme JQuery permettent une abstraction du résultat (le même pour tous navigateurs).Citation:
Envoyé par schnee
Concernant Dart s'il a l'avantage de générer un bon JavaScript, il pourra peut-être faire sa place et finalement on finira peut-être par l'utiliser uniquement à travers sa VM mais j'en doute. En tout cas pas plus que Flash, Silverlight ou autres. Car il est peu probable que le W3C en fasse un standard du Web.
Si on fait du JavaScript, c'est bien parce que c'est un langage supporté par tous les navigateurs.
Il sera curieux de voir comment il se fait une place face à Ceylon. Ce dernier pouvant également être utilisé avec un environnement Java. Ce qui en fait un langage capable de fonctionner potentiellement sur tous les clients (navigateurs) et au moins deux poids lourds côté serveurs : l'écosystème Java et Node.js.
Les deux langages ayant connu leurs sorties officielles "au même moment", il sera intéressant de vérifier leur progression dans le classement TIOBE (ou autres).
HTML5 ou Web Components ? Sans compter les jeux de composants ...
S'agissant au final d'un éditeur WYSIWYG pour HTML5, il faut voir ce qui est déjà supporté par les éditeurs actuels.
HTTP et Offline application ?
File API (HTML5) ?
Il ne faut pas oublier que JavaScript fonctionne dans un navigateur et est complètement lié aux technologies HTML5 et CSS3.