New School IT

Cloud, Continuous Delivery und DevOps

Eberhard Wolff

adesso AG
K20 Mittwoch, 5. 9., 08:30 – 09:20 Uhr Keynote Mi de PDF

Der IT-Sektor steht vor einer grundlegenden Wandlung. Infrastruktur kommt in Zukunft aus der Cloud – entweder aus dem eigenen Rechenzentrum oder von Public Clouds. Dadurch stehen Server mit einem Mausklick zur Verfügung. So können Anwendungen dank Continuous Delivery viel schneller in die Produktion gebracht werden. Und die Zusammenarbeit zwischen Entwicklung und Betrieb ändert sich dank DevOps.

Diese Keynote zeigt die verschiedenen Trends und ihre Beziehungen – und was Entwickler heute schon tun können, um sich auf die Zukunft vorzubereiten.

Modellgetrieben

Vom Modell zur GUI mit der UI Description Language

Dr. Shota Okujava

Isento GmbH

Ralf Quaas

Isento GmbH
A21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Die modellbasierte Beschreibung der Benutzeroberflächen ist eine Herausforderung, der sich selten jemand stellt. In den meisten Fällen wird auf spezielle Werkzeuge zurückgegriffen, die lediglich eine prototypische Abbildung der Oberfläche als Grafik bereitstellen. Die UI Description Language ist ein Paket, bestehend aus mehreren DSLs, die eine durchgehende Modellierung der Benutzeroberflächen von GUI-Widgets über das Data-Binding bis hin zu Plausibilitätsbedingungen an den Datenelementen ermöglicht.

In diesem Beitrag werden die Grundlagen des Pakets vorgestellt und das Werkzeug zur Modellierung und Generierung demonstriert.

Absturz unerwünscht

Architekturmuster für fehlertolerante Systeme

Uwe Friedrichsen

codecentric AG
A22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Fehlertoleranz gewinnt für große, hochskalierbare Cloud-Systeme eine ganz andere Bedeutung als für normale Unternehmensanwendungen. Fertige HA-Lösungen skalieren jenseits einer bestimmten Größe nicht mehr oder werden schlicht zu teuer. Sich ausschließlich auf klassische Anwendungsüberwachung zu verlassen, ist bei massiv verteilten Systemen auch keine Option, regelmäßige Systemausfälle sind aber auch nicht akzeptabel. Als Konsequenz muss man Fehlertoleranz explizit in die Anwendungen einbauen. Aber wie geht das eigentlich, wenn man sich so lange auf fertige Cluster- und HA-Lösungen verlassen hat, dass man das ganz verlernt hat. In letzter Zeit hört man zwar ab und zu etwas über die "Let it crash"-Prinzipien aus ERLANG, aber das ist nur ein Anfang und bei weitem nicht hinreichend.

In diesem Vortrag wird ein wenig auf die Grundkonzepte von fehlertoleranten Anwendungen eingegangen und eine Reihe alternativer und komplementärer Muster vorgestellt, mit denen Anwendungung fehlertolerant gestaltet werden können. Und natürlich gibt es auch Hinweise zu den Trade-offs der Muster, praktische Entscheidungshilfen sowie konkrete Design-Ansätze für die Umsetzung. Zwar können in diesem Vortrag nur einige ausgesuchte Aspekte des Themengebiets gestreift werden, aber es werden trotzdem eine Reihe alternativer Ideen und Konzepte an die Hand gegeben, die nicht nur in großen Cloud-Systemen gewinnbringend angewendet werden können.

Copy & Paste & Bug

Vom Umgang mit Redundanz in Software-Artefakten

Dr. Elmar Jürgens

