我的问题是,如果 FlatBuffers 比 Protobuf 快得多,为什么它没有比 Protobuf 更广泛地使用?
它曾经是一个实验性的东西,但它现在似乎已经足够成熟但还没有被广泛使用。似乎人们大多将 Flatbuffers 用于移动应用程序/游戏。为什么会这样?
我的问题是,如果 FlatBuffers 比 Protobuf 快得多,为什么它没有比 Protobuf 更广泛地使用?
它曾经是一个实验性的东西,但它现在似乎已经足够成熟但还没有被广泛使用。似乎人们大多将 Flatbuffers 用于移动应用程序/游戏。为什么会这样?
有几个原因:
正如您所提到的,flatbuffers 主要用于应用程序和游戏中。这是因为这是他们最好的应用程序。由于 flatbuffers 更快,它们的主要应用是在低延迟应用程序中使用它们。它在该领域越来越受欢迎。
当现有技术运行良好时,人们/组织通常不想为更新的技术投入时间和资源。我亲自为一个大型组织研究了一个涉及平面缓冲区的概念证明。在做出使用该技术的最终决定之前,存在许多障碍。遗留系统仍在使用 xml 和 json,更不用说考虑 protobufs 了。
我只在工作中使用过 Protobuf。我认为这个问题的答案对于所有新技术的采用曲线都是一样的。“如果我们使用的东西运行良好,我们为什么要转换并不得不投资于培训并接受新的固有错误风险”。而且我还发现,很少一部分开发人员会花大量时间学习最新最好的工具。大多数人发现一些有用的东西并继续使用它,直到他们被迫改变漏洞或性能要求。
我认为有多种因素: