4 ms·
The C preprocessor allows you to define a limited DSL on top of C. This is... sometimes a good thing, and often convenient, even if it makes it hard to understa
by cozzyd 1y ago
The C preprocessor allows you to define a limited DSL on top of C. This is... sometimes a good thing, and often convenient, even if it makes it hard to understand.
- jacquesm 1y agoFor extremely small values of 'sometimes' where sometimes is constrained by the following expressions evaluating to 'true': - you have no interest in maintaining your code - your code will never be maintained by someone else - you know your C preprocessor better than you know your C compiler - your favorite language isn't available for this particular target - you don't mind object level debugging - your idea of a fun time is to spend a few hours per day memorizing code - you really are smarter than everybody else
- cozzyd 1y agoIt depends how far down the rabbit hole you go. Something like JCON (originally from mongodb, see https://blogs.gnome.org/chergert/2016/10/21/jcon/ https://blogs.gnome.org/chergert/2016/10/21/jcon/) is actually pretty nice IMO.
- gitonthescene 1y agoI think _all_ programming is about finding an appropriate DSL for the problem at hand. First you need to understand the “language” of the problem then you develop a “lingo”.
- rbanffy 1y agoExactly. You build the language up to the problem. When you do that, the program almost writes itself.