Creating applications, data engineering and services across PCs, mobile devices, the cloud backbone and throughout the internet of things (IoT), the developer is the artist, the keyboard is the colour palette and the command line is the painter’s easel and canvas.
Art is categorised into a number of genres, such as classical, abstract, post-modern and renaissance. Similarly, software programming falls into various fields, categories and sub-genres, such as waterfall, agile, scrum or pair-based, rapid application development (RAD) and now low-code and no-code (for business people) in the wider spectrum of code creation.
Going deeper, some people would classify different programming types by the various language types, such as declarative, concurrent, data flow, functional, and so on. Others separate them out by target device as desktop, mobile, embedded firmware software development.
To add to the confusion of how to categorise software development, modern development practices are often associated with cloud-native, cloud-first