ImRAD is a GUI builder for the ImGui library

A new tool called ImRAD brings visual, drag‑and‑drop GUI building to the Dear ImGui C++ library, generating and parsing C++ code so interfaces can be laid out interactively instead of hand‑coding every widget. Commenters compare it to classic rapid application development environments like Visual Basic and Delphi, debating how modern ecosystems—from Python to Rust—still lack similarly fast, integrated GUI workflows. The project’s hand‑rolled C++ parser, cross‑platform native focus, and potential browser/WASM targets also spark conversation about performance trade‑offs and the feasibility of richer RAD tooling for today’s UI frameworks.

Overall Reaction

  • Many commenters are enthusiastic; they see ImRAD as “the missing piece” for Dear ImGui and a big time-saver for layout work.
  • Several people with existing ImGui projects say this would have saved them many hours of iterative compile–run–tweak cycles.
  • Newcomers to ImGui are told that the main benefit is visual, live layout and reduced boilerplate.

RAD Nostalgia and Comparisons (VB6, Delphi, Lazarus, etc.)

  • Strong nostalgia for Visual Basic 6 as the fastest RAD experience; several argue Delphi and Lazarus equaled or surpassed it in capability and language power.
  • Lazarus is praised as cross‑platform and highly capable, but some see Pascal as a barrier due to ecosystem size and syntax preferences.
  • There is desire for a VB6‑style RAD experience in modern ecosystems, especially Python; existing tools (e.g., Qt Designer) are seen as imperfect.
  • Some discuss C++‑oriented RAD options (C++ Builder, U++, Slint), and note how hard it would be to bolt full C++ support onto Lazarus.

Language, Ecosystem, and Interop

  • One theme: rich ecosystems (e.g., Python) often beat “nicer” tools when you need libraries.
  • Others counter that Pascal/Free Pascal can interoperate via C ABIs, bridges, and bindings, but this takes effort and knowledge.

C++ Parsing and Codegen in ImRAD

  • Several highlight the hand‑rolled C++ subset parser as impressive and somewhat “crazy,” given C++’s parsing complexity.
  • It appears to tokenize/lex and support just enough constructs (including some STL containers) to round‑trip the code it generates.
  • Code generation and a kind of ad‑hoc AST live in a large source file; some see this as a notable engineering choice.

WebAssembly vs Native for the Builder

  • Some want a WebAssembly/HTML5 version to make it trivial to “open a page and design a UI.”
  • Others argue native binaries are simpler, faster, and provide better UX; opening a web page ultimately also depends on native binaries.
  • There is mild debate about whether wasm performance is “a whole other level” away from native or close enough for this use.

ImGui, Immediate Mode, and Performance Concerns

  • Discussion veers into immediate‑mode vs retained‑mode GUIs, with clarifications that “ImGui” can mean both the concept and Dear ImGui.
  • One side argues modern hardware makes constant re‑rendering acceptable; another insists redrawing without need wastes CPU and battery.
  • Some draw analogies to React’s “immediate‑style” API layered on a retained renderer, and note terminology and semantics often get muddled.