After working some contracts using Erlang and Cassandra (Thrift) going back to PHP/MySQL has been a bit painful. The laid back client, and someone interesting work has made it bearable, but I am missing OTP profoundly.
A few months ago, I had not touched Erlang/OTP, yet it rapidly took the number one slot in my kit. It isn’t all roses, but what it brings is huge, and for me has been game changing:
- Ultra cheap processes and message passing allows me break the application on logical boundaries, rather than performance driven ones.
- Built in clustering support, share nothing design and let it fail principals allow me to change the way I build applications, and allow me to easily (lazily) take advantage of multiple cores.
- With the kit I get via Erlang, I am finding myself with far less throw away code, I am moving from proof of concept rapidly and directly, a refreshing experience.
- Take the above three points and add in OTP and some very good guidelines for building complex applications, as well as one of the best online communities I have been a part of, with resources like this: http://learnyousomeerlang.com/ (which has my favorite art ever) and you have a winner.
I realize Erlang doesn’t have much popular support, and will probably never get mainstreamed, but at this point that just feels like a competitive advantage. The experience for me has been profound, and very different than my experience with Scala, which felt to me like more of the same (lots of other java platforms, but now with Actors!)… I didn’t feel the radical shift I felt with Erlang.