diff --git a/Programmierparadigmen.md b/Programmierparadigmen.md index 87da1b7..c1620cb 100644 --- a/Programmierparadigmen.md +++ b/Programmierparadigmen.md @@ -1,42 +1,79 @@ - # Programmierparadigmen ## Java - * Objektorientiert - * Klassen, Vererbung, Polymorphie +* Objektorientiert + * Klassen, Vererbung, Polymorphie +* Imperativ +* Ähnlichkeit zu C++ +* Standart-Bibliotheken +* Strikt typisiert +* Funktionale Anteile seit neueren Java-Versionen +* Anwendung: Web-Applikationen, Desktop-Anwendungen + +## C +* Imperativ +* Prozedual +* Typisierte Sprache +* Anwendung:Hardwarenahe Programmierung + * Direkter Speicherzugriff +* Nutzung auf so ziemlich allen Systemen +* Schnell & verbraucht wenig Ressourcen +* Befehlssatz ist relativ klein + * Kann Vorteil oder Nachteil sein + * Selber schreiben oder einbinden externer Bibliotheken + +# Python +* Prozedural +* Imperativ +* Dynamische Typisierung + * Duck Typing +* Objektorientiert + * Vererbung +* Functional +* Python wird zur Bytecode Übersetzt bevor er interpretiert wird +* Klare Syntax, kompakter Code, geringe Schlüsselwörter +* Kompilierter Bytecode wird vom Interpreter ausgeführt + +## Go +* Imperativ / 00P (aber keine Klassen/Vererbung) +* Einfach/lesbar +* Effizient + * Orientierung an C + * Low-Level +* Statische Typisierung + * Variablen haben festen Datentyp + * Fehlerfindung frühzeitig +* Standardbibliothek +* Cross Platform Compilation + +# JavaScript +* Ähnliche Syntax zu C +* Typenlose +* Imperative Programmiersprache +* Funktionale Programmiersprache +* Objektorientierte Sprache + * Prototypenbasiert also Klassenlos +* Asynchrone Verarbeitung (Callbacks) +* Modulare Programmierung (ES6) +* Vorteile: Verwendung für Frontend & Backend +* Altere Sprache, Große Community +* Interaktive Benutzeroberflächen +* Unterstützung verschiedener Browser +* Anfälligkeit zu XSS +* Läuft im Browser - * Beispiele - * Ursprung - * Vorteile -2) Declarative Programmierung - * Definition - * Beispiele - * Vorteile -3) Prozedurale Programmierung - 3.1 Definition - 3.2 Beispiele -4 Objektorientierte Programmierung - 4.1 Definition: Polymorphie - 4.2 Beispiele: Simula-67 - 4.3 Vorteile: bessere Strukturierung und Testbarkeit -5 Funktionale Programmierung - 5.1 Definition - 5.2 Beispiele: Lisp, Hskell, Erlang, etc. - 5.3 Vorteile: Generierung neuer Funktionen zur Laufzeit - 5.4 Nachteile: nur für Berechnungen -6 typisierte Programmiersprachen - 6.1 Definition - 6.2 Beispiele: C, Java, Python, C++, go, etc. - 6.3 Vorteile: Vervollständigungsvorschläge durch die IDE - 6.4 Nachteile -7 typenlose Programmiersprachen - 7.1 Definition - 7.2 Beispiele: sh, cmd, JavaScript, x86 Assembler - 7.3 Vorteile: nur faktische Kompatibilität und implizite Konvertierung - 7.4 Nachteile -8 Prinzipien der Programmierung - 8.1 do’s & don’ts - 8.2 weitere Prinzipien der Programmierung +# TypeScript +* imperativ +* Superset von JavaScript +* Starke Typisierung im Gegensatz zu Javascript + * Statische & Dynamische Datentypen werden unterstützt +* TypeScript ist objekt-orientiert + * Vererbung + * Schnittstellen +* Funktional (weil auf JavaScript aufbauend) +* Einsatzzweck für große Web-Applikationen/Frameworks + * Bessere Strukturierung + * Konsistener durch Type-Checking/Typisierung ## Programmierprinzipien -STUPID, SOLID \ No newline at end of file +STUPID, SOLID