Wer bin ich?

Wer im neuen Jahr seine Kenntnisse in Programmiersprachen auffrischen will, der sollte es mal mit dem Hello Word Quiz probieren.

Hello World Quiz

Hello World Quiz

Bei dem Quiz bekommt man ein Stück Quelltext zu sehen. Die Aufgabe ist es nun die dazugehörige Sprache zu bestimmen. Zu finden ist das ganze dabei auf helloworldquiz.com. Das Quiz ist dabei unter der MIT-Lizenz lizensiert. Der entsprechende Quelltext befindet sich auf GitHub.

Haxe

Programmiersprachen gibt es wie Sand am Meer. Allerdings würde man bei dem Namen Haxe im ersten Moment höchstwahrscheinlich etwas anderes verstehen. Bei „Haxe“ handelt es sich um eine aus dem Precompiler „ActionScriptMetaLanguage“ hervorgegangene Programmiersprache welche von Motion Twin entwickelt wird.

Eine Besonderheit von Haxe ist die Möglichkeit aus dem geschriebenden Quelltext unter anderem JavaScript, PHP und auch C++ zu erzeugen. Dadurch bedingt wird Haxe bei der Entwicklung von Webanwendungen bevorzugt eingesetzt. Ein Hello World würde in Haxe so aussehen:

class Test {
    static function main() {
        trace("Hello World !");
    }
}

Bei Haxe selbst handelt es sich um freie Software, so steht der Compiler unter der GPLv2, die Bibliotheken selbst unter der BSD Lizenz. Die offizielle Seite ist unter http://haxe.org zu finden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Haxe_(Programmiersprache)

Hello World unter der Lupe

Heute wollen wir das Hello World Programm was in dem letzten Artikel beschrieben wurde ein klein wenig unter die Lupe nehmen. Dazu öffnen wir das Projekt erst einmal in Eclipse. Nachdem dies geschafft ist schauen wir uns die Datei hello_world.java an. Dort finden wir folgenden Code vor:

package net.seeseekey.hello_world;

import android.app.Activity;
import android.os.Bundle;

public class hello_word extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Wie man sieht wird die Klasse hello_world von der Klasse Activity abgeleitet. Bei Activity handelt es sich um eine Klasse welche für Standard GUI Anwendungen vorgesehen ist. Oder um Heise zu zitieren:

Im Android-Umfeld bezeichnet er eine lauffähige Einheit, also die Startklasse der Anwendung. Das Plug-in generiert daraus eine von android.app abgeleitete Klasse des angegebenen Namens.

Doch schauen wir uns erstmal unser Projekt an. Im großen und ganzen gibt es drei Ordner im Projekt, src, assets und res.

Im src befindet sich der Quellcode der Anwendung, der assets Ordner ist im leer und im res Ordner befinden sich drei Unterordner: drawable, layout und values. In dem Ordner drawable befinden sich die Grafiken in dem Ordner layout befindet sich das Layout (in einer XML Beschreibung) und im Ordner values stehen z.B. die Strings für Beschriftungen (bzw. in der values.xml).

Wer sich über die Datei R.java wundert. Diese Datei verknüpft die Ressourcen mit dem Programmcode. Sie braucht auch nicht angefasst werden, da sie stets automatisch erzeugt wird.

Weitere Informationen gibt es unter:
http://www.heise.de/developer/artikel/print/120124

Vala

Bei Vala habe ich im ersten Moment an einen der Androiden aus Star Trek denken müssen :) Dabei handelt es sich dabei um eine Programmiersprache von Jürg Billeter und Raffaele Sandrini. Diese Sprache wurde 2006 entwickelt und hat sich dabei zum Ziel gesetzt eine moderne Sprache zu entwickeln welche Programme erzeugt welche ohne irgendwelche zusätzlichen Laufzeitbibliotheken lauffähig sind.

Im Gegensatz zu anderen Compilern wird der Valaquelltext erst nach C konvertiert bzw. übersetzt und dann compiliert. Ein Hello World Programm in Vala sieht dann so aus:

using GLib;

public class Test.HelloObject : GLib.Object {

public static void main(string[] args) {

stdout.printf("Hello, World");
}
}

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Vala_(Programmiersprache)
http://www.linux-magazin.de/online_artikel/gobject_ohne_kopfschmerzen
http://www.linux-magazin.de/online_artikel/vorteile_kombinieren
http://live.gnome.org/Vala