CQSE GmbH
A23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Programmiersprachen bieten eine Vielzahl von Abstraktionsmechanismen, um die Wiederverwendung zu erleichtern. Trotzdem ist Copy & Paste nach wie vor weit verbreitet. Oft wird einfach mal schnell ein existierendes Code-Fragment kopiert und geringfügig angepasst, anstatt eine Funktion oder eine Basisklasse zu erstellen, über die man die gewünschte Funktionalität wiederverwenden könnte. Was kurzfristig als gute Idee erscheint, führt langfristig zu Mehraufwänden, da Änderungen in der Regel nicht nur an einer Stelle sondern an allen sogenannten Klonen vorgenommen werden müssen. Werden dabei Klone übersehen, führen die resultierenden Inkonsistenzen oft zu Fehlern. Tatsächlich enthalten viele Software-Systeme 20–30 % geklonten Code, in manchen Fällen sind es sogar 50 % oder noch mehr. Da es in großen Software-Systemen unmöglich ist manuell einen Überblick über existierende Klone zu behalten, sind Entwickler auf Werkzeugunterstützung angewiesen. Werkzeuge zur Clone-Detection erkennen Klone in existierender Software und können dadurch den Umgang mit existierenden Klonen erleichtern und die Entstehung von Neuen eindämmen.

In diesem Vortrag werden Beispiele von Klonen und dadurch entstandene Fehler in produktiver Software gezeigt, Clone-Detection mit Hilfe des OpenSource-Werkzeugs ConQAT vorgestellt und Best Practices und Grenzen des Einsatzes von Klonerkennung in der Praxis diskutiert. Außerdem wird kurz die Erkennung von Klonen in Anforderungsspezifikationen, Testfällen und Modellen dargestellt.

Matt in drei Iterationen

Lebendiger Architekturentwurf am Beispiel einer Schach-Engine

Stefan Zörner

oose Innovative Informatik GmbH
A25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Ein Jahrhunderttraum wie das Fliegen: Eine Maschine, die Menschen im Schach bezwingt. Auch heute ist das für viele Entwickler noch eine faszinierende Aufgabe. Wie zerlegt man das Problem geschickt? Welche wichtigen Entscheidungen sind bei der Umsetzung zu treffen?

In diesem Vortrag lernen Sie das Nötigste, um selbst ein Schachprogramm zu bauen. Und Sie erfahren auf vergnügliche Weise nebenbei – sozusagen en passant –, wie Sie ganz allgemein eine nachvollziehbare, angemessene Software-Architektur entwerfen, bewerten und festhalten können.

Ene Mene Mentor

Mentoring im Selbstversuch

Jens Schauder

Steven Schwenke

A26 Mittwoch, 5. 9., 20:00 – 21:10 Uhr Mi de ZIP

Telemachos hatte den Mentor, alle anderen müssen sich besten Falls mit einem Mentor zufrieden geben und die meisten haben gar keinen. Wie findet man einen Mentor oder einen Mentee? Wenn man einen hatte, was tut man dann damit? Wie viel und wie oft? Und was hat man davon?

In diesem Vortrag berichten ein Mentee und ein Mentor von Ihren Erfahrungen und möglichen Antworten auf die Fragen.

Continuous Bugfixing

Wie man statische Code-Analyse einführt

Holger Thom

main GmbH
P21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Statische Code-Analyse mit Tools wie FindBugs, PMD oder CheckStyle sind das Mittel der Wahl, um Fehler zu finden, noch bevor der Code ausgeführt wird. Die Konzepte, die bei mittlerer Projektgröße gut funktionieren, lassen sich aber nicht eins zu eins auf Großprojekte übertragen. Eines der Hauptprobleme ist dabei, dass zwar die Tools der Wahl eingeführt wurden, aber keiner die Reports liest und die gemeldeten Fehler beachtet. Zu viele Informationen, zu viele Falschmeldungen, keine „für das Management geeignete“ und übersichtliche Aufbereitung der Reports. Alle Beteiligten „ermüden“ und verfolgen die gemeldeten Fehler nicht konsequent. Aber dann nützt auch das beste Tool der Welt nichts.

