Rochus

Cool project. Good idea to use SDL3; it brings along much more than SDL2 where you had to use a lot of other libraries to become platform independent with all features. The disadvantage might be that SDL3 itself (as SLD2) is pretty big. Ada got a bit out of fashion (unfortunately) but it's still an impressive, excellent language. Still an interesting choice. Maybe you can give more information about your choice and plans with the GUI library.

show comments
switchbak

Why would anyone choose XML for a modern GUI layout in 2026? That seems like a mis-step.

show comments
nicoburns

I'm going to ask the obvious question: why ADA?

---

My framework (Dioxus Native - https://github.com/dioxuslabs/blitz) would fit quite nicely into your comparison table:

- Compiles to self-contained OS-native app bundle

- <10 MB (compiled with Oz) or ~15MB (with O3) (can be golfed smaller)

- GPU or CPU rendering

- Windows 10+ / macOS / Linux / mobile / wasm / (+ web DOM with Dioxus Web)

- Rust

- Memory safety: borrow checked

- Styling: CSS (support matrix: https://blitz.is/status/css)

show comments
peter_d_sherman

Looks great!

I was particularly impressed by the following:

>"A built-in lightweight HTML view widget renders documentation-style markup with cascading styles."

Basically you built a miniature, integrated, embedded, open-source web browser which can parse CSS and render to SDL... very impressive!:

https://github.com/ovenpasta/adi2/blob/master/src/adi-widget...

https://github.com/ovenpasta/adi2/blob/master/src/adi-widget...

Also, it should be possible to easily, easily port this source code to Delphi and/or FreePascal and/or Graeme Geldenhuys' "Blaise" language (A modern, self-hosting Object Pascal compiler, https://github.com/graemeg/blaise) should anyone in those respective communities decide to do that...

Also, if Ada had an {$IFDEF} equivalent, then with proper use of {$IFDEF's} (since the source code is so similar across these language families), the source code could potentially support all of the above languages from a single source code base...

But, of course, maybe that wouldn't be desired... maybe individual ports would serve those other communities better... and then again, maybe it wouldn't!

(Just thinking aloud... :-) )

Anyway, great work, and once again, very impressed by the lightweight HTML view widget!

tosti

There's so much repetition in there. E.g.: (adi-json.adb)

    if not W.After_Key (W.Depth) then
        -- things
    else
        W.After_Key (W.Depth) := False;
    end if;
    -- ...more things...
    W.After_Key (W.Depth) := False;
And what's the deal with those filenames? If you replace adi- with TIMMEH, you'll see what I mean.

Code should be more DRY (don't repeat yourself).

show comments