You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

3.2 KiB

Java

  • Objektorientierte, typisierte & funktionale (Verfeinerung des deklarativen Paradigmas) Programmierung
  • beteiligte Objekte stehen im Fokus
  • Verwendung von Klassen und Objekten
  • Unterstützt Objekte, Klassen und Vererbung
  • Neue Klassen können die Eigenschaften und Verhalten von bereits existierenden Klassen erben
  • Kapselung von (Zustands-) Daten und Methoden
  • Polymorphie (Behandlung von Objekten basierend auf ihrem Typ)
  • Bessere Strukturierung
  • Wiederverwendbarkeit von Programmteilen
  • Einmal geschriebene Code kann künftig leicht gepflegt und modifiziert werden
  • Bessere Testbarkeit

C

  • (1) Prozedurale, typisierte Programmierung (1)

    • Erweiterung des imperativen Paradigmas, um Algorithmen in überschaubare Teile zu zerlegen
    • Kontrollstrukturen (Sequenz, Schleife, Verzweigung) zur Steuerung der Befehlsausführung
    • Datenwerte definiert als benannte Variablen und darüber angesprochen
    • Diesen Variablen sind Datentypen zugeordnet -> erlauben nur bestimmte Instruktionen
    • Konzept der Abstraktion -> Entstehung von Gruppierungen und Hierarchie

    (2)

    • Korrekte Verwendung der Objekte
    • Sicherstellung, dass auf den Inhalt von Variablen keine Operationen ausgeführt werden, die syntaktisch oder semantische fehlerhaft sind
    • Vermeidung von Laufzeitfehlern

Python

  • Ist eine universelle Open-Source-Programmiersprache
  • Nutzt mehrere Programmierparadigmen, u.a. die objektorientierte, aspektorientierte und die funktionale Programmierung
    • Funktionen sind nicht nur definiert und anwendbar, sondern auch wie Daten miteinander verknüpft, als Parameter verwendet und können als Funktionsergebnisse auftreten
    • Ermöglicht, auf die in der imperativen Programmierung benötigten, inneren Zustände eines Berechnungsprozesses ebenso zu verzichten, wie auf die zugehörigen Zustandsänderungen
    • Verzicht auf Seiteneffekte vereinfacht semantische Analyse eines Computerprogramms
    • Möglichkeit zur regelbasierten, algebraischen Programmtransformation und -synthese
    • Vereinfacht, Algorithmen ohne Berücksichtigung der Beschaffenheit der bearbeiteten Datenobjekte zu beschreiben und dadurch generischen Programmcode zu schreiben

Go

  • Kombinierbare Programmiersprache, die Nebenläufigkeit und automatische Speicherbereinigung unterstützt
  • Bereinigung der Compiler-Ineffizienz in C und C++
  • Erleichterung von Softwareentwicklung mit Codebasen und Entwicklerteams
  • Orientiert sich syntaktisch an der Programmiersprache C

JavaScript

  • Typenlose Programmiersprache (Typ von Variablen, Parametern & Rückgabewert wird nicht festgelegt)
  • Nur faktische Kompatibilität
  • Implizite Konvertierung
  • Typenfehler treten erst zur Laufzeit des Programms auf

TypeScript

  • Compiler kompilierte Programmiersprache
  • Unterstützt Kapseln von Klassen, Interfaces, Funktionen und Variablen in eigene Namensräume
  • Bietet, existierenden JavaScript-Code und -Bibliotheken zu verwenden (JavaScript-Code = TypeScript-Code)

Programmierprinzipien

Clean Code > Clever Code

  • Vermeidung von komplexem Code in einer Zeile
  • Man sollte den Idiome der Sprache Acht geben

Zusammensetzung > Vererbung

  • statt Klassen zu erben, neues Verhalten für Objete mit komplexem Verhalten hinzufügen