Hi,
first of all I would like to say that I fully agree with everything that
has been
said so far in this thread and I am glad that someone is pushing this long
overdue discussion. Please find my comments inline.
Am 15.12.17 um 10:09 schrieb John-Val Rose:
[...]
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.
A lot has already been discussed on this list and elsewhere but my
impression
is that all these ideas are forgotten faster than they are written up
because
there is no place to collect them and no person to organize and
administer such
a place. If such a place existed I would be more than happy to share my
ideas
with others.
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).
Yes, I see this as a big stumbling stone as well. I would like to add
that it would
also be necessary to advertise the use of such builds and to harmonize the
handling of version numbers of such builds. I currently have a lot of
problems
using my own builds as well as the EA builds from Oracle with the existing
build tools and IDEs. Many of them get a hick-up if they encounter build
versions
beyond the current/official versions.
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.
In order for this to become true JavaFX first needs to get some basics
right.
My keyword here would be:
- Platform integration (e.g. Mac menu bar.)
- Working packager on all platforms
- An automatic update mechanism for applications (not WebStart)
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.
For collecting and structuring of ideas something like GitHub and its Wiki
seem to be a better suited than a mailing list (which we already have.).
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.
Go for it. Someone has to make the first step.
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 <cnewl...@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 <johnvalr...@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.r...@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.r...@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, jav...@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.