Innovative Programmiersprachen können ein Mittel gegen Coding-Probleme sein, die immer wieder nicht begeistern.Gorodenkoff | shutterstock.com Sehr wahrscheinlich sind Sie von Ihrer Lieblings-Programmiersprache wegen ihres Komforts und ihrer Benutzerfreundlichkeit überzeugt und kennen auch alle relevanten APIs und Bibliotheken aus dem Effeff. Aber die Zeit bleibt bekanntermaßen nicht stehen und was gestern noch performant war, wirkt heute unter Umständen schon etwas abgestanden. Glücklicherweise lieben Softwareentwickler die Innovation – und Programmiersprachen schießen weiterhin jedes Jahr wie Pilze aus dem Boden. In diesem Artikel werfen wir einen Blick auf elf (relativ) neue, alternative Coding-Sprachen, die jeweils ein spezifisches, in der Regel penetrantes Problem ihrer populären Pendants lösen. Die beste Art, diese neuen Programmiersprachen zu durchdringen: Tauchen Sie ein und entscheiden Sie sich für ein erstes Testprojekt, zum Beispiel eine kleine Utility. Anschließend fahren Sie am besten damit, zu bauen, zu testen, und zu experimentieren. Coq Viele verschiedene Begriffe, die mehr oder weniger dieselbe Sache bezeichnen, stiften regelmäßig Verwirrung im Dev-Umfeld. Funktionen, Subroutinen und Methoden sind im Grunde dasselbe – zumindest, wenn die Perspektive abstrakt genug ist. Coq geht noch einen Schritt weiter: Probleme werden hier in einem Theorem über eine Hierarchie von Typen spezifiziert. Anschließend wird ein Beweis für die Aussage gefunden und verifiziert. Dieser ist auch die Lösung für das gesuchte Problem – zumindest, wenn Sie die Hierarchie richtig verstehen. Das klingt (und ist auch) nerdig, kann aber nützlich sein: Die Struktur dieser Programmiersprache ist hilfreich, um Probleme mit komplexen Kombinationen oder diversen Ebenen und vielen Restriktionen oder Regeln zu bearbeiten. Observable Laut seiner Dokumentation handelt es sich bei Observable nicht um eine Programmiersprache, sondern um ein Framework. Anweisungen können Sie demnach in „jeder Sprache“ schreiben. Man könnte Observable aber auch als domänenspezifische Programmiersprache bezeichnen, die dafür genutzt wird, Daten-gestützte Displays oder Dashboards zu erstellen. Sie können damit viele Bibliotheken und andere Code-Pakete zusammenführen, die als Services oder APIs laufen. Die oberste Ebene von Observable ist in Markdown geschrieben. Die Charts und Diagramme verwenden JavaScript – und für die unteren Ebenen kommen im Regelfall SQL, Python oder R zum Einsatz. Plang Dass große Sprachmodelle (LLMs) ganz annehmbare, erste Code-Entwürfe liefern können, hat sich inzwischen herumgesprochen. Perfekt ist zwar anders, aber man merkt, dass die Modelle davon profitiert haben, das Wissen von Plattformen wie Stack Overflow abzusaugen. Plang stellt nun den nächsten logischen Schritt dar und „montiert“ quasi ein großes Sprachmodell auf einen Compiler. Das ermöglicht, den generierten Code direkt auszuführen, ganz ohne vorherige Copy-Paste-Arien. Ein paar simple, grundlegende Anweisungen genügen – Plang erledigt den Rest. Und das auch ziemlich überzeugend: die Outputs von Plang grenzen manchmal an ein Wunder und können Sie tatsächlich entscheidend voranbringen. Mojo & Erg Python ist eine performante Sprache mit großer Community. Dort gibt es aber auch Menschen, die mehr wollen. Das hat zu Python-Supersets wie Mojo und Erg geführt. Beide Programmiersprachen wollen mit erweiterten Features wie Static Typing und Memory Safety für schnelleren und robusteren Code sorgen. Die beiden Sprachen unterscheiden sich jedoch in wichtigen Punkten: Das Team von Erg hat eine komplexere und ehrgeizigere Strategie umgesetzt, die auch etwas strenger ist. Sie will die funktionale Programmierung stärker vorantreiben und weicht daher vom Standard-Ansatz von Python ab. Mojo orientiertsich hingegen enger an Standard-Python. Die Entwickler scheinen auch eher auf die Systemebene abzuzielen. Der Fokus des Compilers auf Memory Safety ist bei Mojo hervorzuheben und sorgt für eine hohe Performance. Letztere ist insbesondere für die KI-Community interessant. MoonBit & Wing Entwickler, die Code schreiben, der am Edge laufen soll, nutzen in der Regel Standardsprachen wie JavaScript, Java oder Python. Weil auch in diesem Bereich trotz winziger Tasks einige Entwickler nach mehr Leistung verlangen, wurden Sprachen wie MoonBit und Wing entwickelt. Sie wollen es Entwicklern leichter machen, ausführbaren Code zu erstellen, der so schnell wie möglich einsatzbereit ist. Die Unterschiede: MoonBit legt den Schwerpunkt auf die Größe der ausführbaren Datei, die letztendlich in Form von WebAssembly bereitgestellt wird. Die Sprache bietet eine leichtgewichtige und statisch typisierte Mischung aus objekt- und funktionsorientierten Ansätzen und nutzt einen intelligenten Compiler, um alles auf einmal zu optimieren und auf jeder Ebene zu beschleunigen. Wing konzentriert sich darauf, Developer mit Abstraktionen bei den Tasks zu unterstützen, die Cloud Computing mit sich bringt. Im Idealfall bedeutet das, sich weder um Netzwerk noch um Identity und Access Management kümmern zu müssen. Der Code wird am Ende in JavaScript kompiliert und mit JIT-Compilern ausgeführt. Rust, Zig, Jakt & Odin Mit Variablen und Datenstrukturen zu jonglieren, ist seit jeher eine Herausforderung für Entwickler, die sich dazu zuvor auf Reference Counting oder Garbage Collection verlassen haben. Nicht nur deshalb gewinnen in jüngster Zeit Sprachen mit einem Memory-Safety-Modell wie Rust an Beliebtheit. In diesem Modell wird jedem Wert (Value) ein offizieller Owner zugewiesen. Auf diesen Wert können andere zugreifen, indem sie ihn „ausleihen“ (Borrowing) – die Kontrolle verbleibt aber beim Owner. Dieser Ansatz findet sich auch in weiteren Sprachen, wie beispielweise: Zig, Jakt, Odin Ihnen allen (und übrigens auch dem bereits behandelten Mojo) ist gemein, dass sie das Memory-Ownership-Konzept mit ihrer bevorzugten Syntax kombinieren. So lässt sich Jakt zum Beispiel in C++ umsetzen, während Zig als Systemsprache C sehr ähnlich sieht. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!
11 alternative Programmiersprachen
Innovative Programmiersprachen können ein Mittel gegen Coding-Probleme sein, die immer wieder nicht begeistern.Gorodenkoff | shutterstock.com Sehr wahrscheinlich sind Sie von Ihrer Lieblings-Programmiersprache wegen ihres Komforts und ihrer Benutzerfreundlichkeit überzeugt und kennen auch alle relevanten APIs und Bibliotheken aus dem Effeff. Aber die Zeit bleibt bekanntermaßen nicht stehen und was gestern noch performant war, wirkt heute unter Umständen schon etwas abgestanden. Glücklicherweise lieben Softwareentwickler die Innovation – und Programmiersprachen schießen weiterhin jedes Jahr wie Pilze aus dem Boden. In diesem Artikel werfen wir einen Blick auf elf (relativ) neue, alternative Coding-Sprachen, die jeweils ein spezifisches, in der Regel penetrantes Problem ihrer populären Pendants lösen. Die beste Art, diese neuen Programmiersprachen zu durchdringen: Tauchen Sie ein und entscheiden Sie sich für ein erstes Testprojekt, zum Beispiel eine kleine Utility. Anschließend fahren Sie am besten damit, zu bauen, zu testen, und zu experimentieren. Coq Viele verschiedene Begriffe, die mehr oder weniger dieselbe Sache bezeichnen, stiften regelmäßig Verwirrung im Dev-Umfeld. Funktionen, Subroutinen und Methoden sind im Grunde dasselbe – zumindest, wenn die Perspektive abstrakt genug ist. Coq geht noch einen Schritt weiter: Probleme werden hier in einem Theorem über eine Hierarchie von Typen spezifiziert. Anschließend wird ein Beweis für die Aussage gefunden und verifiziert. Dieser ist auch die Lösung für das gesuchte Problem – zumindest, wenn Sie die Hierarchie richtig verstehen. Das klingt (und ist auch) nerdig, kann aber nützlich sein: Die Struktur dieser Programmiersprache ist hilfreich, um Probleme mit komplexen Kombinationen oder diversen Ebenen und vielen Restriktionen oder Regeln zu bearbeiten. Observable Laut seiner Dokumentation handelt es sich bei Observable nicht um eine Programmiersprache, sondern um ein Framework. Anweisungen können Sie demnach in „jeder Sprache“ schreiben. Man könnte Observable aber auch als domänenspezifische Programmiersprache bezeichnen, die dafür genutzt wird, Daten-gestützte Displays oder Dashboards zu erstellen. Sie können damit viele Bibliotheken und andere Code-Pakete zusammenführen, die als Services oder APIs laufen. Die oberste Ebene von Observable ist in Markdown geschrieben. Die Charts und Diagramme verwenden JavaScript – und für die unteren Ebenen kommen im Regelfall SQL, Python oder R zum Einsatz. Plang Dass große Sprachmodelle (LLMs) ganz annehmbare, erste Code-Entwürfe liefern können, hat sich inzwischen herumgesprochen. Perfekt ist zwar anders, aber man merkt, dass die Modelle davon profitiert haben, das Wissen von Plattformen wie Stack Overflow abzusaugen. Plang stellt nun den nächsten logischen Schritt dar und „montiert“ quasi ein großes Sprachmodell auf einen Compiler. Das ermöglicht, den generierten Code direkt auszuführen, ganz ohne vorherige Copy-Paste-Arien. Ein paar simple, grundlegende Anweisungen genügen – Plang erledigt den Rest. Und das auch ziemlich überzeugend: die Outputs von Plang grenzen manchmal an ein Wunder und können Sie tatsächlich entscheidend voranbringen. Mojo & Erg Python ist eine performante Sprache mit großer Community. Dort gibt es aber auch Menschen, die mehr wollen. Das hat zu Python-Supersets wie Mojo und Erg geführt. Beide Programmiersprachen wollen mit erweiterten Features wie Static Typing und Memory Safety für schnelleren und robusteren Code sorgen. Die beiden Sprachen unterscheiden sich jedoch in wichtigen Punkten: Das Team von Erg hat eine komplexere und ehrgeizigere Strategie umgesetzt, die auch etwas strenger ist. Sie will die funktionale Programmierung stärker vorantreiben und weicht daher vom Standard-Ansatz von Python ab. Mojo orientiertsich hingegen enger an Standard-Python. Die Entwickler scheinen auch eher auf die Systemebene abzuzielen. Der Fokus des Compilers auf Memory Safety ist bei Mojo hervorzuheben und sorgt für eine hohe Performance. Letztere ist insbesondere für die KI-Community interessant. MoonBit & Wing Entwickler, die Code schreiben, der am Edge laufen soll, nutzen in der Regel Standardsprachen wie JavaScript, Java oder Python. Weil auch in diesem Bereich trotz winziger Tasks einige Entwickler nach mehr Leistung verlangen, wurden Sprachen wie MoonBit und Wing entwickelt. Sie wollen es Entwicklern leichter machen, ausführbaren Code zu erstellen, der so schnell wie möglich einsatzbereit ist. Die Unterschiede: MoonBit legt den Schwerpunkt auf die Größe der ausführbaren Datei, die letztendlich in Form von WebAssembly bereitgestellt wird. Die Sprache bietet eine leichtgewichtige und statisch typisierte Mischung aus objekt- und funktionsorientierten Ansätzen und nutzt einen intelligenten Compiler, um alles auf einmal zu optimieren und auf jeder Ebene zu beschleunigen. Wing konzentriert sich darauf, Developer mit Abstraktionen bei den Tasks zu unterstützen, die Cloud Computing mit sich bringt. Im Idealfall bedeutet das, sich weder um Netzwerk noch um Identity und Access Management kümmern zu müssen. Der Code wird am Ende in JavaScript kompiliert und mit JIT-Compilern ausgeführt. Rust, Zig, Jakt & Odin Mit Variablen und Datenstrukturen zu jonglieren, ist seit jeher eine Herausforderung für Entwickler, die sich dazu zuvor auf Reference Counting oder Garbage Collection verlassen haben. Nicht nur deshalb gewinnen in jüngster Zeit Sprachen mit einem Memory-Safety-Modell wie Rust an Beliebtheit. In diesem Modell wird jedem Wert (Value) ein offizieller Owner zugewiesen. Auf diesen Wert können andere zugreifen, indem sie ihn „ausleihen“ (Borrowing) – die Kontrolle verbleibt aber beim Owner. Dieser Ansatz findet sich auch in weiteren Sprachen, wie beispielweise: Zig, Jakt, Odin Ihnen allen (und übrigens auch dem bereits behandelten Mojo) ist gemein, dass sie das Memory-Ownership-Konzept mit ihrer bevorzugten Syntax kombinieren. So lässt sich Jakt zum Beispiel in C++ umsetzen, während Zig als Systemsprache C sehr ähnlich sieht. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!
11 alternative Programmiersprachen Innovative Programmiersprachen können ein Mittel gegen Coding-Probleme sein, die immer wieder nicht begeistern.Gorodenkoff | shutterstock.com Sehr wahrscheinlich sind Sie von Ihrer Lieblings-Programmiersprache wegen ihres Komforts und ihrer Benutzerfreundlichkeit überzeugt und kennen auch alle relevanten APIs und Bibliotheken aus dem Effeff. Aber die Zeit bleibt bekanntermaßen nicht stehen und was gestern noch performant war, wirkt heute unter Umständen schon etwas abgestanden. Glücklicherweise lieben Softwareentwickler die Innovation – und Programmiersprachen schießen weiterhin jedes Jahr wie Pilze aus dem Boden. In diesem Artikel werfen wir einen Blick auf elf (relativ) neue, alternative Coding-Sprachen, die jeweils ein spezifisches, in der Regel penetrantes Problem ihrer populären Pendants lösen. Die beste Art, diese neuen Programmiersprachen zu durchdringen: Tauchen Sie ein und entscheiden Sie sich für ein erstes Testprojekt, zum Beispiel eine kleine Utility. Anschließend fahren Sie am besten damit, zu bauen, zu testen, und zu experimentieren. Coq Viele verschiedene Begriffe, die mehr oder weniger dieselbe Sache bezeichnen, stiften regelmäßig Verwirrung im Dev-Umfeld. Funktionen, Subroutinen und Methoden sind im Grunde dasselbe – zumindest, wenn die Perspektive abstrakt genug ist. Coq geht noch einen Schritt weiter: Probleme werden hier in einem Theorem über eine Hierarchie von Typen spezifiziert. Anschließend wird ein Beweis für die Aussage gefunden und verifiziert. Dieser ist auch die Lösung für das gesuchte Problem – zumindest, wenn Sie die Hierarchie richtig verstehen. Das klingt (und ist auch) nerdig, kann aber nützlich sein: Die Struktur dieser Programmiersprache ist hilfreich, um Probleme mit komplexen Kombinationen oder diversen Ebenen und vielen Restriktionen oder Regeln zu bearbeiten. Observable Laut seiner Dokumentation handelt es sich bei Observable nicht um eine Programmiersprache, sondern um ein Framework. Anweisungen können Sie demnach in „jeder Sprache“ schreiben. Man könnte Observable aber auch als domänenspezifische Programmiersprache bezeichnen, die dafür genutzt wird, Daten-gestützte Displays oder Dashboards zu erstellen. Sie können damit viele Bibliotheken und andere Code-Pakete zusammenführen, die als Services oder APIs laufen. Die oberste Ebene von Observable ist in Markdown geschrieben. Die Charts und Diagramme verwenden JavaScript – und für die unteren Ebenen kommen im Regelfall SQL, Python oder R zum Einsatz. Plang Dass große Sprachmodelle (LLMs) ganz annehmbare, erste Code-Entwürfe liefern können, hat sich inzwischen herumgesprochen. Perfekt ist zwar anders, aber man merkt, dass die Modelle davon profitiert haben, das Wissen von Plattformen wie Stack Overflow abzusaugen. Plang stellt nun den nächsten logischen Schritt dar und „montiert“ quasi ein großes Sprachmodell auf einen Compiler. Das ermöglicht, den generierten Code direkt auszuführen, ganz ohne vorherige Copy-Paste-Arien. Ein paar simple, grundlegende Anweisungen genügen – Plang erledigt den Rest. Und das auch ziemlich überzeugend: die Outputs von Plang grenzen manchmal an ein Wunder und können Sie tatsächlich entscheidend voranbringen. Mojo & Erg Python ist eine performante Sprache mit großer Community. Dort gibt es aber auch Menschen, die mehr wollen. Das hat zu Python-Supersets wie Mojo und Erg geführt. Beide Programmiersprachen wollen mit erweiterten Features wie Static Typing und Memory Safety für schnelleren und robusteren Code sorgen. Die beiden Sprachen unterscheiden sich jedoch in wichtigen Punkten: Das Team von Erg hat eine komplexere und ehrgeizigere Strategie umgesetzt, die auch etwas strenger ist. Sie will die funktionale Programmierung stärker vorantreiben und weicht daher vom Standard-Ansatz von Python ab. Mojo orientiertsich hingegen enger an Standard-Python. Die Entwickler scheinen auch eher auf die Systemebene abzuzielen. Der Fokus des Compilers auf Memory Safety ist bei Mojo hervorzuheben und sorgt für eine hohe Performance. Letztere ist insbesondere für die KI-Community interessant. MoonBit & Wing Entwickler, die Code schreiben, der am Edge laufen soll, nutzen in der Regel Standardsprachen wie JavaScript, Java oder Python. Weil auch in diesem Bereich trotz winziger Tasks einige Entwickler nach mehr Leistung verlangen, wurden Sprachen wie MoonBit und Wing entwickelt. Sie wollen es Entwicklern leichter machen, ausführbaren Code zu erstellen, der so schnell wie möglich einsatzbereit ist. Die Unterschiede: MoonBit legt den Schwerpunkt auf die Größe der ausführbaren Datei, die letztendlich in Form von WebAssembly bereitgestellt wird. Die Sprache bietet eine leichtgewichtige und statisch typisierte Mischung aus objekt- und funktionsorientierten Ansätzen und nutzt einen intelligenten Compiler, um alles auf einmal zu optimieren und auf jeder Ebene zu beschleunigen. Wing konzentriert sich darauf, Developer mit Abstraktionen bei den Tasks zu unterstützen, die Cloud Computing mit sich bringt. Im Idealfall bedeutet das, sich weder um Netzwerk noch um Identity und Access Management kümmern zu müssen. Der Code wird am Ende in JavaScript kompiliert und mit JIT-Compilern ausgeführt. Rust, Zig, Jakt & Odin Mit Variablen und Datenstrukturen zu jonglieren, ist seit jeher eine Herausforderung für Entwickler, die sich dazu zuvor auf Reference Counting oder Garbage Collection verlassen haben. Nicht nur deshalb gewinnen in jüngster Zeit Sprachen mit einem Memory-Safety-Modell wie Rust an Beliebtheit. In diesem Modell wird jedem Wert (Value) ein offizieller Owner zugewiesen. Auf diesen Wert können andere zugreifen, indem sie ihn „ausleihen“ (Borrowing) – die Kontrolle verbleibt aber beim Owner. Dieser Ansatz findet sich auch in weiteren Sprachen, wie beispielweise: Zig, Jakt, Odin Ihnen allen (und übrigens auch dem bereits behandelten Mojo) ist gemein, dass sie das Memory-Ownership-Konzept mit ihrer bevorzugten Syntax kombinieren. So lässt sich Jakt zum Beispiel in C++ umsetzen, während Zig als Systemsprache C sehr ähnlich sieht. (fm) Sie wollen weitere interessante Beiträge zu diversen Themen aus der IT-Welt lesen? Unsere kostenlosen Newsletter liefern Ihnen alles, was IT-Profis wissen sollten – direkt in Ihre Inbox!