Im ersten Teil dieses Vortrags werden die Arbeitsweisen, Konzepte und Reporte der führenden OpenSource-Tools vorgestellt. Es wird auf die Vor- und Nachteile im Kontext von sehr großen Projekten eingegangen. Danach wird erläutert, wie statische Code-Analyse in einem Projekt eingeführt wurde, bei dem 10 Millionen „Lines of Code“ jede Nacht analysiert werden. Es wird gezeigt, wie man eine solch riesige Informationsmenge so aufbereitet, dass die Entwickler und Manager die gefundenen Fehler auf einen Blick erkennen und sie dann auch beheben können. Darüber hinaus werden die Visualisierung von Fehlern in Großprojekten, Trend-Analysen, Fehler-Landkarten, 3D-Visualisierung, Historisierung der Daten, die Umsetzung eines Code-Ownership-Konzepts, Sinn und Unsinn von E-Mail-Benachrichtigungen und der Aufbau eines Qualitätskreislaufs gezeigt. Ergänzend wird der Einsatz mehrerer Tools zur Analyse des Codes, die Festlegung des richtigen Rule-Sets, dynamische Rule-Sets und die Vermeidung von Falschmeldungen besprochen. Abschließend wird die Analyse in der IDE versus Analyse beim Build diskutiert und die Integration von JUNIT/CodeCoverage-Daten demonstriert.

Steter Tropfen ...

Eine Continuous Delivery Live-Demo

Daniel Arndt

codecentric AG

Bastian Spanneberg

codecentric AG
P23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Continuous Integration, Test Driven Development und diverse Tools zur Messung von Code-Qualität oder zur Ausführung von Akzeptanztests gibt es nicht erst seit Kurzem. Der nächste logische Schritt ist die Verbindung und Automatisierung dieser und weiterer Techniken um ein möglichst kontinuierliches Ausrollen von Bugfixes und neuen Features zu ermöglichen.

Am Beispiel einer Java-basierten Web-Anwendung wird gezeigt, wie ein möglicher Technologie-Stack zum Aufbau einer Deployment-Pipeline aufgebaut und wie damit Continuous Delivery umgesetzt werden kann. Dabei kommen Technologien wie Jenkins (Continuous Integration, Pipeline), JBehave (Akzeptanztests), Vagrant und Puppet (Virtualisierung und Provisionierung), Sonar (Qualitätsanalyse), Jmeter (Performanztests) und Liquibase (DB-Migrationen) zum Einsatz. Ziel ist es, in der zur Verfügung stehenden Zeit das komplette Szenario, von der neuen Anforderung über die konkrete Implementierung bis hin zum Livegang auf dem Produktionssystem, durchzuspielen und zu erläutern.

Die Welt ist (leider) kein Apfelmännchen

Von der Parallelisierung realen Codes und warum wir es tun müssen

Dr. Ulrich Hilburger

NÜRNBERGER Versicherungsgruppe
P24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Die Zeit, in der die Prozessoren parallel zu den immer höheren Anforderungen an Software-Systeme schneller wurden, ist leider vorbei. Im Gegenteil, die durchschnittliche Taktfrequenz von Prozessoren sinkt inzwischen wieder, wir werden aber dafür mit mehreren Prozessorkernen „entschädigt"“. Was für ein Computer-System mit mehreren gleichzeitig zu bearbeitenden Aufgaben noch Sinn macht, stellt den klassischen Entwickler vor eine große neue Aufgabe: Wie nutzt man die vielen Kerne für seine Anwendung, denn im Single-Thread-Betrieb mutiert klassische Software zur Schnecke!? Die Hersteller der IDEs und Compiler haben diesen Umstand lange Zeit verschlafen, denn eine vollautomatische Parallel-Optimierung gibt es auch heute noch nicht. Vor der Parallelisierung und vor „echten“ Anwendungen steht also eine eingehende Analyse des Codes und der Teilaufgaben. Dabei geht es um nicht weniger als einen Umbruch im Denken der Programmierer, ähnlich wie bei der Einführung der Objektorientierung.

In diesem Vortrag kann man sich von Beispielen inspirieren lassen und in eine rege Diskussion einsteigen, wohin die Reise geht.

(Persistenz-)Abenteuer gefällig?

Eine Expedition in den NoSQL-Dschungel

Carl Anders Düvel

Holisticon AG

Enno Thieleke

Holisticon AG
P25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Mit NoSQL eröffnet sich dem Entwickler eine spannende Welt: Völlig neue Konzepte und Optionen mit bisher so nicht dagewesenen Schnittstellen, aber auch mit jeder Menge Fragezeichen.

