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.
 

5.6 KiB

Lerntagebuch

Übung 2 08.11.2022

Analysieren Programmierparadigmen

Java

Java ist eine plattformübergreifende, Objektorientierte und netzzentrierte Sprache. Java wird auch als ComputingßPlattform verwendet.

Vorteil

Java

  • unterstützt multi-threading.
  • ist Objektorientierte
  • ist dynamisch, was das Runtime-system angeht. Klassen werden dann gelinkt, wenn sie benötigt werden.

Nachtteil

  • die Performance ist verringert, da java-code vom Interpreter (der die Plattformunabhängigkeit erst möglich macht) interpretiert wird.

C

C ist eine universelle Programmiersprache, die sehr beliebt, einfach und flexibel ist. Es ist eine strukturierte Programmiersprache, die maschinenunabhängig ist und ausgiebig zum Schreiben verschiedener Anwendungen, Betriebssysteme wie Windows und vieler anderer komplexer Programme wie Oracle-Datenbank, Git, Python-Interpreter und mehr verwendet wird.

Vorteil

  • Es ist eine robuste Sprache.
  • Es handelt sich um eine Sprache mit niedrigem Programmierniveau, die der Maschinensprache nahe kommt.
  • Sie wird häufig in der Softwareentwicklung eingesetzt.
  • Es handelt sich um eine prozedur- und strukturorientierte Sprache.
  • Sie hat die volle Unterstützung verschiedener Betriebssysteme und Hardware-Plattformen.

Nachtteil

  • Eine allzu große Freiheit beim Kodieren kann dazu führen, dass schwer lesbarer Code geschrieben wird.
  • Als Anfänger haben Sie bereits direkten Zugriff auf die Hardware und können somit vieles durcheinander bringen, wenn Sie nicht wissen, was Sie genau tun.
  • Fehler, die bei anderen Sprachen beim Compiler-Lauf abgeschaltet werden, werden unter Umständen nicht gefunden. Meist treten solche Fehler erst dann auf, wenn das Programm bereits freigegeben wurde.

Python

Python ist eine interpretierte, objektorientierte High-Level-Programmiersprache mit dynamischer Semantik. Seine hochentwickelten, integrierten Datenstrukturen, kombiniert mit dynamischer Typisierung und dynamischer Bindung, machen es sehr attraktiv für die schnelle Anwendungsentwicklung sowie für die Verwendung als Skript- oder Klebesprache, um bestehende Komponenten miteinander zu verbinden.

Vorteil

  • Python bietet für fast alle Anwendungsprobleme eine Lösung.
  • Python ist leichter zu lernen als viele andere Programmiersprachen.
  • Python ist aufgrund seiner Struktur gut lesbar, so können Bugs schnell gefunden und behoben werden
  • Python ist dynamisch typisiert. Es ist also in Python nicht notwendig, den Typ von Variablen oder Funktionsargumenten zu definieren.

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.

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

JavaScript

JavaScript (JS) ist eine Programmier- bzw. Skriptsprache, die hauptsächlich im Web verwendet wird. Sie wird zur Verbesserung und Interaktivität von HTML-Seiten eingesetzt und ist häufig in HTML-Code eingebettet. JavaScript ist eine interpretierte Sprache.

Vorteil

  • Moderenes Erscheinungsbild
  • leichter zu erlernen als typbasierte Sprachen wie (C#, Java, C++ etc)
  • läuft überall (windows, linux, mac etc.)
  • läuft im Browser (Webanwendungen werden immer beliebter) große Community weshalb fast jede Frage die auftreten könnte schon im Internet beantwortet wurde

Nachtteil

  • code wird schnell unleserlich und somit sehr schwer auf Dauer zu pflegen
  • viele der Librarys haben Abhängigkeiten was bedeutet dass sobald einer diese Abhängigkeiten sich ändert oder kaputt geht die Library an sich kaputt geht und somit auch deine Applikation -das debugging, also die Fehlersuche ist enorm schwer und lästig da kein Editor in der Lage ist dir im vorhinein zu sagen ob eine Variabel existiert oder nicht und du so sehr schnell deine Schreibfehler übersiehts und Sie meist erst nach langer Sucherei findest
  • javascript ist vergleichsweise sehr langsam jedoch macht dies mit der heutigen Technik eher weniger aus.

Porgrammier Prinziple

SOLID

Separations of Concern Open/Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle

STUPID

Singelton Tight Coupling Untestability Premature Optimization Indescriptive Naming Duplication

KISS

Keep It Simple (and) Stupid

FCoH

Favor Composition over Inheritance

####SLA Single Layer of Abstraction

YAGNI

You Ain’t Gonna Need It

IOC

Inversion of Control

####DI Dependency Injection

DRY

Don't Repeat Yourself

DYC

Document Your Code

Clean Code At All Costs