Raise your level of abstraction
Just a short note.
Programming languages do a 2-way abstraction:
1. from machine level 'upwards', leaving out the technical bits.
2. from (all addressed) problem domains 'downwards', promising that the language constructs provided correspond to the most important real world structures.
In discussions on programming and abstraction, the latter seems a bit underrepresented, although not less…