Zu Beginn unseres Vortrags wird daher eine Schneise in das Datenbank-Dickicht geschlagen, indem kurz einige wichtige Begriffe erläutern werden, wie CAP-Theorem, BASE, Consistent Hashing und Map-Reduce. Danach werden die verschiedenen neuen Spezies studiert, darunter ihre bekanntesten Vertreter Key/Value Stores, Document Stores, Graph DBs und Wide Column Stores. Dem unerschrockenen Entdecker wird abschließend noch einen Plan an die Hand gegeben, mit dessen Hilfe er den richtigen Datenbanktyp finden kann.

Träumen Roboter von elektrischen Schafen?

Spielerisch (besser) programmieren lernen mit Scalatron und Robocode

Joachim Hofer

imbus AG
P26 Mittwoch, 5. 9., 20:00 – 21:10 Uhr Mi de PDF

Laut „Pragmatic Programmer“ soll man jedes Jahr eine neue Programmiersprache lernen. Das ist sicher eine gute Idee, aber es stellt sich immer die Frage, anhand welcher Problemstellungen man sich mit möglichst viel Spaß und Motivation einarbeiten kann.

In diesem Vortrag werden dazu mit Scalatron und Robocode zwei Programmier-Frameworks vorgestellt. Mit Hilfe dieser Frameworks kann man in JVM-basierten oder .NET-basierten Sprachen Roboter-AIs programmieren, die dann im Wettbewerb gegeneinander antreten. Einfache Einstiegs-Roboter werden hierzu jeweils vorgestellt.

Jetzt geht's bis 11

Highlights in Visual Studio 11

Daniel Meixner

Microsoft Deutschland GmbH
N21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Nach dem umfassenden Erfolg von Visual Studio 2010 folgt mit dem Nachfolger „Dev11“ eine Version, die nicht nur mit spannenden Detailverbesserungen aufwartet sondern – wie auch der Vorgänger – insbesondere auch den Kollaborationsaspekt und Teamgedanken in der Software-Entwicklung aufgreift.

In diesem Vortrag erfährt man, wie die kommende Version von Visual Studio in Zukunft beim Entwickeln von Software unterstützen wird.

Metropol

Programming Windows 8 Metro-Style-Apps with JavaScript and WinRT

Rainer Stropek

N22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

With Windows 8 Microsoft will introduce a new technology for developing apps on their platform: WinRT – the Windows Runtime. WinRT bridges the gap between the Windows 8 operating system's SDK and higher level languages like C#, VB or even JavaScript. Microsoft's goal is to make developing Windows 8 metro-style apps with HTML5 and JavaScript feel natural to people familiar with these web technologies.

This talk is especially for web developers who want to learn how they can build upon their existing knowledge to create apps for Microsoft's coming new operating system and market place. In this session after a short overview about WinRT the WinRT architecture and the functionality it offers will be introduced. Based on this information it will be demonstrated how Microsoft's „Chakra“ JavaScript engine projects WinRT into the JavaScript language. It will be shown how to consume existing functionality from WinRT's library to e. g. access the underlying hardware of the Windows 8 tablet PC. In a second step the sample will be extended by creating a custom WinRT component in C++ and consuming it in JavaScript.

Die fünfte Generation

Das Entity Framework 5.0

Thomas Haug

MATHEMA Software GmbH
N24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Das Entity Framework 5.0 wird der nächste Major Release des Objekt-relationalen (OR) Mapping-Werkzeugs aus dem Hause Microsoft. Diese Version wird auf .NET 4.5 aufsetzen und weitere wichtige Neuerungen mitbringen, um den Anforderungen eines Enterprise-Anwendungstauglichen OR-Mappers gerecht zu werden, wie zum Beispiel Performance Optimierungen, Unterstützung von Enums usw.

In diesem Vortrag werden wird das Entity Framework 5.0 unter die Lupe genommen und insbesondere die Neuerungen gegenüber den 4.x-Versionen begutachten. Hierbei wird auch ein Blick auf NHibernate geworfen, um diesen mit dem Entity Framework 5.0 zu vergleichen.

