当你停止收集一个堆, 让每个协议选择一个给你。
每个工程队都有一个堆.
我们有七个,我们没有决定其中任何一个。
Nevai是一个自发托管的,由端到端的加密工作空间,建立在Matrix上.
其中一部分是一组桥梁——25个——连接Discord,Telegram,WhatsApp,Signal,iMessage,Message,Instagram,Slack,Google Chat,LINE,WeChat,KakaoTalk,Skype,GroupMe,SMS,电子邮件,IRC,XMPP,Zulip,Matter,Revolt,Mumble,QQ,X和LinkedIn在一个地方.
我们开始打算标准化。
我们最后得到了这个: 语言桥去 12 TypeScript 5 Python 4 JavaScript 1 Kotlin 1 PLpgSQL 1 Slice 1 没有人坐在一个房间里选择了这个分配.
这是你得到的 当协议决定。
在协议被逆向工程WhatsApp,Signal,iMessage,Messenter,Instagram,Telegram,X,WeChat,QQ,Skype,LinkedIn,电子邮件中获胜.
十二道桥梁,原因每次都是一样的:这些协议的成熟的库都用"去"来写.
这不是说去成为更好的语言。
这是关于十年反向工程工作恰好生活的地方的说法。
如果您想要在不运行浏览器会话的情况下说出WhatsApp的协议,请使用存在的内容,而存在的内容是Go。看看边缘周围的漏出的内容,图片会变得更清晰:信号是86% Go和13% C — C是libsignal,你不会重新执行libsignal。 iMessage为96%Go和3%Object-C——因为iMessage运行在macOS上,在某些时候,你必须用自己的语言与操作系统交谈.
这些百分比是诚实的。
桥梁主要是你的代码 和少量的其他人的, 而小的金额通常是最重要的部分。
Python在API无聊的谷歌聊天,Zulip,KakaoTalk,LINE中获胜.
记录了HTTP APIs,JSON in和JSON出道,不需要协议考古.
这里没有业绩论证。
这些桥梁没有吞吐量限制;它们正在等待别人的费率限制。
重要的是,当API改变时,你能够多快地改变它们, 而对于Python来说,你能够轻松地获胜。
其中两种是混合的——LINE为55%Python和44%JavaScript,KakaoTalk为87%Python和12%JavaScript.
这是客户端的工作, 当协议的一部分只在网络应用中存在时, 您无法避免 。
TypeScript在事件模型已经适合IRC,XMPP,Revolt,GroupMe,Slack的地方获胜.
围绕已经是事件流的协议的五个桥梁.
矩阵是一个事件流。
阻碍错配接近于零,因此代码大多是翻译而不是架构.
Revolt是其中最干净的:100% TypeScript,没有逃生舱.
当桥的两边就事件的内容达成一致时,你只能写出有趣的部分.
而后所有三座桥上无所取舍的都是外出者,每座桥上都是有具体原因的外出者.
简讯为克特林73%.
短信不是网络协议,你连接, 这是手机做的事情。
唯一能诚实地坐的地方是Android 剩下的27%是去,因为母体方面仍然是母体方面.
最关键的是86%的PLpgSQL.
存储程序——因为观察自办Matterm的最可靠方式是与其Postgres数据库交谈,而不是对一个非为此设计的API进行投票.
Mumble是64%的切片。
Slice是ZeroC冰的界面定义语言.
这不是别人选择的语言。
这是语言Mumble的控制协议被定义在其中,所以想桥接Mumble,就写出Slice.
规则我们最后 我们尝试了标准化早期。
它使三座桥梁变得更糟,没有任何桥梁更好——我们在适配器周围写适配器,以保持我们为了自己的舒适而选择的语言。
现在的规则很简单:你正在连接的平台选择语言,你接受它。
代价是真实的。 7种语言表示7个工具链,7个依赖故事,在一桥中流利的贡献者是n中的初学者