2 ms·
Some feedback and questions: 1. Firstly, nice work! What a cool idea and a nice looking implementation. I especially appreciate the light touch of using exi
by freedomben 2y ago
Some feedback and questions:
1. Firstly, nice work! What a cool idea and a nice looking implementation.
I especially appreciate the light touch of using existing implementations for as many things as possible.
2. Thank you for providing RPMs! This is greatly appreciated.
3. Do you (or are you open to) making professional features source-available for paying customers? (so in other words would you share the source code for the closed portions, obviously with limitations redistributability).
4. I see it's Java, but what UI framework are you using? How has your experience been in it? I used a ton of Swing in the 00s and early 10s but moved to Qt for all my GUIs. I love Qt, but I do have a burning curiosity about the state of desktop GUI dev in Java.
5. I've gotten very conservative about buying software, not because of the money but because of the way "license enforcement" and other DRMs cause pain. Does XPipe implement license checks or stuff like that, and if so can XPipe function without internet for long periods of time?
6. It is very clear from reading your HN post and the website and README.md file that you are passionate, that you care a lot about your product, and also that you are thorough and thoughtful. To me this is a huge selling point because it gives me high confidence that you aren't just shipping fast and breaking things, and embracing the modern "ship it to prod and we'll find the bugs and hotfix them" approach which I loathe. Nice touches like the CLI (which offers very helpful message), and the option to "Quit" or "Minimize to tray" feel very polished and user friendly. I love being asked that instead of just minimizing to tray by default!
- crschnick 2y agoThanks for your feedback. To answer your questions: 3. Making the source available would technically be possible, but I would have to consult with a lawyer for that first on how such a thing would be implemented. But I can definitely see this being a feature for the enterprise plan if the customer is interested in it. 4. XPipe uses JavaFX as the GUI framework. It might not be the most fancy and modern solution out there but gets the job done. It is still maintained, but that concerns mainly bug and security fixes. In terms of new features there isn't that much happening but that's not that bad as the desktop hasn't changed a lot over the last decade. There might be more modern solutions out there like Jetbrains Compose, but the advantage of JavaFX is that it is very stable and mature. There's also a good ecosystem of libraries for it. 5. In terms of license enforcement, it's pretty lenient. You only have to validate the license after at most 7 days, so if you are offline for a period of time it will work fine. If you are working on a fully offline system, there is also the possibility to request an offline license that will not require any internet connectivity. See https://xpipe.io/pricing#faq https://xpipe.io/pricing#faq for that. 6. I try to do my best shipping a stable product. I think most developers would probably want to do that, but in practice it's usually investors or management pushing down from above to get features out quicker. I guess I'm in the fortunate position right now being able to choose my own development pace.
- freedomben 2y agoNice thank you, I've been considering playing around with JavaFX for quite some time. Do you have any advice for someone getting started who has quite a bit of Swing experience but no JavaFX?
- crschnick 2y agoI think it's good to be aware that there is a lot of bad tutorials/libraries for JavaFX out there. Also many StackOverflow answers are quite outdated as the popularity hit a peak like a decade ago. Also don't use FXML (the weird declarative way of creating GUIs). I think the best way to get started would be to download the sampler application from https://github.com/mkpaz/atlantafx https://github.com/mkpaz/atlantafx. That is state of the art, good implementation. You can play around with it and jump to the source code to see how it is implemented. It contains almost everything an application needs. Also depending how old your general Java knowledge is, the modern way of creating applications is through the module system and the jlink/jpackage tools. There are many outdated solutions for application packaging out there as well. If anything you see is using the classpath, builds jars or fat jars, or is using external tools outside the JDK, it's probably old and no longer appropriate.