Apache Thrift和谷歌的协议缓冲区最大的优点和缺点是什么?

我最近用gRPC和proto3一起使用,我注意到required和optional在新语法中被删除了。有人能解释一下为什么在proto3中required/optional被删除了吗?这样的约束似乎是