Zum einen hat sich der Programmentwurf deutlich verändert: Begründet durch die Verbreitung von C++ hat der objektorientierte Programmieransatz Einzug in den Alltag der Entwickler gefunden. Die objektorientierte Programmierung erleichterte die Unterteilung von großen Problemen in mehrere Kleinere und erlaubte durch Vererbung, miteinander verwandte Datensätze ohne bewusste Tricks, wie zum Beispiel Castings, einander zuzuweisen. Die Programmiersprache erhielt damit die Fähigkeit, die Verwandtschaft der Klassen zu handhaben.
Mit der Einführung graphischer Betriebsysteme (Apple Lisa 1983, MacOS '84, AmigaOS und STOS '85 und WindowsNT Anfang der 90er) verlor die Systemprogrammierung an Bedeutung. Das System und die zugehörige Hardware kapselte zunächst die Grafikhardware und schließlich sämtliche Zusatzhardware. So lassen sich Linuxprogramme in der Regel für alle Plattformen ohne Änderungen am Quelltext kompilieren. Die Sprache Java erfordert (sofern das Programm entsprechend programmiert wurde) nichtmals eine Neukompilierung, wenn Betriebsystem oder Hardware-Architektur gewechselt wird.
Die Systemprogrammierung verliert also im Alltag an Bedeutung. Die Entwicklung der Programmiersprachen tragen dem mit Java und C# Rechenschaft, in dem sie sich auf den Alltag konzentrieren. Allerdings bleibt die Systemprogrammierung - zwangsläufig - Grundlage von allem, was den Alltag ermöglicht und daher auch für zukünftige Entwicklungen ein wichtiger Bestandteil der Informatik.
Die aktuelle Situation entspricht im Verhältnis also wieder der Situation, wie sie Dennis Ritchie vor der Entwicklung von C vorfand. Systemprogrammierung auf einer 20 Jahre alten Sprache (früher Assembler, bzw. heute C/C++) und Anwendungsprogrammierung (früher Pascal, bzw. heute Java/C#) auf eher alltagsbezogeneren Sprachen.