# Programmierparadigmen von verschiedenen Programmiersprachen ## Übung 02.11.2023 ### Java Imperativ Objekt-orientiert (OOP) Streng objekt-orientiert Konzept: Klassen/Objekte Vererbung/Kapselung/Polymorphie Modellierung komplexer Probleme leichter Wartbar/Skalierbar Plattform unabhängig -> Cross-Plattform Kompatibilität Multi-Threaded Funktional (seit neueren Versionen) ### C Imperative Programmiersprache Prozedurale Programmiersprache Weitergabe von Daten über Funktionen Typisierte Programmiersprache -> Streng typisiert Vorteil: Hardwarenähe, Kompatibilität Schnelligkeit Nachteil: Speicherverwaltung ### Python Imperativ Objekt-orientiert Klassen und Objekte Hierarchien Funktional Kompakte Syntax Interpretierte Sprache Übersetzung in andere Sprachen möglich (Cython, etc.) Portabilität Typisierung Dynamisch (Duck Typing) ### Go Modular, imperativ Breite Palette an Programmierparadigmen Teilweise Objektorientiert & Funktional Keine Vererbung Statt Klassen werden Structs verwendet Einache, effektive Programmierung Typisierung: Statisch typisiert Vor der Kompilierung müssen Typen fest stehen Mix: Schnelligkeit von C & Anwendungsmöglichkeiten/Simplizität von Python Multi-Threading ### JavaScript Erweiterung von HTML Multi-Paradigmen OOP, Prozedural oder Funktional Dynamische Typisierung Anwendung: Interaktive Web-Anwendungen (z.B. Google Maps) Vorteile: Modernes Erscheinungsbild, Günstiger Server-Traffic (läuft im Browser) Dynamische Elemente Event-basiert (Callbacks) Asynchrone Verarbeitung ### TypeScript Typisiert Imperativ, OOP Vererbung TypeScript hat Einfluss von JavaScript/Java/C# Baut auf Supermenge von JavaScript Bibliotheken auf Skalierbarkeit/Wartbarkeit -> Durch Einführung OOP