====== Übersicht aller Programmiersprachen====== Hier ist eine Liste mit der Übersicht aller relevanten Programmiersprachen und ihren häufigsten Anwendungsgebiete. ====== C ====== ==== 1.1 Einsatzgebiete ==== * Betriebssystem-Kernel (z. B. Linux, Windows) * Eingebettete Systeme und IoT-Geräte * Gerätetreiber und hardwarenahe Firmware * Performance-kritische Systembibliotheken ==== 1.2 Objektorientiert ==== **Nein** (Rein prozedurales Programmierparadigma) ==== 1.3 Compiler benötigt ==== **Ja** (Direkte Kompilierung in maschinenspezifischen Binärcode) ==== 1.4 Komplexität ==== **Hoch** (Minimalistischer Sprachumfang, aber manuelle Speicherverwaltung über Pointer) ====== C# ====== ==== 2.1 Einsatzgebiete ==== * Enterprise-Software und Backend-Services * Windows-Desktop-Anwendungen (.NET Framework / .NET) * Spieleentwicklung (primäre Sprache der Unity-Engine) * Cross-Platform-Apps (z. B. mit .NET MAUI) ==== 2.2 Objektorientiert ==== **Ja** (Streng objektorientiert mit modernen Erweiterungen) ==== 2.3 Compiler benötigt ==== **Ja** (Kompiliert in Common Intermediate Language (CIL), Ausführung via Just-In-Time-Compiler in der CLR) ==== 2.4 Komplexität ==== **Mittel bis Hoch** (Umfangreicher Sprachschatz, aber automatische Speicherverwaltung erleichtert den Einstieg) ====== C++ ====== ==== 3.1 Einsatzgebiete ==== * High-End-Spieleentwicklung (z. B. Unreal Engine) * Grafik- und Videoschnittsoftware (z. B. Adobe-Produkte) * Echtzeitsysteme und Hochfrequenz-Handelsplattformen * Webbrowser-Engines (z. B. V8, Blink) ==== 3.2 Objektorientiert ==== **Ja** (Unterstützt Mehrfachvererbung, ist jedoch eine Multiparadigmen-Sprache) ==== 3.3 Compiler benötigt ==== **Ja** (Direkte Kompilierung in hochoptimierten, nativen Maschinencode) ==== 3.4 Komplexität ==== **Sehr hoch** (Komplexe Features wie Zeigerarithmetik, RAII, Templates und manuelle Speicherverwaltung) Bearbeiten ====== CSS ====== ==== 4.1 Einsatzgebiete ==== * Optische Gestaltung und Layoutierung von Webseiten * Responsive Design für verschiedene Bildschirmgrößen * Animationen und visuelle Effekte im Webbrowser ==== 4.2 Objektorientiert ==== **Nein** (Keine Programmiersprache, sondern eine deklarative Stylesheet-Sprache) ==== 4.3 Compiler benötigt ==== **Nein** (Wird direkt vom Rendering-Engine des Browsers interpretiert) ==== 4.4 Komplexität ==== **Gering bis Mittel** (Syntax ist extrem einfach, die Kaskadierung und Layout-Logiken fehlerfrei zu beherrschen erfordert jedoch Übung) ====== HTML ====== ==== 5.1 Einsatzgebiete ==== * Strukturierung und semantischer Aufbau von Dokumenten im World Wide Web * Definition von Texten, Hyperlinks, Formularen und Medienelementen im Browser ==== 5.2 Objektorientiert ==== **Nein** (Keine Programmiersprache, sondern eine reine Auszeichnungssprache / Markup Language) ==== 5.3 Compiler benötigt ==== **Nein** (Wird nativ vom Webbrowser in das Document Object Model (DOM) übersetzt) ==== 5.4 Komplexität ==== **Gering** (Sehr flache Lernkurve, da keinerlei Programmierlogik oder Kontrollstrukturen existieren) ====== Java ====== ==== 6.1 Einsatzgebiete ==== * Große Unternehmensanwendungen (Enterprise Backends) * Android-App-Entwicklung (traditionell und via Frameworks) * Cloud-Infrastrukturen und Big-Data-Anwendungen (z. B. Apache Hadoop) ==== 6.2 Objektorientiert ==== **Ja** (Erzwingt Klassenstrukturen; fast alles muss innerhalb einer Klasse definiert sein) ==== 6.3 Compiler benötigt ==== **Ja** (Kompiliert in plattformunabhängigen Bytecode, der auf der Java Virtual Machine (JVM) ausgeführt wird) ==== 6.4 Komplexität ==== **Mittel** (Strikte Typisierung und automatische Speicherverwaltung sorgen für hohe Wartbarkeit, Code ist jedoch oft langatmig / verbose) ====== JavaScript ====== ==== 7.1 Einsatzgebiete ==== * Clientseitige Interaktivität und Dynamik auf Webseiten * Serverseitige Backend-Entwicklung (via Node.js) * Mobile Apps (z. B. mit React Native) und Desktop-Apps (via Electron) ==== 7.2 Objektorientiert ==== **Ja** (Nutzt prototypenbasierte Vererbung, moderne Versionen bieten jedoch vertraute `class`-Syntax) ==== 7.3 Compiler benötigt ==== **Nein** (Traditionell eine interpretierte Skriptsprache; moderne Browser-Engines optimieren den Code zur Laufzeit über JIT-Kompilierung) ==== 7.4 Komplexität ==== **Gering bis Mittel** (Schnelle sichtbare Erfolge im Browser, fortgeschrittene asynchrone Konzepte und Typschwächen erfordern jedoch Aufmerksamkeit) ====== Swift ====== ==== 8.1 Einsatzgebiete ==== * Native App-Entwicklung für das Apple-Ökosystem (iOS, macOS, iPadOS, watchOS, tvOS) * Gelegentlicher Einsatz bei modernen Server-Backends ==== 8.2 Objektorientiert ==== **Ja** (Multiparadigmen-Sprache mit starkem Fokus auf Protokoll-orientierte und funktionale Programmierung) ==== 8.3 Compiler benötigt ==== **Ja** (Nutzt das LLVM-Compiler-Framework für die Übersetzung in schnellen Maschinencode) ==== 8.4 Komplexität ==== **Mittel** (Moderne, intuitive Syntax; Sicherheitsfeatures wie Optionals erfordern zu Beginn Umdenken, verhindern aber Laufzeitabstürze) ====== PowerShell ====== ==== 9.1 Einsatzgebiete ==== * Systemadministration und Automatisierung (primär Windows, auch Linux) * Cloud-Ressourcenmanagement (z. B. Microsoft Azure, AWS) * Konfigurationsmanagement und CI/CD-Pipelines ==== 9.2 Objektorientiert ==== **Ja** (Gibt im Gegensatz zu textbasierten Shells wie Bash echte .NET-Objekte durch die Pipeline weiter) ==== 9.3 Compiler benötigt ==== **Nein** (Interpretierte Skriptsprache und interaktive Befehlszeilen-Shell) ==== 9.4 Komplexität ==== **Mittel** (Einfache Befehle/Cmdlets sind schnell gelernt; fortgeschrittene Skripte verlangen Verständnis der objektbasierten Pipeline)