Scriptease

Was Sie schon immer über JavaScript wissen wollten, aber bisher nicht zu fragen wagten

Golo Roden

JS21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Guten JavaScript-Code zu schreiben, ist gar nicht so schwer – wenn man weiß, worauf man achten muss und warum. Selten genutzte Schlüsselwörter wie void, Sinn und Unsinn von Konstruktorfunktionen und unverstandene Features wie Variable Hoisting sind nur einige wenige Beispiele.

Der Vortrag macht einen Rundflug über die wenig bis gar nicht bekannten Bereiche von JavaScript und erläutert, warum sich die Sprache derart verhält. Nach diesem Vortrag kennt man nicht nur einige Sprach-Features besser, sondern kann insbesondere auch deren Konsequenzen und Nebenwirkungen besser einschätzen.

Der dunkle Ritter

Das Batman.js Framework

Andreas Schubert

MATHEMA Software GmbH
JS23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de

Mit CoffeeScript gibt es eine interessante Sprache, die nach JavaScript übersetzt wird. In der letzten Zeit entstehen rund um CoffeeScript einige sehr interessante Projekte. Das Model-View-Controller-Framework Batman.js ist eines davon. Es basiert auf Node.js und ermöglicht auf einfache Art und Weise, Rich Web-Applikationen zu entwickeln. Batman.js stellt ein mächtiges System mit sogennanten „View Bindings“ und „Observable Properties“ bereit, die den Code kurz und selbsterklärend halten.

In diesem Vortrag wird per „Live-Coding“ Batman.js anhand einer kleinen Demo-Applikation vorgestellt.

Der vergessene Code

JavaScript in Java-Projekten

Stefan Hildebrandt

consulting.hildebrandt.tk
JS25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Bei der Entwicklung von Web-Anwendungen mit Java wird immer häufiger auch JavaScript-Code erstellt. Für den JavaScript-Code sollten dann auch die gleichen Qualitätskriterien gelten wie für den Java-Code. Seit langem gelten als Standard ein reproduzierbarer Build, die Unit-Tests und ggf. eine statische Code-Analyse. Idealerweise werden diese in den Build-Prozess für den Java-Anteil eingebunden.

In diesem Vortrag werden die Projektstruktur, typische Build-Schritte – wie Zusammenfassung und Kompression – und die Ausführung von Tests mit Gradle und Maven vorgestellt.

Build-Dreikampf

Ein Vergleich zwischen Ant, Maven und Gradle

Carl Anders Düvel

Holisticon AG

Sven Bunge

Holisticon AG
B22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Beim Thema Build-Tool herrscht in der Java-Community nach wie vor keine Einigkeit. Neben dem Urgestein Ant und dem ebenso schon sehr lange etablierten Maven gibt es mit Gradle jetzt noch ein weiteres Werkzeug, das sehr viele Anhänger gewonnen hat. Bei dieser Auswahl stellt sich natürlich die Frage nach dem optimalen Kandiaten für das eigene Projekt: Welche Unterschiede bestehen zwischen den Tools? Was sind Stärken bzw. Schwächen? Lohnt ein Umstieg oder sind die Kosten für eine Migration höher als der eigentliche Nutzen?

Diese Fragen werden im Rahmen des Vortrags beleuchtet und versucht eine Entscheidungshilfe zu geben.

Besser Gits nicht

Best Practices mit GIT

Martin Dilger

PENTASYS AG
B24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Der Vortrag bietet einen Überblick über Best Practices bei der Verwendung mit GIT. Hierbei wird kurz auf die grundsätzliche Funktionsweise von GIT und anschließend auf Best Practices direkt aus der Praxis und der täglichen Arbeit mit GIT eingegangen. Unter anderem wird vorgestellt, wie Commits sauber strukturiert werden können, wie erfolgreich mit GIT-Branches gearbeitet werden kann und vor allem wie man Spaß bei der Arbeit mit GIT haben kann.

