大家好,有谁知道为什么与编程语言 Java 相比,C++ 编程语言在生物识别安全应用程序中的使用更广泛?到目前为止,我收集的答案是 1) 虚拟编译器 2) C++ 提供的 OpenCV 库。谁能帮忙解答这个问题??
6 回答
也许是硬件支持:我写了一个使用指纹传感器的应用程序。该设备的库支持是 C++,所以我用 C++ 编写了应用程序。现在他们有了 .NET 版本,所以我的下一个应用程序将是 C#。
我不具体了解生物识别应用程序,但总的来说,当安全性很重要时,Java 可能是一个绊脚石。根据安全要求的编写方式,它们可以涵盖必须在 C++ 中手动完成但由 Java 自动完成的事情。这带来了一个问题,因为需要证明 Java 正确(并且及时!)满足要求。证明这些要求在 C++ 代码中得到满足要容易得多,因为满足要求的代码是相关程序的一部分。
如果安全人员/要求/客户明确表示依赖 Java 来实现某些安全功能是可以接受的,那么这没什么大不了的。对于依赖/信任 Java 来满足安全要求是否合理,我们可以反复讨论,这实际上取决于特定的安全需求。
用 C++ 实现一个库比 java 提供了很多。一旦编写完成,C++ 库几乎可以在任何平台(包括嵌入式平台)上运行,并且可以通过SWIG等工具作为对各种其他语言的本地导入提供。Java 只能在具有足够速度和内存来运行 JVM 的东西上运行,并且只有其他 Java 程序可以将代码作为本机导入包含在内。特别是对于生物识别应用程序,我认为在嵌入式系统上运行将是一个大问题,因为您可以将其构建到一个小型传感器中。
更圆滑的答案是没有人愿意等待你的垃圾收集周期来发射 friggen 导弹。
我愿意花钱的原因很简单,就是硬件的访问 api 是用 c++ 编写的。大多数现代/高级语言都不会轻松地与最初通过 C/C++ api 公开的硬件进行通信。
在一些相关的说明中,Vala具有现代\高级语言(以及一些)所期望的所有语言特性,但可以编译为 C 二进制和源代码,并且可以轻松使用任何用 C 编写的库(不确定c++)。看看吧,我用的不多,但它很酷。
您可以在那里用任何其他语言替换 Java。可能它更多地与 API 和硬件有关。
此外,Java 更适合 Web 应用程序。它不是桌面应用程序的最佳选择。
对于某些生物识别应用程序,执行速度至关重要。
例如,假设您正在为检查点进行面部识别,而 Java 需要两倍的时间来运行像 C++ 这样的编译语言所执行的算法。这意味着如果你使用 Java,要么:
- 检查点线将是两倍长,
- 您必须向工作人员支付两倍的检查站费用,或者
- 您的系统将在识别人脸方面做得好一半
这些通常都不是可接受的选项,这使得使用 Java 成为一个非入门者。