Interessante GitHub-Projekte für Entwickler, Teil 1 Open-Source-Projekte – ausprobieren und einsteigen

Autor / Redakteur: Christian Rentrop / Stephan Augsten

GitHub ist eine wahre Fundgrube spannender und praktischer Software-Projekte. Entwickler finden hier eine riesige Codebasis, die sie nach Belieben mitbearbeiten oder als Fundament für eigene Anwendungen einsetzen können.

Firmen zum Thema

Bei GitHub finden sich etliche Projekte, die gleich in mehrerlei Hinsicht interessant für Entwickler sein können.
Bei GitHub finden sich etliche Projekte, die gleich in mehrerlei Hinsicht interessant für Entwickler sein können.
(Bild: synkevych)

Es gibt gute Gründe für Entwickler, einige GitHub-Projekte im Auge zu behalten. Einerseits, weil es sich um ausgesprochen nützliche Tools handelt: Auf GitHub gibt es eine Vielzahl interessanter Projekte, die auch das Entwicklerleben einfacher machen können und größtenteils schon als kompilierte Programme vorliegen. Andererseits kann es sich bei einigen Projekten lohnen, selbst ein wenig dazu beizutragen. Ausprobieren und Einsteigen – eine Win-Win-Situation für Entwickler und Projekt.

Slidev: Code-Präsentationen erleichtern

Meetings samt unvermeidlicher Präsentationen gehören auch zum Alltag von Entwicklern. Das Problem dabei: Wer Präsentationen mit Code-Schnipseln ansprechend und deutlich in Powerpoint, Keynote oder Google Slides bauen möchte, verbringt viel Zeit mit Formatierung und Bildanpassungen.

Das Projekt Slidev löst die dieses Problem auf Coder-Art: Ähnlich wie ein Markdown-Editor für Textdokumente soll Slidev die Erstellung von Präsentationsfolien deutlich erleichtern. Mittels Theme, Markdown-Syntax und einem eigenen Befehlssatz lassen sich ansprechende Präsentationen direkt im Text-Editor generieren – ideal nicht nur für Entwickler.

System Design Primer: Skalierbare Systeme entwerfen

Nicht nur Administratoren, sondern auch Webentwickler müssen nicht selten Überlegungen über die Infrastruktur ihrer Projekte anstellen und diese für gute Skalierbarkeit auslegen. Das Design entsprechender Systeme ist nicht immer einfach.

Das Projekt „System Design Primer“ schafft Abhilfe, indem es alle notwendigen Informationen sammelt, die für das Design komplexer Serverstrukturen notwendig sind. Es handelt sich dabei nicht um eine Software, sondern um eine schriftliche Sammlung interessanter Informationen und Quellen, um das Design skalierbarer Systeme zu erlernen.

Ventoy: Multiboot leicht gemacht

Programmierer, die an Betriebssystemen arbeiten oder Software direkt auf einem System ausprobieren möchten, müssen sich nicht selten mit Multi-Boot-Umgebungen oder mehreren Computern herumschlagen. Deutlich einfacher geht es mit Ventoy. Das kleine Tool ist ein Boot-Manager, der jedoch kein voll installiertes Betriebssystem voraussetzt, sondern einfach eine Image-Datei startet.

Der Clou: Auf dem USB-Medium – etwa einem Stick oder einer externen Festplatte – können beliebige Image-Dateien liegen. Per Ventoy werden sie einfach ausgewählt und gestartet. Wer ein neues Betriebssystem hinzufügen will, wirft einfach die Image-Datei auf das Medium.

Alacritty: Der superschnelle Terminal-Emulator

Wenn Entwickler ein Tool häufig benötigen, ist es eine Kommandozeile. Alacritty ist ein leistungsstarker Terminal-Emulator für Windows, MacOS und viele Linux-Distributionen, der besonders durch seine hohe Geschwindigkeit besticht. Grund dafür ist der OpenGL-Support, der einerseits den Hauptprozessor entlastet und dadurch andererseits einige optische und technische Vorteile gegenüber anderen Terminal-Programmen bietet.

