关于“自动编程软件”的一些问答

http://www.pconline.com.cn/news/gjyj/0406/391866.html
这条消息提及了所谓“自动编程软件”。《互联网周刊》记者吴小姐就此问题跟火炬,tiny
进行了一些讨论。

因为tiny的观点和火炬的基本类同,感觉火炬在这方面的理解更加的深刻和清楚,所以就不
丢脸的把自己的讨论发言贴出来了,下面内容转自火炬的blog:
原文链接:http://dev.codelphi.com/virushuo/archive/2004/06/14/14544.aspx
W代表吴小姐,H代表火炬。

W: 这个消息是否可信?

H: 可信。

W: 我想知道他们的技术是不是现在最牛的。

H:
我不认为这是所谓的“自动编程软件”,这个定义本身就是模糊不清的。这类的技术思路倒
是并不陌生。从原文的描述中可以看出,所谓“自动编程”,其实只是一种从业务模型中快
速生成程序代码的技术。其实目前的开发工具所提供的类似的功能也并不少。他们所提到的
这种软件大概是更为完善的接近“用户语言”的方式描述业务模型,这样的技术在中国也有
人研究,目前在这个领域作出一定成果的是的是justep(www.justep.com)。

W: JUSTEP跟CARE做的是一样的东西吗?

H: 不一样,不过我认为思路应该比较类似。

W: 是在自动编程软件这个行业里国内最大的?

H: 我不同意所谓“自动编程软件”这个说法。

W: 那么在你看来,CARE那个到底是怎样一种技术?

H:
什么叫做自动?什么叫做编程?用模型来表述业务逻辑,你说这个叫不叫编程?当然也叫。
只不过是更高层次的抽象,并非直接写代码而已。这类工具只是提供更接近用户的语言,让
用户可以完成程序员的部分工作而已。
所谓编程,就是是把你所需要的事情告诉计算机的过程。这个过程需要用特定的语言,这个
就叫做程序设计语言。部分环节可以不需要程序员干预完成,这个说法是
没有问题的。其实对于高级语言,和机器码相比,早就有部分领域由计算机代替了程序员的
工作。
最早的程序设计语言是穿孔带。那时候需要人工再纸上打孔。现在呢,使用高级语言设计程
序,然后用编译器生成本地机器代码或虚拟机代码。这是后,编译器就代替了“手工编为机
器码“这个过程中的所需要的程序员工作。所以说“自动编程软件”这个概念本身就是模糊
而荒谬的。只能说,这种系统提供了更高的抽象层次而已。

W: 那么我们关于自动化的设想是完全没有来由的吗?

H:
自动化的设想,只是自动完成某些工作。并非自动完成所有的工作。justep的东西也一样,
他们提供了非常高的抽象层次。比如说,可以用用户语言来工作或是进行所谓的“编程”工
作。这时候,需要的程序员工作变得非常的少。但,这并非自动编程语言。

W: 比如程序设计这方面,程序员是不可能退场的?

H: 退场的只是某些人。但一些人退场,必定会出现更高层次的人。

W:
你所谓的“抽象”是不是可以理解为智能?你所说的那种“抽象”可以高到什么程度?更高
层次的人指什么人?

H: 比如说:
我们编写一个用户验证模块的时候,需要编写安全模型,然后登陆入口,验证的过程,等等
。但,在业务建模系统中,可能这个就叫做“用户登录”。那么,只要懂得业务逻辑的用户
,不需要知道技术细节,他们把这个“用户登录”拖过来放在这里,这个平台就自动替他们
生成一个可运行的用户登录程序。其它的如此类推。
用户是在使用用户语言来工作,而并非程序员语言。当然,这个过程也并非“无需程序员”
的 。某些复杂的情形仍然需要程序员参与。只不过,这种需要大大降低了而已。

W:
那么再回到那家美国公司,他们开发的那种软件,能称的上是尖端技术吗?有发展前景吗

H: 我不认为能够称为尖端技术。发展前景当然有。

W: 某些复杂的情形仍然需要程序员参与”这种情形是不是正在变得越来越少?

H: 是的,会越来越少。这就是我说的抽象层次。

W: 请简要的说说编译器。

H:
这里我们先做一个定义:越利于人类理解的语言,则抽象层次越高。越利于计算机理解的语
言,则抽象层次越低。简单点说,就是人类越好理解的东西,计算机越难理解。反之亦然。
编译器是这两者之间的桥梁。把抽象层次高的语言翻译成抽象层次低的语言。在这个编译器
的帮助下,过去很多程序员的人工工作现在由计算机自动完成了。学习程序设计也不用先去
学习晦涩的机器语言或是汇编语言了。

W: 那么依你看,将来在编程方面,可以在多大程度上实现“自动化”?

