[HN Gopher] Object-oriented Programming with ANSI-C (1993) [pdf] ___________________________________________________________________ Object-oriented Programming with ANSI-C (1993) [pdf] Author : Tomte Score : 48 points Date : 2023-06-21 18:10 UTC (4 hours ago) (HTM) web link (www.mclibre.org) (TXT) w3m dump (www.mclibre.org) | zabzonk wrote: | > I could not forge a portable implementation in C++. | | i would like to know why not. | jjgreen wrote: | (1993) | Tomte wrote: | Thanks! | gjvc wrote: | unlikely to be 2023, now, is it? | JohnFen wrote: | I'm doing OOP in C right now in my work. I'm porting a C++ | program to a new platform and, for reasons, the most feasible | language to use for it is C. | | Re-engineering the code to be not object oriented is not | practical, so we're keeping its OO nature. | omgmajk wrote: | Would be interesting if it was actually. Kinda feel like | playing with this for fun. | wtetzner wrote: | Here's a new library that provides OOP in C: | https://github.com/gyrovorbis/libgimbal | aninteger wrote: | And for people who took this to the "next level" just look at | GTK. | [deleted] | pjmlp wrote: | That would have been Motif and CDE, which Gtk is based on as | idea. | jandrese wrote: | No seriously, the GTK C bindings are basically written in a | half-formed version of the old C++ "C with preprocessor | macros" syntax. | | It looks like this when you program it: | GtkWidget* grid = gtk_grid_new(); GtkWidget* label = | gtk_label_new("Hello World"); | gtk_grid_attach(GTK_GRID(grid), label, 0, 0, 1, 1); | | That GTK_GRID bit is a macro that evaluates at runtime and | will chuck out runtime errors if the widget doesn't match. It | supports inheritance. If you have for example a | gtk_combo_box_text, you can use | gtk_combo_box_set_active(GTK_COMBO_BOX(my_combo_box_text), 0) | and it will select the first entry in the gtk_combo_box_text | because gtk_combo_box_text inherits from gtk_combo_box like | any good object oriented system. | dfox wrote: | Motif/libxm is very similar to that. With two important | exceptions: the user code does not use type-checking macros | and "stringly-typed" API for set a property to something is | more or less a part of the overall ecosystem (well, Xm is | just an layer built on top of Xt). | | Gtk+ was originally an implementation of whatever parts of | Motif were used by Gimp, built on an underlying object | model that has nothing to do with Xt (which has both good | and bad implications). | chmaynard wrote: | This reminds me of a course I took at Stanford around 1991. The | course title was UNIX C Programming and the instructor was Dr. | Eric Roberts. The programming part was to build a library of | simple tools and the UI was the command-line. We didn't call it | object-oriented but it involved programming with ADTs that had | well-defined APIs. ___________________________________________________________________ (page generated 2023-06-21 23:00 UTC)