1.
自动化测试工具开发中,有的人擅长使用 Java,有的喜欢用 Python。它俩都是非常优秀的语言。但不可避免的是,当我们在实现一套测试工具时,如果依赖的 SDK 只提供其中一种语言的代码,我们仅仅为了适配 SDK 而重新学习一门不熟悉的语言,时间成本上花费会更大。
2.
当然,Java 调用 Python 也是有门道的,比如 Jython。典型的例子就是 Android monkeyrunner,测试用例代码使用 Python 编写,而 monkeyrunner 却通过 Jython 实现。
而 Python 调用 Java 也有路子。比如 Jpype。通过 Python Runtime 在运行 Java 代码前先加载一个内嵌的 jvm 来运行对应的 Java 代码。
简单点的应用,上面的方式还能解决,想要操作得复杂些,就会显得繁琐了。
3.
跨越“种族”的差异,就得找一个中间人来沟通,这个中间人懂你也懂我。这样,顺理成章的我们能想到通用的协议,比如 HTTP。
Java 和 Python 都具备成熟的 Web 和 HTTP 框架。比如 Java 的 Web 框架 SpringBoot,Python 的 Flask。比如 Java 的 HTTP 框架 OKHttp,Python 的 requests。
不管是哪一门语言实现 Web 服务,另一门语言通过 HTTP,都能实现简单,便捷,无差别的访问,而且,不需要多掌握一门语言。
保有这种设计思想,利用通用协议来解决桥梁问题,是一个很有效的思路。