Správičky 2 799 Blogy 945 Fórum 18 557

Zaujímavosti zo sveta

13.05 Antispam report Exchange 2013/…
blogCZSK
Nedávno jsem se setkal s prosbou, zda je možno udělat report nad funkcionalitou antispamu Exchange a trošku jsem narazil na problém, jak dos…
13.05 Pozvánka: konference, workshop…
blogCZSK
Níže jsme pro vás připravili přehled akcí, které jsou pro vás připraveny v příštích několika týdnech. Coding Bootcamp 19. 5. 2016 – Praha V …
12.05 Pozvánka: Nástroje a služby pr…
blogCZSK
Od vývoje přes nasazení po správu napříč platformami Rádi byste optimalizovali vývoj svých aplikací na různé platformy a nevíte jak? Zajímá …
12.05 System Center Configuration Ma…
blogCZSK
V minulém díle jsme nainstalovali SQL Server, který je nutný pro běh Configuration Manageru. Dnes nás čeká instalace WSUS, což je produkt, j…
11.05 Hovory od křivého stolu (5)
blogCZSK
A máme tu další díl českého video seriálu Hovory od křivého stolu (5). Pro toto vydání HKS jsme se ponořili do hlubin naší budovy a natočili…
11.05 Pozvánka: Coding Bootcamp Meet…
blogCZSK
V rámci pražského Coding Bootcampu budete mít možnost se naučit vše, co potřebuje moderní webový vývojář. Abyste měli představu, co bude náp…
10.05 Zajímavé kurzy a videa–MVA a C…
blogCZSK
I tento měsíc vám přinášíme výběr nejzajímavějších videí, kurzů a záznamů konferencí. Veškeré kurzy pak naleznete na portálu MVA a výuková v…
10.05 Azure Site Recovery – VMWARE (…
blogCZSK
Připravil jsem pro vás sérii článků, zabývající se technologií Azure Site Recovery. Konkrétně v šesti na sebe navazujících článcích se dozví…
09.05 DataScript: akční nabídka škol…
blogCZSK
Připravili jsme pro vás nabídku školení On-Demand. A jaké jsou výhody? nižší cena učíte se z pohodlí svého domova nebo kanceláře přístup mát…
05.05 System Center Configuration Ma…
blogCZSK
V předchozím díle jsme si nainstalovali prerekvizity potřebné pro běh Primary Site Configuration Manageru a také jsme připravili doménu pro …
20.04 Odkazy z prohlížeče – 20.4.201…
atasoft
CodeProject Video Transcoding and Streaming on the fly – CodeProject – přímo v prohlížeči (?) A Sample Code Submitted for Senior C# …
11.04 Linq a pracovní pohovor
mstr
Zjišťovat znalosti Linqu u pracovního pohovoru může být obtížné - s Linqem se asi setkal každý C# programátor, ale vždy záleží, do jaké hlou…
08.04 Linq - k čemu použít Aggregate…
mstr
K jednomu z předchozích článků, ve kterém jsem dal k dispozici cheatsheet pro Linq, se mne jeden známý zeptal, k čemu že je dobrý Aggregate …
27.03 Bezpečnost – věc veřejná
Poslední březnový den se v Praze uskuteční jednodenní konference o počítačové bezpečnosti SecPublica 2016. Jejím heslem je "securitas, res p…
16.03 Příklad na pohovor s programát…
mstr
Na blogu jsem uveřejnil několik příkladů z pohovorů s uchazeči o místo programátora. Dovolím si tedy uveřejnit jeden z dalších možných příkl…
15.03 IDisposable v příkladech
viga
Rozhraní IDisposable slouží k uvolnění “unmanaged” zdrojů. Nejčastěji to jsou různé objekty z Win32API (otevřené soubory, síťové spojení, GD…

Funkcionálne programovanie v C#

Liero - 18. 10. 2017 11:05 - 1331 views

Nebolo to tak dávno, čo som tvrdil, že mnohé nové prvky v C#, keď sa pospájajú, smerujú k funkcionálnemu programovaniu - Budúcnosť C# bude čoraz viac funkcionálna

Teraz som natrafil na video, ktoré to celkom pekne ilustruje:

Functional Programming in C# by Robert Green and Ed Charbeneau

Samozrejme nikto netvrdí, že treba teraz prepisovať svoj kód takýmto funkcionálnym štýlom, ale je minimálne dobré si to nacvičiť, prípadne precvičiť si schopnosť čítať takýto kod.

C# totižto už dávno nieje len jazyk určený na tvorbu veľkých projektov.
Funkcionálne programovanie môže byť praktické pri písaní skriptov a C# je dnes vďaka roslynu aj skriptovací jazyk, viď C# Scripting, CS Script, Unity3d, alebo U-SQL.

Zároveň si treba uvedomiť, že C# sútaží o priazeň programátorov s JavaScriptom, Scalou alebo Swiftom, takže sa na to treba pozrieť aj z tohto kontextu.

BTW, pri diskusii o tom, či tieto funkcionálne prvky robia zo C# lepší jazyk si vždy spomeniem na diskusiu o tom, či OOP patrí do JavaScriptu.

 


Daniel Turan

MCPD Web Developer, Certified Avanade SCRUM Professional Developer;
WPF, Silverlight, Windows Phone, Windowse Store app developer,
TypeScript, JavaScript

Článkov: 1, Správičiek: 89, Príspevkov vo fóre: 1503, Príspevkov v blogu: 0, Bodov: 9355
Najaktívnejší č.: 6
Profil používateľa

Reakcie

# RE: Funkcionálne programovanie v C# 18. 10. 2017 18:48:38 vlko

Ja ti nevim. Taketo "funkcionalne" programovanie cez generika vyzerajú dost ukecane (teda v porovnaní s f#). Viem si skôr predstaviť funkcionalny kód s nejakou formou latebinding generikach alias late binding na interface, co možno bude v c# 8.

# RE: Funkcionálne programovanie v C# 20. 10. 2017 0:00:01 T

vyuzit funkcionalny pristup na riesenie niektorych problemov je fajn, v nadvaznosti na vlka ale zvacsa lepsie siahnut to F#. V principe su ale obe paradigmy programovania rovnocenne. Ja sa skor bojim, ze vacsina ludi si pod funkcionalnym realne predstavuje proceduralne.

Spravne je asi povedat, ze dlhodobo c# pribera nejake funkcionalne prvky.

Pointe poslednej vety som neporozumel. Neviem presne o akej diskusii je rec, ale pre fanusikov OOP aj pre fanusikov funkcionalneho programovania je aktualne v JS len jedina moznost, nejaka nadstavba, ktora "simuluje" niektore podstatne vlastnosti charakteristike pre OOP fmwk resp. funct fmwk. JS je pri "zjednodusenom" pohlade rovnako objektovy jazyk ako funcionalny.

# RE: Funkcionálne programovanie v C# 20. 10. 2017 10:18:18 Liero

@T: "Neviem presne o akej diskusii je rec"
No tak napriklad ked si ty kritizoval extension metody, pretoze to nepasuje do OOP. Uz si nepamatam argumenty, ale predpokladam ze si tym myslel ze v OOP je o tom, ze data a behaviour maju byt spolu.

Podobne niektori popredni JS developeri kritizuju ES6 triedy v JS. IMHO triedy v ES6 niesu ani tak o OOP ako skor o snahe vyjst v ustrety toolingu, ale nemam na to ziaden silny nazor

# RE: Funkcionálne programovanie v C# 20. 10. 2017 13:50:40 T (anonym)

@liero: ani ja si nespominam na presny kontext...ano, je to o organizacii kodu a encapsulacii. Jedna vec je mixovanie (a bohuzial v pripade extension metod to je zvacsa o proceduralnom mysleni nie funkcionalnom) roznych pristupov... druha vec pisat riesenie napr. OOP a pouzit v ramci riesenia specifickej(a ohranicitelnej) casti aplikacie funct pristupm kde to dava zmysel.(napr. state machine je dobry priklad, kedy je OOP brzdou)

Kto je popredny developer? :-) Nebudu to skor nejaki prominentni developer? :-) Skoda, bolo by dobre vediet co presne hovoria.

Neviem uprimne, ak to pomaha toolingu, ale je faktom ze oop nadstavby vznikaju x rokov a toto pomoze celej tejto komunite. JS ako takemu to neublizi.

# RE: Funkcionálne programovanie v C# 20. 10. 2017 21:42:46 Liero

Ked mas v javascripte ES6 triedu s funkciami, vlastnostami, mas kvazi definiciu a toolingu staci parser na to, aby vedel robit intelli sense. A vies to pekne doplnit jsdoc komentarmi, pripadne type anotaciami (typescript, flow).


Ked pouzivas ctor functions, iife, a pod, tak potrebujes spustit ten kod v nejakom emulatore, ako to robi napr reshaprer

# RE: Funkcionálne programovanie v C# 20. 10. 2017 21:43:59 Liero

Aky je rozdiel medzi prominentnym a poprednym? :-)

# RE: Funkcionálne programovanie v C# 21. 10. 2017 11:20:20 T

@liero: ok, v tomto zmysle urcite ano, tooling sa robi jednoduchsie.
narazka bola na to, ze nie kazdy "prominentny/celebritny" programator je "popredny" z hladska kvality toho, co po sebe nechava alebo toho, co propaguje...napr. svojho casu ayende...

Pridať reakciu

Titulok:
Meno:
Url:
Koľko je 22 + 4?
(ochrana proti spamu)
Komentár:

Najaktívnejší užívatelia
1. 37750 b. photo vlko
2. 21315 b. photo T
3. 15955 b. photo spigi
4. 15450 b. photo Anonymous
5. 11120 b. photo dudok
6. 9355 b. photo Liero
7. 6885 b. photo siro
8. 6245 b. photo slavof
9. 5355 b. photo duracellko
10. 4445 b. photo xxxmatko