upvote
Use JUCE as much as you like, but please, stay away from those 'out-of-the-box' horizontal sliders it seems to prioritize (given how they swarm in the many VSTs made with JUCE).

If sliders are vertical in the real world, there’s a reason for it that Bruce “Tog” Tognazzini summarizes perfectly:

“Most of us […] have our forarms mounted on a pivot we like to call our elbow. That means that moving our hand describes an arc, rather than a straight line. Demanding that pivoted people move a mouse pointer along in a straight line horizontally is just wrong.”

Source: https://www.asktog.com/columns/022DesignedToGiveFitts.html

reply
JUCE' GUI framework is extremely versatile - if that default irks you, its a couple lines of code to get pretty much any control to behave itself.
reply
That sounds intriguing - are there examples of desktop apps (eg productivity apps) that are made with JUCE?

I'm already very familiar with JUCE in VST plugins, I have hundreds of VSTs made with JUCE and I love their UIs. But I don't think I've ever seen it for a standalone business application?

The JUCE pricing is certainly far more reasonable than Qt.

reply
>desktop, productivity apps

You can configure your JUCE project to build to any of the standard audio plugin formats, or for it to build a standalone app for the target platform (i.e. plugins, desktop, mobile, embedded) or indeed to build all of these targets, at once, in one build.

However, during app (i.e. non-plugin) development I often switch between linux and macos environments as part of my workflow, and during testing after I've pushed to the proper branch, the build server plops out the .exe/.pkg/.app/.tar.gz bundles as needed for the test group to crack at it.

JUCE, being at heart a C++ framework intended to be the engine of a very diverse swath of different OS, plugin, and packaging standards, does all the glue to get you there - how you use it, is up to you. (All of this can happen in github actions, btw, really easy to set up..)

Yes, there are 'business'/'productivity' UI elements in JUCE app targets, and yes they are consistent across all platforms. And yes, you can for example build a UI from an .xml form, with cross-platform datastore and so on, easily enough.

Here's a nice place to start, if you wanna understand JUCE capabilities from a 'productivity'-app perspective:

https://www.youtube.com/watch?v=3IaMjH5lBEY

David Rowland, a core JUCE developer, explaining the guts of things.

Basically, the scope is high performance applications, and there are no really good reasons for why a high performance application cannot also be a productivity app - the distinction is arbitrary - except of course you ask, for the GUI!

But: JUCE' GUI is pretty darn good, I have to say, in face of the onslaught of platform vendor fuckery. You can embed a WebView if you really need it, and wire it up to the rest of the cross-platform event handing system, etc. But I think its not really needed, given the plethora of 'normal' UI controls, out of the box.

If you're serious about looking at JUCE for a variety of application types, then a lot of the questions you're going to have about JUCE' GUI suitability for standalone business applications can be answered by running the DemoRunner application that's built-in to the JUCE codebase.

Clone the repo, build the DemoRunner project for your platform (or all of them), and you'll see - there are plenty of business-like cross-platform UI elements in the kitty. A huge collection of business-/productivity- like UI elements, right out of the box. (High-performance plugin UI's are there with the business UI stuff, too.)

And .. once you've marvelled at the glory of DemoRunner(.exe,.app,.apk)[etc.] .. please do yourself a favour and spend an extra hour parsing the awesome-juce list:

https://github.com/sudara/awesome-juce/

JUCE is marvelous, and awesome-juce is awesome.

reply
You might have sold me on this, because on top of the productivity-ish stuff I do, I'd really love to get into VST development. If I hadn't fallen into Photoshop plugins first, I would always have been an audio plugin dev. I loved PSP VintageWarmer in the late 90s.

The UI in Rowland's demo at 32min is feeling a little DearImGui / Reaper-ish, kinda bland while also being non-native. But I've seen all the UIs that Arturia & everyone else makes with JUCE, even what Valhalla does with it with their NASA inspired interfaces, so it can clearly make amazing stuff.

I can't believe we're now looking to PACE of all companies to help indie devs. I hated iLok for so long even though I have two iLok dongles now ;)

reply
Well, I hope you will take a serious look at it as a technology stack worth learning, because when you get things rigged up so that you can really just push your changes into a repo and get the builds for all platforms, its some kind of magic, and you will - most likely - be really inspired to create something great.

Which, I hope, you do.

(PS; - the default UI skin is, imho, intentionally a tad bland in order to promote developer uptake of JUCE' pretty amazing skinning/UIBehaviour system...)

reply
Qt Small Business pricing is very reasonable.
reply
I think I prefer that JUCE is a one-off licence at $800 (for small business) and that they offer a 30% discount if you want to upgrade when they release a new major framework version. I'd rather not get locked into Qt's annual $618/subscription every year just to continue distribution & development.

But Qt has the bonus of also running on HaikuOS, and I've definitely seen more business apps in Qt (pretty sure 010 Editor is Qt).

reply
You can also use LGPL. You only need to disclose the changes you made into Qt itself and allow changing it with another DLL. That's it.
reply
Some modules, such as QtCharts, aren't available in the LGPL version.
reply
JUCE has too many downsides to seriously recommend imo. "Just write C++" is also doing heavy lifting, since JUCE is its own bespoke flavor of C++.
reply