**spoiler alert** The book is not really written for novices and expects the reader to have played around with Erlang for some time.
While the book is **spoiler alert** The book is not really written for novices and expects the reader to have played around with Erlang for some time.
While the book is rich in explanations , diagrams and theory regarding Erlang and OTP , the reason it shines is its hands-on , goal oriented approach toward building systems.
The book provides rich examples on how to use erlang behaviours, distribution, releases ,interop , drivers , tracing , tcp and http servers , performance tracking .
This being said , the place where it really shines is developing a caching system.
We get to build a caching system starting from Erlang behaviours , then we add distribution (really really amazing part ! ) and mnesia. We then add an interface application on top. Then the author goes to great depths to use interoperability with Java using Drivers and NIF's in order to add a hard storage behind this cache in the form of Apache HBase.
The fact that all this add-ons are made upon this caching application which spans across multiple chapters aspect is both a plus and a minus from my part.
Its a plus because you see how an application evolves, adding layer on top of layer and the way you abstract away implementation details.
Its a minus because I felt that many of this features should've been treated as standalone apps. I do not really like to check/remember the implementation details from some 3 chapters ago.
All in all a solid book and to those interested in Erlang/OTP i can definetly say : You won't regret reading it !...more
Unfortunately i have read this book after Martin Kelppman's Designing Data Intensive apps and probably this is the reason i rated it poorly.
The book sUnfortunately i have read this book after Martin Kelppman's Designing Data Intensive apps and probably this is the reason i rated it poorly.
The book starts really good by describing the intetnal systems that are encompassed in any dbms ( Connection Listener layer , Query parser+ optimizer layer , execution layer and of course the storage layer).
I wanted the book to explore more on this subject , how the components are drsigned and how they deal with concurrency etc.
The book then took a deep dive into tree-based data structures ..as in really deep. I found myself at times wondering why am i reading this.It was way too terse.
Now after this part the book became interesting once again by the time it started tackling distributed transactions,consensus ,replication,byzantine faults, paxos algorhitms.
I was already familiar with all of those which in my humble opinion were tackled slighty better in the first book i mentioned.
All in all a good book , but i wouldn't classify it as complementing Martin Klepmann's...more
This is one of the best books i have read so far regarding concurrency. Although i am usually skeptical about reading books for a specific language , SThis is one of the best books i have read so far regarding concurrency. Although i am usually skeptical about reading books for a specific language , Stephen did a tremendous job with this one and i have already adopted a bunch of hia techniques right after reading his book.
This book is like a wikipedia for concurrency/parallelism, reactive and asynchronous programming. The author goes to great lengths to display all kinds of nasty scenarios that you could get yourself into when developing complex code and pragmatically offers the most elegant solution(s) from worst to best.
The aspect that i loved about the book is that he doesn't focus on the basics of concurrency because as he puts it "there are a plethora of resources out there".He instead focuses on the newest frameworks and libraries (thoroughly tested by the .NET team of course) that will help you get your job done with minimal effort and headaches. He is basically teaching the reader how to write a modern .NET application and how to leverage the goodies of the language.
He treats Rx,TPL Dataflow (mind blowing for me) , PLINQ , regular TPL , async-await , concurrent/immutable collections , events , task schedulers , synchronization contexts, cancellations , synchronization primitives and many more.
Best .NET book i have read so far and one of the best resources on concurrent programming !
"The moment you write -Thread.StartNew()- your application is gone into legacy code."...more
I feel i must start with a statement : This is hands down THE BOOK for anyone interested in learning Erlang.
Even though Erlang as an ecosystem (languagI feel i must start with a statement : This is hands down THE BOOK for anyone interested in learning Erlang.
Even though Erlang as an ecosystem (language , platform) is huge , the author did a terrific job in separating it in some big sections: -basic erlang (syntax), BIF's (processes, links and monitors, refs,exceptions...) ,OTP and its behaviours ,deployments, distribution, testing, dyalizer and much more
The book is written in an entertaining and humoristic manner. It is heavy on explanations , tips and complete code examples (top down approach usually).
The only drawback to this book is that as a developer after writing my first app i found the build toolchain used in the book is no longer the preffered option by the Erlang community .The new way of building your apl is via a tool named rebar which i found not that straightforward for me. I wished the author would cover it also.
Aside from this little impediment the book is great and i recommend it to anyone interested in Erlang !...more