### Analyse der verschiedenen Programmiersprachen ### Java --- - imperative, objektorientierte plattformunabhängige Programmiersprache mit funktionalen Anteilen \ - strikt typisierte Programmiersprache\ - enthält Standardbibliothek\ - automatische Speicherverwaltung\ - gut testbar\ - langsamer als C ### C - imperative, prozedurale plattformunabhängige Programmiersprache \ - typisierte Programmiersprache \ - hardwarenahe \ - manuelle Speicherverwaltung\ - schnell (weil direkte Übersetzung Code in Maschinencode) & wenig Ressourchenverbrauch \ - relativ kleiner Befehlsatz ### Python - imperative, objektorientierte plattformunabhängige Programmiersprache\ - dynamisch typisierte Programmiersprache\ - automatische Speicherverwaltung \ - kombiniert Eigenschaften von Compiler & Interpretersprachen\ - minimalistisch (klare Syntax, gute Lesbarkeit, wenige Codezeilen, sehr wenige Schlüsselwörter) \ - geringe Anfälligkeit für Programmierfehler \ - basiert auf C \ - als Skriptsprache nutzbar ### Go - imperative objektorientierte plattformunabhängige Programmiersprache\ - statisch typisierte Programmiersprache\ - automatische Speicherverwaltung\ - Standardbibliothek\ - plattformübergreifende Kompilierung (Go-Code auf einem Betriebssystem schreiben & auf anderem kompilieren) \ - effizient \ - orientiert sich an C \ - als Skriptsprache nutzbar ### JavaScript - imperative objektorientierte plattformunabhängige Programmiersprache\ - dynamisch typisierte Programmiersprache\ - automatische Speicherverwaltung \ - ähnliche Syntax wie C \ - interaktive Benutzeroberfläche \ - langsamer\ - als Skriptsprache nutzbar ### TypeScript - imperative objektorientierte plattformunabhängige Programmiersprache\ - statisch typisierte Programmiersprache \ - automatische Speicherverwaltung\ - als Skriptsprache nutzbar\ - Erweiterung von JavaScript ### Weitere Programmierprinzipien ### DRY - Don't Repeat Yourself Der Code sollte nicht wiederholt werden. Stattdessen sollten Funktionen, Klassen oder Module erstellt werden, die den Code wiederverwendbar machen. Der Code wird dadurch verständlicher, korrekter, robuster und wartbarer. ### DP - Defensive Programming Um die Robustheit zu erhöhen, beinhaltet dieses Prinzip das Schreiben von Code, der auf unerwartete Situationen vorbereitet ist & Fehler abfängt. ### TDD - Test-Driven-Development Durch das Schreiben von Tests vor dem eigentlichen Code wird die Korrektheit, Funktionalität und leichtere Wartungbarkeit sichergestellt.