H:
这个很难预料。技术的发展是一日千里的。但是有一些事情很难改变。比如说,系统的结构
一定需要有经验的专业人员处理。建筑行业是个很好的例子。建筑业已经发展了几个世纪,
非常成熟。但是建筑设计师,结构设计师仍然不是随便什么人都能做的。
这个行业的变化大部分发生在:大型搅拌机替代了大部分混合泥沙的工人,卡车等运输设备
替代了大部分搬运工。

W: 也就是说,CARE现在在做的东西其实也就是类似建筑工地上的搅拌机或者卡车?

H: 如果说现在程序员还是搬运工的话,care确实造出了了一辆卡车。

W: 你怎么看这个行业的前景?

H:
我认为,这个行业始终需要提高更高的抽象,因为我们面对的世界非常复杂。用接近机器的
语言描述世界很困难,而是用更贴近人类的语言则简单的多。
10年前我们只能开发出字符界面的程序。但现在大家都用上图形界面的系统了。

W: 这个提高有没有个极限?

H: 这个提高我看是没有尽头的。正如人类的科学没有尽头。
也许一些工具能取代现在的人,但是不能取代将来的人。随着抽象程度的提高,生产力的发
展,人的能力也在不断的提高和发展。现在的中学生的知识甚至有可能比1000年前的哲学家
更加丰富一些。
所谓的“自动编程工具”(其实就是更高抽象层次的工具)能帮助我们完成更复杂的需求。

W: 这个复杂性体现在哪儿?

H:
复杂性首先体现在巨大的信息量。然后体现在行业的丰富和不同。就是说,每个行业所要处
理的都是包含巨大信息量的工作。现在的信息化程度还远远不够。而行业还是在不断增加的

比如,过去,大家觉得字符界面下的工具够用了。但是,其实远远不够。现在软件都有图形
界面了,这些软件使用简单,培训容易,也更不容易出错误。这就是更复杂的需求。
其次,没有卡车的时代,只是靠人力搬运,那时候管好人就行了。现在呢,有了卡车,就需
要创造交通规则,需要创造修理工,需要开采石油和能源......方便的背后带来了更大的复
杂性。

W: 程序员现在的状况怎么样呢?“自动编程软件”的出现是否会导致程序员失业?

H:
对于特指编码人员的“程序员”来说,这个大概是他们听到这个消息之后最为关系的话题。
最开始我们说过,40年前的程序员是用串孔带工作的。他们需要非常了解计算机的结构,所
谓程序只是控制一系列电路开关的过程。他们要想好按照什么顺序去处理这些开关得通断,
然后用穿孔带来表达,最后让机器执行。这种方法显然对人要求非常高。这是非常难掌握的
方法。后来,出现了汇编语言,这是后,开始有比较简单的助记符出现,程序员虽然还要了
解机器结构,但是难度已经大大降低了。后来出现了C,出现了面向对象,现在出现了虚拟机
等等,这些一点点提高了抽象层次,也降低了对最低编码人员的要求。
但是,更高要求的职业也出现了。最早是没有所谓的
架构设计师的。因为那时候的程序写起来很难,也不可能写出来太大型的程序。自然也不需
要架构设计。
所以说,随着抽象程度的提高,一定会有一部分人失业。但一定也会创造更多的职业。比如
说刚刚说的系统分析员,架构师,这些就是随着抽象层次提高被创造出来的职业。
继续用刚才那个卡车的例子。比起没有卡车的年代,现在搬运工这个职业需求少了,但是创
造了司机这个职业。

W: 可是,高层次的职业毕竟需要的人少。

H:
需要的人少这个问题,我想要从更高的高度看。刚才说了,所面对问题的复杂程度是不断增
加的。卡车出了创造了司机,还创造了制造业,交通,道路,桥梁,能源等等许多行业的提
高,对于社会整体来说,所需要的劳动力并没有减少。具体到软件这个行业:就算有了相对
自动化的工具,但开发这些工具同样需要程序员。完善这些工具同样需要。当工具完善到可
以处理更复杂的情况的时候,对使用这些工具的人需求也会大大增加。对于整个IT行业来说
,人员的需求量始终是增加的。虽然再开发工具的辅助下,现在1个普通程序员的工作所创
造出来的代码质量和数量远远超过30年前的10个做同样工作的科学家的成果。但IT行业总体
的需求还是在增加。我们可以看到一个现象,就是IT/软件公司越来越多,越来越大,而不
是越来越少或是越来越小。所以,高抽象层次的开发工具带来的并非程序员的失业,而是IT
行业的整体上升。

W: 不妨说,那些从工地上淘汰下来的搬运工,必须学开车或者别的什么……

H:
当然,具体到个人,如果不学习,不思考,肯定会落后,会失业。这个并非IT行业专有。任
何行业都是如此的。

