如果有一天代码再也不用手敲文本,而可以通过图形模块化生成,那么现有的大部分程序员还要何去何从?

张镡月


作为一个程序员从技术角度来分析这个问题,在计算机更开始普及的时候很多人喊着完蛋了,很多东西都能计算机计算去搞,大家都得玩完,结果是不但很多人没有失业而且创造了新的就业机会,再牛的机器也无法取代人,每个自然人都是独一无二的。首先要明白程序员这个职业到底在工作中做什么事情,是不是真的通过机器人给取代了。

一个程序员的职责可不完全是写代码,如果是参与一个项目首先要进行可行性分析,然后设计软件框架,分解需求,具体代码实现,单元测试,整体测试,到达客户然后进行二次需求分析,然后反反复复的进行,不排除有些可以简单量化的程序可以通过人工智能的方式来完成,但对于很多模糊的边界区域不可能区分的那么仔细,真要去所谓的图形模块化搞定,要搞定所有的一切几乎是不可能的事情,而且随着科技的进步新的技术出现还需要大量的程序员在一线进行项目的实施的推进。

不排除人工智能会发展的很快,但人工智能背后大量的技术人员的维护和更新,这些都需要大量的程序员来做这些事情,任何产业都会不断的更新,不停的洗牌但不会这么简单的消失,只是转化成另外的一种形式,进步的步伐是阻挡不住的。就是按照现在技术的更新速度,一个技术人员如果两年的时间不去更新技能很可能就是被淘汰,优胜劣汰是大自然的规律。

即使真的有一天不去写代码了换成了通过图形化模块生成,如果生成能够正常运转的程序,一样还需要技术人员的参与,如同现在编程语言两种发展趋势,一种高度集成化的编程语言如现在的python,要实现一个功能可能调用几个指令就搞定了,背后是大量的类库来完成具体实施的过程,还有一种程序员是专门维护这些高级特性的底层实现,如同很多人喊着底层编程语言已经不行了,可能在市场上绝对数量会减少但从不会缺席,没有底层代码的实现很难有上层代码高度的集成化,未来的程序员从事人员主要向着这两个方向发展。

程序员的数量随着时间的推移人数只能会越来越多,因为随着科技的进步,人类对于科技的要求会越来越高,随着带来更多的需求产生,现在的软件产业也远没有达到一种非常成熟的态度,在总体的行业的占比还是少的可怜,从现在程序员角度考虑还是扎扎实实的做好编程工作,先从现在不被淘汰做起吧。

希望能帮到你。


大学生编程指南


这个问题我曾经有一篇文章专门说过。这里面其实包含两个层面的问题:一、图形化界面能否替代程序员的工作?二、软件的未来到底还需不需人类。

第一个问题,图形界面编程能否替代程序员的工作?10多年前,曾经有一个编程语言特别流行,叫做Delphi,就是一个图形化的客户端编程语言,通过界面组件的拖拽来进行编程,后来随着b/s架构的软件的流行,迅速陨落。在b/s开发领域还有另外一个大牛工具,叫做Dreamweaver,同样最近几年听说的很少了。还有很多其他的案例。但是程序员这个职业并没有消失,反而越来越多。这种图形化的编程界面最后都成为一种非主流的辅助工具。这是因为程序开发是件非常复杂的工作,从需求分析到系统设计,再到数据库设计,然后是编码,最后还有运维等等,每一个环节都少不了程序员。并不是一个图形化界面就能解决的。其实软件领域一直不乏人员来探索图形化编程,但是涉及的环节太多,一直到现在,软件届还是一种非常原始的工作状态。软件领域的架构演变,从面向过程到面向对象,再到组件化编程,目前发展都了微服务架构,这一系列的演变就是希望软件能像硬件一样,很方便的组装,从而告别软件领域原始的工作状态。以前都没有成功,现在能看到成功的希望,这个基础是在于软件架构思想的不断发展。随着微服务架构的流行,软件和软件之间的交互,其实是默认找到一种公共的融合方式,这就像硬件直接的接口一样,大家都采用标准化接口生产,这样厂家的硬件就可以方便的融合和替代。微服务架构让软件融合成为了一种可能。但是程序员依然需要。

二,未来的软件发展会是什么样子?我认为,目前的软件架构都是一种静态定位软件架构,一旦系统成型,调整的希望非常小,所以软件开发并不难,难得是软件维护。未来的软件架构,将是一种动态的软件架构,也就是系统可以随着使用者的需求的变化,自动调整软件架构。这其实就是一种自动编程,这个基础是人工智能技术,是基于神经网络的一种新型软件架构。ai+微服务 这样的软件架构架构。区块链则会改变当前的云服务模式,让软件成为一种彻底的分布式架构。综合起来来说就是ai+微服务+区块链,微服务做为一种基础的组件,类似于神经元,通过网络进行链接,ai会感知到软件使用者的需求,自动调整微服务定位链接,并且有一个统一的极致简单定位交互界面,然后这个网络运行在区块链上。

但是这种软件架构下,依然需要程序员。这个世界总会走到所有的真实世界的东西都会被虚拟化,这一切都需要程序员的工作。只是软件架构在不断调整,那么程序员要随着软甲架构的调整不断的改变,我想至少10年之内,机器人代替人类写代码这件事有可能实现,但是也得有人写机器人,对吧。😊


祖国的蜗牛


