Register for your free account! | Forgot your password?

Go Back   elitepvpers > Off-Topics > Off Topic
You last visited: Today at 14:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Was haltet ihr von F# ?

Discussion on Was haltet ihr von F# ? within the Off Topic forum part of the Off-Topics category.

View Poll Results: Was haltet ihr von F# ?
Was soll ich schon davon halte ? Die Sprache ist fürn Müll ! 12 50.00%
Naja neue Sprachen sind nicht schlecht , aber ich glaube diese Sprache wird nicht erfolgreich . 11 45.83%
Ich werds mir mal anschauen , aber nur damit ich sehe , dass ich mit meiner Sprache besser fahre . 0 0%
Sieht ganz Ok aus . 0 0%
Ich glaube diese Sprache hat potential . 1 4.17%
Ich finde diese Sprache toll ! 0 0%
Voters: 24. You may not vote on this poll

Reply
 
Old   #1
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
Was haltet ihr von F# ?

Ich will die Diskussion mal mit 2 Zitaten eröffnen :
Wikipedia :
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.

Code:
let pi = 3.1415927
F# bietet Typableitung, d.h. Typen von Ausdrücken werden automatisch ermittelt. Beispielsweise bekommt pi automatisch den Typ des Gleitkommazahl-Literals zugewiesen.

let ist dabei keine Variablenzuweisung, sondern eine Deklaration, d.h. der Quelltext

Code:
    let pi = 3.1415927
    let pi = 10.0
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 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
Microsoft Seite () :
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

[...]
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 ...

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 () :
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.
Diese ganzen Artikel gehen nur auf C# bzw VB ein .
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
Shadow992 is offline  
Old 06/02/2010, 15:11   #2
 
antrix99's Avatar
 
elite*gold: 305
Join Date: Apr 2008
Posts: 2,421
Received Thanks: 546
naja also ich finde es nicht schlecht das es eine neue sprache gibt aber ist sie auch wirklich effizient einsetzbar?

was für verwendbarkeit gibt es dafür überhaupt?

also ich kann damit leider nix anfangen aber für die die den ganzen kram verstehen wird das sicher ne neue herausforderung

und ich finde..diese sprache wird nix großes reißen..vb.net und c# reichen aus um schon ordentlich sachen zu scripten..wozu dan noch F#?
antrix99 is offline  
Old 06/02/2010, 16:09   #3
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
Quote:
Originally Posted by antrix99 View Post
naja also ich finde es nicht schlecht das es eine neue sprache gibt aber ist sie auch wirklich effizient einsetzbar?

was für verwendbarkeit gibt es dafür überhaupt?
Laut Microsoft soll sie verdammt schnell Rechnungen lösen ...

Ich habe jetzt mal 2 Tests gemacht und muss sagen , dass F# keineswegs schnell bzw effektiv ist ...
Hier die Ergebnisse :

Quote:
1. Test Länge bis das Programm beendet

