### 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.