Spacemacs: Vim und Emacs in einem

Text-Editoren gibt es wie Sand am Meer, doch viele Entwickler schwören auf Emacs oder Vim. Beide Editoren haben gewisse Vor- und Nachteile und nicht selten werden die Vor- und Nachteile beider Editoren bis ins kleinste Detail ausgiebig diskutiert. Das muss nicht sein: Das Projekt Spacemacs verbindet ganz salomonisch die Vorteile beider Editoren in einem einzigen Tool und sorgt durch seine bereits recht große Community für eine schnelle Weiterentwicklung. Und es gibt sogar T-Shirts mit dem Logo.

Publii: Static-Site-CMS mit GUI

Große Landing-Pages oder die Websites vieler Unternehmen setzen immer häufiger auf statische Seiten statt eines CMS. Dafür gibt es gute Gründe: Static-Site-Generatoren wie Hugo oder Gatsby erlauben das gezielte Entwickeln gut skalierbarer Websites. Allerdings ist die Bedienung solcher Tools nicht immer einfach und in vielen Fällen sind diese Generatoren für kleine Websites auch Zuviel des Guten.

Einen guten Mittelweg zum klassischen HTML-Coding oder den WYSIWYG-Editor findet das Projekt Publii: Per Handlebar-Tag und CSS können hier Themes entworfen werden, die anschließend mit einem Offline-CMS mit grafischer Benutzeroberfläche gefüllt werden. Einfacher als mit Publii war Webdesign selten. Die Einstiegshürde ist niedrig, die Ergebnisse hingegen imposant.

Taichi: Programmiersprache für Grafik

Die Programmierung grafischer Effekte ist nicht immer einfach, weshalb das Projekt Taichi ins Leben gerufen wurde: Die voll in Python integrierte Grafik-Programmiersprache ist auf Produktivität und Geschwindigkeit ausgelegt und erleichtert das Erstellen auch komplexer grafischer Effekte auf CPUs und GPUs mit wenigen Handgriffen.

Awesome Cheatsheets: Spickzettel-Sammlung

Webentwickler arbeiten viel mit Kommandozeile, verschiedenen Programmiersprachen, PHP, MySQL und Co. – sich hier alle Befehle zu merken, ist nicht ganz einfach. Dementsprechend sinnvoll ist es, sich ein Bookmark auf das Awesome-Cheatsheet-Projekt bei Github zu setzen: Hier werden „Spickzettel“ für verschiedene Systeme und Tools gesammelt, etwa Node.js, Visual Studio Code oder Nginx. Der gesuchte Befehl ist also im Zweifel nur zwei Mausklicks entfernt und das lästige Lesen von Wikis und Manpages entfällt.

OpenFaaS: Funktionen als Service

Das FaaS in OpenFaaS steht für „Functions as a Service“ und meint genau das: Microservices können durch das Framework in einzelne Funktionen heruntergebrochen werden und in eigenen Containern arbeiten. Dadurch wird ein Gesamtsystem extrem flexibel und skalierbar. OpenFaaS kann sich dabei in bestehenden Lösungen integrieren und ist unabhängig von der Infrastruktur, da Kubernetes für die schwere Arbeit zum Einsatz kommen.

SwifterSwift: Erweiterungen für die Swift-Programmierung

Apples Programmiersprache Swift schlug in der Entwickler-Community wie eine Bombe ein. Die einfach zu handhabende Programmiersprache ist vor allem für die Entwicklung für die verschiedenen Apple-Betriebssysteme relevant. Das Projekt SwifterSwift stellt hierfür in einem großen Paket über 500 Erweiterungen zur Verfügung, die die Funktionalität von Swift erweitern.

(ID:47400690)

Über den Autor

 Christian Rentrop

Christian Rentrop

IT-Fachautor