Microsoft stellt F# unter die Apache-Lizenz

Der Softwarehersteller bietet fortan seine funktionale Programmiersprache F# unter der Apache-Lizenz an, Dadurch lässt sie sich auch in kommerziellen Projekten uneingeschränkt nutzen.

In Pocket speichern vorlesen Druckansicht 136 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Microsoft hat den Quellcode der Programmiersprache F# als Open Source unter die Apache-2.0-Lizenz gestellt. Der Compiler und die Bibliotheken gibt es nun als sogenanntes Code-Drop innerhalb des F# PowerPack auf der CodePlex-Website, Microsofts Hosting-Plattform von Open-Source-Projekten. Zuvor standen die beiden bereits kostenlos unter Microsofts Research Shared Source License Agreement zum Download zur Verfügung, das die Nutzung in nichtkommerziellen Projekten erlaubt. Die Apache-Lizenz geht einen Schritt weiter: Sie erlaubt die uneingeschränkte Verwendung der F#-Bibliotheken und des Compilers.

Durch die Bereitstellung der Sourcen als Code-Drop haben Entwickler allerdings keine Möglichkeit, an der Sprache selbst Änderungen durchzuführen; Microsoft behält dadurch die vollständige Kontrolle über die F#-Releases. Die Binärdaten erhalten Entwickler weiterhin über das F# Developer Center. Don Syme, Chefentwickler der Sprache, gab außerdem bekannt, dass zukünftige Versionen zeitlich auf die Releases von Microsofts Entwicklungsumgebung Visual Studio abgestimmt werden sollen.

Die Programmiersprache leitet ihre funktionalen Ideen von der Sprache ML (Meta Language) sowie ihren Derivaten Caml (Categorical Abstract Machine Language) und OCaml (Objective Caml) ab, die im Gegensatz etwa zu Haskell Seiteneffekte erlauben, etwa das Bereitstellen von veränderlichen Variablen. Des Weiteren liegen F# Mechanismen wie statische Typisierung, Typinferenz, Ausnahmebehandlung und Mustererkennung zugrunde. Die objektorientierten Anteile von F# haben ihre Wurzeln in C#. Seit .NET 4 behandelt Microsoft die Sprache als sogenannten First-Class Citizen, sie ist seit Visual Studio 2010 vollwertiges Mitglied der Entwicklungsumgebung. (ane)