yep. +1 for IE11 in JSF.next

2017-10-05 14:36 GMT+02:00 Werner Punz <werner.p...@gmail.com>:

> Yeah given the timeframe, I guess IE11 is perfectly fine. We cannot
> expect JSF 2.4 to hit the final spec before 2019, by then even
> corporate support of Windows 7 will come to an end.
>
> The main problem I see is that we probably will be stuck with supporting
> IE11 for many years, since Microsoft still basically packs it in with
> every windows 10 sort of as secondary browser. So IE11 support will die
> about 10 years after Microsoft stops doing it.
>
> And believe me even IE11
> is currently the bottom barrely quality and speedwise you currently get
> in the browser space. Even frameworks like Angular 1 basically drive the
> IE11 engine to its limits, the more shims you add it the bigger the browser
> becomes as a problem in day to day development.
>
>
> I guess we once will hit the point where we will say we cannot support it
> anymore. Not now not in 2 years but sometime in the future.
>
>
> Werner
>
>
>
> Am 05.10.17 um 14:12 schrieb Mike Kienenberger:
>
> I think it's ok for us to say that the baseline is IE11.   If you are
>> concerned, take a poll on the users list.
>>
>> On Thu, Oct 5, 2017 at 3:43 AM, Thomas Andraschko
>> <andraschko.tho...@gmail.com> wrote:
>>
>>> Hi Werner,
>>>
>>> big +1 for doing a completely new jsf.js!
>>>
>>> Basically it would be really great to use another lang as plain js.
>>> But there is also another downside: most webdevelopers and commiters of
>>> MyFaces are fimilar with plain js but maybe not with TypeScript or else.
>>> But i think we should do it if can we can easily integrate it somehow in
>>> our
>>> maven builds.
>>> My personal opinion is that i would prefer plain js if the developers
>>> must
>>> install nodejs etc. on their machines. If everything is done by maven in
>>> the
>>> background, it's ok for me.
>>>
>>> As you already said, we actually must avoid dependencies like kotlin.js
>>> and
>>> jquery.js - thats a no go and also not really required.
>>>
>>> Regards,
>>> Thomas
>>>
>>>
>>>
>>> 2017-10-05 9:19 GMT+02:00 Werner Punz <werner.p...@gmail.com>:
>>>
>>>>
>>>> Hi guys
>>>>
>>>>
>>>> I just wanted to start a discussion on how we are going to proceed with
>>>> the jsf.js codebase.
>>>> The issue is following:
>>>>
>>>> Our codebase which currently is adapted by me for 2.3 is rather old.
>>>> It by now is around 9-10 years old and back then most of the stuff I did
>>>> made sense
>>>> a) The library needed to be self contained
>>>> b) There were an awful lot of browsers in use, which did not adhere to
>>>> any
>>>> standards whatsoever
>>>> c) There was no real inheritance system available just the prototype
>>>> system which is one level below inheritance by allowing to access the
>>>> class/object tree and manipulate it on the fly
>>>>
>>>> So what I did was following
>>>> Implement my own class system for not having to deal with prototype
>>>> inheritance all the time
>>>> Since I needed to be self contained integrating a library like JQuery
>>>> (which also was it its infancy at that time) was out of the question
>>>> due to possible conflicts. There also was no widespread support
>>>> for querySelector on node level some browsers had it some browsers
>>>> had other workarounds to speed the dom node lookup up.
>>>>
>>>> Also no unified ajax handling, the ajax api was at its infancy and I
>>>> still
>>>> had to support the archaic IE way of doing things.
>>>>
>>>> To the worse there were significant differences in dom and xml handling
>>>> between the various browsers out in the wild compared to the already
>>>> defined standards (I am speaking of you IE and mobile browsers in use
>>>> back
>>>> then)
>>>>
>>>> So in the end I ended up with a codebase which is about 40-50% there
>>>> just
>>>> to support legacy browsers. While I did some work to isolate the quirks
>>>> code
>>>> and compile it out of the codebase there still is work to be done.
>>>>
>>>> Again all of this made sense back then...
>>>>
>>>>
>>>> Lots of things have been changed in those 10 years and now most of the
>>>> things do not make sense anymore.
>>>>
>>>> a) We have saner meta languages which allow to compile to javascript,
>>>> following candidates come to my mind
>>>>
>>>> - Typescript, a language which I amn very familiar with due to my day to
>>>> day work
>>>> - Coffeescript ... not very familiar with that one
>>>> - Kotlin... yes that one also has a javascript target compiler
>>>>
>>>> We definitely should opt for a meta compiler instead of pure js.
>>>> The reasons are many, and I can speak here atm only for Typescript
>>>>
>>>> - You can change ecma script levels on build level
>>>> - You can change the package management system in build level
>>>> - You get additional coding security by having the apis fortified at
>>>> least
>>>> with some types instead of doing constantly your manual asserts
>>>> - In the end the Meta language codebase is way cleaner than the original
>>>> one
>>>>
>>>>
>>>> The downside is
>>>>
>>>>
>>>> at least for typescript the maven integration is non existent, there is
>>>> a
>>>> maven clientside plugin which downloads the entire node js chain onto
>>>> your
>>>> machine within a build, but my guess is we do not need to do this
>>>> for the apache integration builds, because in the end we just need the
>>>> js
>>>> codebase. We can add special dev profile which enables the client side
>>>> build
>>>> to build the js files.
>>>>
>>>> As for Kotlin, I have not evalauted their javascript stuff but what put
>>>> me
>>>> off was that the website said you have to integrate kotlin.js which is
>>>> a no
>>>> go, but this depends, if kotlin.js just implements their runtime lib we
>>>> can
>>>> probably bypass that. I need to have a serious look at it.
>>>>
>>>> The plus side probably is that it has decent maven support and a perfect
>>>> IDE support on the Jetbrains IDEs. (Dont get me wrong the IDE support
>>>> of Typescript also is very good on those, I use it on a daily base)
>>>>
>>>>
>>>> Browser support:
>>>>
>>>> Since mobile browsers are up to rather recent standards nowadays the
>>>> problem is the desktop which at least in a corporate environment is
>>>> moving
>>>> really slowly (I wonder corporations are really cautious regarding
>>>> security
>>>> and yet often use stone old often outdated not updated anymore,
>>>> browsers -
>>>> but that is just a snarky sidenote). But still there things have gotten
>>>> better.
>>>>
>>>>  From a browser support standpoint we probably can strip the support pre
>>>> IE9 level which means we finally at least can use a standard ajax api,
>>>> ajax
>>>> multiform requests instead of the iframe hack I had to introduce for jsf
>>>> 2.2.
>>>>
>>>> I would prefer to have IE11 as baseline, given that most corporations
>>>> probably have frozen their environment on a Windows 7 IE11 baseline by
>>>> now,
>>>> but I guess we have to drag at least IE9 with us with some third party
>>>> lib
>>>> support.
>>>>
>>>> By mildly adding small external libraries and avoiding shims
>>>> we might get a small query monadish api on top of node.selectorAll like
>>>> jquery.
>>>>
>>>> I still would avoid to integrate jquery because we have a core lib
>>>> so everything integrated needs to be small. We do not have the luxury of
>>>> for instance Prime Faces which can require or bundle a huge lib like
>>>> JQuery
>>>> and JQuery UI.
>>>>
>>>> Also we definitely would need promises (again rip the code out of a
>>>> proven
>>>> shim lib  but do not shim it, if it is not supported by the browser
>>>> natively)
>>>>
>>>> So my proposal is, after 2.3 I will start with a reimplementation which
>>>> might take some time in a saner environment and with a newly defined
>>>> baseline.
>>>> And once I am done we can drop it in as alternative jsf.js codebase
>>>> for the users (we still keep the old one for 2.3)
>>>> And for 2.4 upwards we will drop the legacy codebase entirely and just
>>>> use the new reworked and cleaned up one.
>>>>
>>>>
>>>> Just a little bit of food for discussion.
>>>>
>>>> Werner
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>
>

Reply via email to