为什么目前目前自动化行业java用得少?
发表时间:2023-11-26 18:02:11
文章来源:炫佑科技
浏览次数:148
菏泽炫佑科技
为什么目前目前自动化行业java用得少?
我们先来说说为什么Java在自动化行业很少被使用。
至于下位机:由于单片机没有内存管理电路,不支持动态分配内存,而面向对象的编程语言需要内存管理电路,所以下位机的编程基本上都是C语言。 对于PLC开发来说,梯形图是主要方法。 如果上位机要使用java或者C++,就必须解决内存管理问题。 但这会增加成本。 微控制器和PLC*初是为了解决简单的问题而设计的,不需要太高级的配置。
上位机方面:由于Java出现晚于C++,早期的自动化编程多采用C语言,而C++可以无缝调用C语言程序。 因此,C++出现后的自动化编程是C语言和C++并存的局面。 1990年,Java的运行速度是C++的1/20,而当时的CPU频率还是MHz。 自动化程序的实时性要求很高,而Java的速度较低,无法完成任务。 虽然Java可以通过JNI调用C++程序,但是JNI编程非常麻烦,而且并不是任何IDE都可以编译JNI。 即使使用JNI,将现有的C++程序重新打包成JNI也是一个非常大的工程。 如果使用JNA,原理和JNI一样,因为项目太大,不现实。 如果放弃C++代码,用Java重写所有算法,成本太高,工作量只会更大。
以上就是自动化软件中不使用Java的历史原因。 然而,如果抛开大量现成的算法为什么目前目前自动化行业java用得少?,专注于语言本身的特性,现在的情况将会与之前有很大不同。
性能方面:目前主流工业计算机的CPU为双核,主频为1.8GHz,可以流畅运行Java。 而且,现在的Java具有动态编译技术,并不像原始版本那样以解释模式运行。 对于高度优化的代码,Java 性能是 C++ 的 1/2。 对于未优化的代码,Java 的性能有时比 C++ 更好。 。
工具集:Java拥有大量的网络通信、数据处理、线程管理等工具。 这些是SUN定义的标准Java工具集,具有良好的兼容性,并经过专家优化。 Java的使用率是PC编程语言中*高的自动化软件开发,因此Java工具集也经过了大量的实际测试,是一个可靠的工具集。 然而,C++的许多现成代码并不是由正规的专业机构设计的。 C++基础工具集的缺乏是C++开发困难的重要原因。
资源释放:Java有垃圾收集器,内存资源会自动释放。 您不必担心忘记释放内存或引用无效指针。 不管你是否忘记释放系统资源,当jvm退出时都会统一释放。 与C++不同的是,如果程序卡住了,一些系统资源必须等待系统注销或者重启才能释放。
导出的程序文件大小:对于相同的功能,jar文件的大小比exe文件小很多。
IDE:Java的主流IDE,比功能更丰富。
数据库解决方案:Java可以使用Map作为数据库。 虽然C++也有Map,但是C++的Map功能还不够强大。 大多数 C++ 电气程序都使用 SQL 数据库。 SQL操作比内存操作更复杂,SQL的漏洞也会成为自动化软件的漏洞。 而且数据库的性能不如内存。 Java提供了大量有用的数据结构,可以处理内存中大量的开关模拟数据和其他数据。 Java不仅提供了数据结构,还提供了每种数据结构的单线程和多线程版本。 如果你真的想使用SQL,将java连接到SQL是非常简单的。
人机界面:这里仅讨论自动化程序中常用的技术。 C++人机界面一般是MFC、QT等开源架构。 Java*适合,但是需要积累项目经验。 没有经验又不想积累经验的开发者可以选择swing。 Swing的表单设计器直接将设计图转换为Java代码。 其优点是方便调试和个性化改造,易于上手。 它提供了更高级的控件,可用于设计人机界面和生成资源文件。 需要将资源文件导入到程序中。 调试比swing难度更大,个性化改造更复杂。 在人机界面方面,很难说谁更有优势。 我只能说Java也有很强的人机界面设计能力。