No a o tom to celé je. Protože je Haskell lazy, píše se v něm kód, který funguje jen při lazy vyhodnocení a při strict ne. Na to není nic špatného. Jenom je potřeba počítat s tím, že lazy vyhodnocení má z principu vyšší overhead. To se vědělo od začátku. Pak ale někomu začalo vadit, že je Haskell moc pomalý a přemýšlel, jak ho zrychlit. Tak třeba bychom mohli udělat Haskell trochu strict... Co na tom, že rozbijeme existující kód... Mně se Haskell líbí, ale věci jako pragma strict jdou proti jeho designové čistotě a po pravdě moc nechápu, jak někdo z Haskell komunity může takovou věc obhajovat
.
Protože se lidi z Haskellu snaží být praktičtí a vzhledem k tomu, že strictness analýza prostě dneska není na úrovni toho, kde bude za 20 let, tak prostě zavedli seq? To je snad dobře, ne?
Chápu důvody vzniku, nepřenesu se ale přes fakt, že to jde proti designu a filozofii jazyka, jen kvůli řešení výkonnostních problémů.
Já tě vůbec nechápu... tady někdo vyrobí jazyk, na kterém se v podstatě testuje spousta nových ideí, které posledních 5 let přejímá spousta dalších mainstream jazyků, zároveň ho udělá tak, že je _použitelný_ na normální produkční programování - sice nemáme geniální strictness analýzu, ale tak když programátor pomůže, tak to bude rozumné - a ty se nemůžeš přenést přes to, že to není "filosoficky čisté"? WTF?
Sorry jako, takhle podle mě nevypadá mainstreamový jazyk vhodný pro produkční nasazení, ve kterém bych se odvážil psát nějakou větší aplikaci
Já bych se osobně dneska neodvážil psát nějakou větší aplikaci v jazycích, které nemají typový systém aspoň na nějaké podúrovni Haskellu. Nullpointer exception? Stack overflow? Padnuté přetypování? Spousta nechycených výjimek, protože jiné způsoby práce s chybami nejsou použitelné?
Hele, že tys v haskellu ještě nic pořádně nenapsal, nejde ti to, tak jsi se rozhodl, že to "prostě nejde"? Protože věc typu "foldl" je něco, na co narazíš, ale asi tak jednou za projekt, a to ještě . Takže jestli kvůli *tomuhle* ti připadá, že to není jazyk vhodný na produkci, tak jsi asi tak na té úrovni, že C-like jazyky nejsou vhodné do produkce kvůli tomu, že to používá pointry, o kterých sis právě něco přečet a přijde ti to hrozný? Někam vrazíš null, pak to dereferencuješ...a ono to spadne! Jak někdo něco takového může používat v produkci... A pak v tom C pár let programuješ, pointry se naučíš, občas ti to spadne, ale dá se s tím v pohodě žít...?