Innovation again (was Re: Text classes)

Michael Ennen mike.ennen at gmail.com
Fri Dec 15 20:47:15 UTC 2017


I am not trying to create an OpenJFX repository that is maintained to any
degree
 But, in my work on the Robot API I also went ahead and created the
necessary
infrastructure to get OpenJFX building on Appveyor (Windows continuous
integration) and Travis CI (both Linux and macOS continuious integration).

You can see the commits to the repository here:
https://github.com/brcolow/openjfx/commits/master

Currently some of it is silly (like using the github releases deployment to
host screen
captures of failed tests) but that can all be very easily adapted.

Adding in the deployment of the actual build artifacts and creating a
mercurial
to git mirror would allow us to get live builds for all three major
platforms.

My work in this area may be useful for anyone who wants to maintain an
OpenJFX community repository for fielding contributions from a wider
field which can then be submitted to Oracle.

On Fri, Dec 15, 2017 at 12:26 AM, Chris Newland <cnewland at chrisnewland.com>
wrote:

> Hi John,
>
> Here's my $0.02 on JavaFX as someone who's used it for over 4 years in the
> JITWatch project (https://github.com/AdoptOpenJDK/jitwatch) and also for
> fun with my DemoFX benchmarks (https://github.com/chriswhocodes/DemoFX).
>
> On the whole I think the API is very good. Event handling, layout, choice
> of components give me 99% of what I need.
>
> The CSS approach to styling feels a bit clunky when I want to change
> fine-grained appearance programatically without defining new CSS classes.
> Proper font metrics would be nice too (already discussed recently).
>
> The Canvas/GraphicsContext API provides a decent entry point into "old
> school" 2D programming and a way to avoid the scenegraph which does suffer
> with scale when you push it too hard. You can do fun things with
> PixelReader/Writer.
>
> Personally I'd like an even lower level API to framebuffers as the current
> implementation looks a bit copy-heavy (my opinion from just the source
> code, I've not had time to see how much the JIT saves us here). I'd really
> like the video frame grabber API for MediaPlayer (deprecated after 8)
> added back but I'm probably alone here. I can always go off-heap here or
> just implement a video decoder in pure Java.
>
> For 3D I think a component that provides a surface usable by an existing
> OpenGL library is probably better than trying to replicate in pure OpenJFX
> but this isn't really my area.
>
> I was disappointed when Oracle decided to drop support for ARM / IoT but
> that's no reflection on the JavaFX team, just a commercial decision by a
> cloud-focused company. I've tried to keep IoT support going via community
> builds of JavaFX 8 at https://www.chriswhocodes.com but I never really
> cracked getting Windows builds working. I'm hoping to find some time next
> year to work with the AdoptOpenJDK group (CC'd) and Laurent Borges
> (Marlin/MarlinFX) to improve early access testing and cross-platform
> support of OpenJFX builds. This got a lot harder since the modular JDK9
> where you can no longer simply modify OpenJFX, rebuild, and drop an
> overlay onto your JRE.
>
> There are a few companies doing great work (Canoo, Gluon etc.) and a long
> list of community individuals (Gerrit, Carl, Sean, Almas, Johan, Alessio,
> Sven, Andres, Dirk, Dierk, Michael, Jens, Jose, ... actually the more I
> think about it the longer this list gets) who showcase what is possible.
>
> The Gluon mobile stuff looks really interesting and I've just started
> trying to rewrite an iOS native app into a cross-platform app using their
> Eclipse plugin.
>
> In summary I'm very happy with JavaFX and I think the community, while
> small, contains a lot of talent and energy.
>
> The "official" OpenJFX devs are responsive to the community while being
> realistic about what can be achieved outside their sanctioned roadmap.
>
> If there's 1 single thing I'd like to ask for it's an updated set of build
> instructions for each platform. That's the biggest barrier to getting more
> community patches submitted in my opinion.
>
> Just the $0.02 of one JavaFX user ;)
>
> Cheers,
>
> Chris
> --
> @chriswhocodes
>
>
>
> On Wed, December 13, 2017 02:28, John-Val Rose wrote:
> > I posted this over a week ago:
> >
> >
> >> I am willing to work with *anyone* (within Oracle or not) on the
> >> features
> > that the community craves,
> >> such as those I listed (and any others). Not just because “many hands
> > make light work” but because
> >> I don’t know everything (or even close) and I need the knowledge and
> >>
> > skills of others to assist me. Not
> >> to mention that I have only 24 hours in a day like everyone else and,
> > also like everyone else, some of
> >> that time has to be devoted to earning an income.
> >>
> >> So, if there’s anyone reading this who has the time, the skills, the
> >>
> > commitment and the passion to work hard (in your own time) to get these
> > tasks done then please contact me privately.
> >
> > To my significant disappointment, only one person has contacted me since
> > then in relation to this proposal.
> >
> > I'm beginning to think that I am completely out of touch with the JavaFX
> > community, what they actually want and also with exactly *what* JavaFX is
> > or is meant to be.
> >
> > I have reached out on this list and via Twitter in the hope that an
> > inspired and passionate group of developers could come together, pool
> > their resources and collaborate on taking JavaFX as far is it can
> possibly
> > go as a fully-fledged hardware-accelerated graphics toolkit for the JVM.
> >
> > But... it seem that my "vision" for JavaFX is unique to me and I have to
> > say that I really don't understand why that is.
> >
> > Is it that the JavaFX community see it as merely a Swing replacement or
> > "upgrade" and that there just aren't people out there who want to do more
> > sophisticated things with a Java-based toolkit or at least see
> performance
> >  increase dramatically?
> >
> > Or, do people feel that the kind of features you can find in say Qt
> > cannot be added to JavaFX because it's a "Java thing": well all know how
> > slow Java is and that if you want to do real animations, visualisations
> > etc. then you have to use C++?
> >
> > Well, it's not the 1990s anymore.  Java is NOT the problem.
> >
> >
> > So, what IS the problem?
> >
> >
> > I have to say that as chief architect for my company, if the JavaFX
> > community (and I include Oracle as a big part of that) simply don't want
> > to see innovation in JavaFX, won't support or contribute to making it
> > happen or feel they don't need it, causing JavaFX to lag further and
> > further behind other graphic toolkits and never be capable of supporting
> > such features as advanced animations, visualisations, games, 3D, VR, AR
> > and have proper HTML5 support etc. then, despite being a huge Java fan
> and
> > advocate, JavaFX simply can't even be on the table of technologies to
> > choose from when I'm developing a technological strategy.
> >
> > So, I'd like to ask this multi-part question in the hope that as many
> > people reply as possible:
> >
> > *** For *your* siutation, what is JavaFX, how do you want it to evolve
> > and what does it mean to you? ***
> >
> > Maybe I really am "Robinson Crusoe"...
> >
> >
> > ​​
> > Graciously,
> >
> >
> > John-Val Rose
> > Chief Scientist/Architect
> > Rosethorn Technology
> >
> >
> >
> > On 6 December 2017 at 17:16, John-Val Rose <johnvalrose at gmail.com>
> wrote:
> >
> >
> >> Absolutely - there needs to be a viable community that is not just
> >> Oracle.
> >>
> >>
> >> So, is there one? If not, how do we build one?
> >>
> >>
> >> OK, so let me rephrase my earlier email:
> >>
> >>
> >> I am willing to work with *anyone* (within Oracle or not) on the
> >> features that the community craves, such as those I listed (and any
> >> others). Not just because “many hands make light work” but because I
> >> don’t know everything (or even close) and I need the knowledge and
> >> skills of others to assist me. Not to mention that I have only 24 hours
> >> in a day like everyone else and, also like everyone else, some of that
> >> time has to be devoted to earning an income.
> >>
> >> So, if there’s anyone reading this who has the time, the skills, the
> >> commitment and the passion to work hard (in your own time) to get these
> >> tasks done then please contact me privately.
> >>
> >>> On 6 Dec 2017, at 16:50, Philip Race <philip.race at oracle.com> wrote:
> >>>
> >>>
> >>> There needs to be a viable community that is not just Oracle to
> >>> support
> >> you here ..
> >>> I think everyone has come to be dependent on Oracle to "be there".
> >>> But if there is a specific community need that Oracle doesn't see as
> >>>
> >> essential, then the community should help out.
> >>>
> >>> -phil.
> >>>
> >>>
> >>>> On 12/5/17, 9:27 PM, John-Val Rose wrote:
> >>>> Well, that’s all fine but you didn’t address the issue of working
> >>>> with
> >> someone within Oracle to get these innovations done.
> >>>>
> >>>> Sure, I could just toil away by myself but clearly it would be
> >>>> better
> >> all around if there was someone with much more extensive knowledge of
> >> JavaFX and its internals who was accessible when required.
> >>
> >>>>
> >>>> I would assume that a member of the Oracle JavaFX team would be
> >>>> such a
> >> person. If not, then who?
> >>>>
> >>>>> On 6 Dec 2017, at 15:53, Philip Race<philip.race at oracle.com>
> >>>>> wrote:
> >>>>>
> >>>>>
> >>>>> I think looking at it as an Oracle-owned and controlled project
> >>>>> maybe
> >> the first mistake here.
> >>>>> Yes it was closed source and then Oracle controlled, but not any
> >>>>> more,
> >> OCA requirements aside.
> >>
> >>>>> It is not even a "java specification". It can be evolved at an
> >>>>> API
> >>>>>
> >> level without a JSR.
> >>>>> The JEP process is the main thing to be followed, although we
> >>>>> also use
> >> CSRs too to track API.
> >>
> >>>>> Consider it that anyone who is a contributor owns (not the right
> >>>>> word
> >> ?) a piece of it too.
> >>
> >>>>> So standing on the project is what matters. Not the company who
> >>>>> pays
> >> you to work on it.
> >>>>>
> >>>>> -phil.
> >>>>>
> >>>>>
> >>>>>> On 12/5/17, 8:21 PM, John-Val Rose wrote:
> >>>>>> Phil et. al.,
> >>>>>>
> >>>>>>
> >>>>>> Whilst I’m not going to be quite as “passionate” as some on
> >>>>>> this
> >> issue (although I do understand the frustration), I would like to point
> >> out again that this is indeed a huge gap and it is critical that it is
> >> filled ASAP.
> >>
> >>>>>>
> >>>>>> Obviously a solution where every word in a text document is a
> >>>>>> Node
> >>>>>>
> >> would be unworkable so it would need to be architected from the ground
> >> up.
> >>>>>>
> >>>>>> I would be happy to work on such as feature, just as I was
> >>>>>> happy to
> >> work on implementing WebGL, but my hesitation is concern over the
> >> assistance and involvement from Oracle.
> >>>>>>
> >>>>>> If I am going to have to spend months working on something
> >>>>>> without
> >> any or only minimal involvement from Oracle, only to find at the end
> >> that Oracle either doesn’t like the design, implementation or something
> >> else then it is wasted time I’ll never get back.
> >>>>>>
> >>>>>> There are lots of other innovations too that I would like to
> >>>>>> see in
> >> JavaFX but I just don’t “feel the enthusiasm” from Oracle.
> >>
> >>>>>>
> >>>>>> If there is someone on the JavaFX team who would be willing to
> >>>>>> work
> >> with me (at least in some capacity), please have them contact me
> >> privately via email.
> >>>>>>
> >>>>>> The innovations I could work on and contribute include:
> >>>>>>
> >>>>>>
> >>>>>> 1. WebGL support in WebView
> >>>>>> 2. Better text support including text documents&   rich text
> >>>>>> editors
> >> etc.
> >>>>>> 3. Significant improvements in scene graph rendering speed
> >>>>>> using
> >> modern game-engine style structures and algorithms
> >>>>>>
> >>>>>> JavaFX cannot survive without innovation and I am keen to see
> >>>>>> it
> >> happen and contribute as much as possible.
> >>>>>>
> >>>>>> Graciously,
> >>>>>>
> >>>>>>
> >>>>>> John-Val Rose
> >>>>>> Rosethorn Technology
> >>>>>>
> >>>>>>
> >>>>>>> On 6 Dec 2017, at 11:36, javafx at use.startmail.com wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>> Sorry about all the typos previously.
> >>>>>>>
> >>>>>>>
> >>>>>>> Question- why not use the code in awt ? I am not totally up
> >>>>>>> on
> >> what's going on with the platforms' native rendering engines ( meaning,
> >> I
> >> have no idea whatsoever) or how they have changed, but golly it sure
> >> does still work pretty well.
> >>>>>>>
> >>>>>>> At least it seems to me looking at awt that a smallish number
> >>>>>>> of
> >> things are 1) well defined by the native platofrm and 2) would more or
> >> less translate directly to an Java API and 3) from those small number of
> >>  building blocks, (Font and Glyph metrics and this kind of thing)
> >> text line layout algorithms can be written by ordinary civilians along
> >> with all the other stuff that goes into a text editor.
> >>>>>>>
> >>>>>>> And yes, everything does look easy when someone else is going
> >>>>>>> to do
> >> it.
> >>>>>>>
> >>>>>>>
> >>
> >
>
>
>


-- 
Michael Ennen


More information about the openjfx-dev mailing list