
Foojay Podcast #9: State of JavaFX, Libraries, and Projects
JavaFX was introduced by Sun Microsystems in May 2007 and provides a platform for desktop, mobile, and embedded applications built on Java.
Libraries and software are available for the complete lifecycle of an application to run from a single codebase on Windows, macOS, Linux, Android, and iOS. JavaFX was originally part of the JDK, the Java Development Kit, and became a standalone technology in 2018.
The development is a joint effort between Oracle, Gluon (a small Belgian-based company), and the community.
Let’s talk about the JavaFX framework itself, but also about the libraries and applications that are built with it.
Podcast Apps
You can listen and subscribe to the Foojay Podcast on:
- Spotify
- Apple Podcasts
- And most others…
Guests
- Pedro Duque Vieira (@p_duke)
- Sean Phillips (@seanmiphillips)
- Johan Vos (@johanvos@mastodon.social, @johanvos)
- Gail Anderson (@gail_asgteach)
- Dirk Lemmermann (@dlemmermann)
Podcast host
- Frank Delporte (@frankdelporte@foojay.social - @frankdelporte)
Content
- 00'00 Short intro and music
- 00'16 Introduction about the topic of this podcast
- 00'57 Introduction of the guests and host
- 05'30 The state of the JavaFX/OpenJFX project
- 09'40 About the release cycle of JavaFX, which is aligned with Java (every 6 months)
- 11'52 Comparing JavaFX with Swing
- 14'12 Which of the Java UI libraries is further maintained
- 14'52 About blog posts on Foojay about JavaFX
- 17'34 CAD application by Petro
- 18'42 Applications developed by Dirk
- 19'43 About jfx-central.com, a showcase for JavaFX
- 24'46 JavaFX in the browser
- 27'01 The industry is considering Java as a server-only language. No broad support or big company is pushing JavaFX for app and web development.
- 30'14 Libraries created by Pedro
- 32'52 About the many available JavaFX libraries
- 35'34 Mobile development with JavaFX
- 39'05 JavaFX versus JavaScript frameworks
- 41'12 Introduction Sean
- 42'16 Trinity application by Sean
- 47'20 Sean wants to thank the guests and community.
- 48'50 Pedro and Dirk about their libraries being used in various applications
- JavaFX charts in the office of the US president:
https://twitter.com/potus/status/1422282055715594245
- JavaFX charts in the office of the US president:
- 51'42 The fans of JavaFX are working hard and building amazing stuff but don’t have time to promote their work
- 56'00 About the announcement by Oracle that they now also will distribute builds of JavaFX
- 57'19 To be expected in the next versions of JavaFX
- 59'05 Conclusion
Transcript
Automatically generated from the audio, so it can contain errors in names and technical terms. Suggest a correction.
[0:00] Hello and welcome to this new edition of the Foojay podcast in this episode we’ll talk about Java evix the framework for building user interface applications with pure Java podcast all your news about OpenJDK javafix was introduced by Sun Microsystems in May 2007 and provides a platform for desktop mobile and embedded applications built on Java libraries and software are available for the complete lifecycle of an application to run from a single code base on Windows Mac OS Linux Android and iOS Java vix was originally part of the JDK the Java development kit and became a standalone technology in 2018. the development is a joint effort between Oracle gluon a small Belgian based company and the community let’s talk about the javafix framework itself but also about the libraries and applications that are built with it my name is Gail Anderson I’m a Java champ I’ve been involved with JavaFX since its original release with Paul Anderson we wrote essential JavaFX which was commissioned by sun and it covers job effects scripting which is job FX1 no longer relevant but more recently I contributed chapters
[1:18] To the definitive God to Modern Java clients with JavaFX 17 with also Johan I specialize in creating JavaFX mobile applications for IOS and Android using the same source code with Paul we co-founded Anderson software Group which is a training company specializing in Java JavaFX and other programming languages and Technologies my name is dear Clement I’m an independent Java slash JavaFX consultant based in Zurich and I’ve been working with UI Technologies ever since I started my professional career in 95 with awt then swing moving over to JavaFX in 2013. I really like to write open source libraries and publish them on GitHub and obviously on Maven Central things like gems FX PDF FX a lot of projects that end with FX and I also developed a commercial framework called flexicant FX for planning and scheduling applications and I’m also well I’m wearing mini hats but I’m also part of a startup in London where we try to come up with a cim solution for the energy Market in the UK and I’m also a Java Champion I’m Johan wolf I’m also Java champion and I started to work with Java in 1995 when
[2:48] It got started and I contributed to the Linux Port which was a community effort and that working in tradition of fixing stuff that the big companies don’t want to fix which is somehow how I got involved in JavaFX as well I’m currently the colleague of the open tfx project where they have expectations are created and I co-founded a small company grew on in order to support JavaFX for a wider Community where we make sure that javavex works fine on desktop mobile and embedded and where we provide commercial support and we have some JavaFX based Frameworks as well and mainly the mission is to drive to have effects to make clear to the Java developers that JavaFX is fairly relevant and very suitable for many client-based applications so my name is Federer lufierre I’m a freelance consultant I’m a software engineer in the software design I own a software consultancy company called pixelduk it’s a company specialized in the development of beautiful usable and well-functioning graphical applications besides providing software development services it also provides user interface
[4:17] Design and user experience Services I sometimes join a team of developers but sometimes I also do the development of the application myself regarding javafix I’ve been using it professionally since its very first beta version like Gail mentioned the first versions use the jfx script and I at the time I created the component that allowed to integrate JavaFX scene into a swing application which wasn’t possible at the time with chart effects and I published in Jeff access I’ve developed a number of applications in JavaFX some of these were for very high profile companies I’m currently finishing up an application for a Fortune 500 company but unfortunately I wasn’t clear to talk about it I also contribute to open source I have a number of JavaFX libraries which I developed in my spare time and I’m Frank the porter I used to develop Java and Java Vic stuff but since this summer I’m a technical writer and Azul and out of interest I’m making these podcasts and talking like to people like you about all these amazing technology now Johan maybe start with you are the co-lead of opengfix can
[5:37] You give us some information insights about the state of the Java vix project itself Java X is to be the strange project inside the Java Community because it used to be not a part of JDK than it was part of JDK then it was not part again and now it can be downloaded again so it’s it’s sometimes confusing history who is actually working on javix well let’s start from the beginning as you mentioned it was released in 2007 by some Microsystems as the successor of the F3 project the goal was to create a new language for client development and user interface development in particular with Java because swing and awt were created a long long time ago and the graphical world did evolve a lot so javavex was created by some engineers and maintained originally by Sun Engineers to have an answer for Java on the client and making it relevant on the client again actually Java originated on the client and so Java X was The Logical component of the Java ecosystem to work on client systems sun was developing it after Oracle took over it was a Oracle that was mainly contributing to it and when JavaFX was made open source
[7:02] Everyone could join but the hurdle in those projects was very very high to get started and I was originally looking mainly at JavaFX on mobile and embedded and especially when support for Java vix mobile was dropped by Oracle a long time ago I continued working on it and that’s when I co-founded Gloom so we had JavaFX working on IOS and Android devices now Oracle went one step further and did not only drop javex mobile but they dropped the JavaFX marketing and evangelization that was a major issue for the image of JavaFX but it’s important to mention that Oracle did not completely top JavaFX on the desktop Oracle has always been a very great contributor to the open jfx code base even though the headcount was reduced drastically the quality was still very very high Ai and I think that is really important to mention that the people contributing to opengfx have really high standards whenever reduced head count I was asked to step up as being the colleague of open jfx and to be more involved in the javavex core development one of the things that I really wanted to do is to make opengiven development
[8:21] More accessible to a wider community so we were the first OpenJDK project to move to GitHub that lowered the barrier for contributors to contribute to open gfx and what we saw over the past five years is that more individuals started to contribute to open gfx so today Java Vex is mainly developed by people from Oracle and Gloom but definitely also by many other individuals or small companies it’s pretty interesting to see that this is indeed small companies that are contributing sometimes annoying because the big companies are not really contributing mainly because of stupid political decisions and history but it’s great to see open source contributors from different backgrounds contributing to open jfx it doesn’t make the life of a Project Lead easier because we see that there are so many different angles that people can look at people with different backgrounds scientific medical Financial or business oriented and so have their own view on how they have actually evolved so and we have contributed in all those areas so that is who is working on JavaFX if you look at the
[9:39] Releases so since a few years Java vix is also following the same cycle of releases like Java itself so every six months there is a release Java vix has the same version number as Java does that mean that there are also that many new features introduced or is it bug fixes or what should we see between these versions yeah in this area we completely follow the procedures that are also used by OpenJDK so by the Java development kit itself sometimes a feature takes much more time to implement and to be tested than you originally thought so then you have two options one is you go for feature based releases and that means that you can say in advance when we release Java Vex version whatever it will include this but we can’t say when it will be a list the second option is you go for time based releases and then we can say in advance JavaFX 20 for example will be released in March 2023 guaranteed but we cannot say what will be in there you can combine both but then you cannot guarantee the quality we choose for train releases where it’s very predictable when the next release is going to be released but it’s not
[10:55] Predictable what exactly will be in the release we find that for most developers and the library maintainers and users it’s more important to have a predictable release dates it’s also about for example Ubuntu and for these distributions are doing you know when there is going to be a release and if a feature doesn’t make it for that release it can always go into in the next release we didn’t have to follow the OpenJDK release Cadence but it totally makes sense and it also makes it easier for Java developers they know that they can align the JavaScript releases with the JDK releases although technically Java Vex does not require the latest Java you can still run javafxa 19 on Java 11 and so yeah I’m impressed with the evolution that Java has done and also Java works with this new release cycle every six months it’s released and new features coming in and evaluation features so it’s it’s a really great approach in my opinion you were mentioning swing as earlier technology Pedro you was mentioning that you made something to combine Java evix and swing maybe you can compare these
[12:03] Technologies turfx uses a scene graph where he is swing it was immediate mode rendering so you had to take care of clearing the screen and doing the rim paint where in JavaFX you kind of like declared what you have in your scene and jfx takes care of the repaint cycle there’s also fxml which you didn’t have in swing for instance it’s an XML like language that you can use to describe your scene I’d say like HTML to the web then you have things like you have an application that’s called scene Builder it’s like a drag and drop application what you see is what you get where you drag and drop controls and you create your UI there in a more easier fashion the fxml parser will create the controls and the objects from the JavaFX SDK and create your UI based on what you have described in your fxml files but you don’t have to use fxml it’s it’s an option but I think most applications use it you also have CSS that you didn’t have in swing very similar to web CSS where you can style your application using only CSS and there’s a CSS engine that parses your style sheets and the Styles the application there’s also an
[13:29] Advantage of that there’s a library called cssfx with cssfx you can change the stylesheet live and you can see the changes while the application is running which is very good because it reduces the time you need to tweak the UI there’s things like 3D which you didn’t have in swing 3D rendering there’s a video control that allows you to play video that you didn’t have in swing there’s an audio control to play audio you can also do immediate rendering like in swing there’s a canvas note that you can use to do that and yeah and I think there’s more controls I think also so there were different UI tools within Java there was a swing avt javafix how are they all maintained are they all alive still or is Java fix now the way to go as a programmer I would say JavaFX is the way to go as I understand it Oracle is not enhancing swing at all it’s it still provides it as part of the JDK but it just does fixes where need to and it doesn’t enhance it so if you want a modern UI you really need to go with JavaFX plus JavaFX you can use in the mobile and embedded environment yeah and
[14:53] That’s a topic I want to come to with you Gail you wrote the blog post or a series of blog posts actually on Foojay as one example only the wordish application so to play a game which is a five part series I think about the whole process of building an app which is great way to get into this technology and how to use it can you give more insight in this series of posts as you mentioned I did two series the first one was a game called tilt Maze and the reason I chose that game it’s based on a game that you can buy that’s a wooden box that allows you to control a rolling ball through a maze and I did it because I wanted to prove to myself how portable the accessing Hardware sensors on various devices were so the accelerometer on your phone device you can take readings I took readings in an animation Loop that controlled a rolling ball so in that series I detailed in very very minute steps how you write an application get it on various phones both Android and iOS and then get it into the App Store and the game itself was pretty small in terms of job FX code so for the wordish example it was more
[16:11] About JavaFX and as I wrote I was playing Wordle myself which is a game in the New York Times And as I was playing I said oh this would be a great example for JavaFX because it uses animation specialized control goals it has a little bit of algorithm stuff about how you determine what the letters are and so in doing the implementation I actually use new stuff I had listened to a series of blog posts by Jose palmod on using streams and records and I said okay I’m going to do that and then I realized that I could use CSS pseudo classes for controlling the look of the different controls based on properties and that turned out to be a really nice example in that so all these things just appeared I didn’t know ahead of time what I was going to run into so I would say it’s a it’s a tutorial based series of articles on using JavaFX in either a mobile or desktop environment it has some very neat examples with how you animate these these letters if they turn and how they animate so yeah it’s really impressive what I love about Java is that you can do amazing things with only a few lines of code and that’s
[17:30] Again what you also show in these examples back to you Pedro you also have this cat application which is documented on Foojay can you talk a bit about this because it looks pretty complex it’s a whole building and then measuring the different spaces in this building what does it actually do so it’s like a bit like AutoCAD but it’s used specifically for measuring the Energy Efficiency of buildings the target audience in this application was Australia but I’m sure it can be retrofitted to be used elsewhere it was like like AutoCAD you could build a building change the materials create your own materials you would create the walls the windows the openings ceilings the floors and set the materials that each each sink had and this would influence the Energy Efficiency of the building in the notes with this podcast I will also add the links to all these articles so that the listeners can easily find them back because yeah some of these applications are really impressive I think the same goes for you dick you built these kind of applications the whole day there
[18:49] Are some very impressive videos online with also your Flex charts and stuff like that what kind of applications do you build for your customers all kinds of different domains really the planning and scheduling applications they will use for example for Emirate Airlines where they try to optimize the schedule of their aircraft another comp customer of mine that produce manufacturing execution systems where they schedule the machines and in a factory and they try to optimize their flexconfx was also used for architecture offices where they allocated people to projects so it’s it’s very very different and actually quite wonderful because it shows you how you cannot end up in all kinds of different domains when you’re in software engineering and you learn a little bit about this and that that’s what makes this job so exciting right yeah and all these different projects that I did that’s all of those they went into this real world applications talk that I gave at various conferences and that you can also find on the jfx central website that I guess you want me to talk about
[20:02] Now too that’s definitely so since a short time I’m contributing to this website with the links of the week but the website was very really there for quite some time and it’s actually should we call it the showcase for javafix absolutely yeah it was created because JavaFX was lacking a home on the web you know a single point of entry where interested parties could quickly find out more about the entire JavaFX ecosystem without having to search for all the pieces all over the web and a lot of people talked about this very often you can find it in many forums that people complain that other languages had this single point of entry you know you go there and then you find out everything that there is to know about programming language the entire ecosystem I think a lot of people hope that maybe Oracle would provide something like that because you know yeah yeah they never that never happened they have tons of or they had well they still have tons of tutorials on their website but not really a place where when you are new you find out not only how to code this but also what is out there what can
[21:12] I use I wanted to change that so I started by having a page on my website dlsc.com my company website it’s a little Shameless plug here dlsc.com and I had a little page there where I collected various links related to JavaFX stuff a lot of people do similar stuff for other Technologies and then I also saw GitHub repository I think it was called awesome FX that also had this curated list of JavaFX resources and that was pretty cool and then I kind of gave up on my links because okay this guy’s already doing all of that and I really like the idea of having such a curated list of resources but I thought that it should be presented in a more attractive way you know in a way that reflects our domain UI development so I really wanted to see this stuff inside a rich user interface okay so if you’re on dog food kind of thing okay so I thought that it would make a lot of sense to have a dedicated website to Showcase JavaFX and to also use JavaFX itself to create this website and thanks to J Pro and their technology and all the support that I got from Florian Kia Maya we were able to finally come up with a website and
[22:33] Publish it all on online and the data for the website that’s actually coming from a public GitHub repository so whoever wants to can contribute and they can add their own Library their own products and their own real world applications if they want to and that’s probably one of the most important sections on jfx Central the real world apps because I frequently meet people that say they really want to use JavaFX but they need to convince their managers that this is a good technology and that they’re actually people out there using it because most of the applications develop with javavex they’re you know behind company walls and people cannot talk about it like petrol you know you cannot talk about that Fortune 500 companies somewhere in the US and I have a couple of projects that I also cannot talk about but I always try to make companies talk about their projects because it I think it’s it’s important so this section on jfx Central you know it’s a big catalog of I don’t know how many now 20 plus real world applications with tons of screenshots I know people can go there and they can point their managers to it
[23:40] And they can say well look these guys did it they created you know space exploration software without on mes or PPS system or I don’t know what okay so it’s it’s all in there I hope that makes life easier for potential JavaFX developers and for Java vix developers there’s also the list of libraries a lot of them are from Pedro yeah and other contributors so people who have made the Java vix Library can just add it as you say it’s another GitHub project where you can just do that and it has a Gateway also to the open jfx project so people getting can easily get in touch with that they can realize okay there’s there’s JavaFX the product but then there’s open jfx the project and if they want to submit the bug report for example there’s a big red button right there and if they want to know the roadmap of JavaFX or open JF jfx then they can see all the pull requests that are in the pipeline there they can see which ones have been integrated which ones are waiting for reviews and so on we already mentioned that Java vix applications run everywhere it’s Java right once run everywhere now you
[24:52] Mentioned that this is your website is also created with Java vix and you’re choosing J Pro to run it in the browser I know that there are several projects on going to make Java vix also a perfect companion for web apps I think webfix is another one Johan I think glue on is also working in this topic we work together with used to work for the Oracle apps on coravento here’s a project back to browser which is sort of a transpired from java by code to JavaScript and there we added a renderer so we created a JavaFX pipeline that uses webtl to a random the JavaFX code and there are a bunch of other initiatives from a technical point it’s not extremely complicated it’s it’s not rocket science so you need two things first be able to run the Java code in a browser as a JavaScript or enough transparency for that and these activities you need to have a pipeline that renders in such a web browser and that and there I think the webgl in combination with is a great choice what I see as a main obstacle there is that it is pretty hard already to explain to people that Java works on mobile and embedded it’s even
[26:24] Harder to explain to people that you can also use real native Java code on the web because then people are saying yeah but there are tons of web Frameworks and I honestly think that JavaFX is a really great choice for creating web applications especially because those 12 million Java developers can use their favorite Java language to create web pages and they don’t have to learn HTML or write some JavaScript X it’s really very well possible to do that and I highly recommend it the main issue that I see with it is the image of the industry and Java is unfortunately way too often associated with Cloud only Cloud native development that’s of course because that’s where most of the money is and Java is great in this area most of the eyes of java and especially the marketing budgets in the bigger companies go to this Cloud space the client’s face is less attractive from a revenue Point well at least if you look at the client only but what other companies have is they have a client technology that then feeds into their cloud services so this is also something that we do with our growing
[27:53] With Cloud link where you can link your JavaFX application to Cloud software but because Oracle is really mainly only interested in databases Cloud applications what we see in the number of contributors is that there are many individuals that buy teach artifacts applications in their spare time and because they technically really like it but when I talk to those contributors and also you also use this in your company then the answer is often no I can’t convince my manager to do this and I think therefore initiatives like JFK Central are extremely important because other client technologies have a broader Community with very often developer Advocates and so paid by the big companies who have their client for it tied to their cloud and JavaFX does not have that one Java X does not have a big company that’s behind it and that’s one of the strengths because Javas is independent from big companies but it also means that we have to do the marketing ourselves and that is one of the hard parts and that is also why it’s so hard convincing people that you have effects is really great on the web and
[29:10] I’m extremely grateful to all these people who write blog posts tutorials and spread the word about JavaFX because from a technical point we can have the best technology but if people are not spreading that word then it’s not going to happen because there’s there’s no big company behind it and to add to that story you mentioned it’s sometimes a developer in Spare Time doing something I had this wonderful discussion with Sean Phillips who created 3D visualization tool for a lot of data based on machine learning and brain experiments very amazing stuff and he indeed created more in his spare time than in his professional time a tool to visualize his data fully using Java and Java vix we made together a blog post on Foojay so I will also add a link to that with the videos and indeed the things you can build with Java and javafix are really impressive if we go back to the libraries some of those published on jvx Central are from you Pedro can you give some info about some of these libraries that you created that’s J Metro which is a jar FX team it’s inspired but it’s not a copy of Microsoft’s fluent design
[30:31] System it also adds functionality to existing controls without creating any coupling by leveraging the FX games Library which is another Library I’ve I’ve created and published this FX Kings Library leverages the MVC architecture that is present in all controls of JavaFX the view and the controller are separated from the model developers usually only interact with the model part of a control FX skins replaces The View part in the controller part of the controls and the developer won’t need to change one line of code this is done through the stylesheet these schemes will add more functionality to the controls is using your applications for example there’s a slider scheme that affects that FX Kings provides that when the user presses and moves the temp of a slider it will show a pop-up with the exact value that the slider has with an animation and it also shows a fuel color between the start of the slider track and the in the thumb also it adds a new CSS properties to which control that so you can further tweak each CS each jar FX control through these CSS properties for instance you can tweak the
[31:53] Animations that these new skins provide so other control other libraries that I created also FX ribbon which is a ribbon control for jfx it’s based on the Microsoft ribbon that you can see on Word Excel but also on other Microsoft applications like Windows Explorer Microsoft Paint Etc I think this is a control that can be used to simplify complex user interfaces that have a significant number of commands there’s also FS FX charts which adds some functionality to and finally there’s what I already mentioned a control called JX scene which out to integrate a JavaFX scene in a swing application in the first versions of JavaFX but now it’s become obsolete because jfx already provides right now that control what I find amazing about these libraries is most of the time the developer made it because he needed it himself but took the time to really publish it make it available to everyone and make make amazing artifact of it I really like also the work of Gareth Grunwald who is also one of these Java vix experts so he also created these charts and then the tiles evix I use the whole time for dashboard
[33:15] Like applications did call the other ones you want to highlight of the many many lists of libraries there are so many and JavaFX has been around for a while and people contributed a lot and I also always try to make it a habit that when I have a customer project and they want a specific feature just like recently you know the my customer wanted to have a notification UI that looked like what apple is doing you know when these things slide in you have a new email and then they get stacked on top of each other and you can expand them and if there are too many then you can switch well that’s actually not an apple feature that’s a feature that I put in there but I had to come up with this little mini framework and those are always the moments when I tell myself okay this should really be in a library and this will be useful for other people and then I talk to my customers and I try to convince them that it makes sense to make this an open source control because then you know other people will contribute to it they will find bugs that they haven’t run into yet but they will do them the favor of finding
[34:29] Them for them and Hope hopefully they will also fix them so some of the projects that I’m maintaining they’ve seen quite a few contributions from other people like preferences FX or workbench effects and forms FX they have been around for some time now and that’s another thing I noticed you know once you have released a library like this it takes sometimes it takes ages before people actually come back to you and contribute something you know sometimes at the end of their project like oh we still have all this stuff well maybe we can contribute it back to this project and then they submit a pull request so what I’m trying to say is when you publish a project a library don’t expect people to contribute immediately sometimes it takes a long time you have to be you have to be patient and when they do then be happy because they did some work for you and also especially calendar effects for example that’s a huge framework and there are a lot of projects that need a calendar UI so there have been a lot of pull requests and contributions from other people I really like that now if you go
[35:34] Back to mobile Gail you talked about this so I think most people know that javafix is a tool to build user interfaces desktop applications but you actually made some smartphone applications there’s also some glue on libraries involved there what did you use you mentioned playing a game with rotating your phone was that using some glue on tools the process of creating a mobile app gluon provides the structure for doing that and when I tell people how to start I push them over to the glue on start gluon.start.io page where you can choose the features that you would want in a mobile application I’ve used them and they’re really really powerful they have done controls that are skinned specifically for the mobile environment and the couple of applications that I’ve done and put on the App Store really simple but when you start building complex business applications for the phone you have to deal with multiple views and so they have a lot of libraries that you can use to help control and you know the flow of an application going from one view to another several years ago and I haven’t updated this application but I did it
[36:56] Again as a as an example I did a blood pressure application where you could input your systolic and diastolic and pulse and display that in gluons charmless view which lets you put in icons and calendars and then from there you can edit and add applications so it goes to an edit ad screen and from there you can also go to visualize the data so we use JavaFX charts but then also bar charts for averages and minimums and maximums Gloom provides a library where you can use the minimalist dependency injection called afterburner and I have found that to be really nice in just making your application more succinct all of this works because gluon has used the growl VM Community Edition JDK to produce the native images and they do this with a product called gluon substrate which pulls together all the not native libraries that you need for example for an iOS application that to me was a using the groove being able to use the graul VM and the work that gluon did with the substrate Maven plug-in was a big step in my view in making mobile application development much simpler more powerful
[38:24] Performance is great size is reasonable so to me it was a big step and I’ve just kind of noticed that JavaFX seems to be just getting more Buzz more views on Twitter and more talk and I think it’s it’s there’s a lot of people out in the community that are talking about Job FX using job FX so I really credit that workflow of going to start.gulon.io and beginning your Maven application but being able to use growl VM and glue on substrate to build a native packaged application so thank you glue on I’ve not done a lot of JavaScript development myself what I know of all these Frameworks and that there is a very big evolution in all these there’s not a lot of stability there are new Java Frameworks popping up and disappearing can we say that Java Java vix is a lot more stable and will help developers to keep maintaining and extending their application over many years compared to JavaScript is there any one of you who dares to stand up against JavaScript and we have a guest who joined a bit late hello Sean Phillips all right yeah I would love to stand up against it and I’m not against
[39:47] In general but I can answer your question right now it’s not that JavaFX is stable it is it’s that Java is stable when you build a house on a strong Foundation you have a strong house JavaScript is not built on a strong Foundation excuse me the UI Frameworks engine that are that utilize JavaScript are inherently built on well flimsy foundation and so what I see is a lot of people trying to reinvent better and better ways to work around a problem the problem being the technology in general and some of these some of these methods that they build they’re they’re they work right they do work but it should be a it should be a red flag as a software engineer as an engineer in general when your solution if you’re building up a capability that works around a problem that’s inherent with your system like that’s probably not the right way to do it whereas in Java it isn’t so much we’re working around problems we’re finding the best way to solve the problem given this given the capability that we have I use the house analogy when people say well you’re what are you going to do use Java for everything well
[40:54] No because you know if I want to build a birdhouse I should probably use a hammer if I want to build a big boy house I’m going to use a nail gun you know what I mean and so you can use your imagination as to what which tool Jabba is versus JavaScript so I’m very opinionated on these things as you joined a bit later Sean can you introduce yourself Sean Phillips is the full name I am a software engineer at the Johns Hopkins University Applied Physics lab and I am near Washington DC in the United States my specialty is custom data visualization and I work in a group that specializes in machine learning operations a little bit of cyber defense and generalized data analysis capabilities and to support that we have a section in our group which focuses on Advanced visualizations and I’m the I’m the supervisor of that section so our job is to produce visualizations that would be Boutique custom data data intensive highly interactive and so a lot of the tools that we develop we use a variety of Technologies including web user interface Frameworks for certain aspects of it we have many many tools
[42:06] That we’ve developed over the past five to ten years including new tools being developed as we speak that are built using Java and several of them job effects I already mentioned a bit earlier that we just published on Foojay an article about the project that you’re working on Sean to visualize data from a lot of different experiments a lot of complex data from brain sensors and machine learning models we already discussed that the Java vix World provides a lot of libraries now you built an amazing application both using existing libraries then your own work to visualize this data what is so great about you’re actually using 3D even in your tool what is so great about javafix and what it can do for you for your use case the use case that you mentioned before that we had that we are working on the published article for is for brain computer interfaces and that type of problem is one of those classic dense data type problems where it’s not obvious what a solution is it’s not it’s not obvious what’s going right or what’s going wrong with your setup there’s a cap there’s calibration
[43:25] Issues there’s it’s a decoding problem there is no closed form equation that can that gives you an answer there’s no math that says yay verily this is what is happening exactly right now and so at the same time you know this isn’t this isn’t crossing the street it’s not it’s very complex stuff and by the way I’m I’m just the date of this guy learning from these people these neuroscientists so I want to say like they’re doing the real work I’m just trying to give them tools that make their lives easier but it’s so critical and I have a point why job affects for something like this the amount of data that you have to process in a sort of non-obvious way and the pace that it’s coming in with and the graphics that you would need to sort of invent in order to these are not standard types of Graphics to try to represent that information and then also provide interactivity and also have it perform well at speed when you start putting all these things together it’s not really a Java effects thing that you got to ask yourself now you got to start asking whether or not your
[44:34] Tech stack is even appropriate a lot of the initial experimentation that they have is done using like Matlab Sometimes some Python scripts and at first that gets the job done but these things are very slow they’re only good in small little bursts they can only collect a little bit of data there’s no interaction and so whenever something goes wrong they can’t even tell you that the neuroscientists often can’t say what why their decoder isn’t working or this and that now they have ideas and it has to do with the complex process of decoding from a hyperdimensional input space down to a lower dimensional decision space this is a human machine teaming problem if you will human machine teaming is something that we worry about a lot here at where I work and also in just generally speaking in defense and in civilian Industries Java as a technology platform just generally speaking is well suited for all these things and job effects as a rendering toolkit and as a visualization UI framework being built on top of java and done so in a way that’s very easy to use to do these types of
[45:44] Things you put these two things together and it is one of those Perfect Solutions there are other Tech Stacks that would work and I don’t wanna I’m not here to say that you can’t do oh if you’re going to do brain computer interfaces you have to use Java and JavaFX that of course that’s false but there’s obviously a whole tier of Technology Stacks that just aren’t going to cut it they’re just not going to cut it the amount of work you’d have to put in the software development wise to get them even to the party would be way too much the tool that you saw I developed in less than a year and it was part-time I you know this the I’ve only had part-time funding to develop this is not my full-time job I have other I have other projects I can’t talk about that I work on like you know like if my day is a pie I have these many slices to work on and that’s actually that’s a testament to job and JavaFX that the fact that I was able I’m able to pull these things together and make this fully functional tool that quickly and it’s not only is it usable in this for this one very very
[46:43] Boutique situation the brain computer interface calibration but we’re able to well now right now we’re able to reapply it to machine learning model explainable AI and all I had to do is make a few small tweaks to the interface a few small tweaks to the data ingestion and it just works I don’t know did I answer your question right going on was that a rant and I went on I’m not sure that was a perfect answer okay and even that’s even a perfect conclusion because we mentioned now all the different Technologies you joined at the perfect time to collect everything together that we discussed is there anyone who wants to add something because this is the moment before we really close off I want to thank everybody on this panel for everybody here has done something to make my life better or easier or more fun I mean Frank I mean I just like chatting with the stuff about you so the fact that you reached out to me has made my life better right and obviously you know Johan with glue on I wouldn’t be here without the work that he’s done and Dirk without your promotion and your in your you’ve been
[47:49] You’ve been pushing and driving this community and Gail I’ve been I’ve been interacting with you since before the job FX days actually with netbeans the netbeans platform days right but in particular I want to thank Pedro because I use his CSS Styles and some of his other libraries in that tool that you saw Trinity and everybody tells me how awesome it looks and they’re always like what what’s your CSS what’s your CSS and I’m like I got you I got you fam that’s J Metro right there and I say you want darker light he’s got them both I promote your stuff so much and I just want to say I’ve never met you and thank you for I’ve been using your Styles and I’ve been using some of the other stuff you’ve contributed to some other libraries for the past sent well since 20 I think 2015 is when I started using J Metro I want to say some some form of it and then when I changed jobs a few years back I kept the CSS with me I left the code but I kept the CSS and then I’ve been adopting it from there so thank you very much man I remember when you said that you were building the
[48:53] Another application and it used a small library that I created which was Jay Metro I was really it was fantastic because having like an having another application use even if something little like like I’ve built it was amazing publicizing that you were using Jay Metro although I’m sure you could have done it without it but thanks it’s really good it’s so good that other JVM toolkits that use JavaFX have have started adopting it here here’s I’m putting in the chat a tweet so we have another project and I can’t share with you the screenshots because they haven’t been public released but this tweet is of course publicly available it’s a it’s a tweet that shows a picture from the White House during the height of the covid pandemic in 2020 early 2021 and the binders on the labs of the president in the House of Representatives and those people this is a weekly briefing have charts that were produced by a JavaFX based application that we built right down the hall they adopted your CSS after they saw it on all my tools that I built so
[50:04] So a gel FX is used in the covet against the fight against covid okay so right there and two so is your CSS so there I love this community so you just found out that your CSS library has been on the office in the White House yeah the tool that produces the charts uses yeah sure why not yeah sure but yeah it was it’s amazing to know this as a library developer it’s it’s it’s amazing that to see your library being used in other people’s applications and applications like Watson does the he does some really amazing applications like the NASA applications and yeah it’s it’s it’s it’s it really motivates me and I I’m sure dark also has this feeling that it’s great to see your work being used as a library developer you should really make it a habit to go to conferences every once in a while because that’s when you run into people and then they see you in person and then they tell you oh by the way I’m using your stuff you know so Sean for example I know he uses hidden sites pain from controls of X in the I love that thing so yeah I know we talked about it when you get the presentation with Diane I
[51:22] Don’t know which jar which Oracle code one or Java one yeah back in the day several years ago but yeah you told me that you were using that in and how grateful you were and that you didn’t have to do this yourself so and that’s always great so go to conference people who develop libraries you should all go to conferences and meet your fans there are more fans out there than we that than we realize there are so many people that are using Java and JavaFX and they’re not vocal like like like a lot of people in other technology Arenas and I used to wonder why like why isn’t why aren’t more people more obnoxiously loud like me and I realize because they’re all they’re all busy doing real work they’ve got their heads down doing work and they don’t have time for a lot of the extra crap like like the latest like blog article about how great some flavor of the month UI framework from the JavaScript land is and then that’s when it occurred to me that like they these are the people that really really appreciate all the stuff that everybody does in the community so I don’t know I what I don’t know is
[52:27] How do we how do we reach out to these people and get you know like maybe stir up the Embers a little bit you know that’s something that Johan mentioned before and so javafix is really great we don’t have that developer advocacy team around it this is actually something that I’m facing every single day for the past five years JavaFX and Java in general but let’s talk about JavaFX and tell when the client or consider to be great Technologies the number of people that tell me how great javafixes and how much they love to work that we do have grown and so it’s amazing if you look at the contributors to opengfx into all the libraries those are great people and it’s in such a big contrast with the marketing attention the JavaFX gets if you look at other client Frameworks they’re marketing first so there’s some some creative person who has a great idea about and their thinking they’re probably brainstorming about names first and then maybe later the technology Java is actually the opposite it’s really a technology engineering driven repository created by people who needed to fix real-world problems and
[53:42] Therefore I’m extremely impressed by all the scientific work and visualization that shown and many others are doing this is really what advice be because those applications are really making the world better and I have a background designs myself and I’m doing work with Quantum Computing we also use javix to visualize things when I see how javalex is used in the medical assistance Healthcare Sciences so this is really what motivates me but it is very hard to keep talking about the valence of Javas explain your in a world where Cloud native advertisements marketing driven things already what’s high on the agenda and where the big money is I really think that model needs to be changed somehow because great Technologies like JavaFX which are worse in marketing or negatively biased in many projects the number of times that myself and probably everyone on this call here has to explain to a manager you should use each other for this because and then you need to explain you need to keep explaining well if you would say let’s use a flutter rates from Google so it
[54:58] Must be great okay yeah let’s do that but if you say let’s let’s do Java decks oh but Oracle kill Java that you didn’t they do that so many existing UI Frameworks have positive marketing from a big company and JFK says negative marketing from a big company so we have to fight that and at the same time we have to work on the code base which is also extremely complex and focused and it does not it does not pay I want to talk to an oracle VP about well but NASA is using a JavaFX and he said wait NASA doesn’t have money so we are not interested in that needs to change because we really want to have effects to be on the radar because not because I personally have an affiliation with it but because I strongly believe that with Java and Java which we can improve Humanity a lot that’s my mission actually I have a question for Johan do you think the recent announcement from Oracle that they are offering JavaFX bits will improve the situation well at the very least this will give me more time to write code because I now can easily refer to a tweet or an oracle
[56:18] Website where they have the KDK bits instead of always keep reiterating that kava FX is not that now it has to be said that Oracle as I said before always kept engineering resources on Java X great people and I really like to work with them especially Kevin rashford who is my colleague of openglx he’s from Oracle he’s a fantastic person to work with extremely knowledgeable and he has a great team so from a engineering Point Oracle has been a excellent partner and they’re amazing thing amazing people working in the openg educating but this now is finally again something from a product management or whatever they call it at Oracle where they publicly talk again about Java pack and that will I think definitely help us it’s been yeah a few years since they talked about it in public and I think this should at least convince others that Javas is still alive okay maybe we can conclude with what we can expect in the next version or versions of javafix you want this is a question that I often get and I try not to disappoint the audience but one of the major goals of open jfx is to provide a stable
[57:37] Framework that others can use to build on top of so stability and making sure that we support the latest operating systems the latest drivers and everything that’s under the hood that is our core goal with opengfx there are so many libraries out there and we want to we see ourselves as sort of contributors to those libraries so we those libraries are often in dedicated areas it’s very hard to create a control that can be used in the same way across all the different verticals so what we try to do with JavaFX is to provide the framework so that others can build on top of it don’t expect extremely cool Niche features or controls to be in opengfx directly but expect that from libraries and when it turns out that there’s something very generic then we can do it in opengfx the main goal from opengfx is making sure that whatever those Library creators create can be used on all those devices that support the Java Vex and that means on desktop devices but also mobile and on small embedded devices so that is where the strength I believe of Java effect is making sure that it
[58:56] Renders but also that it run as extremely performant and that it is on par with today’s standard for a graphical Frameworks and that brings us back to that strong Foundation that Sean was talking about the Java and javafix provide these strong foundations and that amazing stuff can be built on top of it okay thanks a lot everyone it was an amazing talk I can learned a lot I will make sure that we have all the links added to the show notes that people can visit all the amazing work that we talk about so thank you very much first of all of course my guests of this episode are new for listening keep an eye on Foojay for future articles about development and everything related to the Java worlds of OpenJDK
Found a mistake, or something to add? Edit this page on GitHub










