2022-09-23, 17:13
  #1
Medlem
bithaxs avatar
Så det är en massa töntar nu som håller på med "funktionell programmering" i C#.
Och de gör det genom att göra allting till statiska metoder.
Även extensions och liknande är då inte extensions utan vanliga statiska metoder som man kallar på med en mängd parametrar.

Så dessa herrar hävdar att detta är bättre och mer paralleliserbart och annat sådant.
Jag tycker bara det är en jävla röra.

Enda gången jag tycker det är bra med statiska metoder är när man använder dem för att skapa instanser t.ex. eller göra något som inte har någon logisk koppling till state. Annars känns det bara fult.

Tänk om vi skulle göra detta med List klassen. Så vi har då en ListContext som innehåller data och en mass statiska metoder t.ex. AddItem<T>(ListContext<T> list, T item); och ja.

Det blir ju bara som imperativ programmering utan objekt tycker jag. Typ som C, inte C#.

"Dot syntax" är ju ändå en del av språket. Men det ska man då inte använda.
__________________
Senast redigerad av bithax 2022-09-23 kl. 17:16.
Citera
2022-09-25, 12:36
  #2
Medlem
SockAccounts avatar
Suck.

Det handlar ju om vad man ska göra och hur complex det är.

Ett exempel där objekt orienterad programmering i c# får mig att vilja ta livet av mig själv är om jag vill läsa in en json fil.
Speciellt en json fil som varierar i nyckelfält och där fält kan vara okända sedan tidigare.

Men om man vill göra ex ett spel så kommer funktionell programmering att sätta käppar i hjulen väldigt snabbt.
Att inte kunna definera klasser och object samt förlänga dem så kan du inte bygga på väldigt lätt.

Allt handlar ju om vad du ska göra.
I min uppfattning så är funktionell kod rejält bra ibland eftersom vissa koncept blir snurriga och knasiga om du ska tvinga på objekt orientering.
Citera
2022-09-25, 15:04
  #3
Medlem
Citat:
Ursprungligen postat av SockAccount
Suck.

Det handlar ju om vad man ska göra och hur complex det är.

Ett exempel där objekt orienterad programmering i c# får mig att vilja ta livet av mig själv är om jag vill läsa in en json fil.
Speciellt en json fil som varierar i nyckelfält och där fält kan vara okända sedan tidigare.

Men om man vill göra ex ett spel så kommer funktionell programmering att sätta käppar i hjulen väldigt snabbt.
Att inte kunna definera klasser och object samt förlänga dem så kan du inte bygga på väldigt lätt.

Allt handlar ju om vad du ska göra.
I min uppfattning så är funktionell kod rejält bra ibland eftersom vissa koncept blir snurriga och knasiga om du ska tvinga på objekt orientering.
Frågan handlar väl egentligen om hur ergonomiskt det är att skriva funktionell kod i ett (främst) objektorienterat språk.

Det finns ju gott om stöd i språket att lösa saker mer deklarativt m.h.a. LINQ, exempelvis.

Att göra alla klasser statiska och helt ignorera stora delar av språket låter aningen bakvänt. Då kan man ju lika gärna använda F# om man nu vill hålla sig inom .NET.
Citera
2022-09-25, 18:38
  #4
Medlem
SockAccounts avatar
Citat:
Ursprungligen postat av erkki17
Frågan handlar väl egentligen om hur ergonomiskt det är att skriva funktionell kod i ett (främst) objektorienterat språk.

Det finns ju gott om stöd i språket att lösa saker mer deklarativt m.h.a. LINQ, exempelvis.

Att göra alla klasser statiska och helt ignorera stora delar av språket låter aningen bakvänt. Då kan man ju lika gärna använda F# om man nu vill hålla sig inom .NET.

Tyärr är det så att C är jävligt snabbt och det är därför man kör det.
Även så att det finns mycket fler bibliotek osv för C pga att så många använder det.
Citera
2022-09-29, 07:28
  #5
Medlem
IT-branchen är mogen nu, vilket gör att en stor andel jobb är derivativa eller rent av "indirekt påhittade" - även ingenjörsjobb. Organisationer växer och tappar kopplingen till vad de producerar.

Då blir det viktigt vad som är "coolt", och funktionell programmering är "coolt". Var glad att det inte är som för 5 år sedan, då det groteska JS var "coolt" (extra cool var man om man sa Vanilla JS och låtsades att det var ett eget språk).

Nu är det funktionell programmering som gäller, och Docker lever väl kvar som fixide också. Det är åtminstone till skillnad från JS inte strikt dåliga saker utan passar bra i många sammanhang.
Citera
2022-10-01, 23:39
  #6
Avstängd
konstapels avatar
Låg kunskapsnivå som vanligt. Ska man programmera funktionellt i .NET så använder man F#, inte C#.
Citera
2022-10-02, 23:27
  #7
Medlem
Citat:
Ursprungligen postat av konstapel
Låg kunskapsnivå som vanligt. Ska man programmera funktionellt i .NET så använder man F#, inte C#.
C# lånar mer och mer av F# för varje version som kommer.
Citera
2022-10-07, 12:07
  #8
Avstängd
konstapels avatar
Citat:
Ursprungligen postat av sebastianlarsson2
C# lånar mer och mer av F# för varje version som kommer.

Vad specifikt tänker du på då?
C# är ett nästan extremt imperativt OO-språk och att det med knapp nöd går att programmera funktionellt i det innebär inte att det är en bra idé att göra det.
Citera
2022-10-17, 12:32
  #9
Medlem
PissBusss avatar
Citat:
Ursprungligen postat av konstapel
Vad specifikt tänker du på då?
C# är ett nästan extremt imperativt OO-språk och att det med knapp nöd går att programmera funktionellt i det innebär inte att det är en bra idé att göra det.

Nä, det stämmer inte. C# är objektorienterat men knappast bundet till en imperativ stil. Finns väl utbyggt stöd för anonyma funktioner, HOF och oföränderlig data, och det är helt upp till dig om du håller dina funktioner rena, använder LINQ, m.m. eller skriver Java med det som om du är nätt och jämnt självlärd och året är 1996.
Citera
2022-12-27, 15:32
  #10
Medlem
Med record structs tar C# ett rejält kliv åt det funktionella. Trevligt tycker jag, funktionell programmering med structar som är imutabla är trevlig för många businessproblem.
Citera
2023-01-01, 20:43
  #11
Medlem
Citat:
Ursprungligen postat av CyberVillain
Med record structs tar C# ett rejält kliv åt det funktionella. Trevligt tycker jag, funktionell programmering med structar som är imutabla är trevlig för många businessproblem.

Jag håller med, FP är fan riktigt schysst och jag känner att jag för varje dag graviterar mer mot FP i dagliga problem. F# har fan några riktigt najs grejer som gör det lite enklare att lösa mer imperativa problem men efter att ha använt det ett tag så känns det bara som en smörja med några väldigt intressanta designval.
Citera
2023-01-02, 13:22
  #12
Medlem
Citat:
Ursprungligen postat av ralademo
Jag håller med, FP är fan riktigt schysst och jag känner att jag för varje dag graviterar mer mot FP i dagliga problem. F# har fan några riktigt najs grejer som gör det lite enklare att lösa mer imperativa problem men efter att ha använt det ett tag så känns det bara som en smörja med några väldigt intressanta designval.

Tycker det passar bäst för lokala algoritmer sedan är den övergripande arkitekturen mer klassisk OOP. Fast med composition istället för inheritance självfallet
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in