Software Development

There are several operating systems to write programs for and numerous language to write in. And some of them I used before (see image above).

Operating systems (as well as browsers) partly dictate the programming language, but mostly you can choose between among several ones.
The most common decision is: Fast and cheap (also known as 'quick and dirty') or dig a little deeper and produce for reusability and security.

For both ways there may be valid reasons, but for me the second is the more appealing one.

Principles

The main goal of every software is obviously to serve its purpose. But beyond that I see some more common goals, which will improve every software:

Clarity

The software has to serve a clear obvious objective.
Simplicity and a clear structure get precedence over all-in-one frameworks.
The code has to readable like prose. In structure and naming it is orientatiated at real objects.

Simplicity

Usage has to be quick and simple, as intuitive as possible.
Simplicity of software usually also means swiftness and less expensive hardware. Not least, with simple software better security can be ensured more easily.

Security

From my experience in developing banking software this has become important to me: No vulnerable HTML, no vulnerable databases, as many scripts as needed, as much compiled code as possible. 

My Software History (incomplete)

from 1985 development of driver software, extension of text editors in Pascal and Assembler under CP/M andDOS/TOS.

from 1989 several learning programs for Swiss banks and insurance companies as well as the Swiss Railway (multimedia - with floppies, image disks, CD-I and sprecially programmed video cards)
base: DOS and Windows with TenCore, Pascal, later C++.

from 1994 development of an authoring system for the creation of learning software (C++),
creation of several lerning programs for German banks and  ensurance companies, car companies and of interactive ad software for the city of Hollywood and the Olympic Games in Atlanta

from 1997 memer of the project management of an international learning game for the European Union with partners from Great Britain, France, Finland and Germany (C++)

from 1999 development of intranet knowledge management software (Java, HTML)

from 2000 development of server software for intranets and internet presence of German banks and insurance companies

from 2001 development of a stock exchange control system for the Berliner Börse (Xontro, C++ and Java)

from 2003 development of the intranet of a German online/direct bank (Java)

from 2004 development of a call center system for the Deutsche Post (Java)

from 2005 development of an own content management system (Java)

from 2006 several internet and intranet applications for a German investment bank based MS SharePoint in cooperation with the international developer and hosting in the USA and Hongkong (C#)
Creation of SharePoint addons (a.o. CMS and image library)

from 2011 development of a customer portal for a German bank (Java)

from 2013 development of the intranet of a German pharma company (MS SharePoint)

from 2016 development of a portal for a German publishing house

since 2019 development of a web application for registering and tracking of construction defects and an IOS app for offline usage in place.

since 2020 development od an IOS app 'my private track', a digital diary without cloud and ads. Entries as a mix of text, photos, audio, video and map.

since 2020 publication of several libraries and  frameworks for macOS and IOS in Swift (on GitHub as mr-elbe5).