Ziel des Vortrags ist es, Entwicklern die Arbeit mit GIT zu erleichtern und nützliche Werkzeuge vorzustellen, die die tägliche Arbeit sehr vereinfachen. Der Vortrag ist interaktiv, Fragen sind sehr erwünscht und eine gute Portion GIT garantiert.

Schlankheitskur

Lean Web Architecture mit JSF 2.0, CDI & Co.

Andreas Hartmann

adesso AG
J21 Mittwoch, 5. 9., 09:40 – 10:50 Uhr Mi de PDF

Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendung realisieren – wenn man weiß wie.

Anhand des Technologiestacks aus JSF2, CDI, Lombok, HTML 5, JQuery und Spring Data wird innerhalb dieses Vortrags eine leichtgewichtige Architektur anhand von anschaulichen Anwendungsbeispielen vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird.

Web-Anwendungen auf Klick

Web-Programmierung mit Apache Click

Rustam Khakimov

MATHEMA Software GmbH
J22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Apache Click ist ein JEE-Web-Application-Framework, das die Entwicklung von Web-Anwendungen durch eine „natürliche“ Rich-Client-Programmierungsweise wesentlich erleichtert. Apache Click verwendet statt MVC und JSP ein Event-basiertes Programmiermodel in Verbindung mit HTML-Templates und Plain Old Java Objects (POJOs). Das Framework hat eine IDE-Unterstützung und bietet eine Mock-API für testgetriebene Entwicklung.

Der Vortrag stellt das Framework vor und zeigt an Beispielen, wie Web-Anwendungen mit Apache Click entwickelt werden können.

Wolkenheim

Cloud mit Java konkret

Eberhard Wolff

adesso AG
J23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Verschiedene Cloud-Technologien buhlen um die Aufmerksamkeit der Java-Entwickler.

Dieser Vortrag gibt einen Überblick über die verschiedenen Technologien. Neben Angeboten aus dem Public-Cloud-Bereich wie Amazon, Cloud Foundry oder Google App Engine wird auch gezeigt, wie Cloud-Umgebungen im eigenen Rechenzentrum realisiert werden können. Im Mittelpunkt dieses Szenarios stehen Systeme zur automatisierten Installation wie Chef und Virtualisierungslösungen.

Spielend leicht

Einführung in das Play!-Framework

Frank Goraus

MATHEMA Software GmbH
J24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Das Play-Framework ist ein noch recht unbekanntes Web-Framework. Es bringt einige interessante Ansätze mit und will außerdem Spaß beim Entwicklen bieten – bei gleichzeitiger hoher Produktivität, indem zum Beispiel lästige Deployment-Zeiten entfallen. Dabei kombiniert es unter anderem „Groovy“-ge Ansätze mit klassichem Java und bietet ab Version 2.0 auch nativen Scala-Support.

Deshalb heißt es in diesem Vortrag: Let's have a look and let's play!

Symbiose

Wie passen JavaEE und OSGi zusammen?

Frank Pientka

MATERNA GmbH
J25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de PDF

Apache Geronimo steht mit seinem modularen Plugin-Konzept für eine neue Generation von Java-EE-Anwendungs-Servern.

Im Vortrag werden der zertifizierte Anwendungsserver Geronimo 3.0, das ARIES-Framework und Konzepte für das Deployment von OSGi-Anwendungen vorgestellt. Als Beispiel dient eine Blog-Anwendung mit JPA 2.0 und OSGi 4.2. Dabei wird die Frage beantwortet, wie JavaEE und OSGi zusammen passen können.

Polyplex

Programmieren für C, CLR und JVM

Michael Wiedeking

MATHEMA Software GmbH
J26 Mittwoch, 5. 9., 20:00 – 21:10 Uhr Mi de

Unterschiedliche Probleme – so scheint es – brauchen unterschiedliche Programmiersprachen. Die domänenspezifischen Sprachen (DSLs) und die dafür existierenden (Meta-)Werkzeuge unterstreichen diese Vermutung. Was wäre denn, wenn es eine Sprache gäbe, die man um eigene, auch domänenspezifische Features erweitern könnte? Die ALx-Programmiersprachenfamilie adressiert dieses Problem und bietet deshalb – neben vielen anderen nützlichen Eigenschaften – eine erweiterbare Syntax.

