Exit-Code eines Programm in der Shell ermitteln

Das Linux Shell-Script ist eine großartige Sache, leider ist es für mich etwas fremd, da ich aus der Java-Ecke komme. Somit habe ich noch viel zum Shell-Script zu lernen. Meine neuste Erkenntnis ist, wie ich den Exit-Code eines Programms heraus finde. Der Exit-Code einer Anwendung gibt an, ob diese ohne Fehler beendet wurde. Null bedeutet dabei, es sind keine Fehler aufgetreten. Alle Werte größer Null deuten auf ein oder mehrere Fehler hin. Das folgende Listing zeigt wie man sich den Exit-Code in der Konsole anzeigen lässt:

View the code on Gist.

Die Kamera-API von Android

Mittlerweile sind die Kameras von Smartphones duraus brauchbar. Die Apps für die Kamera vermitteln allerdings kein professiones Kamerafeeling. Ich hätte gerne eine App die sich am Interface einer DSLR anlehnt. Bei der entwicklung der App musste sich jedoch feststellen, dass man normale Einstellungen wie ISO oder Verschlusszeit, nicht über die API einstellen kann. Den Vorschlag für das Feature gab es schon 2009. Leider ist bis jetzt nichts passiert. Somit muss ich mich wohl mit verfügbaren Parameter zufrieden geben, schade drum.

Welche Sprache soll ich nehmen?

 

Für die allermeisten Probleme sind mehrere Sprachen gleich gut geeignet.

Nun eine kleine Übersicht (ohne Anspruch auf Vollständigkeit) über die gängigen Sprachen:


Höhere Scriptsprachen: Python, (evtl. Groovy)

Diese Sprachen zeichnen sich u.a. durch eine kurze Syntax aus (D.h. Man schreibt weniger Quellcode). Für Anfänger ist Python eine gute Wahl. Mit Python kann man sowohl kleine Programm als auch größere sehr gut schreiben.


Programmiersprachen: Java, C#

Diese Sprachen sind dazu gedacht um größere Programme zu schreiben. Deswegen ist der Overhead für kleine Programme (im Vergleich zu Python) groß. Jedoch kann man mit diesen Sprachen sehr strukturiert und systematisch arbeiten. Durch die starke Typisierung dieser Sprachen lassen sich bereits geschriebene Quelltext sehr gut wiederverwenden. Aufgrund der sehr hohen Verbreitung dieser Sprachen sind die Entwicklungstool für Java und C# sehr gut (erfordern allerdings auch etwas Einarbeitungszeit).


C/C++ (und auch Go)

C/C++ sollte man in betracht ziehen, wenn man hardwarenah programmieren möchte und/oder viel Performance braucht. Für Anfänger halte ich C/C++ nicht sehr geeignet. Oft sind Fehlermeldungen irreführend. Auch muss man sich um sehr viel mehr Dinge kümmern als bei Python, Java und C# (z.B. Speichermanagment).


Websprachen: PHP, Ruby

Bei PHP und Ruby handelt es sich um höhere Schriptsprachen die darauf ausgelegt sind in Webanwendungen benutzt zu werden. Will man nur Webanwendungen erstellen sind diese Sprachen natürlich eine gute Wahl.


Funktionale Spachen: Haskell, F#, Clojure, (evtl. Skala)

Im Gegensatz zu den bisher genannten Sprachen unterscheidet sich das Konzept der Funktionalen Sprachen Grundlegend von bisher genannten Imperativen Sprachen!  Will man eine wirklich neue Sprache lernen und beherrscht breits eine andere Programmiertsprache, dann kann man sich überlege, ob man nicht eine funktionale Sprache lernen will. Bei Funktionalen Sprachen muss man wenig Quelltext schreiben. Ich habe festgestellt das Mathematik Studenten die funktionale Sprache Haskell leicht lernen können.


Spezial Sprachen: R, Prolog, Matlab

Diese Sprachen sind auf eine eingegrenzte Problemdomäne spezialisiert. Mit R kann man beispielsweise sehr gut Statistische Berechnungen anstellen. Benutzeroberflächen und alles andere wird mit R aber zu Aufwendig. Wenn man nur ein Problem lösen will ist eine spezial Sprache oft der einfachste Weg.