Sunday, January 24, 2021

Re: Why Don’t You Use Java for Programming the Client-Side Web Apps on Web Browser?

A few years ago, a client of mine was thinking about switchung to Vue. So, I startet learning Vue. To do so, I search the internet, bought a book, install npm, code the examples and so on ... 

Two or three weeks later, my virus scanner (oh yes, I am a Mac user that has a virus scannner ... my client requested it) found two trajans which were trying to transfer Bitcoins, loaded via npm initiated by my Vue development. 

After some research I get to know, that this is a common issue, when using npm. Bad Boys trying to conquer a repo, add bad code, deploy it and distribute the files via npm. 

I think, you need to get some attention on which file you load. Or, better have a clean room where all the js files are located (after an audit ...)

Not sure, if this is a common issue or just due to my carelessly ... but it makes my scare.  

pavel....@gmail.com schrieb am Sonntag, 24. Januar 2021 um 12:36:40 UTC+1:
Hi, I see that everyone leaves 2c, so I will do the same.
But before few words about my background - 6 years with GWT+SmartGWT and now 3 years with VueJS + Vuetify + Typescript.

Definitely, it's much faster to prototype an application using VueJS.
To manage the state(Vuex) and routes(vue-router) is simple and does not matter what UI components you are going to use.

But, in the long-term development, I see that maven is better than npm - simpler to set up a multimodule project with some common settings and dependencies.
In JS world npm does not support modules. Yarn workspaces help a bit but it works just for private projects(no way to deploy it to the remote repository).
Typescript helps to write a code but in 99% of cases, 3rd libraries contain only d.ts files without Javadoc. So, you need to open a website with documentation because it's not clear what the library does.
Refactoring - forget. Event idea can't properly resolve usages of your methods.
After webpack to understand where has the error happened it's like a mission impossible. 
Testing - better to write functional code because to mock classes is not so easy as with mockito or easymock.
With JS/TS you write code slower because IDE does not resolve or properly resolve what to import, especially if code comes from another module.

So, in long term, I guess GWT provides better and simple development and support.

середа, 23 грудня 2020 р. о 09:16:49 UTC+1 vas...@gmail.com пише:
Hm the thread was about why not using java for frontend development but now has general tips for GWT.

The padlet is cool. Thanks for assembling it.

My 2c.

I have used GWT RPC in the past but I was not happy with it. The main reason was that I couldn't decouple server and client from GWT dependencies. The closest you could make was with an intermediate project that hosted the interface files.

The issue was solved for me with RestyGWT in the client and Apache CXF/Rest in the server. Totally separate and the only files I share are my POJO files.

Sharing POJO definitions between client and server is the biggest advantage of GWT for me along with static typing in the frontend. Can't live without these two.

Maybe there is a way to automatically create or define POJOs that is language independent so I could completely decouple frontend from backend. I haven't found such a way that is not completely dynamic and which throws the IDE search and usage features out of the window.

Hope that helps.

  Vassilis




On Tue, Dec 22, 2020 at 7:27 PM lofid...@gmail.com <lofid...@gmail.com> wrote:
Some tips I could say:
  • GWT is a transpiler / compiler to JavaScript, so the result only runs on Web browser, no server component. Server container or Web server only used for delivering the HTML, JS and CSS. So actually you could just use the result JS from the file system and make a double click on the HTML file to open your web app (JS).
  • The simplest example I build is the Java Calculator from this article: http://bit.ly/WebJavaStory. In this simple Maven example you can see how to run the web app, how to code, transpile and unit test and also to debug the simple calculator all with web browser.
I'm using GWT since 2006 / 2007 and until today I haven't seen any comparable tools which makes your work very productive, especially as a Java developer.

Hope this helps! Have fun!

lofid...@gmail.com schrieb am Dienstag, 22. Dezember 2020 um 12:40:39 UTC+1:
We also have a Padlet for GWT 😉

I try to collect all the information about GWT / J2CL on one Black Board: https://padlet.com/lofidewanto/gwtintro

There are articles, presentations, groups and other information for a modern GWT / J2CL development...

Hope this helps!

mysare...@gmail.com schrieb am Samstag, 19. Dezember 2020 um 01:30:44 UTC+1:
Thank you very much. I ll give it a try.

On Friday, December 18, 2020 at 4:44:32 PM UTC+1 frank.h...@web.de wrote:

Lofi has some interesting things to look at:  
* GWT Awesome Library List (Gwit a LiLi)
* there is also a boot starter for gwt, but I do not recall the name.

Good starting points are:
*  gwt-maven-archetypes: https://github.com/tbroyer/gwt-maven-archetypes
* There is also are archetype creator from DominoKit
* Nalu project generator: http://www.mvp4g.org/boot-starter-nalu/BootStarterNalu.html (Disclaimer I am the author)

And a good place to ask your questions: https://gitter.im/gwtproject/gwt

Hope that helps.

mysare...@gmail.com schrieb am Freitag, 18. Dezember 2020 um 02:01:24 UTC+1:
I am new here, so hello everyone.
I am very interested in this topic. I have gotten tired of the whole javascript ecosystem. I did not know that you could easily have GWT run only on the frontend and used jee/spring/whatever on the backend as you please. I always thought it was a client-server bundle.
Is there a tutorial that shows how it can be done?
How is the compilation speed for code-change/webpage-refresh? I have done scala many years, so I understand how frustrating it can be, even though scala is amazing.
Thanks
On Sunday, October 18, 2020 at 11:15:42 PM UTC+2 peter.j...@gmail.com wrote:
On Mon, Oct 19, 2020 at 1:56 AM lofid...@gmail.com <lofid...@gmail.com> wrote:
Thanks Craig for the info...

I'm not familiar with React (only Hello World 😉)

Can you integrate React with these GWT React frameworks? So write your components in Java and integrate them back into React JavaScript?

It may be possible in react4j to publish a java component as a react component but not without significant overhead/boilerplate. It is also possible to consume a js react component from within react4j with a little overhead and we built some of our early apps like this. However, react4j's sweet spot is when the majority of the application is written in java.

With gwt-react it is much easier to both consume js components and publish java components ... except for the normal constraints of publishing java to js. My guess is that the sweet spot for gwt-react is for applications that combine js components into a java app but I have never used it in anger.


-- 
Cheers,

Peter Donald

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.


--
Vassilis Virvilis

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/3f9c093e-3a1e-4283-8dd4-1d9d7cb5f2ean%40googlegroups.com.

No comments:

Post a Comment