编程主要是算法,结构,思路。

所谓编程语言不过是一种表达方式,是最基础最底层的东西。

就好像一部小说可以引成书,也可以拍成电视剧。

而编程语言绝对不是普通人和程序员的唯一障碍,要突破的东西还很多,语言恰恰是最薄的那一层窗户纸,后面还有更多需要掌握!

就算不用编程语言而是还用其他方式了,也需要学习程序相关的知识,还要对你的编程对象足够了解,然后翻译成计算机能执行的算法,才可以写出复杂,高效的程序。

另外,就算题主说的那种简单直观的编程方法。也只能解决一部分问题。比如做这一个操作系统,就必须用汇编,因为冰冷的电路机器,不可能直接识别图形的!


李寻欢1936


模块化编程,或是自然语言编程,一定是未来的趋势;谁掌握了类似的技术(还包括模块化智能硬件研发等),谁就得到了一半的开启第四次人类产业革命的钥匙。

我有创新的想法,我有行业经验,但是我就不告诉你,你能拿我怎么样?

但如果出现上述的技术,我不需要告诉谁,我就可以做出成品的产品来,应用在我的行业,并获得收益。

所以,第四次人类产业革命的核心,就是创新能力的普遍下放。

谁都可以创新,谁都可以创造,想法人类提供,技术机器提供。由此,形成高级替代低级,先进替代落后的良性趋势。

至于多出来的程序员,要么钻研更难的编程科研课题;要么下岗,被社会养着。

第四次产业革命的另一半钥匙,是区块链,或者说,一种类似于神的,更加公平的,分配方式。

未来,每一个行业都只有两个结果:第一,去进行尖端的科研;第二,被替代。


未来思维


这个问题很有针对性我喜欢,我是极客宇文氏一枚热心的极客程序员,欢迎关注。

题设:如果有一天不用敲代码而是通过图形模块化生成,程序员是否会遭遇危机。

答案是否定的,因为写代码只是你了解的程序员工作中的一部分,如果一天工作8小时,那么程序员真正写代码的时间可能只有4个小时以内,甚至一天可以不用写一行代码。

那么剩余的时间在做什么?

剩余的时间程序员需要进行把原型图进行设计,分别有概要设计,详细设,其中包含有数据库设计等,这些是在编码之前必须进行的核心工作,这比敲代码还重要。

也就意味着,即使不用敲代码只需要用图形拓展去实现,那么也是需要程序员进行设计和规划,并不是无脑没有逻辑的一通操作就可以完成一个软件的制作。

不过这也就意味着,如果程序员连软件工程领域的设计思路和方法都不会,那将面临危机。


极客宇文氏


其实这种语言早就存在并且已经商用了。先不说图形化的编程已经用在一些教育类型的平台上,本人也用过图形化的语言做传感器控制,Labview 大家可以了解一下。通过图形化的设计实现逻辑,流程,循环等等程序控制,当然底层依靠代码实现,图形化以后最大的好处是可以不需要顾虑程序内部。只需要关注接口设计,在很多场景下面有很好的用途,例如传感器数据获取或者控制,流程化数据处理等等,但是这类型的语言也其限制,最重要的一点就是丧失了灵活度,拿图形化语言对比代码化语言,如同Linux相比windows,两者都能完成任务,Linux通过shellscript可以实现自由组合,windows则主要依靠搭建在平台上的软件实现。相比之下如熟练掌握shellscript的人就可能会觉得windows笨重了一点点


沐沐猴子


图形化编程就是个天坑,很多时候就是某些人异想天开的噱头,或者就是某种天真的愿景。图形化只能解决大的逻辑问题,如果有个程序涉及到很多细化的东西,如果真的是全图形化设计,全部分支、判断都是流程图,相信我,你会看到吐的!而且这样干绝对是弊大于利。首先,你没办法做版本管理;其次,你没办法做代码自动比较;其三,你没办法做代码扫描;其四,你不好做单元测试;其五,对复杂代码,要快速定位问题门都没有,只有自己顺着看流程图,一个很小的问题你也得把代码完全看懂。


xuyunlo88


这是客户提出的软件需求。从人的自然语言到程序语言是一个梳理逻辑的过程。人是在逐渐清晰自己的逻辑,开发人员逐步完善出来呢。请自行搜索UML了解我们是如何建立软件的。



老北的地盘


图形模块拖拽编程属于上层,直接编写代码编程属于底层,本质上上层是调用封装好了的底层。之所以有上层,是为了简化编程,面向普通人士。但复杂的软件系统不是人人都能做的,很多环节复杂到以图形模块式的编程带来的低效率(总得先打造工具吧)。另外一个原因,是因为有了广大普通水平的需求,才会催生图形模块拖拽编程,没有大量需求,底层编码团队不会打造工具的。

要替换,也是另一个底层来替换现有底层,比如NLP自动编程。

总结下:上层替换不了底层;大量需求;NLP自动编程


-楚流香-


对于互联网和软件我不知道,但在IC/FPGA行业,我可以说,你正好搞反了,以前的电路规模小,可以用画图的方式来搭建,后来随着电路规模越来越大,已经改成用硬件描述语言HDL来描述,从表面上看就和编程一样,尽管本质完全不一样。在这个行业,是从图形界面演化到代码、脚本等等抽象的形式,而不是相反。


分享到:


相關文章: