F.png

Impressum

Oliver Sturm
F#

ISBN: 978-3-86802-608-5
© 2012 entwickler.press

Ein Imprint der Software & Support Media GmbH

Bibliografische Information Der Deutschen Bibliothek
Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar.

Ihr Kontakt zum Verlag und Lektorat:
Software & Support Media GmbH
entwickler.press
Darmstädter Landstr. 108
60598 Frankfurt am Main
Tel.: +49 (0)69 630089-0
Fax: +49 (0)69 930089-89
lektorat@entwickler-press.de
http://www.entwickler-press.de

Lektorat: Sebastian Burkart
Korrektorat: Frauke Pesch
Satz: Laura Acker und Dominique Kalbassi

Alle Rechte, auch für Übersetzungen, sind vorbehalten. Reproduktion jeglicher Art (Fotokopie, Nachdruck, Mikrofilm, Erfassung auf elektronischen Datenträgern oder anderen Verfahren) nur mit schriftlicher Genehmigung des Verlags. Jegliche Haftung für die Richtigkeit des gesamten Werks kann, trotz sorgfältiger Prüfung durch Autor und Verlag, nicht übernommen werden. Die im Buch genannten Produkte, Warenzeichen und Firmennamen sind in der Regel durch deren Inhaber geschützt.

Vorwort

F# ist eine der neuesten Programmiersprachen der .NET-Plattform, besonders unter denjenigen Sprachen, die von Microsoft selbst zusammen mit Visual Studio an Entwickler ausgeliefert werden. Allerdings ist die Sprache schon seit langer Zeit in der Entwicklung − bereits in 2005 kam die Version 1.0 von F# heraus − und sie basiert auf Ideen und sogar auf einer Syntax, die von anderen Sprachen und Plattformen übernommen wurden und schon lange vor der Zielplattform .NET existierten.

Ein paar Jahre ist es her, dass Microsoft über das Blog von „Soma“ Somasegar offiziell ankündigte, dass F# mit Visual Studio 2010 ausgeliefert werden würde. Das führte zunächst zu einiger Hektik im F#-Team, da noch vieles perfektioniert werden musste, das bisher für ein per separatem Download verfügbares F# nicht für sehr wichtig gehalten worden war: ein aktualisiertes Projektsystem inklusive einer ordentlichen Visual-Studio-Anbindung, IntelliSense auf einem aktuellen Stand der Technik, ein paar neue Projektvorlagen und einiges mehr.

Schon seit frühen Zeiten seiner Entwicklung war F# bei bestimmten Anwendergruppen auf reges Interesse gestoßen. Als eine Sprache, die sich funktionale Einflüsse zumindest als einen wichtigen Punkt auf die Fahne schrieb, bot sich F# offensichtlich für diejenigen algorithmisch geprägten Projekte an, die schon immer gern funktional geführt wurden. Aber mit dem Hintergrund der breit gefächerten Funktionalität des .NET Frameworks gab es hier etwas, das keine andere funktionale Sprache bieten konnte: die Fähigkeit, Anwendungen für die verschiedensten Zielsysteme zu schreiben, mit und ohne grafische Benutzerschnittstelle, Server oder Client, mit einfachstem Datenbankinterface, als Webanwendung oder für Mobilplattformen. Gleichzeitig ist F# selbst hybrid in seinen Ansätzen, sodass die Interaktion mit all diesen verschiedenen Subsystemen so einfach ist, wie Sie sich nur vorstellen können.

Seither hat sich die Entwicklung weiter fortgesetzt, sowohl im Bereich der Sprachen als auch für .NET insgesamt. Für F# bedeutet das hauptsächlich, dass seine Ideen heute relevanter sind als je zuvor. In C# und VB.NET haben seit Visual Studio 2008 immer mehr funktionale Ideen Einzug gehalten, in großem Umfang mit der Sprachunterstützung für das sehr funktional ausgeprägte LINQ, das in .NET 3.5 eingeführt wurde. Parallelisierbarkeit ist ein Thema, das aufgrund der typischen Architekturen aktueller Prozessoren fast jede Software betrifft und über das viele Programmierer in die Welt der funktionalen Programmierung finden, da sie sich von puren Funktionen und unveränderbaren Daten neue Lösungswege versprechen. F# bietet als Programmiersprache den besten Weg zu diesen funktionalen Zielen, der Ihnen auf der .NET-Plattform offensteht, während die Mittel der Objektorientierung, mit denen Sie vertraut sind, nicht zurückstehen müssen.

Die Vergangenheit hat gezeigt, dass F# eine Plattform der Entwicklung in mehr als einer Hinsicht ist: Sprachfeatures aus F# haben oft den Weg in andere .NET-Sprachen gefunden und maßgeblich dazu beigetragen, dass wichtige Neuerungen in die Plattform integriert wurden. Ob Sie dabei an große Dinge denken, wie Generics in .NET 2.0, oder an kleinere, wie die Einführung der Tupel-Typen in .NET 4.0 − F# spielt in diesen Bereichen immer wieder eine Vorreiterrolle. Das wird sich auch in Zukunft nicht ändern, denn die in C# 5.0 neuen Async-Schemata gibt es in analoger Form in F# schon lange, und die für F# 3.0 angekündigte Funktionalität zu Information Rich Programming verspricht wiederum neue Fähigkeiten, die womöglich in Zukunft in Richtung C# oder VB.NET migriert werden könnten.

Vielleicht sind Sie ein Programmierer, dessen Arbeit sich um die Pflege vorhandener Software dreht. In diesem Fall sind Sie ständig auf der Suche nach dem einfachsten Weg, Ihre Software auf einem modernen Stand zu halten und sich von der Konkurrenz abzusetzen. Die Pflegbarkeit Ihres Codes ist für Sie wichtig, da dessen Langlebigkeit für Sie bereits alltäglich ist. Es ist gut möglich, dass F# Ihnen wichtige Vorteile verschaffen kann: Sie können Algorithmen einfacher, übersichtlicher und kompakter implementieren, während die moderne und fortschreitende Entwicklung der Sprache Ihnen hilft, Alleinstellungsmerkmale zu erarbeiten. Durch die Kompatibilität der Sprache mit .NET, und so mit allen anderen Sprachen der Plattform, können Sie einen Umschwung graduell einleiten oder auch nur ausnahmsweise F# einsetzen, wenn es gerade passt.

Oder sind Sie ein Programmierer, der nach der richtigen Sprache für eine neue .NET-Entwicklung sucht? Dann sind Sie bereits vertraut mit der Funktionalität, die Sie in der Plattform finden. Um im Markt erfolgreich zu sein, müssen Sie den effizientesten Weg finden, die Plattform zu nutzen. Je schneller und einfacher Sie Code schreiben können, desto besser für Ihr Geschäft. F# sollte Ihnen gut gefallen, denn Code in der Sprache ist typischerweise kürzer als der, den Sie in C# oder VB.NET schreiben können − natürlich bei gleicher Funktionsweise! Sie bekommen aber auch ein breiteres Spektrum an Programmieransätzen geboten, aus denen Sie jeweils den besten für ein Problem auswählen können. Für viele Zwecke lässt sich auch ein funktional purer Ansatz verfolgen, der durch einfache Testbarkeit, Parallelisierbarkeit und die daraus resultierende Stabilität besticht.

Vielleicht sind Sie ein Programmierer, dessen Erfahrungen wesentlich von anderen Plattformen her stammen und für Sie ist .NET neu. Sie mögen in diesem Fall bereits mit objektorientierten oder funktionalen Ideen vertraut sein oder mit beiden. F# sollte in jedem Fall die Sprache Ihrer Wahl sein, denn sie bietet volle Kompatibilität mit .NET bei einfachstem Einstieg, unabhängig von Ihrer bisherigen Ausrichtung.

Weiterentwicklung ist kein Selbstzweck. Ein wichtiger Punkt im Zusammenhang mit F# ist allerdings, dass die Sprache unterschiedliche Ideen vereint, die sich im Laufe vieler Jahre als gleichermaßen legitim erwiesen haben. Der Programmierer mit dem weitesten Horizont gewinnt das Rennen um den Job, den Auftrag, das Geschäft − ich wünsche Ihnen, dass Sie das sind!