7 Replies Latest reply: Aug 21, 2012 8:55 PM by bvm RSS

    My opinion of making JavaFX 2 a wanted development platform for desktop

    891716
      Hello,

      Oracle please start to add real features to JavaFX, so we can develop non toy applications in Java FX 2:
      - playing aac/aac+ from byte or really Media capabilities to handle http radio streams
      - handling of big images will small memory footprint and good timing
      - add most of the features that SWT Win32 Extension (http://feeling.sourceforge.net/) has. Forget the bloody silly concept of write once and run everywhere on desktop. If your coding database applications I agree you can do a very good cross platform application, but for anything serious If you don't have a good integration with native OS, it's all in vain. Also I can't believe that we are in 2012 and there is still no way to get the native icons for Desktop, My Computer ,drives,etc in Java.
      - add system tray support and all the features of windows 7 ( jumplists, thumbnail preview player controls ,taskbar progress indication)
      - add ability to add a context menu for windows explorer with our application
      - more audio/video codecs

      Of course a library for accessing c/COM which can be very easy used and stable would also be welcomed.

      Now the guys that will say I'm a windows fan...this is not it... I have Ubuntu at work...and yes all the Java desktop aplications on ubuntu suck...they look ugly and they act strange ( i mean swing based ones and also JavaFX ones as far as as tried ). For desktop linux is dead ( and yes I have tried a dozen of distributions ).
      For Java EE, I agree write once and deploy everywhere may work ( of course having the right servlet container or application server) but for desktop no way.

      Before being accused of trolling and stuff like that I want to explain why I've wrote a novel here: BECAUSE I CARE AND LOVE JAVA. I enjoyed many personal project on Swing, currently I'm a junior programmer using JAVA EE, and of course I've peeked a bit at Android platform also. That's why it's very hard for me give up and learn C# for example or Free pascal (Lazarus) just because they make the native stuff so simple and you can code really fun projects in them. JavaFX has a lot of very good UI controls, but in my opinion no important data to display in them...And in the end data is what matters for the end users....

      So guys, please reply to this, If you have time and ideas of what stuff would you like to see in JavaFX in order to make it a valuable development platform and maybe change Oracle priorities. Jira is good but I think a good explained list would be enough for an experience developer, eliminating the JIRA huge time overhead. -1 to Jira & Scrum/Kanban :)). Also a reply from a guy working at Oracle saying "well never do that", or "we may do that" would be nice so that I know if I'm waiting a feature that will never come.


      Regards,
      Aurelian
        • 1. Re: My opinion of making JavaFX 2 a wanted development platform for desktop
          JohnHendrikx
          888713 wrote:
          Hello,

          Oracle please start to add real features to JavaFX, so we can develop non toy applications in Java FX 2:
          - playing aac/aac+ from byte or really Media capabilities to handle http radio streams
          That sounds quite specific, although I agree that more general media capabilities, especially of highly common formats like avi, aac and mkv should be supported out of the box.
          - handling of big images will small memory footprint and good timing
          Do you have a specific problem here? The app I'm writing probably uses more images than most other JavaFX apps and they can be quite large (ie, full desktop size 2560x1600 scaled down if necessary + a dozen more smaller images, all loaded in the background, all different, each time the user navigates through my app).

          Of course, such images take up memory, and it is not uncommon to see the 256 MB I allow my application to be 90% used by Images stored in my ImageCache class. A single 2560x1600 image easily consumes 16 MB -- there is little you can do about this fact. Make sure you don't keep them in memory, but load them on demand.
          - add most of the features that SWT Win32 Extension (http://feeling.sourceforge.net/) has. Forget the bloody silly concept of write once and run everywhere on desktop. If your coding database applications I agree you can do a very good cross platform application, but for anything serious If you don't have a good integration with native OS, it's all in vain. Also I can't believe that we are in 2012 and there is still no way to get the native icons for Desktop, My Computer ,drives,etc in Java.
          'silly concept' ? 'bloody silly concept' ? You can access native libraries if you wish to tie your application to Windows, make a library for it if you are so inclined. I for one am quite happy that JavaFX runs under free operating systems as well as Windows and Apple (hopefully you didn't forget that it holds a significant portion of the desktop market), and hopefully soon on the much larger mobile market as well. Tying JavaFX to Windows would be the death of the platform for me.
          - add system tray support and all the features of windows 7 ( jumplists, thumbnail preview player controls ,taskbar progress indication)
          What is stopping you from writing this yourself?
          - add ability to add a context menu for windows explorer with our application
          Put the correct registry keys, and call your Java app in some way -- this must have been done before.
          - more audio/video codecs

          Of course a library for accessing c/COM which can be very easy used and stable would also be welcomed.
          Something like JNA? Or you prefer it handed on a silver platter with a polished Java API to the entire Win32 API?
          Now the guys that will say I'm a windows fan...this is not it... I have Ubuntu at work...and yes all the Java desktop aplications on ubuntu suck...they look ugly and they act strange ( i mean swing based ones and also JavaFX ones as far as as tried ). For desktop linux is dead ( and yes I have tried a dozen of distributions ).
          For Java EE, I agree write once and deploy everywhere may work ( of course having the right servlet container or application server) but for desktop no way.
          Linux is finicky without the correct hardware. Don't expect magic when you run it on poorly supported gfx hardware for example (Nvidia is the only choice on the Linux desktop, the rest just makes you cry). As for desktop linux being dead, that's kind of a strange statement when Microsoft is busy digging its grave with Windows 8 and you (and me) running it at work... on the desktop.
          Before being accused of trolling and stuff like that I want to explain why I've wrote a novel here: BECAUSE I CARE AND LOVE JAVA. I enjoyed many personal project on Swing, currently I'm a junior programmer using JAVA EE, and of course I've peeked a bit at Android platform also. That's why it's very hard for me give up and learn C# for example or Free pascal (Lazarus) just because they make the native stuff so simple and you can code really fun projects in them. JavaFX has a lot of very good UI controls, but in my opinion no important data to display in them...And in the end data is what matters for the end users....
          We all love Java, I loved it for the past 15 years. Tying Java to Win32 API's would be a bad move. You would be tying yourself to the fortunes of Microsoft -- it would just be another C# and a poor one at that as you cannot beat Microsoft at their own game. Furthermore, trying yourself to this platform is not a safe bet at all. OSX is pushing ahead and has captured a significant portion of the desktop market, which is only going to get bigger after users are forced to use Windows 8. Also, there is a very big chance that our future will be on mobile operating systems -- there are much more mobile devices than desktop computers, they have OpenGL capability, multi-core processors, some with screen sizes in the multi mega pixel range. Attach a good monitor and an input device and you have a full working 'desktop' computer. JavaFX must run on that and soon.

          Keeping JavaFX cross platform will allow it to be ported to whatever the next hot thing will be. Supporting not just Windows now, but also Linux and OSX will help the JavaFX designers to design API's that are portable -- it is a very poor API that only has one working implementation, you will never get all the details right when suddenly faced with an alien API that has become popular.
          So guys, please reply to this, If you have time and ideas of what stuff would you like to see in JavaFX in order to make it a valuable development platform and maybe change Oracle priorities. Jira is good but I think a good explained list would be enough for an experience developer, eliminating the JIRA huge time overhead. -1 to Jira & Scrum/Kanban :)). Also a reply from a guy working at Oracle saying "well never do that", or "we may do that" would be nice so that I know if I'm waiting a feature that will never come.
          Scrum/Kanban is cute, you'll still need to backup your memory somewhere and make it possible for external players to submit bugs and ideas. That's JIRA/Bugzilla/etc.
          • 2. Re: My opinion of making JavaFX 2 a wanted development platform for desktop
            jmart
            Havnt run into any show stoppers yet with JavaFX. I find it fun and so far the platform has been able to handle every concept I have needed to implement. I did run into problems with performance when doing scaling transitions, but I worked around it before I got a chance to debug it. If I have time I will test out scaling transitions some more to see if there is a bug there or just too high of expectations on my part.

            Have not messed around with 3d yet but I expect I am not going to like the 3d graphics performance when I get to it eventually, but this is more of a hunch and I have absolutely no evidence to back it up.

            I just want Oracle to stay committed to it through its ups and downs. With each version more and more features will be added. For demand to increase there will need to be some killer apps. I think games will be the key here.

            thanks
            jose
            • 3. Re: My opinion of making JavaFX 2 a wanted development platform for desktop
              aidreamer
              >
              add system tray support and all the features of windows 7 ( jumplists, thumbnail preview player controls ,taskbar progress indication)
              >

              JavaFX may not support this, but AWT does: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/

              Probably doesn't support everything you are asking for of course, especially OS dependent stuff.

              Edited by: aidreamer on Aug 20, 2012 8:30 PM
              • 4. Re: My opinion of making JavaFX 2 a wanted development platform for desktop
                MiPa
                John Hendrikx wrote:
                Hello,

                Oracle please start to add real features to JavaFX, so we can develop non toy applications in Java FX 2:
                - playing aac/aac+ from byte or really Media capabilities to handle http radio streams
                That sounds quite specific, although I agree that more general media capabilities, especially of highly common formats like avi, aac and mkv should be supported out of the box.
                It is not only the lack of support for more formats it is also the lack of full meta-data support. For example it is currently not always possible to find out what the correct display aspect ratio of an mp4 file is. (See http://javafx-jira.kenai.com/browse/RT-19913)
                - handling of big images will small memory footprint and good timing
                Do you have a specific problem here? The app I'm writing probably uses more images than most other JavaFX apps and they can be quite large (ie, full desktop size 2560x1600 scaled down if necessary + a dozen more smaller images, all loaded in the background, all different, each time the user navigates through my app).
                You call that a large image? I would actually call that tiny. In my daily work I have to deal with images which are larger than 10,000 pixels along each side. The current version of JavaFX (2.2) cannot even handle the images from my Canon 5D Mk II correctly. (See http://javafx-jira.kenai.com/browse/RT-23589 The issue is marked fixed but the fix did not make it into the latest release) I just mentioned this to show that if you did not stumble over a problem does not mean that nobody does.
                Of course, such images take up memory, and it is not uncommon to see the 256 MB I allow my application to be 90% used by Images stored in my ImageCache class. A single 2560x1600 image easily consumes 16 MB -- there is little you can do about this fact. Make sure you don't keep them in memory, but load them on demand.
                - add most of the features that SWT Win32 Extension (http://feeling.sourceforge.net/) has. Forget the bloody silly concept of write once and run everywhere on desktop. If your coding database applications I agree you can do a very good cross platform application, but for anything serious If you don't have a good integration with native OS, it's all in vain. Also I can't believe that we are in 2012 and there is still no way to get the native icons for Desktop, My Computer ,drives,etc in Java.
                'silly concept' ? 'bloody silly concept' ? You can access native libraries if you wish to tie your application to Windows, make a library for it if you are so inclined. I for one am quite happy that JavaFX runs under free operating systems as well as Windows and Apple (hopefully you didn't forget that it holds a significant portion of the desktop market), and hopefully soon on the much larger mobile market as well. Tying JavaFX to Windows would be the death of the platform for me.
                I guess tying JavaFX to a specific OS is not the point here but it is a matter of fact that each OS has some unique features that you will have to deal with if you want to provide a well integrated application. I would like JavaFX to have some OS specific packages which you can use if you want to perfectly adapt your application to an OS.
                - add system tray support and all the features of windows 7 ( jumplists, thumbnail preview player controls ,taskbar progress indication)
                What is stopping you from writing this yourself?
                That's a killer phrase. Of course I can write everything myself (if I have the time) but that is not a valid point when judging a framework.
                • 5. Re: My opinion of making JavaFX 2 a wanted development platform for desktop
                  JohnHendrikx
                  - handling of big images will small memory footprint and good timing
                  Do you have a specific problem here? The app I'm writing probably uses more images than most other JavaFX apps and they can be quite large (ie, full desktop size 2560x1600 scaled down if necessary + a dozen more smaller images, all loaded in the background, all different, each time the user navigates through my app).
                  You call that a large image? I would actually call that tiny. In my daily work I have to deal with images which are larger than 10,000 pixels along each side. The current version of JavaFX (2.2) cannot even handle the images from my Canon 5D Mk II correctly. (See http://javafx-jira.kenai.com/browse/RT-23589 The issue is marked fixed but the fix did not make it into the latest release) I just mentioned this to show that if you did not stumble over a problem does not mean that nobody does.
                  Are you the OP posting under an alias? How should I know what he considers a large image, sure JavaFX has problems loading larger images, as most software will that only can load images as one big chunk. It didn't sound like that was what the OP was asking though.
                  Of course, such images take up memory, and it is not uncommon to see the 256 MB I allow my application to be 90% used by Images stored in my ImageCache class. A single 2560x1600 image easily consumes 16 MB -- there is little you can do about this fact. Make sure you don't keep them in memory, but load them on demand.
                  - add most of the features that SWT Win32 Extension (http://feeling.sourceforge.net/) has. Forget the bloody silly concept of write once and run everywhere on desktop. If your coding database applications I agree you can do a very good cross platform application, but for anything serious If you don't have a good integration with native OS, it's all in vain. Also I can't believe that we are in 2012 and there is still no way to get the native icons for Desktop, My Computer ,drives,etc in Java.
                  'silly concept' ? 'bloody silly concept' ? You can access native libraries if you wish to tie your application to Windows, make a library for it if you are so inclined. I for one am quite happy that JavaFX runs under free operating systems as well as Windows and Apple (hopefully you didn't forget that it holds a significant portion of the desktop market), and hopefully soon on the much larger mobile market as well. Tying JavaFX to Windows would be the death of the platform for me.
                  I guess tying JavaFX to a specific OS is not the point here but it is a matter of fact that each OS has some unique features that you will have to deal with if you want to provide a well integrated application. I would like JavaFX to have some OS specific packages which you can use if you want to perfectly adapt your application to an OS.
                  Sure, I would like JavaFX to run on iOS, Android, my ATI card with Linux, and so on. I would want it to integrate with XFCE, Gnome, KDE, and my kitchen sink. But at some point you have to be realistic and target what most of your users will want, and I doubt integration with Windows at such a level is top priority. So built it yourself, or do a few Google's and find out that somebody already did it for you.

                  What was asked wasn't even on the radar for me. I'd prefer resources to be focused on an Android version, generic support for all media, proper support for alternative input devices (remote controls) and stand-alone applications (ie, no whining about 'going full screen' because that's what browsers apps do). I'm sure that's not everybody's priorities though, so I built the missing things myself (VLCJ for media playback, EventGhost/LIRC for remote control, etc..)
                  - add system tray support and all the features of windows 7 ( jumplists, thumbnail preview player controls ,taskbar progress indication)
                  What is stopping you from writing this yourself?
                  That's a killer phrase. Of course I can write everything myself (if I have the time) but that is not a valid point when judging a framework.
                  Are you the OP? When I see so much whining in one post, that is the phrase I will use. If instead it is posted constructively, with perhaps some realistic expectations (it's not so easy to provide uniform API's that work the same on Windows, Apple, Linux and in the future Android, etc..)... Look at NIO2 for how hard it is and how much effort is involved to do this for file/folder access -- adding some quick hacks to JavaFX to support these features is the quick road to getting an API that will not stand the test of time well.
                  • 6. Re: My opinion of making JavaFX 2 a wanted development platform for desktop
                    MiPa
                    No, I am not the OP. If I have to say something, then I use my one and only account here and elsewhere :-) You can also see my ID in the list of the top users of this forum.

                    I don't know the OP but I just do share some of his concerns. I want JavaFX to be successful, otherwise I won't spend my time here but sometimes I just have doubts.

                    Sorry, no more time to discuss more details. I'm just preparing for a flight to Scottland tomorrow.
                    • 7. Re: My opinion of making JavaFX 2 a wanted development platform for desktop
                      bvm
                      >
                      add system tray support and all the features of windows 7 ( jumplists, thumbnail preview player controls ,taskbar progress indication)
                      >

                      JavaFX may not support this, but AWT does: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/
                      Unfortunately, under JavaFX it doesn't work on Mac OS (http://javafx-jira.kenai.com/browse/RT-24170). And on Linux, it doesn't do transparency on your tray icon correctly, though that's AWT's fault. This is the biggest thing missing for me right now in jfx.

                      Proper JavaFX support for the tray isn't planned until the next big release, next year.