## Analysieren programming Sprachen ## Java - Java ist Objecktorientiert programming sprache. - Plattformunabhängigkeit - multithreading, - Sicher - robust. ### nachteile von java: java Applikation sind langsamer als vergleichbare Anwendungen,die in c++ geschrieben wurden ## c - Imperative & Prozedurale Programming sprache. - Hardware benötigt "shritt für schritt" Anweisungen - Nähe zur Ausführungsebene. - Hierarchie von Funktionen, sequentiell abgearbeitet. - Fehlerzustände über spezille Rückgabewerte. ## Python - Python ist interpretierte, Objekt-Orientierte Programmiersprache. - universelle, höhere Programmiersprache ### vorteile: - Unkompliziert und schnell - Asynchrone Codierung - Benutzerfreundlichkeit und lesen. - seine verwendung in der Webentwicklung #### Nachtteil - Python ist etwas langsam und eignet sich für bestimme Anwendungen nur bedingt. - wenn man noch nicht so viel Erfahrung hat, kann es vorkommen, dass man den Code umständlicher gestaltet, als unbedingt notwendig. ## Java script - Java script ist keine Progrmmiersprache sondern Skriptsprache. - JavaScript wird eingesetzt, um CSS und HTML zu ergänzen. - JavaScript arbeitet clientbasiert ### Go (Golang) Go (auch Golang oder Go-Sprache genannt) ist eine Open-Source-Programmiersprache, die für allgemeine Zwecke verwendet wird. Go wurde von Google-Ingenieuren entwickelt, um verlässliche und effiziente Software zu erstellen. Go ist ähnlich wie C modelliert, ist statisch typisiert und explizit. #### Vorteil - Schnelle Kompilierung und Ausführungsgeschwindigkeit - Keine virtuelle Maschine (VM) erforderlich - Übertragbarkeit - Leichtgewichtige Goroutinen, die Gleichzeitigkeit unterstützen - Schnittstellen ermöglichen lose gekoppelte Systeme - Automatische Garbage Collection - Speichersicherheit - Unabhängige Fehlerbehandlung - Umfangreiche integrierte Bibliotheken #### Nachtteil - Keine Unterstützung von Generika oder der Möglichkeit, abstrakten, - - impliziten Code zu schreiben - Fehlende Sicherheit zur Laufzeit - Erzwingt strenge Regeln - Unvereinbar mit Funktionsüberladung - Konventionell nicht objektorientiert ## Programmierprinzipien - Verständlichkeit, Comprehensibility, Lesbarkeit, Readability - Schreibbarkeit, Writabilit - Stetigkeit, Continuity - Konfigurierbarkeit, Customizability - Don't repeat yourself, DRY - Repeat yourself, RY - Law of Demeter, LoD - Überprüfbarkeit, Verifiability