关于“自动编程软件”的一些问答相关推荐

  1. 自动编程软件面世 我们还需要程序员吗?

    自动编程软件面世 我们还需要程序员吗?  出处:PConline 责任编辑:zzh [04-6-9 11:04]  作者:太平洋新闻中心 xqy 来自美国芝加哥的消息,一家名为Care Technol ...

  2. 数控自动编程软件比你想象的更方便!

    秒杀."抢票".闪婚每个当今流行的词都在暗示大家这是飞速发展的社会.任何人做任何事都要讲究效率,那么切割机较传统的切割方法应怎样提升切割效率呢?     众所周知,数控切割机硬件结 ...

  3. 花了一年时间开发出来的基于DXF文件的加工路径自动生成软件

    随着科技水平的进步,计算机辅助制造技术CAD/CAM在机械加工中起着越来越重要得作用 ,传统的手动编程正在被自动编程所取代,目前PRO/E,UG,MasterCAM等商业软件可以根据设计 的图形直接生 ...

  4. 基于数字孪生的机器人焊接自动编程关键技术

    在焊接制造中,存在着大量非标准化.定制化焊接件,需要机器人在焊接过程中具有较高的适应性和柔性,传统的示教-再现型机器人很难直接应用于这样的实际焊接生产中,因此要实现机器人智能化焊接应用还有很多亟需解决 ...

  5. matlab找不到bma_g代码,基于矢量图形的G代码自动生成软件路径优化算法的研究

    在数控雕刻技术中,数控编程是设计人员与执行人员联系的桥梁.传统的方法是由技术员从图纸中提取零件信息,结合加工工艺要求,根据数控加工程序的标准手工编制加工程序,速度较慢且精度较低.随着数控技术的发展,市 ...

  6. 数控编程方法可以分为两类:一类是手工编程,另一类是自动编程

    数控加工工作过程:如下图所示,在数控机床上加工零件时,要预先根据零件加工图样的要求确定零件加工的工艺过程.工艺参数和走刀运动数据,然后编制加工程序,传输给数控系统,在事先存入数控装置内部的控制软件支持 ...

  7. 答题软件 JAVA web_悟空问答自动答题软件下载 1.0 免费版

    悟空问答自动答题软件是一款基于JAVA环境开发的悟空问答网页版自动答题辅助工具,它没有Windows操作界在,运行后只会看到一个CMD命令行的界面,只要输入对应的命令按回车就可以了,不会用的网友请仔细 ...

  8. 王垠:自动编程是不可能的 我为什么不在乎人工智能

    编者语:在17年人工智能热的大背景下,有时候需要不同的观点让自己的路走的更加辩证和客观. 正文/王垠 有人听说我想创业,给我提出了一些"忽悠"的办法.他们说,既然你是程序语言专家, ...

  9. ab plc编程软件_三菱PLC原装和高仿怎么区分?PLC仿真软件和编程软件一样吗?

    点击↑↑技成培训 ,关注并置顶即可长期免费订阅 18万+工控人关注的微信平台:技术分享.学习交流.工控视频 今天不给大家讲具体的PLC具体的学习内容,今天我们要聊的是三菱PLC设备,首先看这个问题: ...

最新文章

  1. Java多线程练习--取钱
  2. 语音识别:时间序列的Smith–Waterman对齐算法
  3. 插入和shell排序
  4. 语言for循环联程_Lua循环
  5. HBase-site.xml 常见重要配置参数(转载)
  6. Spring boot--控制器增强
  7. 【操作系统】—操作系统的概念 目标和功能
  8. 如何利用ThoughtWorks.QRCode 生成二维码
  9. 【腾讯云技术沙龙预告】云端数据库的设计之美
  10. 福师电子计算机主要以,福师《计算机应用基础》在线作业(6) 参考资料
  11. 关于keep,dont touch和max_fanout的用法建议
  12. 计算机主机光盘故障,光盘放进电脑里打开了显示函数不正确是什么问题?怎么处理?...
  13. 福州市建筑物矢量数据(Shp格式+带高度)
  14. 学会Python就能做游戏脚本开发?别天真了!—— 关于游戏脚本的3个质疑
  15. Allegro通孔焊盘制作
  16. 交互入门——基于鼠标控制的射击飞碟小游戏
  17. 开源的烽火 “烽火”的开源
  18. SUST OJ P5502
  19. 新三板的合作门槛是多少?
  20. 字典树/Trie/前缀树-LeetCode总结:720词典中最长的单词;127. 单词接龙;677. 键值映射;面试题 17.17. 多次搜索;648. 单词替换

热门文章

  1. 抖音短视频爆火的背后到底是什么——如何快速的开发一个完整的直播app
  2. 服务器周四晚上八点维护,新闻-易乐玩竞技平台-【公告】神剑出鞘破长空!《红莲之王》五影剑回归...
  3. CSS基础学习——定位
  4. 魔兽世界服务器显示排队中,魔兽世界怀旧服一直在排队怎么办 快速排队都有这些办法你知道吗...
  5. 纯干货 | 《团体标准管理规定》新旧对照表
  6. DES/3DES加密,解密
  7. [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题...
  8. 前端两栏布局和三栏布局
  9. office web apps java_整合Office Web Apps至自己的开发系统
  10. 苹果收购Intel的基带芯片业务可能是一大错误