Remix.run Logo
▲ CUI – Native UI components for C(yappologistic.github.io)
64 points by hilti an hour ago | 26 comments
▲nepthar 27 minutes ago | parent | next [-]

Okay, so this is cool, but also vibecoded by someone who just does frontend. I totally support AI development, but the first commit was 4 days ago and it's entirely written by claude. The UI looks like "the style that that AI comes up with" turned into a C framework.

I don't want to discourage this kind of experimentation, but I also question how much of the last 20+ years of UI and C knowledge was not used in the construction of this project. Also, do I want to build a kanban board in C? Unsure.

Just take care when evaluating this for actual usage.

▲dalemhurley a few seconds ago | parent | next [-]

It looks like ShadCN-UI which AI likes to use.

▲mgdev 22 minutes ago | parent | prev [-]

Some projects are worth it just for the rebrand.

▲piker 43 minutes ago | parent | prev | next [-]

C increasingly makes sense for compile times if you can have a separate Fable pass on memory safety, etc.

▲nateb2022 36 minutes ago | parent [-]

Assembly is increasingly making sense for compile times if you can have a separate Fable pass on code correctness, etc.

▲piker 25 minutes ago | parent [-]

I think you’re kidding, but wouldn’t you have to maintain different code bases for each platform? C compiler gets you everywhere and WASM.

▲genxy 12 minutes ago | parent | next [-]

Once you have Wasm, it gets you everywhere and the best path to Wasm is Rust.

▲arbll 7 minutes ago | parent [-]

Funny in a thread that started with `increasingly makes sense for compile times`

▲raphlinus 19 minutes ago | parent | prev | next [-]

Yes, and? As the cost of code generation approaches zero, this starts to make more sense, especially if you do have mechanisms in place to ensure safety and correctness.

I did an experiment a couple weeks ago of having Opus 5.5 translate an MP3 decoder from Rust into Cortex-M33 assembly language, both raw asm and symbolasm. The code was 3x smaller and ~1.5x faster than Rust -O3. These seem like gains that are worth it.

▲piker 11 minutes ago | parent | next [-]

Yes that makes sense, but if you're iterating on software then I think C will generally win due to its ability to compile cross-platform until you want to build a "release" which you could do by having Fable translate it to ASM at that point.

▲genxy 10 minutes ago | parent | prev [-]

Did you have it go directly to asm or emit the assembly from the Rust toolchain and then contract that? For small stuff, I have been having it write directly, or larger pieces I am having better results via contractions.

▲linkdd 19 minutes ago | parent | prev [-]

Just ask the slop machine to translate the binary to every platform.

▲zerr 16 minutes ago | parent | prev | next [-]

More like custom UI components. Native would have been if you had wrapped e.g. Cocoa NSButton on macOS and Microsoft.UI.Xaml.Controls.Button on WinUI.

▲stephc_int13 2 minutes ago | parent [-]

Native is one of those words that means different things depending on context and your background. For me, native means actual binary code running on the machine, not through a JVM or V8 or anything of the sort.

In the Apple world, Native usually means using the system UI components and the Apple guidelines.

▲wg0 an hour ago | parent | prev | next [-]

Looks like ShadCN. That too in C. It's really really elegant.

EDIT: It's immediate mode.

▲huhtenberg 12 minutes ago | parent | prev | next [-]

Any pre-built examples? Even if it's something like a calculator.

▲Luke2642 12 minutes ago | parent | prev | next [-]

Looks great, but node editor is janky on mobile.

▲saidnooneever an hour ago | parent | prev | next [-]

this looks really sweet actually. didnt dig into the backing code yet but the examples look really nice and clean to implement a UI with. well done.

▲CrzyLngPwd 23 minutes ago | parent | prev | next [-]

Looks lovely, but without long term support and hostory, I wouldn't touch it with someone else's long stick.

▲zerr 23 minutes ago | parent | prev | next [-]

Can you please prompt your agent to generate a C++ binding?

▲annoyingnoob 19 minutes ago | parent | prev | next [-]

CUI - Controlled Unclassified Information.

▲blahyawnblah 9 minutes ago | parent [-]

Yeah. Not good acronym for this.

▲skydhash 38 minutes ago | parent | prev | next [-]

This looks like built by someone raised exclusively on web and touch technologies, forgetting that both are the results of constraints. The web was not meant to be a UI platforms and have poor primitives, and touch devices lack precise positioning and

Take the chips and rating as an example

https://yappologistic.github.io/CUI/#/c/chips-and-rating

It’s purely aesthetic as functionality (and ux) wise, chips are not different from checkbox with labels and rating is just a discrete slider.

And as I thought, you can see the duplicate code for switch and checkbox here.

https://github.com/yappologistic/CUI/blob/f1202e6d98cdc297f9...

People do need to differentiate between UX primitives and something that just looks different.

▲all2 an hour ago | parent | prev | next [-]

The acronym collision is entertaining. I now want to use CUI to mark up my CUI.

▲cincinnatus 37 minutes ago | parent | prev [-]

Shame to put effort into encouraging more C code. All C code needs to be torn out by the roots. I don't care how carefully crafted it is and how many Fable passes have been done, it is inherently unsafe.

▲Luke2642 11 minutes ago | parent [-]

Embedded guy here... Nah. No MMU, no problem. ;-)

Well, fewer problems!