JavaFX Sightings (forked from Re: Can JavaFX do CAD?)
John C. Turnbull
ozemale at ozemail.com.au
Sat Jul 27 17:19:49 PDT 2013
+1
Such a site could be very useful.
-----Original Message-----
From: openjfx-dev-bounces at openjdk.java.net
[mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of Daniel Zwolenski
Sent: Sunday, 28 July 2013 09:56
To: Pedro Duque Vieira
Cc: OpenJFX Mailing List
Subject: JavaFX Sightings (forked from Re: Can JavaFX do CAD?)
The idea of a JFX Sightings page (in the tradition of the Swing Sightings
page) has been raised before and I think is a good one.
It deserves it's own page though, that technet section isn't up to it in my
opinion.
Personally I think this would be great under the fxexperience site as it
partners nicely with the links of the week?
On 28/07/2013, at 4:17 AM, Pedro Duque Vieira <pedro.duquevieira at gmail.com>
wrote:
> I have an Swing/JavaFX app, the site is: http://modellus.co
>
> How can I get it to be on that real world usecases section? Or does it
> not have the necessary requirements to be in it?
>
> Thanks, best regards,
>
> @John: On the JavaFx community site they have a section with
> references to
>> real world usecases.
>> http://www.oracle.com/technetwork/java/javafx/community/index.html
>>
>> On Sat, Jul 27, 2013 at 1:40 AM, John C. Turnbull
>> <ozemale at ozemail.com.au
>>> wrote:
>>> Like Daniel said, none of what we say is in any way a criticism of
>>> the JavaFX development team who, in my view and that of the entire
>>> community, are doing an awesome job.
>>>
>>>
>>>
>>> For mine, all the shortcomings of JavaFX (perceived or actual) can
>>> be
>> blown
>>> away if I could just demonstrate what JavaFX is really capable of.
>>>
>>>
>>>
>>> We have Ensemble from Oracle and also Ensemble from JFXtras (whose
>>> demo incidentally doesn't run since Java 7 Update 21). With Oracle
>>> Ensemble
>> we
>>> can see that JavaFX has quite a nice set of basic controls and that
>>> it at least supports very simple animations. With JFXtras Ensemble
>>> we can see that very nice controls are possible but unfortunately
>>> many of these are
>> of
>>> a rather "whimsical" nature and not the kind of control you would
>>> use in everyday business apps.
>>>
>>>
>>>
>>> What else is there?
>>>
>>>
>>>
>>> Of course we have rock stars like Gerrit Grunwald who frequently
>>> post awesome controls and code snippets but we really need something
>>> that
>> brings
>>> it altogether in a kick-arse showcase. Preferably a whole suite of
>> killer
>>> apps that highlights everything JavaFX is capable of.
>>>
>>>
>>>
>>> Yes, that would require a lot of effort but IMHO it is absolutely
>>> worth
>> it.
>>> Without it, people like me really struggle to sell JavaFX or even
>>> get a handle on its true potential. I can promise people that more
>>> advanced things are "possible" but given that they write the
>>> cheques, they need to see it for themselves.
>>>
>>>
>>>
>>> And how about a website of JavaFX reference sites? There must be
>>> big companies out there using it right?
>>>
>>>
>>>
>>> In the end it doesn't matter if I personally see enormous potential
>>> for JavaFX if I cannot convince others to see what I see.
>>>
>>>
>>>
>>> -jct
>>>
>>>
>>>
>>> From: Daniel Zwolenski [mailto:zonski at gmail.com]
>>> Sent: Saturday, 27 July 2013 09:12
>>> To: John C. Turnbull
>>> Cc: Richard Bair; openjfx-dev at openjdk.java.net
>>> Subject: Re: Can JavaFX do CAD?
>>>
>>>
>>>
>>> +1
>>>
>>>
>>>
>>> I've failed to convince multiple clients that they should use JFX
>>> because of
>>>
>>>
>>> a) lack of examples of what it can really do, and how to make it do
>>> that (e.g. in enterprise space we have
>>> http://static.springsource.org/docs/petclinic.html)
>>>
>>> b) lack of any big or notable players out there actually using it,
>>> or at least publicly saying they are using it
>>>
>>> c) the deployment hassles vs the ease of html app deployment and the
>>> true cross-platform-ness of html
>>>
>>>
>>>
>>> After actually getting one client to trust me on it and use it on a
>>> real, commercial app (startup), I hit problems with performance
>>> (broad interpretation of the term, not 'framerate'), crippling
>>> deployment and
>> auto
>>> updating issues, missing basic features (e.g. maximise button,
>>> coming in
>>> 2014 I believe?), unpredictability of CSS styling, and a lack of
>>> best practices for things like how to do CAD-like diagrams (not so
>>> much render performance but zooming, panning, mouse input, layering,
dragging, etc).
>>>
>>>
>>>
>>> Like John, I've been guilty of letting my frustration show in these
>> forums.
>>> Like John, it's because I want so badly for JavaFX to be the
>>> platform I develop on, it has the potential to be awesome, but
>>> things (that seem obvious and small to me) completely stop it from
>>> being usable in a real world situation for me.
>>>
>>>
>>>
>>> It's not that we think the JFX team aren't slogging their guts out,
>> clearly
>>> you are. It's just that in some key areas, there are small-ish
>>> blocks
>> that
>>> stop the whole rocket from launching. To then see a whole lot of
>>> effort
>> be
>>> poured into things like binary CSS/FXML compilation, Pi platform
>>> support (that's more important than iOS/Android, really?), web
>>> deployment
>> patches,
>>> or even 3D (as cool as that is), just knocks me about. Obviously
>>> your priorities are coming from somewhere different to ours, but the
>>> way you prioritise is unfathomable to me and that definitely adds to
>>> the frustration.
>>>
>>>
>>>
>>> At this stage, I am not suggesting my clients use JFX (I actively
>>> discourage them from it, in their interest). Mobile is the area that
>>> has the
>> potential
>>> to bring JFX back into usable for me as it can compete easier with
>>> the current technologies (which are all crap). Maybe if that ends up
>>> working
>> (a
>>> long, long road to go on that and very much an 'if') then it will
>>> seep
>> back
>>> into the desktop for me, but at a minimum the desktop deployment
>>> options will need to be improved before that's even a possibility.
>>>
>>>
>>> I've come to accept that I am not in the primary target audience for
>>> JavaFX, maybe a secondary target. I don't understand who the primary
>>> target is though, and knowing/accepting doesn't make it any less
>>> frustrating. I
>> keep
>>> involved in the hope that I might get a usable platform somewhere
>>> along
>> the
>>> way but it's more of a hope than a belief.
>>>
>>>
>>>
>>> So nothing really new above, but just adding my voice to John's.
>>> JavaFX
>> is
>>> definitely not production ready for me, my clients and the types of
>>> apps
>> I
>>> build (e.g. consumer facing online systems, enterprise/backoffice
>> systems,
>>> form/data systems, diagramming systems). One day I hope it will be,
>>> but it's moving extremely slowly or not at all in the areas that
>>> would make it so for me. Meanwhile the competitors (primarily
>>> JavaScript based solutions) are improving rapidly in the areas where
>>> they have traditionally been weak.
>>>
>>>
>>>
>>>
>>>
>>> On Sat, Jul 27, 2013 at 8:30 AM, John C. Turnbull <
>> ozemale at ozemail.com.au
>>> <mailto:ozemale at ozemail.com.au> > wrote:
>>>
>>> Hi Richard,
>>>
>>> I have to stop posting late at night, that one came across as really
>> ANGRY!
>>>
>>> It's not anger, it's passion... and frustration.
>>>
>>> I am frustrated because I spend much of my day trying to convince my
>>> employer that we should be using JavaFX. They ask me questions like:
>>>
>>> "What happens if Oracle abandons JavaFX just like Sun did with JMF,
>> Java3D,
>>> JOGL etc. ?"
>>>
>>> I say:
>>>
>>> "This is Oracle, not Sun."
>>>
>>> They say:
>>>
>>> "Can you show me what JavaFX can do? There must be examples out
>>> there right?"
>>>
>>> And I say:
>>>
>>> "Sure, here's Ensemble."
>>>
>>> They say:
>>>
>>> "OK, so it has a nice set of basic controls and can do simple
>>> animations but what about more complex things like Flash?"
>>>
>>> ...hence the dancing cat reference.
>>>
>>> It's not that my employer *needs* dancing cats, it's just that they
>>> need
>> to
>>> see that there is more to JavaFX than red circle transitions. I
>>> can't
>> even
>>> prove to them that JavaFX is capable of dancing cats. They don't
>>> have
>> the
>>> resources to fund me to develop something more sophisticated but
>>> they
>> tell
>>> me that if JavaFX truly was a "mature" technology (like I tell them)
>>> then where are all the examples?
>>>
>>> I am finding it difficult to convince them that JavaFX is production
>> ready
>>> and is not still in "experimental" mode because I am unable to
>> demonstrate
>>> its true capabilities or refer them to many examples of people (and
>>> I
>> mean
>>> big companies) actually using it.
>>>
>>> The main concerns of my employer and I think many companies in a
>>> similar situation is that JavaFX won't survive long term and that it
>>> is only
>> really
>>> suitable for form based applications. Then of course there is the
>>> whole
>>> "HTML5 runs on all platforms" argument but that's another story...
>>>
>>> So this is why I think it's imperative that Oracle invests in
>>> developing
>> a
>>> true showcase application for JavaFX. Something that non-technical
>> people
>>> (like managers who make decisions about where the money goes) can
>>> look at it and go "wow!".
>>>
>>> I am just not getting my managers to go "wow" at what I can show
>>> them
>> with
>>> JavaFX at the moment.
>>>
>>> Every comment or apparent criticism I post about JavaFX is from the
>>> perspective that I am trying to deal with real-world problems and
>>> people who require proof (such as demos, reference sites etc.) and
>>> not because I myself think JavaFX is not up to scratch.
>>>
>>> It's quite the opposite actually.
>>>
>>> I am a very, very strong believer and supporter of JavaFX and have
>>> many reasons both personal and professional as to why I want it to
>>> be a
>> massive
>>> success. As I have said before, there are plenty of people who
>>> praise JavaFX and tend to avoid the very real issues that are
>>> restricting its adoption. I just think we have to face these issues
>>> head on if we are to compete in what is a very cut-throat industry.
>>>
>>> -jct
>>>
>>>
>>> -----Original Message-----
>>> From: Richard Bair [mailto:richard.bair at oracle.com
>>> <mailto:richard.bair at oracle.com> ]
>>> Sent: Saturday, 27 July 2013 01:40
>>> To: John C. Turnbull
>>> Cc: 'Daniel Zwolenski'; openjfx-dev at openjdk.java.net
>>> <mailto:openjfx-dev at openjdk.java.net>
>>> Subject: Re: Can JavaFX do CAD?
>>>
>>>> For Flash, there are literally millions of examples of
>>>> fancy/complex/impressive graphics and animations out there that can
>>>> be really impressive at times. I have not seen ONE such example in
>> JavaFX!
>>>
>>> Point to one?
>>>
>>> Have you seen any of the JavaOne examples? The movie wall or movies
>>> on a stack of 3D cubes was pretty good. But I guess you're not
>>> interested in
>> the
>>> 3D aspect? What is it you are looking for exactly? Different people
>>> (on this
>>> list) have had different perceptions on both (a) what's important
>>> and (b) what kind of graphics they're interested in. Most people
>>> would deride the dancing cat as being totally irrelevant to the
>>> types of applications they're trying to build (the basis for much of
>>> flash animations is shape
>> morphing,
>>> you can find some code here https://gist.github.com/gontard/5029764).
>>>
>>> On the other hand, JavaFX is not a replacement for OpenGL. Drawing
>>> 25 million lines is just not something we can do right now,
>>> especially in a resource constrained environment. I've already
>>> commented on the memory overhead (which would continue to be an
>>> issue even if the drawing part of the problem were solved).
>>>
>>> I've pushed to graphics repo the StretchyGrid, which is about 300k
>>> line nodes (the actual amount is variable, see the javadoc
>>> comments). At 300k nodes the scene graph overhead is negligible on
>>> the FX side, dirty opts
>> is
>>> taking a long time to run, and painting is really slow.
>>>
>>> PULSE: 347 [122ms:222ms]
>>> T12 (8 +0ms): CSS Pass
>>> T12 (8 +0ms): Layout Pass
>>> T12 (47 +53ms): Waiting for previous rendering
>>> T12 (100 +1ms): Copy state to render graph
>>> T10 (101 +16ms): Dirty Opts Computed
>>> T10 (117 +105ms): Painted
>>> Counters:
>>> Nodes rendered: 306565
>>> Nodes visited during render: 306565
>>>
>>> If I were doing this by hand in open GL, I think the drawing would
>>> be essentially free, if I used LINES with GL anti-aliasing, I could
>>> send 'em all down to the card in a single shot (and if I had a
>>> modern GL I could
>> do
>>> LINES + FXAA or one of the other per-pixel AA algorithms available
>>> and it would turn out pretty nice). Because our shapes don't
>>> implement the
>> non-AA
>>> path, and our AA involves software rasterization and uploading of
>> pixels, I
>>> expect that to be the main source of the 105ms time being spent here.
>>>
>>> Also I noticed (by turning on prism.showdirty=true) that the entire
>>> grid
>> is
>>> being painted every time, even though visually it looks like only a
>>> small subset actually needs to be changed. But that's really a minor
>>> thing, as
>> I
>>> said, drawing this many lines should basically be free if I
>>> configure "smooth" to false in the app. Except that right now it is
>>> totally not implemented (in NGShape):
>>>
>>> public void setAntialiased(boolean aa) {
>>> // We don't support aliased shapes at this time
>>> }
>>>
>>> The point of stretchy grid is not to say "wow look at this amazing
demo".
>>> The point is to say "what happens if I put in 300K nodes. Where does
>>> the system start to fall over?".
>>>
>>> Richard=
>>>
>>>
>>>
>>>
>
>
> --
> Pedro Duque Vieira
More information about the openjfx-dev
mailing list