Dieser Vortrag stellt die ALx-Sprachfamilie vor, zeigt deren wichtigsten Charakteristika und demonstriert, wie man damit sicherer und effizienter für so unterschiedliche Plattformen wie C, CLR und JVM programmieren kann.

Monaden

Die nächste Herausforderung der funktionalen Welt

Nicole Rauch

msgGillardon AG
S22 Mittwoch, 5. 9., 11:20 – 12:30 Uhr Mi de PDF

Funktionale Sprachen sind derzeit in aller Munde, und Scala entwickelt sich zum nächsten großen Hype. Gleichzeitig basieren funktionale Sprachen auf verschiedenen Konzepten, die für viele Entwickler unbekannt, aber in der funktionalen Welt schon lange etabliert sind. Wer sich eingehend mit funktionalen Sprachen befasst, wird früher oder später über sie stolpern. Zu diesen Konzepten gehören Monaden, die in funktionalen Sprachen dazu dienen, Seiteneffekte in die Sprache zu integrieren, ohne ihre starke statische Typisierung aufzuweichen.

Der Vortrag möchte die theoretischen Grundlagen von Monaden in leicht verdaulichen Häppchen vermitteln.

Treppenschach(t)

Bessere Testfälle mit ScalaCheck

Andreas Flierl

imbus AG
S23 Mittwoch, 5. 9., 14:00 – 15:10 Uhr Mi de PDF

Wenn wir Entwickler Tests schreiben, sind wir oft sehr optimistisch – besonders bei der Wahl der Testfälle. Fehlt beispielsweise der kritische Blick eines erfahrenen Testers, werden leicht wichtige Code-Pfade übersehen und Fehler schleichen sich ein.

Der Vortrag möchte beleuchten, warum z. B. Code-Coverage nur bedingt weiterhilft und wie die Bibliothek ScalaCheck helfen kann, bessere Testfälle zu finden, zu generieren und weiterhin noch jede Menge Code zu sparen. Dabei bleibt bestimmt noch Zeit für Live-Coding, die Beantwortung von Fragen wie "Wie teste ich meine grandiose Implementierung der Quadratwurzelfunktion für BigInts?" und interessante Spitzfindigkeiten.

Taschenspielertrick

Spaßige Dinge, die man mit dem Scala-Typsystem machen kann

Jens Schauder

S24 Mittwoch, 5. 9., 15:40 – 16:50 Uhr Mi de PDF

Die JVM-Sprache Scala zeichnet sich unter anderem durch ein sehr leistungsfähiges Typsystem aus.

In diesem Vortrag werden einige Dinge vorgestellt, die man mit dem Typsystem anstellen kann – angefangen beim beliebten „Pimp my Library“-Pattern bis zum Nachweis, dass das Typsystem Turing-vollständig ist. Aber nicht alles ist Taschenspielerei. So manches lässt sich sehr sinnvoll in realen Projekten einsetzen.

Abgehoben

Schnelles, funktionales Web-Development mit Liftweb

Franz Bettag

Bettag Systems UG
S25 Mittwoch, 5. 9., 17:20 – 18:30 Uhr Mi de

Wenn man den Lift-Entwicklern glauben schenkt, dann ist Liftweb das mächtigste der heute verfügbaren Web-Frameworks. Das begründen sie unter anderem damit, dass Lift-Applikationen gegen die meisten der OWASP Top 10 Attacken gefeit sind; einfach zu bauen und schnell und einfach zu warten sind; hochperformant und skalierbar sind; und nicht zuletzt durch einzigartige Ajax- und Comet-Unterstützung interaktiv wie Desktop-Anwendungen sind.

In diesem Vortrag wird das Liftweb-Framework vorgestellt, View-First/CSS-Selectors und die HTML-Render-Engine grob erklärt, Comet/Long-Polling Actors demonstriert und Formulare mit entsprechenden Datenverknüpfungen gezeigt.

KaffeeKlatsch
Bookware
MATHEMA
CLEAR IT