For Part 1 (Foundations) alone, with the chapters on mutex, condition variable and wait group, the book deserves 4 stars. These chapter offers entertaining illustrations, with hands-on demonstration of the concepts of previous chapters being building blocks for the succeeding ones.
Part 2 on Channels and Part 3 on further discussion do not go into much depth for my taste.
Overall, still a great learning resources for concurrent programming using memory-sharing primitives.
2.5/5 stars
I whole-heartedly agree with Stevie Kincade's 2-star review and this review from Simon McNeil.
2 things I remember about this book
- the nostalgia & sentimentalism of the first half
- the exceptional quality of the last 100 pages
The first thing got lost in the English translation, due to my assumption that the Vietnamese translator is as much faithful as possible to the original text
To give an example: After getting back from hibernation, Zhang Beihai meets the Asian Fleet commander in charge for the first time: “Zhang Beihai's words touched something in the commander's heart. He turned and looked out through the window at the river of stars, like the upper reaches of a long river.” In the Vietnamese text, it's not the “the upper reaches of a long river”, but is “phía thượng nguồn dòng chảy thời gian” (literally translated as “the upper reaches of the flow and ebb of time”).
Not only the English sentence sounds clumsy, it strips out the sensation of being humbled and defeated by time.
As a polyglot programmer, the process of going through how-to-define-a -variable, how-to-define-a -function, how-to-use-text-editor, etc. when reading through an introductory book of a new programming language becomes really tedious. What I care about is not what do the language features do, but how are they designed that way, what problems would occur if these features are abused/misused/misunderstood, etc. To answer these questions, I often find myself wandering around GitHub libraries for hours reading code and jotting down “exemplary code snippets” in which language features are well-demonstrated. I don't often expect someone to curate these examples for me.
“Getting Clojure” and the Haskell book (coincidentally, written by a former Clojurist who now found sanctuary in Haskell) have been the only 2 times I could count on a introductory material for the whole process of learning a new programming language.
With that being sad, this book worth more than just 5/5 stars!
I really enjoy Higginbotham's writing style.
However, given that I've got introduced to functional programming through Haskell and got introduced to Lisp through Racket, and got drawn to Clojure because of its reputation for pragmatism, this book is not my cup of tea!
Still thank this book for introducing me to Emacs <3
I think all the chapters from the beginning to chapter 18 on “Monads” are solid, and you can be productive with Haskell if you left at this point. The rest are not necessarily practical; and sometimes I felt that these chapters are quite lengthy & need more editorial support. If I need to summarise the book from chapter 19 to the end in one sentence, it would be, “You should read “Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming” by Simon Marlow for better understanding”.
Moreover, a lot has changed since 2017 when the book is published. I've worked through Hoogle and GitHub a lot to worked out which libraries' API has been changed in order to finish the chapters that need third-party libraries.
Still, I've learnt a lot through chapter exercises and the authors' instructive guidance!
P/S:
I encountered some comments stating that this book isn't well-organised. IMO it's not something to be bothered. I'd not fully understood chapter 6 on “Typeclasses” until I finished the chapter 16 on “Functor”. As Chris wrote early in the book, because learning is a personal journey, you don't need to strictly follow the order the authors specified (I did jump around a lot).
I highly appreciate this novel for its thematic ambitions. ‘White Noise' shed lights on superficial aspects of modern consumerist societies and on our modern day obsession with data to the point of worshiping them. Despite all the characters' desperate attempts of collecting data and making sense of their life events, they both consciously choose to remain ignorant as artificial attempt to cling to illusional sense of control.
However, this story is worthless. The characters lack personalities. The philosophical dialogues lack epistemological foundation, which make them sound dull and vague. When I reached the final page of this book, I found myself having wasted time reading Jack's self-justification for his irresponsibility and pretentiousness. This novel has no relevance at communities that value intimate human connections over intellectual hypocrisy.
Với Số Đỏ Vũ Trọng Phụng thể hiện năng lực quan sát xã hội sâu sát nhưng phải đọc Làm Đĩ ta mới thấy Vũ Trọng Phụng quả là một văn sỹ vừa thực tâm vừa thực tài. Đọc Số Đỏ ta tưởng VTP nhìn đời bằng cặp kính đen, nhưng đọc đến Làm Đĩ ta nhận ra ta lầm: giữa một xã hội nền tảng đạo đức văn hoá xuống cấp, nhiễu loạn đến thế, không những nhà văn họ Vũ hoàn thành trọng trách của người cầm bút là giúp độc giả tìm được một điểm nhìn đúng đắn cân bằng giữa khoa học Tây phương và giá trị truyền thống Á Đông, ông còn nhân đạo để cho những lời quý báu ấy được phát ra từ một người đàn bà đã đến hạng vứt đi rồi.
Làm Đĩ, cái tên nghe thấy trướng tai, nghe suồng sã nhưng hoá ra nội dung lại tỷ mỉ chu toàn: văn phong của Huyền dù màu sắc của con nhà Nho có học nhưng cũng không kém hiện đại ở cách Vũ Trọng Phụng duy trì những đoạn trường suy tưởng (stream-of-conciousness) một cách tài tình. Quả thật kinh ngạc vì những năm 1930s mà văn đàn Việt mình có một cây bút cập nhật tinh hoa Tây phương nhạy và sức viết dồi dào đến thế!
I should have given Peter Zinoman 5* for his well-researched introduction. The essay did more than perfect in heightening my re-reading experience. Zinoman deserves recognition for his analysis of nature of Vietnamese Modernism.
Despite enjoying the introduction so much, I found Zino's translation quite disappointing. Many characters' signature catchphrases such as “Em chã”, “Thếnày thì nước mẹ gì”, “Biết rồi, khổ lắm! Nói mãi” (respectively translated as “No way!”, “What a pain in the -“, “I know! I know! What a pain! Shut up, already”) get lost in translation. Vu Trong Phung's ironical remarks, what make Dumb Luck so exquisite in its original text, were not well-delivered in translation. For instance, in chapter VI: “Thật là một ông lang băm có danh vọng!” (literally means “What an ambitious charlatan!”) was translated into “His [the quack's] reputation for quackery is unrivaled”. There are many mistranslations of this kind, though doesn't affect the plot as a whole, they ruined the charming of Vu Trong Phung's prose.
I'm not nitpicking. I just feel like this translation could have been done justice if Peter Zinoman had paid more attention to details. Anyway, thank you, Zinoman and your team for introducing this best Vietnamese modernist novel to international attention!
Trivial, nonsensical and tedious. This book left me wondering if I am too old for this kind of books. But in another hand, I still enjoy Dr. Seuss... so am I old? :) And by writing these I just realised I'm talking nonsense to myself. Who am I gonna be? Where did my old self go?
And ultimately did I start to replicate this one-dimensional Alice? 😂 lmao
By the way the audiobook narrated by Scarlett Johansson made this “Alice's Adventure in Absurdland” a bit more lively to me. Thank Johannson!