F# ca. 43117ms = 43.117s => 43s (wtf ?)
PHP Code:
let evennumbers = [ for x in 0 .. 30000000 -> x+

c++ ca. 1.5s => 2s (WTF !)
PHP Code:
int main()
{
    
int *= new int [30000001] ;
    for (
int x 0;x<30000000;x++)
    
y[x]=x+;

AutoIt ca. 121.532s => 122s (WTF ?)
PHP Code:
Dim $y1[15000000]
Dim $y2[15000001]

For 
$x 0 To 14999999
    $y1
[$x] = $x
Next

For $x 15000000 To 30000000
    $y2
[$x-15000000] = $x
Next 

2. Test Möglichst viele Funktionsaufrufe in 10 sek
F# ca. 41050
PHP Code:
for 0 to 999999999 do
   
printf "%d " (i-10+i+3*50-180+(9-i)-80
C++ ca 269600
PHP Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
for (
int i i999999999;i++)
   
printf ("%d " ,(i-10+i+3*50-180+(9-i)-80));

Wie man sieht ist F# zwar noch schneller als AutoIt bzw effektiver , aber mit C/C++ kann es keineswegs mithalten .

Zum 1. Test :
AutoIt hat leider so große Arrays nicht vertragen , deswegen habe ich die Arrays aufgesplittet .
C++ hat die Arrays auch ohne Stack nicht vertragen , aber dank dem Stack war dann genug Platz da

Zum 2. Test :
Ich habe die For-Schleife benutzt , weil ich anscheinend zu blöde bin ne While-Schleife in F# zu machen und um gleiche Bedingungen für alle zu schaffen habe ich C++ auch mit ner Schleife gemacht .
Da AutoIt keine Konsolenfenster "anschreiben" kann habe ich AutoIt komplett weggelassen .

Fazit :
Die Sprach F# erleichter wirklich manches und ist auch Sicherheitstechnisch recht gut , aber so effizient wie Microsoft behauptet ist sie niemals ...
Hinzu kommt , dass ich manchmal echt da sas und mir dachte "Scheise Brainfuck ist Dreck dagegen ..." . Die Sprache kommt mit vielen ungewöhnlichen Regeln , die den Java/C++/AutoIt Coder dazu bringen mit dem Kopf zu schütteln , kleines Beispiel .

Es werden immer "Variablen" (sind ja eig. Funktionen) erstellt , die als konstant (also const) vom Programm angesehen werden , wenn man es nicht explizit darauf hinweist , dass der Wert der Variablen veränderbar ist .

Man kann auch nicht einfach einer Variable einen neuen Wert (mithilfe von Variablen) zu weisen :
PHP Code:
let x ref 0 // ref heist dass die Variable veränderbar ist
:= x+// Doppelpunkt steht für Wertzuweisung 
Das funktioniert nicht , man bekommt die Meldung "the type int does not match the type int ref" , macht man es so :
PHP Code:
let x ref 0 // ref heist dass die Variable veränderbar ist
:= int ref (x+1// Doppelpunkt steht für Wertzuweisung 
Gibt es den Error , dass int ref keine Funktion ist , sondern ein Typ .
Und wenn man es so probiert :
PHP Code:
let x ref 0 // ref heist dass die Variable veränderbar ist
:=  xref (1// Doppelpunkt steht für Wertzuweisung 
Dann heißt es : "The type int ref does not support any operators named +" .
Ich habe also bisher nicht herausgefunden wie man das macht , ist mir aber egal , da die Sprache echt grausam ist und mich sehr stark an Brainfuck erinnert ...

Nichts für Ungut aber die Sprache ist die Hölle und soviel Zeilen Code habe ich auch nicht gespart ...
Shadow992 is offline  
Old 06/02/2010, 18:04   #4
 
elite*gold: 0
Join Date: Jan 2010
Posts: 1,197
Received Thanks: 246
Ich finde die sprache sehr unnötig, da microsoft schon so vile rausgebracht hat und die meisten sprachen großer schrott sind
.GlaDos is offline  
Old 06/02/2010, 18:06   #5
 
ster0's Avatar
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,763
Received Thanks: 346
hmm eher fürn müll würd ich sagen...
ster0 is offline  
Old 06/02/2010, 23:22   #6
 
John Dillinger's Avatar
 
elite*gold: 1
Join Date: Oct 2009
Posts: 4,325
Received Thanks: 477
Sowas löse ich im Kopf!
John Dillinger is offline  
Thanks
1 User
Old 06/03/2010, 01:37   #7


 
Gentleman Jack's Avatar
 
elite*gold: 0
Join Date: Jan 2008
Posts: 20,279
Received Thanks: 7,682
c++ wird noch für längere zeit die sprache bleiben
Gentleman Jack is offline  
Old 06/03/2010, 16:00   #8
 
elite*gold: 4
Join Date: Apr 2010
Posts: 1,177
Received Thanks: 102
leider hab ich von sowas KA
Artkore is offline  
Reply

Tags
f#


Similar Threads Similar Threads
was haltet ihr von der Is Exe
03/17/2010 - Metin2 Private Server - 4 Replies
Hey Leute habe mal eine exe für euern itemshop erstellt ihr könnt in einer ini datei den link zu euern Is eingeben und hab dan euern IS immer als exe im cilent oder woanders. was haltet ihr davon Müll oder Verbessern und Pub machen habe vor noch ein Game Patch System Ein zu bauen. macht noch ein paar vorschläge LG Casi http://img704.imageshack.us/img704/8646/nr1.png http://img704.imageshack.us/img704/9977/nr2.png
Was haltet ihr davon?
02/10/2010 - Metin2 Private Server - 28 Replies
Was haltet ihr davon? Screen mit Emo-Maske und bissel Paint Malerei^^ Yfrog - 0209220748
Was haltet ihr davon?
09/12/2009 - Metin2 Private Server - 5 Replies
Was haltet ihr von dem Video? Man beachte die vielen Kommentare+ Bewertungen... Ich weiss, dass das kein echter Server sein kann, doch was ist das sonst (wenn das überhaupt was gescheites ist) http://www.youtube.com/watch?v=tKNDsxv1jlY&NR =1



All times are GMT +1. The time now is 14:45.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.