Hacker News new | ask | show | jobs
by sweeter 662 days ago
I love the way Bubbletea looks, but it is nightmarishly hard to do anything more than what is outlined in the examples.
5 comments

100% agree

Very coincidentally I actually found myself needing a Go TUI library for a small program I wrote just last week with pretty simple needs (some basic dynamic list views including a file picker view) and I spent about half an hour messing with bubbletea before tossing it away and switching to tview

I don't doubt that bubbletea is a far more elegant and powerful library than tview for writing Go-based TUIs but for my relatively simple application I didn't need that power and yet bubbletea still expected me to pay for it in terms of understanding its architecture at a pretty deep level just to make it do anything at all.

It very much does not adhere to the idea of "keep the simple things simple" (which IMO makes it kind of a strange fit for Go, as that's the primary thing I love about Go).

And this is coming from someone who spent a lot of time in the past doing C-based Win32 programming which actually has a lot of similarities to bubbletea's message-based architecture and despite that I still couldn't be assed to deal with learning bubbletea's complexity when my needs didn't feel like they called for it.

I have to agree. At first I loved the idea of bubbletea but I have given up on using it because I feel it is too immature. There are some poor/unfinished design choices that make widgets from different authors take different approaches. Layouting is very difficult as this is not part of the framework and depends on often half-baked third party widgets. Theres this discussion where there seems to be very little movement from the authors to improve the situation (also linked from OP's blogpost).

https://github.com/charmbracelet/bubbletea/discussions/434

Seconded. It reminds me of the "how to draw an owl in 3 easy steps":

1. Draw a circle 2. Draw a lower overlapping circle 3. Draw the rest of the owl.

Very hard to integrate with other terminal libraries too.
Yeah I am testing using it on an SSH server I wrote for a service that I have to have some interactive management UI. It is nice for small menus and things similar to the example but building an entire complex application with it would be hard to maintain.