Hacker Newsnew | past | comments | ask | show | jobs | submit | aninteger's commentslogin

XCB did not largely replace Xlib. In fact, some (all?) implementations of Xlib are built on top of XCB.

Maybe the technical politics have changed, but I feel like I remember there was some push in the late 2000s to rewrite libraries that were using Xlib to instead use XCB.

Regardless, that's sort of my point: having a lower level fiddly layer is a desirable quality, and Xlib being rebased on top of it isn't exactly a counterexample.


Turns out you want to build higher-level interfaces on top of lower-level interfaces, not the other way around.

Time to port this to Wayland using Claude code, right?


points finger you son of a bitch, I'm in.


You could submit your PR to Nakst's Luigi toolkit: https://github.com/nakst/luigi

You don't have to make a complete alternative. You can add calls to ATK (accessibility toolkit) on Linux/Unix platforms. I'm not sure what needs to be done on Win32 platforms though.


It doesn't but it definitely "implements" a single inheritance tree (with up casting/down casting) which I believe Xt toolkits (like Motif) also did.


The best example I can think of is the Win32 controls UI (user32/Create window/RegisterClass) in C. You likely can't read the source code for this but you can see how Wine did it or Wine alternatives (like NetBSD's PEACE runtime, now abandoned).

Actually the only toolkit that I know that sort of copied this style is Nakst's Luigi toolkit (also in C).

Neither really used inheritance and use composition with "message passing" sent to different controls.


Vibe coding in the 90s was probably like learning C and pointers for the first time and then deciphering strange errors when you couldn't figure out how scanf worked, so you added asterisks and ampersands to the code until it compiled.


This is pretty close. I once spent 4 hours in college (circa 1997) looking for an error in a C++ program. The compiler's error messages were rubbish.

It ended up being a missing semicolon in an odd spot and the compiler was just confused.

I remember walking homing thinking, "hey, if I can survive that, maybe I can just hack this CS thing..."


I once spent a couple hours debugging a perl cgi script. Nothing worked. Called in my colleague. Looks fine. We both were tearing our hair out. Sent it to the line printer, ordered pizza, and one of us read the code while the other typed it in. Couple hours later we finished and it worked.


C compilers will still shit themselves and give meaningless error messages if you forget a semicolon after a function declaration in a header file.


Oof. Microcontrollers? LLVM and Clang has improved the situation somewhat for the rest of the world.


Look how far we've come! Now we add random .unsqueeze(-1) and .permute(-1,-2) until our PyTorch models run without shape errors!


There seems to be at least 2 lcc forks (lcc-win32/win64, and pelles-c) that have their own small communities. Although maybe they are dead.


Very tiny small communities, what product is being shipped with them?


I guess https://github.com/jart/cosmopolitan might just be the WebAssembly for the command line then.


AFAIK Cosmopolitan is missing the sandboxing features of WASM runtimes which would allow to run untrusted code safely, and for x86 vs ARM it uses the universal binary approach (e.g. you'll either have the x86 or the ARM code as dead weight in the executable).


For some reason I pictured this software as a system for developing memory or CPU constrained software. Like granting only 1 mb of memory and maybe having functions executed in a certain number of "clock ticks"


> Less controversially, when you write C, you write for a virtual machine described by the C spec, not your actual hardware.

Isn't this true for most higher level languages as well? C++ for instance builds on top of C and many languages call into and out of C based libraries. Go might be slightly different as it is interacting with slightly less C code (especially if you avoid CGO).


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: