Transports and protocols have tradeoffs (Raw TCP with binary protocol is fast but tough to manage)
Thrift abstracts transports and protocols, so we can have fun programming.
Serializing and deserializing objects takes time. Thrift type system in CPP presumably helps