IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

JSweet : un transpileur open source de Java à JavaScript


Sujet :

Java

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 875
    Points : 86 930
    Points
    86 930
    Billets dans le blog
    2
    Par défaut JSweet : un transpileur open source de Java à JavaScript
    JSweet : un transpileur open source de Java à JavaScript
    Pour construire des applications JavaScript en utilisant vos compétences en Java

    Avec le désir d’offrir aux développeurs Java une approche simple et légère pour créer des applications web, le développeur Renaud Pawlak, CEO de Cincheo, une société de logiciels basée à Paris, a conçu et rendu open source une technologie baptisée JSweet. JSweet est un transpileur de Java à JavaScript via TypeScript. Pour rappel, un transpileur ou un compilateur source à source est un type de compilateur qui prend le code source d'un langage de programmation et le compile dans un autre langage de programmation. Un transpileur opère sur deux langages avec approximativement le même niveau d'abstraction, alors qu'un compilateur traditionnel compile un langage de haut niveau vers un langage de bas niveau.

    JSweet est construit au-dessus de TypeScript, le langage de programmation libre et open source développé par Microsoft, et qui est un surensemble de JavaScript. D’après sa description sur son site officiel, « JSweet exploite TypeScript pour vous apporter la façon la plus sûre et la mieux typée de programmer des applications JavaScript en utilisant le langage et les outils Java ». La construction de JSweet au-dessus de TypeScript permet en effet d’amener les toutes dernières API JavaScript dans le monde Java. En d’autres termes, il permet aux développeurs de se reposer seulement sur leurs compétences en Java pour construire des applications web en JavaScript.

    Si le code JavaScript peut être utilisé avec TypeScript, ce n’est toutefois pas le cas avec JSweet, vu que les API et la sémantique Java et JavaScript sont trop différentes. Pour décrire JSweet, Pawlak explique que sa technologie fait le même travail que TypeScript, mais pour Java.

    Une autre précision importante concernant ce transpileur open source est que « JSweet n’est pas Java », a-t-on signalé sur GitHub. Il utilise seulement sa syntaxe ainsi que les API et programmes exécutés en JavaScript. Autrement dit, avec JSweet, vous pouvez profiter des outils Java pour programmer des applications JavaScript en utilisant les toutes dernières bibliothèques JavaScript. En ce qui concerne les bibliothèques JavaScript, il faut noter qu’elles sont disponibles en Java grâce à l'API Translator Tool de JSweet.

    Parmi les caractéristiques de ce nouveau transpileur open source, on peut citer les suivantes :

    • une correspondance complète de la syntaxe entre Java et TypeScript, y compris les classes, les interfaces, les types fonctionnels, les types union, les types tuple, les types object, les types string, etc. ;
    • plus de 1000 bibliothèques JavaScript bien typées disponibles à partir de Java, des frameworks et des plug-ins pour écrire des applications web et mobiles HTML5 (JQuery, Underscore, Angular, Backbone, Cordova, Node.js, et bien plus encore) ;
    • un plug-in Eclipse pour une installation et une utilisation faciles ;
    • une facilité d’utilisation de JSweet à partir de n’importe quel EDI ou depuis la ligne de commande ;
    • un mode de débogage pour permettre le débogage du code Java au sein du navigateur de votre choix ;
    • un ensemble d’exemples web et mobile HTML5 pour commencer à utiliser et vous habituer à JSweet et les API JavaScript les plus communes ;
    • un support pour les modules JavaScript (commonjs, amd, umd). Les programmes JSweet peuvent fonctionner dans un navigateur ou dans Node.js ;
    • un support pour différentes versions cibles d’ECMAScript (ES3 à ES6) ;
    • un support pour les bundles pour exécuter les programmes générés dans la manière la plus simple.


    Démarrer avec JSweet

    Sources : GitHub, Page officielle JSweet

    Et vous ?

    Que pensez-vous de ce nouveau transpileur ?
    Quelles facilités pourrait-il apporter ?
    Quelles seraient ses limites ?

    Voir aussi

    Forum Java
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Quelle est la différence avec gwt?

  3. #3
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonjour

    Citation Envoyé par tchize_ Voir le message
    Quelle est la différence avec gwt?
    Il y a un tableau comparatif avec GWT/Vaadin et DukeScript sur la page d'accueil de l'outil, donnée en lien de l'article.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 498
    Points : 1 148
    Points
    1 148
    Par défaut
    Je ne comprends pas pas pourquoi les gens apprennent tout simplement pas le Javascript tout simplement.
    Surtout que si vous le temps d'apprendre JsSweet alors vous avez le temps d'apprendre Javascript.

    Au meme d'apprendre directement TypeScript.

  5. #5
    Futur Membre du Club Avatar de ShaeOuloul
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par koyosama Voir le message
    Je ne comprends pas pas pourquoi les gens apprennent tout simplement pas le Javascript tout simplement.
    Très bonne remarque, il est en fait plus simple de faire du Javascript directement. Mais ce que j'ai compris de JSweet, c'est qu'il apporte en fait toute la robustesse d'un langage compilé (comme TypeScript) par rapport à Javascript ou tout est interprété, ou la complétion dans les IDEs est encore assez basique, et ou les outils de refactoring sont quasi inexistants. En fait, je trouve que cette techno, tout comme TypeScript, CoffeeScript apporte du professionnalisme à une technologie en vogue. De plus, on bénéficie de tout l'outillage de l'écosystème Java (Maven, Eclipse, Ant, Gradle etc...)
    Je pense que cette techno est plus une techno d'entreprise, bien que je l'ai utilisée pour moi et que ca ait très bien fonctionné pour un petit projet.

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par koyosama Voir le message
    Je ne comprends pas pas pourquoi les gens apprennent tout simplement pas le Javascript tout simplement.
    Surtout que si vous le temps d'apprendre JsSweet alors vous avez le temps d'apprendre Javascript.

    Au meme d'apprendre directement TypeScript.
    On pourrait dire la même chose avec TypeScript : pourquoi l'apprendre au lieu de faire directement du JavaScript ?


    Sinon JsSweet c'est du Java, donc il n'y a pas vraiment d'apprentissage spécifique pour un développeur Java (autre que les APIs qu'il apporte, mais c'est la même chose pour toutes les librairies qu'on utilise).


    Je ne connais pas JsSweet mais GWT qui propose à peu près la même chose, et l'intérêt justement c'est de ne pas avoir à écrire du JavaScript (ou très peu), et de pourvoir utiliser un langage plus robuste car fortement typé (entre autre).

    Car dès qu'on fait du Web on n'a pas vraiment de choix pour la couche client : on est obligé d'utiliser du JavaScript.
    Les autres solutions apportant beaucoup trop de contrainte...


    Et le JavaScript a beau avoir des qualités, il a aussi beaucoup de défauts qui peuvent vite devenir complexe dans de grosse application...


    Citation Envoyé par yann2 Voir le message
    Il y a un tableau comparatif avec GWT/Vaadin et DukeScript sur la page d'accueil de l'outil, donnée en lien de l'article.
    Au passage il y a une grossière erreur car ils disent que GWT s'exécute seulement sur le serveur... alors qu'il s'exécute aussi sur le client.


    a++

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par koyosama Voir le message
    Je ne comprends pas pas pourquoi les gens apprennent tout simplement pas le Javascript tout simplement.
    N'imagine pas que parce que l'on fait des choses comme GWT on ne fait pas de javascript. Mais quand je compare le dev de l'application en javascript et le dev de l'application avec angularJS (ben oui on a les deux au boulot), je trouve le dev GWT bien plus confortable et efficient en termes de temps de développement. L'utilisation d'un language fortement typé comme java permet de détecter énormément de choses à la compilation. Le développement JS, c'est travailler au marteau et au ciseau à bois. Certe c'est joli et propre à l'arrivée, mais dans la plupart des cas, sortir la défonceuse et la scie à ruban, c'est bien plus efficace.

    Et surtout, des trucs comme GWT, ça permet d'avoir des objets qui sont les mêmes entre le code serveur et le code client, pour tout ce qui est DTO, ce n'est pas négligeable. Avec du pur javascript, on doit coder chaque DTO deux fois, on doit faires tous les changements à deux endroits...

    Pour le tableau de comparaison GWT / JSweet, je l'ai vu, mais je ne vois pas où l'auteur a vu qu'on ne savait pas utiliser les milliers de farameworks JS existant en GWT, ça ne pose pas de soucis.

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Pour le tableau de comparaison GWT / JSweet, je l'ai vu, mais je ne vois pas où l'auteur a vu qu'on ne savait pas utiliser les milliers de farameworks JS existant en GWT, ça ne pose pas de soucis.
    En fait c'est juste qu'ils proposent des librairies Java pour ces frameworks, permettant de les utiliser directement avec JSweet sans rien faire de spécial :
    https://jsweet.org/apidocs/releases/org/jsweet/candies/
    https://jsweet.org/apidocs/snapshots...sweet/candies/

    Après même le lien semble meilleur qu'avec GWT puisqu'il n'y a pas à écrire de code JavaScript (tout est fait via des déclarations/annotations).
    Là où avec GWT c'est un peu plus "complexe" pour l'instant car il faut le faire à la main avec JSNI et du code JavaScript.


    Mais du peu que j'en ai vu, cela semble fonctionner un peu de la même manière que JS Interop de GWT 2.8...


    [edit] L'autre gros avantage de JSweet (et de JS Interop de GWT 2.8), c'est qu'il est possible d'écrire en Java des classes qui serait utilisable directement en JavaScript.

    a++

  9. #9
    Futur Membre du Club Avatar de ShaeOuloul
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Merci adiGuba, c'est exactement ça. Pour ma part je n'ai jamais utilisé GWT mais je l'ai vu utilisé, et j'ai contribué à JSweet dernièrement. En fait, l'avantage de JSweet c'est effectivement que tu utilises la syntaxe Java, mais la légèreté de de Javascript, toutes les librairies sont utilisables directement dans le code Java et il n'y a rien à faire tourner c'est une simple transpilation.
    Je ne sais pas pourquoi l'auteur, Renaud Pawlak a précisé que GWT ne tournait que coté serveur, mais je pense que c'est une erreur.

    Dans tous les cas, comme pour GWT, JSweet permet le partage du code entre le client et le serveur, mais le but premier et la robustesse et la légèreté. Il y a d'autres articles qui discutent de la différence entre JSweet et GWT c'est assez intéressant par exemple https://news.ycombinator.com/item?id=10737058
    D'ailleurs on constate que c'est Renaud Pawlak qui a répondu en personne donc les réponses seront surement plus pertinentes que les miennes

    Je vais essayer de faire un Live sample pour JSweet, pour que Renaud l'intègre au site.

    Bye!

  10. #10
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    J'ai regardé d'un peu plus près JSweet, et la comparaison avec GWT est faussée et dessert même JSweet tant les deux n'ont pas grand chose en commun.

    JSweet permet d'écrire son code dans le langage Java... mais cela s'arrête là : tout cela reste du JavaScript/TypeScript.
    Du coup je comprend mieux la remarque de koyosama : autant faire du TypeScript directement...


    GWT va beaucoup plus loin que cela, en implémentant un grande partie de l'API Java, ce qui permet d'importer un très grande nombre de librairies Java (à partir du moment où l'on dispose du code source), ou de partager du code entre le serveur et le client.
    Sans oublier que GWT propose plein d'API permettant de simplifier le développement d'une webapp...


    a++

  11. #11
    Membre à l'essai
    Homme Profil pro
    Créateur d'entreprise
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Créateur d'entreprise
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 11
    Points
    11
    Par défaut
    Hello adiGuba,

    En tant que créateur de JSweet, je me permets de réagir à ton analyse, qui est à la fois tout à fait exacte, mais mérite aussi d'être complétée

    Oui, GWT et JSweet n'ont rien à voir. Mais j'ai eu tellement de personnes qui m'ont demandé en quoi JSweet différait de GWT (et qui ne comprenaient pas la différence) que j'ai bien du essayer de l'expliquer. Ce genre de comparatif n'a pas pour objectif d'être universel, mais de mettre en avant les différences fondamentales. Je l'affine jour après jour en prenant en compte l'opinion des gens, mais JSweet n'étant en ligne que depuis un petit mois, c'est encore loin d'être parfait.

    Comme l'explique maintenant la première ligne de mon comparatif, JSweet est un transpiler, alors que GWT est un framework (qui intègre un transpiler). JSweet, c'est exactement comme TypeScript, mais pour Java, alors que GWT vient avec toute une mécanique pour créer des applis client-serveur avec un SDK propre à GWT. JSweet est très light (moins de 40.000 lignes de code, encore mois si on enlève les tests) alors que GWT, c'est un gros logiciel (>600.000 lignes de code il me semble). Donc, oui, si tu veux, tu peux dire que GWT va beaucoup plus loin, mais en réalité je pense que ce n'est pas tout à fait juste de dire cela car en réalité c'est juste que les approches, les philosophies, et les objectifs sont radicalement différents.

    GWT a poursuivi pendant des années le Graal de prendre du code Java avec des APIs Java et de l'exécuter sur le WEB. C'est un objectif louable et enthousiasmant, mais qui mène à un framework complexe et qui présente un grand nombre de désavantages:

    1. C'est très lourd (désolé... je n'aime pas la critique).
    2. Quand tu commences faire du GWT, tu utilises leur SDK et tu te retrouves donc enfermé dans des APIs et une logique spécifique.
    3. Comme tu n'as pas accès aux APIs JS, toutes les dernières avancées des frameworks JS (AngularJS, KnockoutJS, ThreeJS, Node.js, Three.js, D3.js, etc, etc) ne te sont pas accessibles (ou très difficilement).
    4. Comme le code généré préserve la sémantique du langage Java, cela donne un code généré pas toujours simple à débugger dans un browser même avec les source maps... au contraire JSweet étant "WYSIWYG", tous les éléments du code Java se retrouvent dans le browser, y compris les variables que tu peux accéder via la console par exemple. La stacktrace est fidèle à ton fil d'exécution et reflète ton code source Java original. Comme en TypeScript donc, c'est facile de s'y retrouver.

    JSweet est donc beaucoup plus proche de TypeScript/JavaScript. Quand tu veux faire une appli client-serveur, tu peux tout à fait utiliser un serveur Java ou un serveur Node.js, et tu es totalement libre de l'architecture que tu souhaites utiliser. Tu peux facilement partager des Data Objects entre le programme JSweet (JavaScript client-side) et Java (server-side) car ils vont compiler aussi bien dans l'un ou l'autre contexte.

    Oui, en JSweet, tu ne peux pas utiliser les API Java. Donc effectivement, la question de pourquoi ne pas utiliser TypeScript est légitime. La réponse pour moi est très claire: c'est comme vous voulez. Les deux marcheront aussi bien, sauf que dans le cas de JSweet, les développeurs se retrouveront dans un environnement Java, avec un tooling Java et avec 90% des concepts et du langage qu'ils connaissent déjà. Par exemple un développeur Java programmant une appli Node.js n'aura pas à connaitre les "require" de commonjs, mais pourra simplement faire des imports Java, comme il a l'habitude de le faire (et son IDE favori pourra lui faire automatiquement en fonction des APIs qu'il souhaite utiliser). Il est clair pour moi qu'un développeur JavaScript ira préférentiellement vers TypeScript car c'est un superset et qu'il a l'habitude du tooling. Mais un développeur Java aura le choix, et sans aucun risque car le code généré est très lisible, ce qui permettra de switcher sur TypeScript si nécessaire.

    Last but not least, je tiens à signaler que JSweet est le premier projet au monde à avoir traduit l'ensemble des API JavaScript DefinitelyTyped en Java, soit des centaines d'API JS. En ce sens, JSweet est allé BEAUCOUP plus loin que GWT! En réalité JSweet et GWT pourraient être complémentaires car GWT serait très content de pouvoir bénéficier de ces APIs...

    Voilà. J'espère que ces précisions permettront de clarifier les esprits et surtout d'expliquer pourquoi mon tableau comparatif pose autant de problème aux gens. Oui, il est potentiellement polémique de prime abord, mais il est là pour faire comprendre aux gens que les philosophies sont radicalement différentes et qu'il ne s'agit en aucun cas d'un clone de GWT. Je l'améliore de jour en jour

    Cheers!

  12. #12
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut renaudpawlak,


    Je ne remet pas en cause JSweet ou ses qualités.

    C'est vraiment la comparaison qui est foireuse. C'est comme si tu comparais un pneu à une voiture... et au final cela te dessert plus qu'autre chose.

    Pour avoir une comparaison valide il faudrait que ce comparatif prennent également en compte les possibilités offerte par GWT, par exemple :
    • Pourvoir utiliser une partie de l'API standard Java (dont l'API de Collections : http://www.gwtproject.org/doc/latest...Emulation.html)
    • Pourvoir utiliser n'importe quelle librairies Java (à partir du moment où l'on dispose des sources et qu'elle n'utilise pas des API non-supporté)
    • Pourvoir partager du code métier entre le client et le serveur (et pas seulement des Data Objects).
    • Pourvoir bénéficier de stacktraces mappé vers le code Java "autant que possible" (selon le navigateur).
    • Bénéficier des optimisations du compilateur (en particulier la suppression du code mort et la résolution des constantes à la compilation)



    De plus, outre le fait qu'il manque beaucoup d'éléments, le comparatif reste un peu biaisé sur les autres points
    • Node.js support : Techniquement c'est possible de l'utiliser avec GWT (il y a d'ailleurs un vieux projet là dessus : gwt-node).
      C'est juste qu'il n'y a pas trop d'intérêt puisque c'est exactement la philosophie inverse de GWT (pourquoi vouloir utiliser Java sur le client, et JavaScript sur le serveur !)
    • Code Execution : GWT est sur "It depends" alors qu'il permet de vraiment exécuter du code sur le client ET sur le serveur.
      JSweet est sur "Can do both" alors qu'il permet seulement d'exécuter du code sur le client, et simplement de partager des Data Objects avec le serveur.
    • Native in-browser Java debugging : Pourquoi est-ce "less native" ? Tu parles bien de SourceMaps ?
      Avec GWT il fournit bien le code initial (en mode dev seulement bien sûr).
    • Available well-typed Java libraries : tu oublies de préciser que l'on peut ajouter n'importe quel librairie à partir du moment où l'on définit ses wrappers.
      La seule différence c'est que ce n'est pas fournit par GWT lui-même. Il faut soit écrire le wrapper soit-même, soit trouver une librairie toute faite
      Or tu laisses entendre que ce n'est pas possible...




    Sinon concernant tes 4 points :

    1. GWT est certainement plus lourd à mettre en place et le build est un peu long, mais c'est tout aussi performant à l'exécution.
    2. faux : tu peux très bien faire du GWT en te contentant d'utiliser le compilateur, sans utiliser leurs API ou logique (je le fais déjà partiellement).
    3. faux : j'utilise plusieurs librairies JavaScript sans aucun problème.
    4. faux : SourceMaps fonctionne avec GWT, avec une association 1-1 vers le code source Java correspondant.



    Si je dis tout cela, ce n'est pas pour "casser" JSweet ou autre. Au contraire...
    Le comparo avec GWT semble placer JSweet comme une solution alternative bien meilleure et proposant plus de fonctionnalité... mais c'est deux technos tellement différentes qu'il n'en est rien (et du coup la déception est encore plus grande).



    Last but not least, je tiens à signaler que JSweet est le premier projet au monde à avoir traduit l'ensemble des API JavaScript DefinitelyTyped en Java, soit des centaines d'API JS. En ce sens, JSweet est allé BEAUCOUP plus loin que GWT! En réalité JSweet et GWT pourraient être complémentaires car GWT serait très content de pouvoir bénéficier de ces APIs...
    En clair tu as conçus un convertisseur qui transforme les fichiers .d.ts en .java afin de pouvoir les utiliser directement sans rien toucher.
    Très astucieux ! Je me demandais comment tu avais pu proposer autant de librairies si rapidement...


    a++

  13. #13
    Membre à l'essai
    Homme Profil pro
    Créateur d'entreprise
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Créateur d'entreprise
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 11
    Points
    11
    Par défaut
    Je sais bien que GWT permet d'écrire des wrappers pour accéder aux API JavaScript, mais je considère que si chaque programmeur doit les écrire à la mano, il s'agit d'un boulot titanesque et comme JSweet le propose en standard, il me semble honnête de dire que GWT ne propose pas les APIs en standard.

    Je sais aussi que tu peux faire du GWT sans utiliser les APIs GWT, mais dans ce cas, tu sors du framework initial. C'est un peu biaisé aussi il me semble de dire que GWT c'est léger alors que tu as du batailler et entrer dans les entrailles du framework pour n'en utiliser que le quart non?

    De la même manière, je ne suis pas allé regarder de près GWT avec Node.js, mais clairement, comme tu le dis toi même, cela va contre la philosophie du projet. Est-ce vraiment GWT ou encore une manière de récupérer une partie de GWT pour faire ce pour quoi il n'a pas été prévu à la base? Est-ce au moins dans la doc officielle? Honnêtement, avec JSweet, c'est super natif de faire du Node.js... (voir https://github.com/lgrignon/jsweet-node-example).

    Au final je pense qu'effectivement, GWT cherche à faire tellement de choses qu'on peut le détourner pour faire autre chose que GWT. Mais la question que je pose: est-ce-vraiment encore du GWT? Si je commence à mettre tout ce qu'on "saurait faire" en mode non standard avec GWT, alors il me faudrait un tableau de 2 pages et il y aurait du vert partout. Ce ne me semble pas bien non plus.

    A mon avis un projet se doit d'avoir une ligne directrice claire et un focus lisible et simple pour ses utilisateurs. A mon avis, GWT veut trop en faire. On ne peut pas à la fois avoir les bénéfices de Java et de JavaScript, le tout dans un projet simple... c'est une utopie. C'est comme si on avait ajouté du code C directement dans du code Java plutôt que de faire JNI. A un moment, il faut séparer les préoccupations, modulariser les problèmes.

    Tout ceci étant dit, je comprends bien ton point et je vais le prendre en compte. J'apprécie ta perspicacité:

    En clair tu as conçus un convertisseur qui transforme les fichiers .d.ts en .java afin de pouvoir les utiliser directement sans rien toucher.
    Très astucieux ! Je me demandais comment tu avais pu proposer autant de librairies si rapidement...
    Tu as quasiment tout compris à JSweet!

  14. #14
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Le problème c'est que tu compares JSweet à GWT, avec un comparatif qui met plein d'avantages et de fonctionnalités à JSweet en ignorant totalement les avantages de GWT.

    Du coup au premier regard on croit trouver une alternative à GWT en mieux.
    Mais en fait c'est pas çà du tout déception...

    Cela te dessert car la comparaison avec GWT attirera les utilisateurs de GWT, et la première chose qu'ils remarqueront c'est tout ce qu'ils ne pourront plus faire...



    a++

    PS : Pour Node.js la remarque vaut aussi pour JSweet : pourquoi vouloir écrire du Java qui tournera sur du JavaScript lorsqu'on peut faire du Java qui tournera sur une JVM...

  15. #15
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    @renaudpawlak je serait tenté de tester ça au boulot sur une webapp de type angular.js et actuellement préparée avec une combinaison de ant + npm. As-tu une doc sur comment lancer la transcompilation à la main, que j'en fasse une target ant?

  16. #16
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    @renaudpawlak je serait tenté de tester ça au boulot sur une webapp de type angular.js et actuellement préparée avec une combinaison de ant + npm. As-tu une doc sur comment lancer la transcompilation à la main, que j'en fasse une target ant?
    Salut

    Visiblement, il y a tout ce qu'il te faut dans la page Getting Started.

    Yann

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par yann2 Voir le message
    Visiblement, il y a tout ce qu'il te faut dans la page Getting Started.
    Non, il n'y a que du maven dans le getting started

  18. #18
    Membre à l'essai
    Homme Profil pro
    Créateur d'entreprise
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Créateur d'entreprise
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 11
    Points
    11
    Par défaut
    @adiGuba: j'ai mis à jour le comparatif pour essayer de prendre en compte tes remarques.

    @tchize_: Tu cherches vraiment à lancer JSweet avec Ant? C'est possible mais il va falloir que tu gères toutes les dépendances à la main. Comme il faut pour l'instant travailler sur les snapshots (la RC1 ne devrait pas tarder), c'est vraiment pas pratique. Tu es prêt a aller chercher les jars à la main dans notre repo?

    Je vais faire une petite doc sur comment il faudrait faire mais en spécifiant clairement que je ne conseille pas Ceci dit, ce sera plus gérable quand on aura fait la première release officielle.

    Pour les autres, il y a un plugin Maven et un plugin Gradle pour ceux qui préfèrent. J'ai ajouté les liens sur le site principal (menu tooling) et sur github.

  19. #19
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par renaudpawlak Voir le message
    @tchize_: Tu cherches vraiment à lancer JSweet avec Ant? C'est possible mais il va falloir que tu gères toutes les dépendances à la main. Comme il faut pour l'instant travailler sur les snapshots (la RC1 ne devrait pas tarder), c'est vraiment pas pratique. Tu es prêt a aller chercher les jars à la main dans notre repo?
    Un mvn dependency:copy-dependencies et c'est fait, j'ai l'habitude de gérer les dépendances venant de maven à la mano sur mes projets

    Par contre j'avais pas vu que tu étais toujours en RC-1, je testerais probablement seulement à la première release

  20. #20
    Membre à l'essai
    Homme Profil pro
    Créateur d'entreprise
    Inscrit en
    Décembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Créateur d'entreprise
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 6
    Points : 11
    Points
    11
    Par défaut
    OK je suis convaincu Je te notifie quand c'est prêt (sans doute dans la journée)...

Discussions similaires

  1. Solutions open source en Java, de Business Intelligence
    Par Pierre8r dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 06/05/2009, 10h06
  2. [Recherche] Projet Open Source en Java
    Par totobibi dans le forum Contribuez
    Réponses: 7
    Dernier message: 25/02/2009, 12h30
  3. Framework&Tools Open Source en Java pour Jeux Videos
    Par karmaGfa dans le forum Projets
    Réponses: 3
    Dernier message: 29/01/2007, 14h27
  4. Solution de reporting Open Source en Java pour générer des rapports Word, RTF ?
    Par jmax_ dans le forum Autres outils décisionnels
    Réponses: 3
    Dernier message: 19/06/2006, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo