Computerhaus Quickborn

Entwickler-Tools gegen Zwangsjacken-Feeling​

loading="lazy" width="400px">Zurück zum Dev-Glück – mit Präprozessoren.sivivolk/Shutterstock So sehr wir sie auch zu schätzen wissen, manchmal können sich Programmiersprachen wie eine Zwangsjacke anfühlen. Wer die strikten syntaktischen Regeln auch nur ein einziges Mal bricht, darf sich darauf einstellen, vom Compiler mit Fehlermeldungen bombardiert zu werden. Besonders übel wird das bei Sprachen mit Konventionen, die jede Kleinigkeit definieren – etwa wie Variablen zu benennen sind oder Code einzurücken ist. So muss das aber nicht laufen – Preprocessors (oder Präprozessoren) sei Dank. Sie kommen zum Einsatz, bevor der Code kompiliert wird und korrigieren sämtliche, persönliche Eigenheiten, die die Entwicklungsarbeit erst unterhaltsam machen. So genügt das Ergebnis am Ende den Konventionen und die Developer müssen sich nicht einschränken. Neu sind Präprozessoren dabei nicht. Im Gegenteil: Sprachen wie C verlassen sich schon seit Jahren auf sie. Allerdings erfreuen sich Preprocessors steigender Beliebtheit, denn auch Developer legen immer mehr Wert darauf, so zu arbeiten, wie sie es für richtig halten. Im Folgenden ein Überblick über eine Reihe empfehlenswerter und bewährter Präprozessoren, die Entwickler auf verschiedene Weise dabei unterstützen, der Konventions-Zwangsjacke zu entkommen. LESS und SASS Sowohl LESS (Leaner CSS) als auch SASS (Syntactically Awesome StyleSheets) sind Präprozessoren, mit denen Entwickler CSS-Layouts vereinfachen können. Zum Beispiel, indem sie Variablen und andere Funktionen einsetzen. SASS stellt dabei das leistungsstärkere der beiden Tools dar und kann auch mit komplexeren Optionen wie Loops aufwarten. LESS ist zwar etwas schlanker, wird seinem Zweck aber ebenso gerecht. Beide Tools machen es möglich, die scheinbar endlos lange Liste der CSS-Layout-Optionen mit dem Fingerspitzengefühl eines Devs aufzuräumen. AbsurdJS Devs mit ausgeprägter JavaScript-Affinität, die die Performanz der Programmiersprache für CSS nutzen möchten, finden in AbsurdJS den richtigen Preprocessor. Der ermöglicht es, Softwareentwicklungskonzepte wie Vererbung zu nutzen, um raffinierte CSS-Layouts zu erstellen. Ähnlich wie LESS und SASS zwängt dieser Präprozessor Entwickler nicht in die Designer-Rolle. Bython Manche Entwickler stehen auf geschweifte Klammern, wenn es darum geht, Code-Blöcke zu definieren. Andere bevorzugen es, der Leertaste den Tab-Button folgen zu lassen. Python ist eigentlich eher eine Sache für letztere Zielgruppe. Allerdings ist die Sprache inzwischen so populär und leistungsfähig, dass einige „Curly Brace“-Anhänger auf die Idee kommen, Python-Bibliotheken und -Tools nutzen zu wollen.   Die greifen dann im Regelfall auf Bython zurück. Der Preprocessor bringt geschweifte Klammern und Python-Tools zusammen und ersetzt erstere automatisch durch Einrückungen. Soll heißen: Nie wieder Leer- und Tab-Taste! Pypreprocessor C bietet Entwicklern schon lange die Möglichkeit, bei komplexen Entscheidungen über Code mit Preprocessing-Statements wie #ifdef zu arbeiten (blendet große Codeblöcke ein oder aus). Mit Pypreprocessor stehen Python-Devs dieselben Möglichkeiten offen. Dabei handelt es sich um eine dynamische Bibliothek, die Flags und Metavariablen einsetzt, um Code ein- oder auszublenden. TypeScript JavaScript wurde ursprünglich für Webentwickler entworfen, die Webseiten um kurze, leicht verständliche Codeblöcke ergänzen mussten, die hauptsächlich aus HTML bestanden. Das sieht inzwischen völlig anders aus. Heute entstehen ausgefeilte und dynamische Websites aus Abertausenden Zeilen von JavaScript-Code. Angesichts der Bandbreite von JavaScript wünschen sich einige Entwickler das Gefühl der Sicherheit, das stark typisierter Code vermittelt. Mit TypeScript steht dieser Zielgruppe ein erstaunlicher Kompromiss zur Verfügung. Denn generisches JavaScript funktioniert mit TypeScript weiterhin. Soll heißen: Sämtliche Typinformationen sind optional. Die Preprocessing Stage von TypeScript beinhaltet einen doppelten Fehler-Check und spuckt am Ende etwas aus, das die JavaScript-Engine verarbeiten kann. CoffeeScript Auf jeden Python-Dev, den Sehnsüchte nach einer C-ähnlichen Syntax heimsuchen, kommt ein JavaScript-Entwickler, der sich wünscht, so frei und simpel programmieren zu können, wie mit Python. Auch für diese Zielgruppe gibt es einen passenden Präprozessor: CoffeeScript. Den gibt es inzwischen auch in zahlreichen Varianten, wie beispielsweise: ToffeeScript, Civet, Storymatic oder CoffeeScript II: The Wrath of Khan. Größter Benefit all dieser Optionen: Sie müssen nie mehr ihre Finger an die Strichpunkt-Taste verschwenden. Darüber hinaus bieten CoffeeScript und Co. weitere praktische Funktionen wie asynchrone Grammatiken oder cleveren Metaprogramming-Mechanismen. Unter dem Strich steht sauberer Code mit minimierten Satzzeichen, der – zumindest in den Augen von CoffeeScript-Anhängern – deutlich leichter zu lesen ist. Handlebars und Pug Moderner Code enthält in der Regel diverse Textblöcke mit Nachrichten für (eventuelle) menschliche Benutzer. Diese sind oft prall gefüllt mit diversen Einfügungen und Anpassungen. Template-Systeme wie Handlebars und Pug sorgen dafür, dass das schneller vonstattengeht. Statt den Low-Level-Code zu schreiben, der erforderlich ist, um Strings zusammenzufügen, konzentrieren sich Entwickler einfach nur auf den Text – den Rest übernimmt das Template-System. AWK Um mit reinem Text zu arbeiten, ist das Unix-Befehlszeilen-Tool eines der simpelsten und leistungsstärksten Tools. AWK verknüpft eine Reihe von Unix-Befehlen, um Daten aus Zeilen zu extrahieren, zu sortieren und zu filtern. Mit dem AWK-Kommando ist es möglich, vollständige Reports zu erstellen. Einige Entwickler nutzen das Tool auch, um Rohdaten in der Processing-Pipeline zu bereinigen, bevor sie in das Hauptprogramm importiert werden. Vapour R ist eine leistungsstarke Programmiersprache. Allerdings wurde sie größtenteils von Statistikern entwickelt. Die denken im Regelfall eher wie Mathematiker, nicht wie Programmierer. Das muss nicht unbedingt ein Nachteil sein, kann aber eine Hürde darstellen, wenn es darum geht R-Bibliotheken zu nutzen. Vapour ist ein Preprocessor, der es R-Entwicklern ermöglicht, wie Programmierer zu denken. Und zwar wie solche, die gerne Typsysteme verwenden, um Fehler zu erkennen und Strukturen durchzusetzen. Laut den Entwicklern befindet sich das Tool noch in einem frühen Entwicklungsstadium. Mit neuen Funktionen und Syntaxoptimierungen ist also zu rechnen. Linting-Präprozessoren Nicht alle Präprozessoren konvertieren Code. Einige räumen auch hinter ihren Benutzern auf und spüren übersehene Fehler auf. Was einmal als lint-Befehl unter Unix seinen Anfang genommen hat, ist inzwischen in Form von Linting-Tools Teil vieler Language-Development-Stacks.   Diese Tools korrigieren Formatierungen, setzen Namenskonventionen durch und können auch einige Synatx- und Semantik-Fehler beheben. Beliebte Linting-Preprocessors sind: RuboCop für Ruby, Pylint für Python und ESLint für JavaScript. Preprocessors für Dokumentationen Automatisiert aus dem Code einen Satz kommentierter und mit Querverweisen versehene Dokumentationsdateien erstellen? Das geht mit Tools wie: Sphinx, MkDocs oder Doxygen. Die drei eben genannten Beispiele sind für mehrere Programmiersprachen ausgelegt. Allerdings existieren inzwischen für fast alle Sprachen eigene, offizielle Präprozessoren. Zum Beispiel: Javadoc, Rustdoc, Godoc oder JSDoc. Präprozessoren für integriertes Data Reporting Datenwissenschaftler verfassen komplexe Data-Reports in natürlicher Sprache, die Diagramme, Tabellen und Grafiken enthalten, die in der Regel mit R erstellt wurden. Im Laufe der Jahre haben Data Scientists diverse, mitunter komplexe Präprozessoren entwickelt. Und zwar nicht nur für R, sondern auch die Schriftsatzsprache LaTeX. Die jeweiligen Optionen weisen unterschiedliche Stärken, beziehungsweise Vorteile auf – hier einige Beispiele: R Markdown ist eine Variante des gängigen Markdown, mit dem auch Rechen- und Datenanalysen zusammengeführt werden können. Dieser Preprocessor kann auch Ergebnisse aus Sprachen wie Python oder SQL zusammenführen, um Präsentationen, Dokumente, Bücher und Websites zu erstellen. Knitr und sein Vorläufer Sweave sind zwei eng aufeinander abgestimmte Präprozessoren, die beide von Rstudio unterstützt werden. Developer, die Python mit LaTeX zusammenführen möchten, können auf Pweave zurückgreifen. Es ist nicht ausgeschlossen, dass eines Tages eine Meta-Version entsteht, die sämtliche existierenden Präprozessoren zu einem großen Preprocessor zusammenführt. (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! 

