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

JavaScript

Übersicht

* ähnliche Syntax wie in C
* Vererbung nicht durch Klassen, sondern durch Prototypen (klassenlose Objektorientierung)
* typenlose Programmiersprache

Imperative Programmierung:

* grundlegende Art der Programmierung, bei der Schritt-für-Schritt Anweisungen angegeben werden, um Aufgaben auszuführen
* beispielsweise Verweundung von Schleifen, bedingten Anweisungen und dekleration von Variablen 

Funktionale Programmierung

* Funktionen können wie Daten behandelt werden oder als Argumente für andere Funktionen dienen	
* hohe Ordnungsfunktion

Objektorierentierung

* JavaScript ist prototypbasiert, erlaubt die Erstellung und Vererbung von Objekten
* Erstellung von Klassen und Objekten
* Hinzufügen von Methoden zu Objekten

Asynchrone Programmierung

* Aufgaben können parallel oder nebenläufig ausgeführt werden, ohne Hauptprogramme zu blockieren
* besonders nützlich für Aufgaben wie das Laden von Daten auf einen Server oder das Verarbeiten von Benutzereingaben

Modulare Programmierung

* JavaScript unterstützt die modulare Programmierung mit ES6 und späteren Versionen
* Erstellen von Modulen und der Import von Modulen wird ermöglicht	
* Fördert die Wiederverwendbarkeit 

Vorteile

* Universelle Verwendung	
	* Verwendung von JavaScript im Webbrowser(Frontend) oder auf Serverseiten(Backend)

* Leicht zu erlernen
	* große Entwicklungsgemeinschaft und viele Ressourcen für das Lernen

* Interaktive Benutzeroberfläche
	* Erstellen von interaktiven und dynamischen Webseiten
	* Verbessert die Benutzererfahrug

* Asynchrone Programmierung
	* gut für die Handhabung asynchroner Aufgaben
	* wichtig für Webanwendungen

Nachteile

* Browser-Kompatiblität
	* unterschiede Browser interpretieren JavaScript-Code unterschiedlicdh 

* Sicherheitsprobleme 
	* anfällig für Corss-Site-Scripting und Cross-Site-Request-Forgery, wenn Sicherheitsvorkehrungen nicht richtig getroffen werden

* Typisierungsprobleme
	* schwer zu debuggen und Typfehler treten erst während der Laufzeit auf

* Ladezeit
	* JavaScript Daten müssen erst vom Browser heruntergeladen und interpretiert werden
	* beeinflusst die Ladezeiten von Webseiten

* Begrenzte Serverseitenfähigkeit
	* keine gute serverseite Sprache, da es viele Einschränkungen gibt im Vergleich zu spezialisierten severseitigen Sprachen

Go

  • Imperativ / OOP (aber keine Klassen/Vererbung)
  • Einfach/lesbar
  • effizient
    • Orientierung an C
    • Low-Level
  • Statische Typisierung
    • Varibalen haben festen Datentyp
    • Fehlerfindung frühzeitig
  • Standardbibliothek
  • Cross Platform Compilation

TypeScript

  • Superset von JavaScript
  • Starke Typisierung im Gegensatz zu JavaScript
    • Statische & Dynamische Dartentypen werden unterstützt
  • TypeScript ist objekt-orientiert
    • Vererbung
    • Schnittstellen
  • Funktional (weil auf JavaScript aufbauend)
  • Anwendung: große Aplikationen/Frameworks
  • bessere Strukturierung

Java

  • Imperativ
  • Objekt-orientiert
    • Klassenbasiert
    • Zugriff wird klar definiert
    • Vererbung/Polymorphismus
  • Ähnlichkeiten
  • Standard-Bibliotheken
  • Strikt typisiert
  • Funktionale Anteile seit neuren Java-Versionen
  • Anweundung: Web-Applikationen, Desktop-Anwendungen

C

  • Imperativ

  • Prozedural

  • Typisierte Sprache

  • Anwendung: Hardwarenahme Programmierung

    • Direkter Speicherzugriff
  • Nutzung auf so ziemlich allen Systemen

  • Schnell & verbraucht wenig Ressourchen

  • Befehlsatz ist relativ klein

    • Kann Vorteil oder Nachteil sein
    • Selber schreiben oder einbinden externer Bibliotheken

Python

  • basierend auf C
  • imperativ und prozedural
  • typisierte Sprache
    • macht das Programm automatisch (dynamische Typisierung)
  • Objektorientierung
  • Ersellen von Funktionen
  • Kompiler in sich intigriert
  • sehr klare Syntax