A language/framework to build a cross-platform (linux,windows,mac) desktop application which will feature many charts and graphs.
This is currently a hobby project so it could also be something more exotic. So far I had the following ideas:
- Qt: I am not too hyped because I would like to avoid C++ and Python. Also the licensing of Qt always confused me. If this project was to be sold at one point would I have to pay for licensing?
- Javascript/Electron/d3.js: This is my current approach. Big plus here is d3 is offering me all the charts/graphs I can imagine for my app. Drawback is that Electron has a bad rep for being wasteful etc.
- Gtk: I recently saw that gtk even offers Javascript bindings.. maybe that would be an alternative? Seemed to be poorly documented at a first glance. It's also not clear what gtk would bring to the table in terms of graphs and charts.
- Racket Scheme: This was a fun idea because playing around with Racket again would be lovely. I saw that some kind of UI is part of the standard library but I am doubtful if this is a serious option, especially considering the charts/graphs.
What else could be worth checking out? Would love to get some unexpected recommendations!
Gtk to me is just not worth the effort, it is a mess and documentation is horrid. We tried Gtk on one project I worked on a while back and it was abandoned because of the struggles we had to go through just to make it work as expected. While Qt isn't a panacea by any means, it is lightyears better than Gtk. I know I am pissing off someone that knows Gtk well and can't see why it is hard to use, but coming from the perspective of I need to get an app running and not struggle through a framework, Gtk just doesn't cut it.
And especially if you are talking about graphing, performance etc, Qt will be the best of them. While you are on the open source Qt you get community support and lots of help/examples. And if you do reach the point you are paying for a license then at least with Qt you will get quick support and problem resolution not based on a communities best efforts which may not align with your companies issues.
If I didn't mind some pain in framework maturity, I'd probably try Flutter. Flutter desktop is in early previews IIRC, but it (at least for mobile) is documented much better and is easier to use than Gtk IMO. Flutter does work pretty well for mobile, but that's the only thing I've used it for, so no clue on what the desktop preview even looks like.
I have been working on this, nearly full-time, in one form or another, since 2011, ie, near the beginning of the Chrome/v8/nodejs-led webapp "blastoff" point. You can give the desktop environment a try at https://lotw.xyz/desk.os (pay attention to the bottom-left corner of the screen).
My main audience at the present time is people just like yourself, so hopefully we can keep in touch (I'm Dennis). There are ways to communicate built into the interface.
It's what I use for my app "Coollector Movie Database" and I'm very happy with it.
Ok, it's C++, but you get a super fast app, and there's no licensing issue contrary to Qt (it's completely free even for commercial apps). I recommend!