C++和C++程序员谁先完蛋?

做者:闻数起舞来源:今日头条程序员

 

直到昨天,我还觉得AI永远不会取代我成为程序员。编程

好吧,从一开始,编程做为一种职业就已经陷入了本身的死亡之中。我想,当有人第一次提出汇编程序时,不少人都认为这就是结局。服务器

什么?一个能够将人类可读的笔迹转化为真实机器代码的程序?那么每一个经理如今均可以编写代码吗?咱们过期了吗?咱们已经自动化了吗?是时候收拾东西走了吗?网络

而后很快就出现了足够多的高级语言,诸如FORTRAN和COBOL之类的语言。如今,这确定使真正的程序员变得没必要要了,不是吗?您能够是机械工程师或业务分析师,而且精通计算机。您再也不须要程序员为您编写代码。并发

而后概括编程来了。具备Haskell的功能或Prolog的逻辑。概括编程的思想是-您无需编写代码,只需设置程序应在其中运行的约束条件,而且在可能的状况下,语言将为其编写代码。函数

随着语言发展到计算机代数系统,它成为不可知的语言。如今,您能够在Python笔记本中编写一些方程式,并将其解转换为其余任何语言的代码。所以,不只您不须要程序员来编写代码,甚至都不须要本身编写代码。性能

尽管全部这些事情都威胁着要终止编程做为一种职业,可是,却有大量的程序员崛起,崛起并继续崛起。指数也是如此。每五年,这个数字就会增加两倍。比人类增加的速度快得多。以这种速度,到2075年,咱们全部人(约有100亿)将各自拥有三个编程工做。优化

固然,这种增加必须在某个时候中止。世界上没有足够的可卡因来使咱们全部人日复一日地不停地进行编程。但这不会由于某些颠覆性技术而中止,只有在其余行业的需求超过程序员的需求时,它才会中止。人工智能

诸如汇编,高级语言,概括编程或AI之类的破坏性技术只能改变咱们进行编程的方式,而不能杀死编程做为一种职业。spa

 

仍是我昨天想过。

您可能会认为,我与GPT-3聊天,它最终说服了我从事男性妓女的光辉事业。但不是。实际上,昨天只是另外一天,我只是在作个人工做。好吧,不是个人工做。我当时正在从事C ++应该为我完成的工做,但失败了。我正在将一段高性能代码从MSVC移植到GCC。

是什么让程序在2021年快速运行?内存仍然相对较慢,而且说来话长,所以必须进行显式内存管理。如今每一个CPU有许多内核,所以咱们须要并行计算。并且,处理器的滴答速度并无比20年前快不少,可是如今它们确实有不少传送带,所以,若是咱们要快速编写代码,就必须对全部内容进行超标量。

C++糟透了这三个方面。

  • 是的,在C++中有一种分配对齐内存的标准方法,但MSVC不支持。
  • 开箱即用的并发性太糟糕了,您必须依靠第三方库,例如英特尔的TBB。
  • 编译器尝试在可能的状况下利用SIMD,可是它们没法有效地利用SIMD,所以您必须使用内部函数编写代码才能得到全部好处。

若是您终生坚持使用Microsoft和Intel,那不要紧。可是,当您尝试将事物从一个平台移植到另外一个平台时,您会发现多年来C ++悄然失去了可移植性游戏。是的,您能够经过定义来解决对齐不一致的问题。从技术上讲,您能够为ARM进行TBB克隆,由于英特尔理所固然地不肯意支持他们的竞争对手。可是,有了内在函数,您就有了句号。固有特性是特定于处理器的,所以您的代码未获得优化或可导入。

具备讽刺意味的是,因为C最初是为了将UNIX从PDP-7移植到PDP-11而发明的。其惟一目的是实现可移植性。50年后的今天,咱们面临着使人不安的事实。为了使性能最大化,您必须比编译器更好地使用处理器指令。所以本质上就像最初的程序员同样编写代码。

> Rainer Gerhards, CC BY-SA 3.0, via Wikimedia Commons

好的,可是它与AI有什么关系?

很高兴你问。我以为,尽管对程序员的需求仍然追随全球市场,但对创新的需求却在70年代急剧上升,并在随后的几年中逐渐降低。

概括编程的需求为零,所以不会有像概括编程甚至高级语言同样出色的破坏性技术。对于C ++缺少高性能计算方面的开发,我显然感到不满意,但您猜怎么着。我不是不高兴去创造另外一个FORTRAN。显然,没有人。

C++的做品。这不是理想的,但也没有那么糟。这就是为何它会留下来。

是的,我花了一天的时间将代码从MSVC C++重写为GCC C++,这很无聊,并且我写了这句话,但这并无改变。一天就是一天。头就是头。

如今为破坏性技术。尽管AI尚没法知足客户想要的一切,但它具备完成我无聊的工做的所有能力。它能够解决交叉编译器的不一致问题,也能够在固有级别上优化代码。甚至用std :: threads从新实现parallel-for看起来也很繁琐,足以委派给机器。

以后,AI甚至能够为我写书。

对于拥有比我更多的人工智能经验的人来讲,这一切都是可能的,有利可图的,而且可能颇有趣。咱们已经使用SymPy用C ++编写代码,利用AI优化该代码将只是一步之遥,可是人们很乐意为此付出代价。它具备启动潜力,因此我但愿它会很快出现

AI颇有可能最终取代我,也许不是以程序员的身份,而是以C ++程序员的身份。可是一些新技术将杀死C ++自己的可能性很小。

 

 

C/C++具备底层操做能力,既适合软件开发,一样也适合硬件开发。还可开发Windows操做系统,Linux操做系统,大型游戏,大型服务器,桌面应用程序等。

 

 

若是你C/C++感兴趣,想学编程,小编推荐一个C/C++技术交流群【点击进入】!

 

涉及到了:编程入门、游戏编程、网络编程、Windows编程、Linux编程、Qt界面开发、黑客等等......

相关文章
相关标签/搜索