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