Entwickler-Tools gegen Zwangsjacken-Feeling​ loading="lazy" width="400px">Zurück zum Dev-Glück – mit Präprozessoren.sivivolk/Shutterstock So sehr wir sie auch zu schätzen wissen, manchmal können sich Programmiersprachen wie eine Zwangsjacke anfühlen. Wer die strikten syntaktischen Regeln auch nur ein einziges Mal bricht, darf sich darauf einstellen, vom Compiler mit Fehlermeldungen bombardiert zu werden. Besonders übel wird das bei Sprachen mit Konventionen, die jede Kleinigkeit definieren – etwa wie Variablen zu benennen sind oder Code einzurücken ist. So muss das aber nicht laufen – Preprocessors (oder Präprozessoren) sei Dank. Sie kommen zum Einsatz, bevor der Code kompiliert wird und korrigieren sämtliche, persönliche Eigenheiten, die die Entwicklungsarbeit erst unterhaltsam machen. So genügt das Ergebnis am Ende den Konventionen und die Developer müssen sich nicht einschränken. Neu sind Präprozessoren dabei nicht. Im Gegenteil: Sprachen wie C verlassen sich schon seit Jahren auf sie. Allerdings erfreuen sich Preprocessors steigender Beliebtheit, denn auch Developer legen immer mehr Wert darauf, so zu arbeiten, wie sie es für richtig halten. Im Folgenden ein Überblick über eine Reihe empfehlenswerter und bewährter Präprozessoren, die Entwickler auf verschiedene Weise dabei unterstützen, der Konventions-Zwangsjacke zu entkommen. LESS und SASS Sowohl LESS (Leaner CSS) als auch SASS (Syntactically Awesome StyleSheets) sind Präprozessoren, mit denen Entwickler CSS-Layouts vereinfachen können. Zum Beispiel, indem sie Variablen und andere Funktionen einsetzen. SASS stellt dabei das leistungsstärkere der beiden Tools dar und kann auch mit komplexeren Optionen wie Loops aufwarten. LESS ist zwar etwas schlanker, wird seinem Zweck aber ebenso gerecht. Beide Tools machen es möglich, die scheinbar endlos lange Liste der CSS-Layout-Optionen mit dem Fingerspitzengefühl eines Devs aufzuräumen. AbsurdJS Devs mit ausgeprägter JavaScript-Affinität, die die Performanz der Programmiersprache für CSS nutzen möchten, finden in AbsurdJS den richtigen Preprocessor. Der ermöglicht es, Softwareentwicklungskonzepte wie Vererbung zu nutzen, um raffinierte CSS-Layouts zu erstellen. Ähnlich wie LESS und SASS zwängt dieser Präprozessor Entwickler nicht in die Designer-Rolle. Bython Manche Entwickler stehen auf geschweifte Klammern, wenn es darum geht, Code-Blöcke zu definieren. Andere bevorzugen es, der Leertaste den Tab-Button folgen zu lassen. Python ist eigentlich eher eine Sache für letztere Zielgruppe. Allerdings ist die Sprache inzwischen so populär und leistungsfähig, dass einige „Curly Brace“-Anhänger auf die Idee kommen, Python-Bibliotheken und -Tools nutzen zu wollen.   Die greifen dann im Regelfall auf Bython zurück. Der Preprocessor bringt geschweifte Klammern und Python-Tools zusammen und ersetzt erstere automatisch durch Einrückungen. Soll heißen: Nie wieder Leer- und Tab-Taste! Pypreprocessor C bietet Entwicklern schon lange die Möglichkeit, bei komplexen Entscheidungen über Code mit Preprocessing-Statements wie #ifdef zu arbeiten (blendet große Codeblöcke ein oder aus). Mit Pypreprocessor stehen Python-Devs dieselben Möglichkeiten offen. Dabei handelt es sich um eine dynamische Bibliothek, die Flags und Metavariablen einsetzt, um Code ein- oder auszublenden. TypeScript JavaScript wurde ursprünglich für Webentwickler entworfen, die Webseiten um kurze, leicht verständliche Codeblöcke ergänzen mussten, die hauptsächlich aus HTML bestanden. Das sieht inzwischen völlig anders aus. Heute entstehen ausgefeilte und dynamische Websites aus Abertausenden Zeilen von JavaScript-Code. Angesichts der Bandbreite von JavaScript wünschen sich einige Entwickler das Gefühl der Sicherheit, das stark typisierter Code vermittelt. Mit TypeScript steht dieser Zielgruppe ein erstaunlicher Kompromiss zur Verfügung. Denn generisches JavaScript funktioniert mit TypeScript weiterhin. Soll heißen: Sämtliche Typinformationen sind optional. Die Preprocessing Stage von TypeScript beinhaltet einen doppelten Fehler-Check und spuckt am Ende etwas aus, das die JavaScript-Engine verarbeiten kann. CoffeeScript Auf jeden Python-Dev, den Sehnsüchte nach einer C-ähnlichen Syntax heimsuchen, kommt ein JavaScript-Entwickler, der sich wünscht, so frei und simpel programmieren zu können, wie mit Python. Auch für diese Zielgruppe gibt es einen passenden Präprozessor: CoffeeScript. Den gibt es inzwischen auch in zahlreichen Varianten, wie beispielsweise: ToffeeScript, Civet, Storymatic oder CoffeeScript II: The Wrath of Khan. Größter Benefit all dieser Optionen: Sie müssen nie mehr ihre Finger an die Strichpunkt-Taste verschwenden. Darüber hinaus bieten CoffeeScript und Co. weitere praktische Funktionen wie asynchrone Grammatiken oder cleveren Metaprogramming-Mechanismen. Unter dem Strich steht sauberer Code mit minimierten Satzzeichen, der – zumindest in den Augen von CoffeeScript-Anhängern – deutlich leichter zu lesen ist. Handlebars und Pug Moderner Code enthält in der Regel diverse Textblöcke mit Nachrichten für (eventuelle) menschliche Benutzer. Diese sind oft prall gefüllt mit diversen Einfügungen und Anpassungen. Template-Systeme wie Handlebars und Pug sorgen dafür, dass das schneller vonstattengeht. Statt den Low-Level-Code zu schreiben, der erforderlich ist, um Strings zusammenzufügen, konzentrieren sich Entwickler einfach nur auf den Text – den Rest übernimmt das Template-System. AWK Um mit reinem Text zu arbeiten, ist das Unix-Befehlszeilen-Tool eines der simpelsten und leistungsstärksten Tools. AWK verknüpft eine Reihe von Unix-Befehlen, um Daten aus Zeilen zu extrahieren, zu sortieren und zu filtern. Mit dem AWK-Kommando ist es möglich, vollständige Reports zu erstellen. Einige Entwickler nutzen das Tool auch, um Rohdaten in der Processing-Pipeline zu bereinigen, bevor sie in das Hauptprogramm importiert werden. Vapour R ist eine leistungsstarke Programmiersprache. Allerdings wurde sie größtenteils von Statistikern entwickelt. Die denken im Regelfall eher wie Mathematiker, nicht wie Programmierer. Das muss nicht unbedingt ein Nachteil sein, kann aber eine Hürde darstellen, wenn es darum geht R-Bibliotheken zu nutzen. Vapour ist ein Preprocessor, der es R-Entwicklern ermöglicht, wie Programmierer zu denken. Und zwar wie solche, die gerne Typsysteme verwenden, um Fehler zu erkennen und Strukturen durchzusetzen. Laut den Entwicklern befindet sich das Tool noch in einem frühen Entwicklungsstadium. Mit neuen Funktionen und Syntaxoptimierungen ist also zu rechnen. Linting-Präprozessoren Nicht alle Präprozessoren konvertieren Code. Einige räumen auch hinter ihren Benutzern auf und spüren übersehene Fehler auf. Was einmal als lint-Befehl unter Unix seinen Anfang genommen hat, ist inzwischen in Form von Linting-Tools Teil vieler Language-Development-Stacks.   Diese Tools korrigieren Formatierungen, setzen Namenskonventionen durch und können auch einige Synatx- und Semantik-Fehler beheben. Beliebte Linting-Preprocessors sind: RuboCop für Ruby, Pylint für Python und ESLint für JavaScript. Preprocessors für Dokumentationen Automatisiert aus dem Code einen Satz kommentierter und mit Querverweisen versehene Dokumentationsdateien erstellen? Das geht mit Tools wie: Sphinx, MkDocs oder Doxygen. Die drei eben genannten Beispiele sind für mehrere Programmiersprachen ausgelegt. Allerdings existieren inzwischen für fast alle Sprachen eigene, offizielle Präprozessoren. Zum Beispiel: Javadoc, Rustdoc, Godoc oder JSDoc. Präprozessoren für integriertes Data Reporting Datenwissenschaftler verfassen komplexe Data-Reports in natürlicher Sprache, die Diagramme, Tabellen und Grafiken enthalten, die in der Regel mit R erstellt wurden. Im Laufe der Jahre haben Data Scientists diverse, mitunter komplexe Präprozessoren entwickelt. Und zwar nicht nur für R, sondern auch die Schriftsatzsprache LaTeX. Die jeweiligen Optionen weisen unterschiedliche Stärken, beziehungsweise Vorteile auf – hier einige Beispiele: R Markdown ist eine Variante des gängigen Markdown, mit dem auch Rechen- und Datenanalysen zusammengeführt werden können. Dieser Preprocessor kann auch Ergebnisse aus Sprachen wie Python oder SQL zusammenführen, um Präsentationen, Dokumente, Bücher und Websites zu erstellen. Knitr und sein Vorläufer Sweave sind zwei eng aufeinander abgestimmte Präprozessoren, die beide von Rstudio unterstützt werden. Developer, die Python mit LaTeX zusammenführen möchten, können auf Pweave zurückgreifen. Es ist nicht ausgeschlossen, dass eines Tages eine Meta-Version entsteht, die sämtliche existierenden Präprozessoren zu einem großen Preprocessor zusammenführt. (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!

