I have been in cross-roads – when the officially supported libraries are not in the language in which our app is coded. Have you? Did you re-write it or did you use it as it is?
I had both good and bad experience with that however, with enough experience, I can distinguish why it was good and why it was bad.
Officially supported library was in Node. However, we only had at that moment expertise in PHP. We went ahead and coded a library full of YAML in PHP. Our app became popular, and we just couldn’t scale without giving heavy cost for servers! We accepted PHP is there because it is too big to kill.
The Bad in Good
Officially supported library was in Node again. This time we re-coded it in Go. We were using in node as the usage was vast and it would take us three months at least to rewrite before we even began to use it. In Go, immediately we were able to reduce the servers and then most of the errors/bugs were caught in compile time. Yet it wasn’t worth it at all since server cost saved was nothing comparison to manpower we have put to keep it updated and retaining these talents!
Officially supported library was in PHP. We were already burnt once so shying away to use it. We wrote it – it took us little over 2 months. Damn, you have to write a lot in Go. Obviously we had reduced server cost a lot but since app demanded almost real time updates, we were able to pull it off without a lot of overheads like Redis and RabbitMQ.
As long as language is multi threaded we will be better off using it. If not, re-write it.