44问答网
所有问题
Java适合不适合开发自动化软件
如题所述
举报该问题
推荐答案 2017-01-20
Java 从90年代初期,有人用applet写过写图形监视画面的东西,也仅限于某行业封闭式的项目中,applet也没了前途.,Java发展到2.0后,逐渐走向成熟,虚拟机中运行字节码,在今天的CPU等硬件环境条件下
也是可以胜任做写控制软件的,至少象组态软件这样的"慢速"家伙,Java是可以胜任的.那样,控制室里就没必要是青一色的windows了, 另用java的JNI写过些应用的朋友,给提出些建议,
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/YDZWZDW33W3W63G3VGR.html
其他回答
第1个回答 2018-06-05
我的结论是单从编程语言本身来看,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没有用在自动化软件的历史原因,但是如果抛开大量的现成算法,重点来看语言本身的特性,现在的局面就和以前大不相同了。
性能方面:目前的主流工控机的CPU是双核心的,主频达到1.8GHz,可以流畅地运行java。而且现在的java有动态编译技术,并不像最初版本那样以解释方式运行,对于高度优化的代码,java性能是C++的1/2,对于未优化的代码,java的性能有时会比C++更好。
工具集:java有大量用于网络通信、数据处理、线程管理的工具,这些是SUN和Oracle定义的的标准java工具集,具有很好的兼容性,也经过了专家的优化。java的用量在上位机程序语言中是最高的,所以java的工具集也经过了大量的实践测试,是可靠的工具集。而C++的现成代码很多并不是由正规的专业机构来设计的,C++的基础工具集太少是造成C++开发难的重要原因。
资源释放:java有垃圾回收器,内存资源会自动释放,不用担心忘记释放内存或引用了无效指针。不管是否忘记释放系统资源,jvm退出时都会统一释放。不像C++那样,如果程序卡死,某些系统资源必须等系统注销或重启才能被释放。
导出的程序文件大小:同样的功能,jar文件的大小比exe文件小得多了。
IDE:java的主流IDE是eclipse,比Visual Studio功能丰富。
数据库解决方案:java可以使用Map来作为数据库使用,虽然C++也有Map,但是C++的Map功能不够强大。大多数C++的电气类程序都用到了SQL数据库,SQL的操作比内存操作复杂,SQL的漏洞也会变成自动化软件的漏洞。而且数据库的性能不如内存。java提供了大量好用的数据结构,可以在内存中处理大量的开关量模拟量等数据。java不只提供数据结构,还提供了每种数据结构的单线程版本和多线程版本。如果确实要用SQL,java与SQL对接也很简单。
人机界面:这里仅讨论自动化程序常用的技术。C++的人机界面一般是MFC、QT及其它开源架构。java中最合适的是JavaFX,但是需要累积项目经验。没有经验又不想累积经验的开发者可以选择swing。swing的窗体设计器直接将设计图转换为java代码,它的好处是便于调试及个性化改造,容易入门。而JavaFX提供更先进的控件,使用SceneBuilder来设计人机界面并生成一个资源文件。资源文件需要在程序中导入,调试难度较swing高,个性化改造更复杂一点。在人机界面方面,很难说谁更有优势,只能说java也有很强的人机界面设计功能。
相似回答
学习
自动化
测试,是学
java
好还是python好呢??
答:
你可以根据项目需求和个人喜好选择适合自己的测试框架
。社区支持Java和Python都有庞大的社区支持,这意味着你可以在遇到问题时更容易地找到解决方案。两者在自动化测试方面都有广泛的社区支持和活跃的开发者社区。集成开发环境(IDE)选择一个合适的IDE对于学习自动化测试非常重要。Java有Eclipse、IntelliJ IDEA...
Java适合不适合开发自动化软件
答:
也是可以胜任做写控制软件的
,至少象组态软件这样的"慢速"家伙,Java是可以胜任的.那样,控制室里就没必要是青一色的windows了, 另用java的JNI写过些应用的朋友,给提出些建议,
JAVA
:
能
成为
自动化
语言吗?
答:
MX JAVA就这一方面,三菱开始致力MX
JAVA的开发
,这是一种新型的信息管理产品。MX JAVA结合了
软件
和硬件。但是,如何理解MX
JAVA 能
带来什么,特别是与目前产品的不同之处,最好从软件着手认识。从名称可知,MX JAVA平台使用JAVA编程语言。这在
自动化
行业中也许显得比较陌生,但是JAVA的确有不少好处。
非标
自动化
设备上位机
软件开发
是什么?程序语言是哪些?基于什么开发平台...
答:
-Java:Java是一种通用的编程语言,
适用于跨平台应用开发
。2.开发平台:-Microsoft.NET平台:.NET平台提供了丰富的开发工具和框架,包括VisualStudio集成开发环境和.NETFramework等,适用于开发Windows上位机软件。-Qt框架:Qt是一个跨平台的应用程序开发框架,支持C++编程语言,适用于开发跨平台的上位机软件...
大家正在搜
测试自己适不适合开车软件
java为什么不适合桌面开发
感觉自己不适合做软件
有没有适合自己的发型的软件
咋知道自己适合啥发型的软件
自己适合什么发型的相机软件
感觉自己很笨不适合做开发了
不适合文字处理的程序软件是什么
不适合当开发
相关问题
女生适不适合学软件开发?
java可以用于自动化设备软件的开发吗
为什么很多人说 Java 不适合编写桌面应用
【java界面开发】常有人说java不适合开发GUI,想问j...
我是不是不适合做Java开发?
【java界面开发】都说java不适合界面开发,我想问存在用...
JAVA:能成为自动化语言吗
自动化专业该不该学编程:Java ?