+1

On Fri, 17 May 2019 at 09:04, Andrew Kondratev <[email protected]> wrote:
>
> Hi everyone! Do you think I should proceed with this
> https://github.com/apache/wicket/pull/363 and to try to
> incorporate WICKET-6667 into?
>
> ср, 8 мая 2019 г. в 17:09, Martin Grigorov <[email protected]>:
>
> > Looks good to me!
> >
> > On Mon, May 6, 2019 at 2:04 AM Andrew Kondratev <[email protected]>
> > wrote:
> >
> > > Hi! I hope everyone had a great weekend!
> > >
> > > I tried to add a frontend-maven-plugin to do the TS build inside of maven
> > > build by simply enabling `ts-transpile` and it works pretty well.
> > >
> > > Also committed a resulting wicket-ajax-jquery.js. A resulting code looks
> > > very similar to original.
> > >
> > > Here's the commit
> > >
> > >
> > https://github.com/andruhon/wicket/commit/8fc6ea95b77ee18f14356ccd4c5ed6ee725e16a4
> > >
> > >
> > > пт, 3 мая 2019 г. в 17:41, Martin Grigorov <[email protected]>:
> > >
> > > > Awesome!
> > > > Thank you, Andrew!
> > > >
> > > > I've added few minor comments.
> > > > It looks very promising!
> > > >
> > > > On Fri, May 3, 2019 at 7:59 AM Andrew Kondratev <[email protected]>
> > > > wrote:
> > > >
> > > > > Please see this commit in my branch
> > > > >
> > > > >
> > > >
> > >
> > https://github.com/andruhon/wicket/commit/f507ae60f183882336b6ca145ab945a6ba9bc94a
> > > > >
> > > > > пт, 3 мая 2019 г. в 16:46, Andrew Kondratev <[email protected]>:
> > > > >
> > > > > > Hi Everyone!
> > > > > >
> > > > > > Today I tried to quickly migrate a wicket-ajax-jquery into a bunch
> > of
> > > > TS
> > > > > > files and made it build into something similar to what was
> > originally
> > > > > > there. Just made it compile and checked that  Wicket.Class.create()
> > > > works
> > > > > > with this example:
> > > > > >
> > > > > > ```
> > > > > >         Wicket.SomethingElse = Wicket.Class.create();
> > > > > >         Wicket.SomethingElse.prototype = {
> > > > > >             initialize: function() {
> > > > > >                 this.message = "HiThere!";
> > > > > >             },
> > > > > >             hi: function() {
> > > > > >                 console.log(this.message);
> > > > > >             }
> > > > > >         };
> > > > > >         var something = new Wicket.SomethingElse();
> > > > > >         something.hi();
> > > > > > ```
> > > > > >
> > > > > > The implementation is still missing some bits and pieces and for
> > sure
> > > > not
> > > > > > optimal, just a proof of concept. Just wanted all you to have a
> > look
> > > > and
> > > > > > think if it worth further time investment.
> > > > > >
> > > > > > чт, 2 мая 2019 г. в 20:58, Andrew Kondratev <[email protected]
> > >:
> > > > > >
> > > > > >> Right, I'll try to toss these objects into separate TS files
> > WITHOUT
> > > > > >> changing anything in implementation to finish with with full
> > > > > compatibility
> > > > > >> with all existing code and tests and will see how it looks like.
> > If
> > > > > result
> > > > > >> will look good we can discuss how the TS transpilation can be
> > > properly
> > > > > >> squeezed into the wicket build.
> > > > > >>
> > > > > >> P.S. I don't think that transpilation of this amount of code will
> > > take
> > > > > >> longer than 1 or 2 seconds.
> > > > > >>
> > > > > >> чт, 2 мая 2019 г. в 20:51, Martin Terra <
> > > > > [email protected]
> > > > > >> >:
> > > > > >>
> > > > > >>> to 2. toukok. 2019 klo 11.42 Martin Grigorov (
> > [email protected]
> > > )
> > > > > >>> kirjoitti:
> > > > > >>>
> > > > > >>> > On Thu, May 2, 2019 at 11:17 AM Andrew Kondratev <
> > > > > [email protected]
> > > > > >>> >
> > > > > >>> > wrote:
> > > > > >>> >
> > > > > >>> > > The idea for using TypeScript came into my mind when I was
> > > > > >>> implementing
> > > > > >>> > > custom AjaxBehaviour, because I had a few issues with it:
> > > > > >>> > > 1. The 3000 lines file is not quite a readable thing.
> > > > > >>> > > 2. There's not a lot of intelli sense help when someone
> > trying
> > > to
> > > > > >>> > implement
> > > > > >>> > > something. Say it's hard to remember what's the object passed
> > > to
> > > > > >>> > > Wicket.Ajax.post, and what's dh in this object, is dh an
> > object
> > > > or
> > > > > a
> > > > > >>> > > function or array of functions, what is ep and so on...
> > > > > >>> > >
> > > > > >>> > > Potentially second can be improved without changing the code
> > > > > itself,
> > > > > >>> by
> > > > > >>> > > implementing d.ts definitions for the file. The first problem
> > > can
> > > > > >>> also be
> > > > > >>> > > fixed by placing objects such as Wicket.Log, Wicket.Channel,
> > > > > >>> Wicket.Ajax
> > > > > >>> > > and so on into separate files and then concatenate them
> > somehow
> > > > > into
> > > > > >>> > single
> > > > > >>> > > file.
> > > > > >>> > >
> > > > > >>> >
> > > > > >>> > I start to like the idea!
> > > > > >>> > Let's see what others think.
> > > > > >>> > To convince us more you can create a branch and setup the TS
> > > build
> > > > in
> > > > > >>> > wicket-core
> > > > > >>> >
> > > > > >>> >
> > > > > >>> +1
> > > > > >>>
> > > > > >>> >
> > > > > >>> > >
> > > > > >>> > > чт, 2 мая 2019 г. в 18:17, Martin Grigorov <
> > > [email protected]
> > > > >:
> > > > > >>> > >
> > > > > >>> > > > Hi,
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > > On Thu, May 2, 2019 at 7:02 AM Andrew Kondratev <
> > > > > >>> [email protected]>
> > > > > >>> > > > wrote:
> > > > > >>> > > >
> > > > > >>> > > > > Hi Colleagues!
> > > > > >>> > > > >
> > > > > >>> > > > > Are there any plans about refactoring / modernisation of
> > > > > wicket's
> > > > > >>> > > > front-end
> > > > > >>> > > > > code?
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > > > None that I am aware of.
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > > >
> > > > > >>> > > > > What comes to my mind:
> > > > > >>> > > > >
> > > > > >>> > > > >    - Start using TypeScript for a new code, so we can
> > have
> > > > type
> > > > > >>> > safety
> > > > > >>> > > on
> > > > > >>> > > > >    the front end side as well. TypeScript is also
> > released
> > > > > under
> > > > > >>> > apache
> > > > > >>> > > > >    license, so I think there should be no licensing issue
> > > > with
> > > > > >>> this.
> > > > > >>> > > > >    Potentially, as a crazy idea Kotlin could also work,
> > > but I
> > > > > >>> think
> > > > > >>> > > > > TypeScript
> > > > > >>> > > > >    suits better and requires less effort and learning;
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > > > I do not see big profit in using TypeScript for Wicket
> > Ajax.
> > > > > >>> > > > Generally I prefer TypeScript over JavaScript, but only for
> > > > > bigger
> > > > > >>> code
> > > > > >>> > > > bases with more often development.
> > > > > >>> > > > wicket-ajax-jquery.js is quite stable in the last several
> > > years
> > > > > >>> (since
> > > > > >>> > > > 6.0.0). It is more stable for two main reasons:
> > > > > >>> > > > - we migrated the old vanilla JS code to jQuery based one.
> > > > Note:
> > > > > >>> the
> > > > > >>> > > > vanilla JS version was fragile due to the browser
> > > > > >>> incompatibilities.
> > > > > >>> > > > - we added a *lot* of JS tests !
> > > > > >>> > > >
> > > > > >>> > > > IMO using TypeScript won't add much value. It will only
> > make
> > > > the
> > > > > >>> build
> > > > > >>> > > > process more complex and a bit slower.
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > > >    - Potentially get rid of jQuery, it's not that useful
> > in
> > > > > 2019
> > > > > >>> > > (wicket
> > > > > >>> > > > >    has recently dropped legacy IE support);
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > > > This has been suggested by someone else several months ago.
> > > But
> > > > > >>> AFAIK
> > > > > >>> > > > nothing has been done so far.
> > > > > >>> > > > The good thing is that one can replace
> > wicket-ajax-jquery.js
> > > > with
> > > > > >>> > > > wicket-ajax-xyz.js in his/her application by using
> > > > > >>> > > >
> > > > > >>>
> > > > application.getJavaScriptLibrarySettings().setWicketAjaxReference(...).
> > > > > >>> > > > So both implementations could be supported by Wicket for
> > some
> > > > > time
> > > > > >>> > with a
> > > > > >>> > > > deprecation cycle for the jQuery based one.
> > > > > >>> > > > These are the requirements I have:
> > > > > >>> > > > - same Wicket.xyz APIs are supported, because this is what
> > > the
> > > > > Java
> > > > > >>> > code
> > > > > >>> > > > uses
> > > > > >>> > > > - the test suite still passes
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > > >    - Potentially introduce some modern lightweight
> > > front-end
> > > > > >>> > framework
> > > > > >>> > > > such
> > > > > >>> > > > >    as ReactJS;
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > > > What benefits would that bring ?
> > > > > >>> > > > I do not want to use ReactJS just because it is the latest
> > > > > fashion
> > > > > >>> in
> > > > > >>> > JS
> > > > > >>> > > > world.
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > > >
> > > > > >>> > > > > Sorry if it was already discussed, I searched on
> > > > > >>> > > issues.apache.org/jira
> > > > > >>> > > > > and
> > > > > >>> > > > > didn't find anything relevant. Just wanted to discuss if
> > > > > >>> something
> > > > > >>> > like
> > > > > >>> > > > > this is possible for distant future release. Potentially
> > I
> > > > can
> > > > > >>> > devote a
> > > > > >>> > > > few
> > > > > >>> > > > > hours a week to this.
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > > > Thanks for the suggestions!
> > > > > >>> > > >
> > > > > >>> > > >
> > > > > >>> > > > >
> > > > > >>> > > > > Have a nice day,
> > > > > >>> > > > > Andrew
> > > > > >>> > > > >
> > > > > >>> > > >
> > > > > >>> > >
> > > > > >>> >
> > > > > >>>
> > > > > >>
> > > > >
> > > >
> > >
> >



-- 
WBR
Maxim aka solomax

Reply via email to