I have a love/hate relationship with Erlang. I love that it is focused on the software engineering problems of the future, with emphasis on functional capabilities that eliminate shared state, concurrent programming, and robustness. I hate the syntax, and had to maintain side notes with the arcane interpretive command sequences necessary to run my code. The error messages were generally not helpful either.
The Day 1 & 2 exercises were a bit more difficult than those for the other languages, but I have some background in the functional programming paradigm. I suspect that people both new to the paradigm and the language will find these exercises challenging. I had a look at some sample solutions floating around on the web, and many were very verbose because they did not embrace the functional approach. The first Day 3 exercise took me a while to complete. The main thing I overlooked is that it makes a difference where you fail. If you fail before a synchronized method call is able to return, then the recovery hangs. If you process the return and then fail, then the recovery succeeds. There is probably a way to timeout these method calls to help with this aspect of recovery, but I didn't explore this, nor did I try the remaining Day 3 exercises.
I am beginning to think that the author of this book has a hidden agenda, which is to gradually teach a functional approach to programming (which is a good thing).
I liked this chapter, because it was an Ericson language. I didn't know that going in to this. I have programmed (professionally) with Epoc (another Ericson language). The two languages' syntax appear nothing like each other. Epoc is more C#/Java like.
Good pickup on the hidden agenda. It does seem like a theme.
I have a love/hate relationship with Erlang. I love that it is focused on the software engineering problems of the future, with emphasis on functional capabilities that eliminate shared state, concurrent programming, and robustness. I hate the syntax, and had to maintain side notes with the arcane interpretive command sequences necessary to run my code. The error messages were generally not helpful either.
The Day 1 & 2 exercises were a bit more difficult than those for the other languages, but I have some background in the functional programming paradigm. I suspect that people both new to the paradigm and the language will find these exercises challenging. I had a look at some sample solutions floating around on the web, and many were very verbose because they did not embrace the functional approach. The first Day 3 exercise took me a while to complete. The main thing I overlooked is that it makes a difference where you fail. If you fail before a synchronized method call is able to return, then the recovery hangs. If you process the return and then fail, then the recovery succeeds. There is probably a way to timeout these method calls to help with this aspect of recovery, but I didn't explore this, nor did I try the remaining Day 3 exercises.
I am beginning to think that the author of this book has a hidden agenda, which is to gradually teach a functional approach to programming (which is a good thing).