forskællen på c# og f#

Tags:    c# f# framework


Jeg overvejser om jeg skal til at lære endnu et sprog. Derfor vil jeg gerne om nogle ved hvad forskellig på C# og F#. Samtidig med jeg faktisk har mine overvejelser om jeg måske skulle koste mig over C++.
Det har nogle IT-venner nemlig rådet mig til efter 10 år med sprogene VB.Net, C#, php, og Java.

Jeg tænker ikke her på selvet syntasken, men istedet fx på hastigheden. Og det fx. i F# er mulighed med multi baser. Jeg er godt nok træk af det ikke er muligt i C#.
Jeg ved muligheden findes i C++ og måske skulle jeg bare kaste mig ud af lære det sprog. Men mit problem i C++ er jeg kan ikke finde ud om hvordan jeg bestemmer om det skal kompiller til x86 eller x64 i Visual Studio 2010. Samtidig syndes syntasken virker lidt "dum" eller forældet.

Jeg er på ingen måde ud på en regionkrig.



Indlæg senest redigeret d. 22.06.2013 09:51 af Bruger #15118
2 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
F# er et funktionelt programmerings sprog, det er c# ikke :)

Hastigheden burde være ca. ens da de begge bygger på .NET




F# er som allerede fortalt et funktionsbaseret sprog.
Førhen brugte man meget mere funktionsbaseret udvikling, og er samme princip du arbejder med avanceret SQL og scripting på at du har nogle metoder du kalder men ikke nogle intelligente objekter med strukturer du kan gøre en masse ved - kun ren data.

C# er objekt orienteret programmerings sprog. Så her er tankegangen og arbejdsgangen anderledes.

Vil vove og påstå at til datatunge algoritmer og talknuseri der vil du sandsynligvis få en smule bedre performance i F#.
Udfordringen kan være at nogle gange kan det blive lidt svært med avancerede algoritmer (specielt hvis du kommer med en baggrund hvor du er vant til C# og objekt orienteret tankegang).

Hørte for ca. et år siden om at der er kommet en ny rigtigt intelligent compiler til F# faktisk, specielt hvis du bruger noget hvor du tilgår noget med services som normalt skal opdateres så gør denne det for dig automatisk rigtigt hurtigt on-the-fly.
Taleren var en med noget doktorgrad som havde lavet sit studie på at undersøge F# og sætte sig dybere ind i det for en udfordrings skyld, og han var blevet meget meget bidt af det fordi han kunne få enormt meget performance ud af det.
Bagefter snakkede vi lidt og jeg spurgte om det var lidt alla du gerne vil holde nogle beregninger i SQL inden de kommer ind i din model, og mente han var en meget fin sammenligning. Bare fordi der er noget der er optimeret til at klare noget bedre.

Så tror sagtens du vil kunne se performance ændringer i F# vs. C#, men det kommer meget an på din kode, din struktur og kald, og hvad præcist det er der skal arbejdes med. Man skal holde tungen lige i munden, for ellers kan du nok også få det til at performe dårligt.

Jeg siger go for it :D



t