程序员有没有可能某一天被自己设计的程序代替

这个问题不是新问题,在计算机刚诞生的时候恐怕就已经有人在问了。而现在问这个问题说明提问者对计算机的使用与软件开发缺乏本质上的认识。一般情况下,人们习惯把编写单词、数字和符号组成的命令序列称为编程,这种认识是不全面的。实际上,图形化的编程很早以前就出现了,最有代表性的当然是众所周知的VB。在VB出现以前,即使编写很简陋的界面都需要大量繁琐的代码,而通过VB的使用可以大幅简化这部分工作。也曾出现过完全不用编写代码的编程工具,比如Authorware,它可以通过拖放创建多媒体程序,甚至可以添加判断和循环等结构。遗憾的是,这些图形化编程工具的功能都是受限的,他们并不是题主想要的那种东西。VB的界面编辑器只能编写运行期变化不大的界面,更复杂的界面它无能为力,对应用逻辑的编写也没什么帮助。而Authorware功能算是比较强大,但它并不是通用编程语言。软件开发中有一个名词,叫做DSL,中文称之为领域特定语言,顾名思义,就是用于解决特定领域问题的语言,VB与Authorware等图形语言实际上也是DSL,同HTML、SQL、Regex等文本化的DSL一样,它们具有有限的组合规则和词汇,抽象能力不强(无法定义可重用的类)。换个角度来看,计算机发展的早期阶段,没有图形终端,实际上任何使用计算机的行为都是编程。到目前为止,UNIX、Linux等操作系统上命令行仍然是主流的操作手段,不少任务的执行所需要输入的指令比大多数语言的Hello World要都要复杂的多,甚至需要编写批处理脚本。这样看来,Windows其实就是题主要的东西……那么,完全不需要编写代码的通用语言有没有可能出现?答案是肯定的,目前就有能够绘制UML然后转成文本代码的工具。理论上来说,纯粹离开文本进行开发是可行,但是为什么这种方式没有成为主流?原因很简单,这些工具在平均生产率上还无法超过手写代码,这中间涉及到很多操作性的问题。这个领域会持续的发展,发展的最终目标就是在生产率上超过手写代码。一个很关键的问题在于,生产率并不是由文本还是图形作为输入手段决定的,更主要的是由库的丰富及强大程度决定的。所以有可能在平均生产率,图形语言永远无法超越文本语言。因此即使现在开发iOS所用的图形工具已经比VB更加强大,仍然有人使用代码来编写应用界面。以上回答了题主的第二个问题,现在来回答第一个问题。先假设最终图形语言会取代文本语言,那时候程序员的名称可能没有了,不过他们会以另外一种身份继续存在下去。因为程序员并不是因为会编写代码才成为程序员的,而是因为知道如何构建软件。但是毫无疑问,在这种条件下,普通人成为程序员的门槛会大大降低,就像Windows降低了普通人使用电脑的门槛一样。
■网友
程序员是与时俱进的行业。其实你说的这些事情也正在发生着。比如自然语言的出现,大幅度降低了程序开发的难度。原来的机器语言程序员,不就得失业了吗?但是也没想象中那么可怕嘛,以前的机器语言开发者,要么去开发或者优化编译器,要么直接转行写自然语言了。面向对象语言出现时候,很多工作都用面向对象开发代替了。面向过程的程序员也在面临失业。但是他们要么专注于某些对性能要求特别高的开发工作,要么学习了各种设计模式。个人觉得,你说的情况有可能发生,但是形势也不会那么凶猛。因为:1.技术的更新换代还是有一定周期的。旧行业里面的人如果抓紧学习。要适应也是有时间有机会的。加上新旧技术的继承比例,旧人学新知识也未必输给新人。2.旧的技术会淘汰大部分人,但不是清零。总有些地方,有些应用场景是新技术没法代替的。3.技术进步了,人的需求也跟着膨胀。自然有新的就业机会。上面两条都失败了,还可以转行进新行业的。(这个好像离题了)这软件可能如何实现?设计出一款通过鼠标点击可以傻瓜实现编程的软件…………微软的VB有没有类似之处?说到底就是隐藏底层的程序代码,以图形界面显示嘛。这个是给儿童写的,也和题主写的功能很像http://scratch.mit.edu/about/


推荐阅读