Innovation again (was Re: Text classes)
John-Val Rose
johnvalrose at gmail.com
Fri Dec 15 09:09:29 UTC 2017
Thanks for that extensive and very insightful response Chris.
Let me make something very clear, just in case people have the wrong idea:
I am not here to complain, stir-up trouble or to criticise anyone. In
fact, I greatly admire the JavaFX team at Oracle and what they are managing
to achieve within what seem like some fairly tight constraints. The entire
Java team at Oracle includes some absolute legends and true rock stars and
the JavaFX team is no exception. I just wish they had a bigger budget and
a bigger team... but fortunately, as Chris says, there is a vibrant and
surprisingly large community and OpenJFX is open-source.
My "frustration" is that I have a lofty vision of what JavaFX *could* be
and what I really want it to be but can also see that it's not there and
seemingly not heading there with any great momentum. I keep getting back
to "innovation" and the apparent lack of innovation happening with
OpenJFX. Since JavaFX 2, other than the inclusion of some basic 3D
features, I just don't see any major new enhancements and don't see any
discussions or proposals for major new features. Then there's the absence
of a product roadmap which suggests to me that the Oracle team is basically
keeping the ship afloat in a very light breeze with a broken rudder. But
again, I am *not* blaming the team themselves. I am sure they are just as
frustrated as I am (and probably even more).
So, the question I ask myself is how do we enable this innovation to happen
within the prevailing parameters. Clearly, it will require a lot of effort
from a lot of people and the cooperation of Oracle. This effort would have
a much better chance of being successful if it was to be coordinated in at
least a semi-formal manner. This leads to me the idea of offering to be
the coordinator (not the "boss", "leader" or "head honcho") of such a team
and act as both a facilitator and contributor. I am happy now that several
people have contacted me privately in relation to this and I respect their
desire to remain out of the spotlight. The available talent pool in the
community is absolutely amazing so I am hoping as many of these true
superstars can join this initiative and, together with Oracle, we can
steer JavaFX forwards and add a powerful motor to power the ship. (I'm not
sure why I'm using so many nautical metaphors!).
This initiative/team/group should not be "hidden" either - it should be
completely transparent and open to enable anyone to follow the thought
processes, the progress and the results and also to comment, constructively
criticise, make suggestions and even make small contributions. This team is
not operating in competition with Oracle - quite the opposite in fact.
It's there to complement the already great efforts of the Oracle JavaFX
team.
I am familiar with "The Java EE Guardians" and while I am not proposing
that we do something with exactly the same model, their results speak for
themselves. I am open to suggestions and ideas about how such a group/team
should be structured and the governance and actually hope that as many
people as possible chime-in with their own "2 cents".
I'm just offering to be the central contact point for now and then the
consensus can determine how we proceed.
Another thing which is becoming clear to me is that almost everyone has
some quite different ideas of what JavaFX should be or what they would like
to see included in the toolkit. This is actually a good thing as it
highlights the potential for JavaFX but clearly not every idea can be
implemented. But at least there are some key common issues and wishes that
we can probably tackle first.
Yes, Chris is absolutely spot-on about the build issues. For the broader
community to be able to contribute or be motivated to contribute, the
process must be as simple as possible and first-things-first, we have to be
able to reliably build OpenJFX on all supported platforms. No developer
wants to waste time with build issues; they just want to code. I would
suggest that this is something Oracle prioritise ahead of perhaps
everything else with OpenJFX 9/10 (and that anyone who has advanced
knowledge of the tools or the DevOps pipeline try to help as well).
As you can see, Chris has basically given us his feature/fix "wish list"
and I have received the wish lists of many others and, of course, I have my
own.
One thing that I have often referred to is the *competitors* of JavaFX
(like Qt and Xamarin) and how we are lagging behind them and that the "gap"
is growing. But one could argue that from another perspective, JavaFX is
actually itself its only real competitor being the official Java GUI
toolkit (having supplanted Swing). I like this idea because we all know
there are about 11 million Java developers in the world and I am sure most
agree that Java (or the JVM) should have a first-class graphics toolkit so
all of us who love Java and who eat, breathe & live Java don't have to
"turn to the dark side" and learn or relearn languages like C++ or (dare I
say it) C# (aka "Microsoft Java").
We can observe what is happening with other toolkits and also keep our
fingers on the pulse of graphics toolkit technology directions/advancements
in general and use these as inspirations for how we decide to enhance
JavaFX. I think I was probably wrong or at least misguided to think that
we need to try to make JavaFX "a Java version of Qt" for example. Perhaps
we just need JavaFX to meet the major requirements of Java GUI developers
and be able to use it to produce *modern* commercial applications that look
great, work well and hold their own against other products, all the while
we are not having to drift away from Java or the JVM.
So to summarise (while you are hopefully still awake), I am not suggesting
that I try to tell others what to do or what JavaFX should or shouldn't be
but rather that I am simply offering to be the central contact who
coordinates the ideas, the efforts and the team in general and also to act
as a liaison with Oracle or any other company that can be involved. I can
also try to set-up any infrastructure required such as a website, a mailing
list, Google group, GitHub project etc.
If the community feels I am not the best person for this role then that's
perfectly OK! I am more than happy to just to burn the midnight oil and
contribute in any way I can.
After all, this is not about "me" at all - it's all about JavaFX. I
strongly suspect that such luminaries as mentioned by Chris (and Chris
himself) are light years ahead of me in knowledge and skills with both Java
and JavaFX (and they are all my heroes!). Maybe if I can find an eye patch
I can be Nick Fury and the others can be The Avengers? (Sorry if you're
more of a DC fan).
Please feel free to reach out to me at any time to (privately and
confidentially) discuss any of these issues, or even better, post on this
list.
P.S. I'd like to especially praise the efforts and outstanding achievements
of Johan Vos and Gluon. All JavaFX developers owe them enormous gratitude.
And, they are already doing much of what I am proposing (though mainly in
the mobile space).
Graciously,
John-Val Rose
Chief Scientist/Architect
Rosethorn Technology
On 15 December 2017 at 18:26, 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.
> >>>>>>>
> >>>>>>>
> >>
> >
>
>
>
More information about the openjfx-dev
mailing list