j4ts / j4ts-awt-swing

A JSweet implementation for AWT/Swing
17 stars 3 forks source link

Latest distribution built with JSweet 1.x #10

Open vorth opened 2 years ago

vorth commented 2 years ago

I'm attempting to use this candy in my own JSweet app build. I've managed to get the build to not fail utterly in the first phase, but I get the following warning in the output:

*********************************************************************
*********************************************************************
 YOUR CLASSPATH CONTAINS JSweet v1.x CANDIES
 This can lead to unexpected behaviors, please contribute to https://github.com/jsweet-candies
 to add your library's typings
*********************************************************************
*********************************************************************

I presume this warning appears because j4ts-awt-swing hasn't been recompiled in three years.

I'm perfectly happy to rebuild j4ts-awt-swing using the latest Maven plugin, but I'm failing after a couple of hours of wrestling with the pom.xml. I updated the HTTP URLs to HTTPS to make Maven happy, and I tried to find versions of the dependencies that would build. I'd like to contribute an updated pom.xml back in a PR, but I'm shooting in the dark a bit, not being a Maven expert.

I suspect that I may need to rebuild some other projects like j4ts-file, but I've failed on that one, too.

Is anyone interested in helping me understand the dependencies a bit more?

vorth commented 2 years ago

I will close this issue, as I now have my own fork that is updated to the latest JSweet. However, I'll wait until my JSweet PRs have made it into a release and I can PR on this repo also.

Also, I'm looking for some guidance about the feasibility of using this library in earnest, since it has been some years since it was under active development. I've already reached out to @renaudpawlak by email, since we have corresponded before. @schaumb I'd love to understand what your goals were when you were active here, and any feedback you can give me about this library and its state of readiness. Please feel free to email me as scott at vorthmann.org.

vorth commented 2 years ago

Update: I have heard from @renaudpawlak by email, and I feel sure that he won't mind if I share his response:

j4ts-awt-swing was a PoC to show what would be possible with JSweet. I did not spend too much time on it so it is far from being production ready. It is complicated to give a figure though because it depends what you mean with "production-ready". It might almost do the job with a project that uses a subset of swing, and require one year of work for another project that would use features that are complicated to implement with JavaScript. For what I have in mind to have a viable product (to transpile almost any Swing project by clicking on a button), I would say that this is ONLY 5% prod-ready !!

For the general case, I came to the "personal" conclusion that it was possible to emulate Swing, but that it was not worth the effort. For instance, with the Sweet Home 3D project, we transpiled the controller and model layers, but we re-developed a small UI layer in pure JS for the UI. That was a more efficient choice.

I don't know your project. But in general, I would not recommand to use JSweet to transpile a Swing project directly. There are many differences with the Web UI approach and the Swing approach, which makes it quite complicated to transpile (you would need to know very well both platforms). Plus you have to keep in mind that Web means also mobile or at least responsive, which usually make Swing apps unable to transpile as is to the Web environment. I am not saying that it is not possible. More like: it is not reasonable. But again, what's true in general, might be wrong for your personal context.