在为某个应用程序选择语言时,许多因素可能会起作用:
- 谁将构建/维护应用程序,他们是否熟悉该语言?
- 应用程序需要与哪些其他系统进行通信?一种语言比另一种更容易做到这一点?
- 这个项目是实验性的还是应该成为未来几年的基石?
- 是否有需要用该语言完成的现有实现/框架?它符合需要还是需要改变?
- 等等。
如果我们查看您的列表,这是我的看法:
ETL 是一种与语言完全无关的语言,Java 和 Python 对 ETL 所需的工具都有很好的绑定。
类似于 ETL,虽然 Python 可能更容易做一些简单的事情。
Python 更方便,因为大多数现有框架和预训练模型都与 Python 兼容,但可能与 Java 不兼容。
Hadoop 堆栈对 Java 非常友好。值得注意的是,Python 越来越容易与 Hadoop 产品一起使用(但 Java 仍在其下运行)
- 处理大量数据(图像、时间序列数据、传感器数据……等)
尽管 Python 以速度慢着称,但如果您知道自己在做什么,那么您将使用的大多数 Python 库最终都会运行 C/C++ 代码,因此速度不应该是一个大问题。
Java 是静态类型的,这为生产提供了很多优势,使用 Python 也变得越来越容易(即 pydantic、mypy 等)
这与语言无关,这与您的 MLOps 和您的管道有关。
Java 绝对具有优势,尽管在微服务的世界中,Python 可以证明是非常有用的。
在设备计算方面,Java 可能具有优势,尽管 C/C++ 可能是您最好的盟友。