Entwickler-Tools gegen Zwangsjacken-Feeling​

loading=”lazy” width=”400px”>Zurück zum Dev-Glück – mit Präprozessoren.sivivolk/Shutterstock So sehr wir sie auch zu schätzen wissen, manchmal können sich Programmiersprachen wie eine Zwangsjacke anfühlen. Wer die strikten syntaktischen Regeln auch nur ein einziges Mal bricht, darf sich darauf einstellen, vom Compiler mit Fehlermeldungen bombardiert zu werden. Besonders übel wird das bei Sprachen mit Konventionen, die jede Kleinigkeit definieren – etwa wie Variablen zu benennen sind oder Code einzurücken ist. So muss das aber nicht laufen – Preprocessors (oder Präprozessoren) sei Dank. Sie kommen zum Einsatz, bevor der Code kompiliert wird und korrigieren sämtliche, persönliche Eigenheiten, die die Entwicklungsarbeit erst unterhaltsam machen. So genügt das Ergebnis am Ende den Konventionen und die Developer müssen sich nicht einschränken. Neu sind Präprozessoren dabei nicht. Im Gegenteil: Sprachen wie C verlassen sich schon seit Jahren auf sie. Allerdings erfreuen sich Preprocessors steigender Beliebtheit, denn auch Developer legen immer mehr Wert darauf, so zu arbeiten, wie sie es für richtig halten. Im Folgenden ein Überblick über eine Reihe empfehlenswerter und bewährter Präprozessoren, die Entwickler auf verschiedene Weise dabei unterstützen, der Konventions-Zwangsjacke zu entkommen. LESS und SASS Sowohl LESS (Leaner CSS) als auch SASS (Syntactically Awesome StyleSheets) sind Präprozessoren, mit denen Entwickler CSS-Layouts vereinfachen können. Zum Beispiel, indem sie Variablen und andere Funktionen einsetzen. SASS stellt dabei das leistungsstärkere der beiden Tools dar und kann auch mit komplexeren Optionen wie Loops aufwarten. LESS ist zwar etwas schlanker, wird seinem Zweck aber ebenso gerecht. Beide Tools machen es möglich, die scheinbar endlos lange Liste der CSS-Layout-Optionen mit dem Fingerspitzengefühl eines Devs aufzuräumen. AbsurdJS Devs mit ausgeprägter JavaScript-Affinität, die die Performanz der Programmiersprache für CSS nutzen möchten, finden in AbsurdJS den richtigen Preprocessor. Der ermöglicht es, Softwareentwicklungskonzepte wie Vererbung zu nutzen, um raffinierte CSS-Layouts zu erstellen. Ähnlich wie LESS und SASS zwängt dieser Präprozessor Entwickler nicht in die Designer-Rolle. Bython Manche Entwickler stehen auf geschweifte Klammern, wenn es darum geht, Code-Blöcke zu definieren. Andere bevorzugen es, der Leertaste den Tab-Button folgen zu lassen. Python ist eigentlich eher eine Sache für letztere Zielgruppe. Allerdings ist die Sprache inzwischen so populär und leistungsfähig, dass einige „Curly Brace“-Anhänger auf die Idee kommen, Python-Bibliotheken und -Tools nutzen zu wollen.   Die greifen dann im Regelfall auf Bython zurück. Der Preprocessor bringt geschweifte Klammern und Python-Tools zusammen und ersetzt erstere automatisch durch Einrückungen. Soll heißen: Nie wieder Leer- und Tab-Taste! Pypreprocessor C bietet Entwicklern schon lange die Möglichkeit, bei komplexen Entscheidungen über Code mit Preprocessing-Statements wie #ifdef zu arbeiten (blendet große Codeblöcke ein oder aus). Mit Pypreprocessor stehen Python-Devs dieselben Möglichkeiten offen. Dabei handelt es sich um eine dynamische Bibliothek, die Flags und Metavariablen einsetzt, um Code ein- oder auszublenden. TypeScript JavaScript wurde ursprünglich für Webentwickler entworfen, die Webseiten um kurze, leicht verständliche Codeblöcke ergänzen mussten, die hauptsächlich aus HTML bestanden. Das sieht inzwischen völlig anders aus. Heute entstehen ausgefeilte und dynamische Websites aus Abertausenden Zeilen von JavaScript-Code. Angesichts der Bandbreite von JavaScript wünschen sich einige Entwickler das Gefühl der Sicherheit, das stark typisierter Code vermittelt. Mit TypeScript steht dieser Zielgruppe ein erstaunlicher Kompromiss zur Verfügung. Denn generisches JavaScript funktioniert mit TypeScript weiterhin. Soll heißen: Sämtliche Typinformationen sind optional. Die Preprocessing Stage von TypeScript beinhaltet einen doppelten Fehler-Check und spuckt am Ende etwas aus, das die JavaScript-Engine verarbeiten kann. CoffeeScript Auf jeden Python-Dev, den Sehnsüchte nach einer C-ähnlichen Syntax heimsuchen, kommt ein JavaScript-Entwickler, der sich wünscht, so frei und simpel programmieren zu können, wie mit Python. Auch für diese Zielgruppe gibt es einen passenden Präprozessor: CoffeeScript. Den gibt es inzwischen auch in zahlreichen Varianten, wie beispielsweise: ToffeeScript, Civet, Storymatic oder CoffeeScript II: The Wrath of Khan. Größter Benefit all dieser Optionen: Sie müssen nie mehr ihre Finger an die Strichpunkt-Taste verschwenden. Darüber hinaus bieten CoffeeScript und Co. weitere praktische Funktionen wie asynchrone Grammatiken oder cleveren Metaprogramming-Mechanismen. Unter dem Strich steht sauberer Code mit minimierten Satzzeichen, der – zumindest in den Augen von CoffeeScript-Anhängern – deutlich leichter zu lesen ist. Handlebars und Pug Moderner Code enthält in der Regel diverse Textblöcke mit Nachrichten für (eventuelle) menschliche Benutzer. Diese sind oft prall gefüllt mit diversen Einfügungen und Anpassungen. Template-Systeme wie Handlebars und Pug sorgen dafür, dass das schneller vonstattengeht. Statt den Low-Level-Code zu schreiben, der erforderlich ist, um Strings zusammenzufügen, konzentrieren sich Entwickler einfach nur auf den Text – den Rest übernimmt das Template-System. AWK Um mit reinem Text zu arbeiten, ist das Unix-Befehlszeilen-Tool eines der simpelsten und leistungsstärksten Tools. AWK verknüpft eine Reihe von Unix-Befehlen, um Daten aus Zeilen zu extrahieren, zu sortieren und zu filtern. Mit dem AWK-Kommando ist es möglich, vollständige Reports zu erstellen. Einige Entwickler nutzen das Tool auch, um Rohdaten in der Processing-Pipeline zu bereinigen, bevor sie in das Hauptprogramm importiert werden. Vapour R ist eine leistungsstarke Programmiersprache. Allerdings wurde sie größtenteils von Statistikern entwickelt. Die denken im Regelfall eher wie Mathematiker, nicht wie Programmierer. Das muss nicht unbedingt ein Nachteil sein, kann aber eine Hürde darstellen, wenn es darum geht R-Bibliotheken zu nutzen. Vapour ist ein Preprocessor, der es R-Entwicklern ermöglicht, wie Programmierer zu denken. Und zwar wie solche, die gerne Typsysteme verwenden, um Fehler zu erkennen und Strukturen durchzusetzen. Laut den Entwicklern befindet sich das Tool noch in einem frühen Entwicklungsstadium. Mit neuen Funktionen und Syntaxoptimierungen ist also zu rechnen. Linting-Präprozessoren Nicht alle Präprozessoren konvertieren Code. Einige räumen auch hinter ihren Benutzern auf und spüren übersehene Fehler auf. Was einmal als lint-Befehl unter Unix seinen Anfang genommen hat, ist inzwischen in Form von Linting-Tools Teil vieler Language-Development-Stacks.   Diese Tools korrigieren Formatierungen, setzen Namenskonventionen durch und können auch einige Synatx- und Semantik-Fehler beheben. Beliebte Linting-Preprocessors sind: RuboCop für Ruby, Pylint für Python und ESLint für JavaScript. Preprocessors für Dokumentationen Automatisiert aus dem Code einen Satz kommentierter und mit Querverweisen versehene Dokumentationsdateien erstellen? Das geht mit Tools wie: Sphinx, MkDocs oder Doxygen. Die drei eben genannten Beispiele sind für mehrere Programmiersprachen ausgelegt. Allerdings existieren inzwischen für fast alle Sprachen eigene, offizielle Präprozessoren. Zum Beispiel: Javadoc, Rustdoc, Godoc oder JSDoc. Präprozessoren für integriertes Data Reporting Datenwissenschaftler verfassen komplexe Data-Reports in natürlicher Sprache, die Diagramme, Tabellen und Grafiken enthalten, die in der Regel mit R erstellt wurden. Im Laufe der Jahre haben Data Scientists diverse, mitunter komplexe Präprozessoren entwickelt. Und zwar nicht nur für R, sondern auch die Schriftsatzsprache LaTeX. Die jeweiligen Optionen weisen unterschiedliche Stärken, beziehungsweise Vorteile auf – hier einige Beispiele: R Markdown ist eine Variante des gängigen Markdown, mit dem auch Rechen- und Datenanalysen zusammengeführt werden können. Dieser Preprocessor kann auch Ergebnisse aus Sprachen wie Python oder SQL zusammenführen, um Präsentationen, Dokumente, Bücher und Websites zu erstellen. Knitr und sein Vorläufer Sweave sind zwei eng aufeinander abgestimmte Präprozessoren, die beide von Rstudio unterstützt werden. Developer, die Python mit LaTeX zusammenführen möchten, können auf Pweave zurückgreifen. Es ist nicht ausgeschlossen, dass eines Tages eine Meta-Version entsteht, die sämtliche existierenden Präprozessoren zu einem großen Preprocessor zusammenführt. (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! 

Nach oben scrollen