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