Wikipedia :
Microsoft Seite () :Quote:
F# ist eine funktionale Programmiersprache von Microsoft für das .NET-Framework. F# ist mit den Sprachen OCaml und ML verwandt, die Syntax der Sprachen ähneln sich daher stark. Viele Programme, die ungewöhnliche Konstrukte und F#-/Caml-spezifische Bibliotheken vermeiden, können ohne Änderung mit F# und mit Caml kompiliert werden.
Neben den Bestandteilen der funktionalen Programmierung sind in F# objektorientierte sowie imperative Sprachkonstrukte enthalten.
Ursprünglich wurde F# als Forschungsprojekt von Microsoft Research entwickelt, derzeit wird es von Microsofts Entwicklungsabteilung fortgeführt. F# wird als Teil von Visual Studio 2010 erstmals offiziell unterstützt und mit ausgeliefert.[1] Außerdem ist es auch als Erweiterung zu Visual Studio 2008 erhältlich.
[...]
In F# gibt es keine Variablen, wie in anderen Programmiersprachen. Es gibt nur Funktionen, die immer denselben Rückgabewert haben. Diese werden in F# mit dem Schlüsselwort let deklariert und definiert.
F# bietet Typableitung, d.h. Typen von Ausdrücken werden automatisch ermittelt. Beispielsweise bekommt pi automatisch den Typ des Gleitkommazahl-Literals zugewiesen.Code:let pi = 3.1415927
let ist dabei keine Variablenzuweisung, sondern eine Deklaration, d.h. der Quelltext
kann nicht kompiliert werden, da der Wert pi zweimal innerhalb desselben Gültigkeitsbereichs deklariert wird. Soll der Wert einer Variablen im Programmablauf änderbar sein, muss dies bereits bei der Deklaration kenntlich gemacht werden:Code:let pi = 3.1415927 let pi = 10.0
Code:let x = ref 0 // x hat den Typ 'int ref', also ein Wert vom Typ int, der im Programmablauf // geändert werden kann. let printX = print_any !x do x := 5 // An dieser Stelle im Programm wird der ursprüngliche Wert von x geändert. do printX
Nachdem ich mal wieder ein bisschen auf msdn gesurft bin und nach paar Windows Befehlen gesucht habe , fand ich F# . Zuerst dachte ich das ist ein schlechter Scherz oder ein Fehler , aber dann fand ich es überall ...Quote:
Ein kleiner Teil der .NET-Programmierer weiß, dass das Erlernen einer funktionalen Sprache für .NET Framework ein Schritt in die richtige Richtung für das Schreiben leistungsfähiger Software ist. Für die anderen liegen die Beweggründe, F# zu erlernen, im Verborgenen. Inwiefern profitieren Entwickler von F#?
//Kommentar : Ich kann mir nicht vorstellen , dass dieses F# leistungsfähiger als Java bzw als C/C++ ist ... Wir werden sehen was die Zukunft so bringt
In den letzten drei Jahren ist das Schreiben sicherer paralleler Programmen ein Hauptanliegen geworden, da Mehrkern-CPUs eine immer breitere Anwendung finden. Funktionale Sprachen helfen Entwicklern beim Unterstützen von Parallelität, indem unveränderbare Datenstrukturen unterstützt werden, die zwischen Threads und Computern übertragen werden können, ohne Probleme bei Threadsicherheit und atomarem Zugriff zu verursachen. Funktionale Sprachen erleichtern auch das Schreiben besserer parallelitätsfreundlicher Bibliotheken, wie z. B. asynchroner F#-Workflows, auf die unten genauer eingegangen wird.
Auch wenn Programmierer, die über beide Ohren in der objektorientierten Entwicklung stecken, möglicherweise eine andere Ansicht haben, sind funktionale Programme häufig für bestimmte Arten von Anwendungen einfacher zu schreiben und zu verwalten. Denken Sie zum Beispiel an das Schreiben eines Programms zum Konvertieren eines XML-Dokuments in ein anderes Datenformat. Sicherlich wäre es möglich, ein C#-Programm zu schreiben, dass das XML-Dokument analysiert und eine Vielzahl an Anweisungen zum Bestimmen der an unterschiedlichen Stellen im Dokument zu ergreifenden Aktionen anwendet. Ein weit besserer Ansatz besteht jedoch darin, die Transformation als XSLT-Programm (Extensible Stylesheet Language Transformations) zu schreiben. Es verwundert nicht, dass XSLT und SQL eine Vielzahl an Funktionen besitzen.
In F# wird dringend von der Verwendung von Nullwerten abgeraten, während die Verwendung unveränderbarer Datenstrukturen unterstützt wird. Diese Kombination kann die Häufigkeit von Programmierfehlern verringern, indem weniger Code für Sonderfälle benötigt wird.
In F# geschriebene Programme sind in der Regel auch kürzer. Er wird tatsächlich weniger getippt und typisiert:
Es sind weniger Tastaturanschläge nötig, und es gibt weniger Orte, an denen der Compiler Anweisungen zum Typ der Variablen, der Argumente oder des Rückgabetyps erhalten muss. Dadurch kann die Menge an zu verwaltendem Code erheblich verringert werden.
//Sorry aber auch dieser Kommentar muss sein : Mit ASM werden die Programme noch kleiner und mit Java eventuel auch . Wer sagt denn dass heutzutage jeder VB benutzt ? Dass damit die Programme nicht gerade "klein" werden mag ja sein , aber es gibt Sprachen da sind die Programme noch kleiner und kürzer
[...]
Was haltet ihr von dieser Sprache ? Ich finde sie etwas verrückt und unübersichtlich , da gefällt mir die alte C/C++ Syntax viel besser .
Aber ich möchte auch euere Meinung dazu hören , was haltet ihr davon ?
Edit :
Eben noch gefunden () :
Diese ganzen Artikel gehen nur auf C# bzw VB ein .Quote:
F# hat folgende Eigenschaften:
* Strenge Typisierung: Jeder Datentyp ist vordefiniert. Sämtliche Konstanten und Variablen verwenden einen dieser Typen.
* Knappheit: Mit wenig Code lässt sich viel machen. Bei der Erstellung von Klassen und ähnlichen Vorgängen gibt es bei Weitem nicht so viel zu beachten wie in C# oder VB.NET.
* Bibliotheken: F# ist .NET - daher ist das Framework bereits vorhanden.
* Skalierbarkeit: Die Architektur von F# ist skalierbar, was wiederum an der .NET-Basis liegt.
* Effizienz: Laut Microsoft ist F# eine effiziente Sprache. Ob das stimmt, wird sich noch zeigen.
Ich kennen keine dieser beiden Sprachen wirklich , aber ich werde eine gewagte (vllt. auch etwas freche) Vermutung aufstellen :
Wenn Microsoft zu "dumm" ist die Sprachen VB und C# "richtig gut" zu machen , dann ist es doch klar , das jede Sprache , die danach kommt besser und leistungsfähiger ist
Ich werde jetzt noch einen Speedtest machen , AutoIt vs C++ vs F# , mal schauen was F# wirklich kann