Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ch.9 #194

Closed
kapral18 opened this issue Oct 18, 2015 · 6 comments
Closed

Ch.9 #194

kapral18 opened this issue Oct 18, 2015 · 6 comments

Comments

@kapral18
Copy link
Contributor

// readFile :: Filename -> Either String (Future Error String)
// httpPost :: String -> Future Error JSON

//  upload :: String -> Either String (Future Error JSON)
var upload = compose(map(chain(httpPost('/uploads'))), readFile);

What is Either? What is Future? What is Future Error String? What is Data.Task?
Why do I have to go and dig into folktale to find out wtf I am reading? Why do I have to scramble all across the book back and forth to find out the actual implementations? The level of complexity in this one liner is already too much, to keep in one's brain. Is it that hard to detalize everything that is brought out new in the current context??

Up until ch.8 everything was pretty much understandable, everything more or less had its own self explanation, this one is crazy, and the examples in ch.9 are just so hard to grasp that I am ready to quit reading, but I don't want to I really want to understand, but I cannot because my operative memory is finished at step of trying to hold in the head all the meanings of these unicorn functions and their return values + chain + mapping over chain... holyssh...

@zerkms
Copy link

zerkms commented Oct 18, 2015

Why do I have to go and dig into folktale to find out wtf I am reading? Why do I have to scramble all across the book back and forth to find out the actual implementations?

Welcome to the future, when people complain about the quality of a free book

@kapral18
Copy link
Contributor Author

@zerkms you are obviously right, we are on github now commenting on an open-source work, what else could it be other than a free book??

And, btw, writing books isn't buying a furniture: one cannot adjust the quality of writing to amount of money. It is a form of art, of self-expression, you do it (thoroughly) or don't. Moreover, being open-source pushes the quality boundries even higher, because it's supposed to be a collective contribution.

So I try to pull request and create issues with things that annoy me personally, because I really care about this book, and consider it to be brilliant, and want it to be finalized and ready for translation and mass distribution as soon as possible. But with current quirks like mentioned above the probability of mass consumption and acceptance by people decreases exponentially and goes into category "for later content decomposition".

@zerkms
Copy link

zerkms commented Oct 18, 2015

Moreover, being open-source pushes the quality boundries even higher, because it's supposed to be a collective contribution

So, invest some personal time: explore what those abstractions are, what they mean and suggest the improvement. That's how you can be helpful.

wtf I am reading
holyssh

only demonstrate your disrespect to the author, who has made fundamental work

But with current quirks like mentioned above the probability of mass consumption and acceptance by people decreases exponentially and goes into category "for later content decomposition".

The thing is - the book IS about a rather complicated subject. And it implies you self-educate apart of the book. It's not a "Learn C++ in 6 hours" and not a "How to create an online store in 42 copy-paste-the-codez steps".

Just my 2 cents.

@kapral18
Copy link
Contributor Author

So, invest some personal time: explore what those abstractions are, what they mean and suggest the improvement. That's how you can be helpful.

@zerkms and I really do and invest time, but some things I still cannot figure out, killing tonns of time on that, and I think that other people will experience the same over and over again. And BTW issues section of github is explicitly for such cases, so you are totally opinionated with your "2 cents" here.

only demonstrate your disrespect to the author, who has made fundamental work

@zerkms this is called cutting out of context, these words have nothing to do with offending the author and the book especially. Wtf I am reading was part of question regarding blank url redirection to folktale, and holyssh part was regarding complexity that I cannot deal with in some examples throughout the book.

The thing is - the book IS about a rather complicated subject. And it implies you self-educate apart of the book. It's not a "Learn C++ in 6 hours" and not a "How to create an online store in 42 copy-paste-the-codez steps".

@zerkms you confuse definitions, "Learn C++ in 6 hours" is exactly a source of chaotic confusion and redirect urls without detailed explanations, which increases the complexity of grasping the topic to unbearable levels, which in its turn makes the whole point of writing such book absolutely meaningless.

P.S. Regarding what you say about complexity, I didn't find anything about preliminary preparations for grasping the book, could you point me to them? More over the book firmly states in it's title that it's Mostly adequate INTRODUCTION to FP by means of javascript lang, which kind of exposes the only requirement of knowing javascript language and that's pretty much it.

@xujihui1985
Copy link

functional programming is tough, the learning curve is deep, especially for programmer from oop world, it makes me frustrate when I start to learning it, the auther did a great job to write this book, he don't have the obligation to do that. I really appreciate that.

So instead of complain, just learn it, it won't take you too many time to google these terms, they all some basic terms in FP. Or you can contribute to this book.

@DrBoolean
Copy link

Hello! I appreciate the feedback and discussion here.

While all these new types may seem ad hoc and overwhelming, we've introduced all the major players and plan on sticking to them throughout the rest of the book. One finds the same types in all the major libraries for JS and in languages like Scala/Haskell/F#, etc.

So Either, for example, is defined and explained in Ch8 and we see the same thing in ramda-fantasy, fantasy-land, folktale, etc.

While each type has a whole subsection in chapter 8, Future is not defined anywhere. It's actually the outdated name for Task (which has a section in ch 8 as well).

Two things I see that can improve is naming Future -> Task and linking to previous definitions where applicable.

I'll update the Future signature now and think on how to reference definitions better (maybe a glossary or something).

@KtorZ KtorZ closed this as completed in ab1353b Feb 20, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
4 participants