Diskuze: Dotaz na zkušenější
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
To je moc dobrý dotaz. Napřed si ale dovolím tě opravit, budoucnost
programování není tak úplně ve funkciálním přístupu, ale v
multiparadigmatickém, ve kterém ta funkcionální část bude
pravděpodobně hrát čím dál větší roli.
Důkazem toho může být např. Java 8, která se snaží dohnat funkcionální
vlak, novinky v C# jsou také z funkcionálního světa. Ovšem tyhle jazyky
jsou tak komplikovaně navržené, že spousta těch novinek vede k mému
názoru jen k obrovskému zmatení.
Pokud tě to zajímá, můžeš si přečíst tuhle knihu:
http://it-ebooks.info/book/1419/
Pokud tě od funkcionálního programování neodradí, pak už nevím, co by
mohlo. Problém je totiž v tom, že u těchto jazyků to pak dopadá, jako
když kočička s pejskem vařila dort, alespoň podle mne
Teď k vlastnímu dotazu. V čem jsou přednosti FP, alespoň jak to tvrdí oficiální propaganda.
1/ Méně chyb v kódu.
2/ Stručnější kód
3/ Paralelní programování je snazší
4/ Není potřeba řešit komplikované návrhové vzory
5/ Lazy evaluation
atd
Víc si můžeš přečíst tady:
https://www.haskell.org/…Introduction#…
Já si hlavně nedookážu představit jak by takováhle aplikace běžela, dokážu si představit např. program který vypočítává ze zadaných údajů deseti stránkovou rovnici ale praktické využití např. u her, je zvláštní hlavně jsem v žádném z kódů na které jsem narazil neviděl jakýkoliv kontakt s hardwarem, pokaždé kód jenom něco počítal...
No, nevím co myslíš tím hardwarem, ale snad tě přesvědčí například toto:
http://fsharp.org/…s-and-games/
Fsharp umí pracovat s objekty stejně jako csharp
I když síla f# je někde jinde
*Our first delivery is approaching rapidly and F# has proved itself as a real life-saver. We started off using C# in many places but have since then moved almost entirely into F# due to its ability to reduce the amount of code required and its simplicity when developing massive parallel computations. The performance is phenomenal. We can now re-calculate the entire bank portfolio from scratch in less than a second and the response-time for single deal verification calculation is far below 100 milliseconds(the original demand was 200 milliseconds to make the application usable for electronic markets). Although some gains are to be attributed to how we have built our calculation models, F# made it possible for us to implement our algorithms and techniques with very little code and with a huge similarity to the original mathematical models and regulations (which is important for verification of correctness). We have also been able to use the support for Async-workflows producing code that is simple and clear and easy to understand but still runs in parallel when required.
The present application contains 35 to 40.000 lines of F#-code and an equal amount of C#-code. However, our estimate is that the F# code contains at least 80% of the functionality (which is pretty amazing!). Our experience shows us that the number of code lines shrinks with a ratio of 1/2 to 1/4 by just porting functionality from C# to F# (not counting single character or empty lines in the C#-code). We have by remodeling increased the ratio to the area of 1/5 to 1/8, where the remodeling involves replacing object oriented constructs with functional ones (and actually removing mutable states). One example from last week was a limit-utilization module written in F# but using an object-oriented approach containing +300 lines of code. I rewrote it to below 70 lines of code just by shifting paradigm (and the rewrite made it much easier to understand and verify)!*
Zobrazeno 5 zpráv z 5.