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. #21
    Membre émérite 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 : 41
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Non, il n'y a que du maven dans le getting started
    Dans le premier exemple, oui. Mais dans le deuxième c'est le plugin antrun et si je lis bien ce qui se passe, ça transpile les sources et crée des "bundles" grâce à une option supplémentaire.

    D'ailleurs le antrun ne fait qu'exécuter une classe Java et il y a un tableau récapitulatif dans le bas de la page qui donne les options possibles.

    https://github.com/cincheo/jsweet/bl...eLauncher.java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Arf j'avais pas vu qu'il y avait l'appel d'un application standalone dans le pom, j'ai vu pom j'ai passé mon chemin en pensant que c'était un plugin Tout à fait ce que je cherchais.

  3. #23
    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
    Par défaut
    Cool. Si ca peut aider, voici aussi un build ant pour le projet jsweet-examples que j'ai fait rapidou pour illustrer le principe.

    Pour info, le projet jsweet-examples utilise le plugin Maven, mais le projet jsweet-examplles-threejs utilise le lanceur en ligne de commande.

    As usual, le lancer avec l'option --help te donnes la liste des options.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <!-- An example build file for ant users -->
    <!-- To be adapted to your own needs -->
    <project name="jsweet-examples" basedir="." default="compile">
     
    	<property name="java.input.dir" value="./src" />
    	<property name="ts.dir" value="./.jsweet/ts" />
    	<property name="js.dir" value="./target/js" />
    	<!-- must contain all the Java jars for the transiler + all necessary Candies -->
    	<property name="lib.dir" value="libs" />
     
    	<path id="classpath">
    		<fileset dir="${lib.dir}">
    			<include name="**/*.jar" />
    		</fileset>
    	</path>
     
    	<!-- must be run the first time and when dependencies change (requires Maven in the path) -->
    	<target name="copy-maven-dependencies">
    		<exec executable="cmd">
    			<arg value="/C" />
    			<arg value="mvn" />
    			<arg line="dependency:copy-dependencies -DoutputDirectory=${lib.dir}" />
    		</exec>
    	</target>
     
    	<target name="compile" depends="clean">
    		<java classname="org.jsweet.JSweetCommandLineLauncher" fork="true" failonerror="true">
    			<!-- ts output dir -->
    			<arg value="--tsout" />
    			<arg value="${ts.dir}" />
    			<!-- js output dir -->
    			<arg value="-o" />
    			<arg value="${js.dir}" />
    			<!-- input dir -->
    			<arg value="-i" />
    			<arg value="${java.input.dir}" />
    			<classpath refid="classpath">
    			</classpath>
    		</java>
    	</target>
     
    	<target name="clean">
    		<delete dir="${out.dir}" />
    	</target>
     
    </project>

  4. #24
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Par défaut
    Cette techno parait intéressante mais aussi très proche de ST-JS, quelqu'un saurait-il expliquer la différence entre les 2 ?

    J'ai commencé à utiliser TeaVM un autre transpileur plus proche de GWT dans le sens où il émule l'environnement Java (enfin une partie) mais avec la différence qu'il prend le byte code en entrée et non le code source (ce qui lui permet de fonctionner aussi avec d'autres langages de la JVM). Il est encore assez peu connu mais je le trouve très bien et surtout beaucoup plus rapide à compiler que GWT (son principal reproche).

    Il serait peut-être intéressant de faire cohabiter ces 2 approches, par exemple partager dans un premier temps la logique applicative commune entre un backend java et un frontend web grâce à GWT ou TeaVM, puis compléter l'application web par JSweet ou ST-JS pour l'intégrer dans un framework web tel que Angular ou autre.

    C'est ce que je compte faire pour mon prochain projet. Si quelqu'un a déjà fait un tel choix de conception, je suis intéressé par son retour d'expérience

  5. #25
    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
    Par défaut
    @ultraboa: effectivement c'est très très proche de ST-JS. Si proche que nous sommes actuellement en discussion pour voir si une alliance serait envisageable.

    Concernant les différences (point de vue forcément un peu pro-jsweet )...

    1. JSweet propose en standard quasiment toutes les librairies JavaScript bien typées, via une traduction des APIs TypeScript de DefinitelyTyped. Par exemple, c'est possible d'utiliser Angular avec toutes ses extensions mais aussi plus de 1000 librairies (voir http://www.jsweet.org/candies-snapshots/). ST-JS permet aux programmeurs d'écrire leurs propres bridges et vient avec une dizaine de libs sous maven, mais la communauté étant sans commune mesure avec celle de TypeScript il n'y a vraiment à mon avis aucune comparaison possible entre la quantité et la qualité des APIs fournies par JSweet. De ce point de vue là, je conseille vivement (et objectivement) d'utiliser JSweet, un transpiler sans les APIs ne permettant pas de tirer partie de toute la puissance de JavaScript.

    2. JSweet passe par TypeScript pour compiler contrairement à ST-JS qui compile directement en JavaScript. Avantage à ST-JS en terme de performance a priori (info non vérifiée), mais avantage à JSweet en terme de fiabilité et de flexibilité. En effet, JSweet recompile le code généré via TypeScript ce qui permet une double vérification et garantie que le code JavaScript généré est de la même qualité que le code généré par TypeScript (ce qui n'est pas rien). Grâce à TypeScript, JSweet est capable de générer du code compatible de ES3 à ES6 et de gérer les modules AMD, UMD et commonjs (Node.js)... Accessoirement l'autre avantage est de pouvoir éventuellement avoir facilement des équipes mixtes JSweet (Java) / TypeScript.

    3. ST-JS propose un plugin Maven plus élaboré. Le plugin Maven JSweet est plus basique. Par contre JSweet propose un plugin Eclipse.

    4. ST-JS propose en standard un support pour les tests unitaires. JSweet aussi supporte les tests unitaires mais clairement moins aboutis pour l'instant, ce qui demandera pour les utilisateurs un peu plus de travail à mettre en place (mais c'est possible bien évidemment).

    Voilà, j'espère ne pas avoir été trop biaisé dans cette comparaison.

    Concernant l'architecture que tu mentionnes, je ne connais personne qui ne l'ai encore essayée. Par contre on a plusieurs exemples qui utilisent angular (pour inspiration peut-être):

    - https://github.com/cincheo/jsweet-ex...s/Angular.java
    - https://github.com/lgrignon/jsweet-node-example

    La RC1 JSweet doit sortir début janvier. Un timing idéal pour le tester sur un vrai projet

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, 09h06
  2. [Recherche] Projet Open Source en Java
    Par totobibi dans le forum Contribuez
    Réponses: 7
    Dernier message: 25/02/2009, 11h30
  3. Framework&Tools Open Source en Java pour Jeux Videos
    Par karmaGfa dans le forum Projets
    Réponses: 3
    Dernier message: 29/01/2007, 13h27
  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, 09h53

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