黑马程序员技术交流社区

标题: 为什么JAVA没有在工业控制上使用的? [打印本页]

作者: huanglyhf    时间: 2014-6-26 19:41
标题: 为什么JAVA没有在工业控制上使用的?
本帖最后由 huanglyhf 于 2014-6-29 16:15 编辑

本人小白一个别拍我。刚刚看基础教程第5天。基本属于不懂状态。别光光一句话说JAVA 的效率低啊,实时控制不够强那样的笼统的话来解释。有谁能详细的举例给我解释一下?
作者: Coup_D`etat    时间: 2014-6-26 19:51
同属小白,想的够深的呀
作者: huanglyhf    时间: 2014-6-26 20:11
Coup_D`etat 发表于 2014-6-26 19:51
同属小白,想的够深的呀

之前学机械的,所以比较容易想到这方面的!
作者: sun_jun    时间: 2014-6-26 20:19
工控属于底层开发,底层应用!java应该属于基于底层的应用!
作者: sanguodouble1    时间: 2014-6-26 20:20
java是基于虚拟机运行的,这个你学Java第一天你就知道了吧,你也说了你是学机械的,那你觉得在那种芯片上装虚拟机现实吗?
作者: huanglyhf    时间: 2014-6-27 10:10
sanguodouble1 发表于 2014-6-26 20:20
java是基于虚拟机运行的,这个你学Java第一天你就知道了吧,你也说了你是学机械的,那你觉得在那种芯片上装 ...

也有基于PC的运动控制器啊!但那些运动控制器的上位机软件我也没发现有用java的。
作者: huanglyhf    时间: 2014-6-29 16:14
这个是我刚才在开源中国上看到的!
一个API的实现, 需要两个层面,一个是芯片级别,另外一个是软件.

java的bycode不是根据芯片特点设计的, 这意味着,必须需要一个虚拟机, 要么在芯片里面放一个,要么在软件上放一个. 不管放哪里, 都有很大的代价. 这个代价我们可以用trouble来表达, 就是说, 麻烦从来不会消失,不是在这里,就是在那里.

这里可以有另外一个反例, directx, 这个就是将芯片实现的算法,用api形式在操作系统层面完美表达的一个例子. 这种东西,必须 合服 芯片以及软件两方面的工程设计,才能达到. 而java的bycode,是完全脱离芯片的工程设计来做,就意味着, java芯片必定失败. 芯片不会向java妥协,不是因为强势,而是因为工程上无法实现. 这也同时是directx可以比opengl更成功的一个例子.

反观C的指针,就可以在任何芯片上游刃有余啊, 编译后, 可以无缝和芯片逻辑连接.



作者: iWilliam    时间: 2014-6-29 16:20
huanglyhf 发表于 2014-6-29 16:14
这个是我刚才在开源中国上看到的!
一个API的实现, 需要两个层面,一个是芯片级别,另外一个是软件.

学习了~{:3_53:}
作者: 徘徊消逝中    时间: 2014-6-29 17:11
huanglyhf 发表于 2014-6-27 10:10
也有基于PC的运动控制器啊!但那些运动控制器的上位机软件我也没发现有用java的。 ...

我也学机械,今年刚毕业了,我的毕业设计,上位机就是奇葩的用JAVA写的,不过精度要求不高,我是控制的单片机。其他的,貌似上位机还是mfc或者vb比较多
作者: huanglyhf    时间: 2014-6-29 17:17
徘徊消逝中 发表于 2014-6-29 17:11
我也学机械,今年刚毕业了,我的毕业设计,上位机就是奇葩的用JAVA写的,不过精度要求不高,我是控制的单 ...

我是之前用过几款运动控制器。运动控制器提供的API 都是用于 vb vc 甚至LabVIEW上的。就是没看到有专门用于java 的API。哈哈!所有觉得奇怪!
作者: 徘徊消逝中    时间: 2014-6-29 17:26
huanglyhf 发表于 2014-6-29 17:17
我是之前用过几款运动控制器。运动控制器提供的API 都是用于 vb vc 甚至LabVIEW上的。就是没看到有专门用 ...

嗯,我稍微做了一下数据采集卡的应用,提供的API也都是vb、vc和labView的,确实没见过java的api
作者: f78fk    时间: 2014-6-29 17:33
java不是实时操作系统
作者: Hugoo    时间: 2014-6-29 18:05
C/C++写的软件,编译器直接将语句编译成CPU指令,确保执行正确与高效。 Java写的软件,没有直接编译成CPU指令,而是由解释器来读,再由解释器来解释具体动作,最后解释器使用自己的软件来执行CPU指令,这样,C/C++都执行100条或者1000条语句了,Java可能还没解释清楚一条。效率差了100倍的软件,谁敢用做工控的。 工控软件的响应时间要求毫秒甚至微秒级的,java真是做不来。
作者: cat73    时间: 2014-6-29 20:17
其实也有的,不过底层控制一般不是Java的
Java负责的都是顶层图形化的一些东西

国家电网调度部分用的就是Java做的软件
其实这类软件也有不少的,只是你没接触过而已




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2