ImGui is great if you need an ad-hoc UI for development/debug tools, but it's not meant to be used in actual applications aimed at end-users. I can't speak for other devs but I certainly wouldn't want my development tools waste time with pointless animations. I hope this doesn't encourage even more devs to build inaccessible software featuring ImGui's idiosyncratic, non-standard UX.
hilti|3 months ago
tonyarkles|3 months ago
I've thoroughly enjoyed using ImGui for tooling around image processing, computational geometry, a bunch of 3D projection stuff. The fact that it's based on OpenGL or Vulkan or whatever backend you want is a big win for this kind of work. I can just take a bunch of pixels, throw them into a texture, and render some quads with those textures painted on them after going through some 2D transformations or 3D projection/transformation. It's quite beautiful for all of this. ImPlot for doing basic data plotting and the built-in ImGui widgets for controlling the whole thing.
dotnet00|3 months ago
I have otherwise mostly given up on making GUI applications because I simply don't have time to pick up a bunch of UI toolkits for all the different platforms, pulling a massive dependency into my project and requiring constant maintenance to keep the program working.
embedding-shape|3 months ago
Froztnova|3 months ago
It can be a bit wonky though, I regularly spot UI/UX decisions that seem to map more closely to what the developer is doing under the hood, or their own mental model of the problem, than what one might consider to be an intuitive way of interacting with the system.
dymk|3 months ago
This isn't to say a tool for non-engineers should have animations to make it useful. ImAnim should probably be used sparingly, if at all.
If you need the features of a full GUI toolkit, then by all means use Qt or wxWidgets etc, but that's a very big jump in project complexity.
swatcoder|3 months ago
But "development/debug tools" is actually just a subset of professional or industrial utility applications where user count is low and support is on the extremes (either "capable self-support" or "Yes, Bob, of course we'll add that for you").
And in those utility applications, you probably don't need the noisy toy animations associated with modern consumer software, but animated data representations can be really valuable.
klaussilveira|3 months ago
binary132|3 months ago
johnnyanmac|3 months ago
On one hand I agree. On the other: where are these high performance real-time GUI kits these days? If it came down to IMGUI or shoving Electron into my app...
hresvelgr|3 months ago
[1] https://slint.dev/
constantcrying|3 months ago
It is popular mostly because all alternatives are really bad, if "all" you want is a functional GUI to deliver some developer tool. Qt means you have to dive really deep into a C++ project. The web technologies are all far too heavy and complex and you don't really any of the power. There also are many other alternatives, none of them really do what ImGui does.
SoufianeGfx|3 months ago
Der_Einzige|3 months ago