# Prolog - Paradigmen - -Deklarativ - --Programmierbeschreibung ist deklarativ - --aehnlich wie bei - Staerken - Schwaechen - Praxisanwendungen - Logik # Java - Imperativ - Objektorientiert (OOP) - -Streng objekt-orientiert - -Konzept: Klassen/Objekte - -Vererbung/Kapselung/Polymorphie - -Modellierung komplexer Probleme leichter - -Wartbar/Skalierbar - Typisierung: Strikt Typisiert - Plattform-unabhaengig - -Cross-Platform Kompatibilitaet - Multi-Threaded - Funktional (seit neueren Versionen) # C - Imperativ (also auch prozedural) - -Weitergabe von Daten über Funktionen - -Streng typisiert - -Vorteile: Hardwarenaee, Kompatibilitaet - -Schnelligkeit - Zwei Stufen unter den Maschinencode - Nachteil: Speicherverwaltung (selbst übernehmen noetig) # Python - Imperativ - Objekt-orientiert - -Klassen und Objekte - -Hierachien - Funktional - -Kompackte Syntax - Interpretierte Sprache - -Übersetzung in andere Sprache möglich (Cython, etc.) - Portabilitaet - Typisierung - -Dynamisch (Duck Typing) # Go - Modular, imperativ - Breite Palette an Programmierparadigmen - Teilweise Objektorientiert & Funktional - -Keine Vererbung - -Statt Klassen werden Structs verwendet - Einfache, effektive Programmierung - Typisierung: Statisch typisiert - -Vor der Kompilierung müssen Typen fest stehen - Mix: Schnelligkeit von C & Anwendungsmöglichkeiten/Symplizität von Python - Multi-Threading # JavaScript/TypeScript 1/2 - Erweiterung von HTML - Multi-Paradigmen - -OOP, Prozedural oder Funktional - Dynamische Typisierung - Anwendung: Interaktive Web-Anwendung (z.B. Google Maps) - Vorteile: Modernes Erscheinungsbild, Günstiger Server-Traffic (läuft im Browser) - -Dynamische Elemente - Event-basiert (Callbacks) - -asynchrone Verarbeitung # Typescript 2/2 - typisiert - Imperativ, OOP - TypeScript hat Einfluss von JavaScript/Java/C# - Baut auf Supermenge von Javascript Bibliotheken auf - Skalierbarkeit / Wartbarkeit -> Durch Einfuehrung OOP SOLID UND STUPID ERARBEITEN