Immer mal wieder was Neues: Scala

Servus,

so langsam neigt sich mein Praxissemester dem Ende und ich sollte mich auf das neue – diesmal – Projektsemester vorbereiten.

Unsere Gruppe, das HASI Projekt , und einige andere Studenten aus der Informatik haben nun die Möglichkeit, zusammen mit dem Fraunhofer Institut und der Fakultät für Wirtschaft, ein Projekt unter der Nutzung eines RFID-Gates zu absolvieren. Ein RFID Gate kann man sich als grosser RFID Scanner vorstellen, welcher es aber ermöglicht ganze Paletten und mehr auf einmal zu erfassen (Flickr Bild). Dank intelligent RFID-Tags (Aufkleber) hat man eine gigantische Spielwiese vor sich. Es seien nur mal 3d-Lageerkennung, Temperatur- und Erschütterungssensor genannt.

Ein weiterer Aspekt dieses Projektes wäre es die Event-getriebene Softwarearchitektur zu verwenden (Complex Event Processing). Wer mit diesen sperrigen Begriff nichts anfangen kann, er ist ebenfalls unter der den Namen: Softwareagenten, [verteilte] autonome Systeme und fälschlicher Weise als KI bekannt.

An der Hochschule Augsburg wird eine solche Agentenplattform basierend auf Scala entwickelt.

Scala ist völlig Java-kompatibel und vice versa. Es fallen immer nur .jar-Dateien raus welche gegenseitig eingebunden und genutzt werden können.

Wikipedia meint in ihrem Artikel dazu:

Scala ist eine funktionale und objektorientierte Programmiersprache. Sie kann auf einer Java Virtual Machine oder .NET VM ausgeführt werden.
Der Name leitet sich von ’scalable language‘ ab und bringt zum Ausdruck, dass der sehr kompakt gehaltene Sprachkern die Möglichkeit bietet, häufig verwendete Sprachelemente wie z. B. Operatoren oder zusätzliche Kontrollstrukturen in Benutzerklassen zu implementieren und dadurch den Sprachumfang zu erweitern und eigene DSLs zu erstellen.

Ich selbst bin völliger Neuling und habe auch sonst meine letzte Java-Beruehurng vor zwei Jahren an der Hochschule gehabt. Deswegen wiederhole ich gerade meine „Programmieren II“ Uebungsaufgaben, dies aber nicht mehr via Java sondern natürlich nun mit Scala. So lernt man echt fix.

Als Beispiel wie immer ein kleines Hello World.

/**
 * Created by IntelliJ IDEA.
 * User: Tobias Scholze
 * Date: 1/16/12
 * Time: 7:39 PM
 *
 * My very first Scala App. Yay!
 */

object ScalaHelloWorldObject {
  def main(args: Array[String]) {
    println("Hello World!");
  }
}

Weit komplexer wird es wenn man unter anderem die ganzen Features wie „magische“ Getter und Setter Methoden nutzten möchte. Diese verursachen am Anfang derartigen Gehirnschwindel das einem ganz foo wird. Aber dies legt sich und dann freut man sich auch auf einzeilige und typensichere getX() und setX(). Danke nocheinmal an Peter fuer das Beispiel.

// ein setter für die private var _changeAble
// Unit ist das aequivalent zu void
def setChangeAble(text: String): Unit = _changeAble = text
// und hier der getter dieser wird nach konvention so benötigt
// damit der "magische" setter akzeptiert wird
def changeAble = _changeAble

Ich werde hoffentlich in den Semesterferien ein bisschen Zeit finden um mich intensiver damit zu beschäftigen. Ich finde das es durch aus Vorteile hat Scala zu nutzten wo Java Schwächen zeigt. Die Geschwindigkeit in der Scala arbeitet liegt sogar höher als bei Erlang oder Haskell.
Wer bisschen mitmachen oder andere fancy Scala Tricks kennt kann sie gerne mir via github.com pushen! Würde mich freuen wenn mein Scala-Playground gedeiht.

Viel Spass beim Code!

 

– Bayer

2 Gedanken zu “Immer mal wieder was Neues: Scala

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s