世界,特别是技术世界,正处于一个不断演变的状态。随着个人电脑被大量的新设备和设备所取代,单机时代已经接近其不可避免的终结。
这种技术的出现在行业内产生了一套全新的、完全独特的工作职能。芜湖手机网站设计:每一项工作职能都提出了自己的问题,需要采取不同和创新的办法才能解决。
在这个新时代--一个信息过载的时代--对每个人来说,无论他们的工作是什么,能够至少做一点编码变得越来越重要。在当今世界中,数据流和处理的规模和频率都很高,这意味着不能再依靠工程师来承担编程的全部负担。编码是下一个大问题,必须具备全球就业行业的技能。
编码的演变
然而,编码本身正在经历着巨大的变化,不断演变,以便能够适应新设备的泛滥和未来的技术环境。今天所做的编码与十年前完全不同。曾经涉及到一台独立的机器或计算机的程序,但那些日子早已过去了。
今天,这些目标包括大数据、移动和网络应用程序,它们都越来越互联。芜湖手机网站设计:今天程序员面临的挑战是网络通信、并发性、异步性、锁定、缓存和大量的网络协议。这些挑战所带来的压力在编码的各个层次上都会产生各种现象。
语言水平
通过提供给程序员的特性,Go、Scala和其他类似的语言使网络计算和并发等挑战变得相对简单。应用开发水平
框架固有的令人厌烦的细节被抽象掉,并试图体现更熟悉的模式。高级别
由于维护多个设备和它们所属的网络而产生的麻烦通过云计算得到了缓解。
向前看,在不久的将来和更遥远的将来,程序员将需要超越对嵌入式设备的编码,为手机、汽车、眼镜、智能尘埃甚至无人机编写代码。此外,随着GPU阵列作为一种先进的数据处理协处理器的出现,非传统编码仍然是,甚至是传统计算所需要的。芜湖手机网站设计:显然,语言和程序员都需要新的和创新的编码方法,以适应各种形式的因素,并解决诸如CPU速度、低内存、功耗和实时需求等问题,而这些问题以前只有专家才能处理。
今日编码
JavaScript或C++等语言本质上关注数据的行为,从而限制数据和访问方法中的数据集合,这使得程序员不得不不断地担心数据的行为以及如何访问数据。然而,从数学上讲,数据没有行为。它只是存在。芜湖手机网站设计:因此,面向对象编程的限制导致了编程语言的流行,并随之增加了对编程语言的使用,这些语言并不完全集中于数据的行为,而是使分析和操作变得更容易。这些语言包括R、Clojure和Python。
现代编程已经催生了一代开发人员,他们对编码和软件开发知之甚少。然而,它们在JavaScript、Zapier、IFTTT和Excel宏中造成了相当大的混乱和混乱的春季神奇解决方案。这些程序员无意中对复杂、难以理解的代码行或学习如何编写代码不感兴趣。
相反,他们需要一个新的编程环境,其中有增强的语言和改进的框架,这样他们就能够开发他们想要的东西,而不需要附加的传统编码的麻烦。他们需要的是不可见和无缝的编码,这样他们就可以通过拖动和删除预定义的功能块来执行他们想要的东西。
今天的编码问题
然而,使用流行的编码方法的问题是,它类似于平衡多个茶杯,一个茶杯在另一个茶杯上,以节省时间和提高效率。总有一天,一个杯子会倒下,它会把整个堆叠摔下来。越来越强大、处理速度更快的系统不再能解决所有编程问题。在过去的十年中,相对的应用性能并没有表现出任何主观的改善。
到目前为止,软件工程师提供的解决方案一直在原地打转,并没有真正解决大问题。它们往往在其框架内受到安全漏洞的影响,给系统造成重大风险,并表明有必要从传统的编程思维方式转向更创新和更有效的系统架构。
编码的未来
编码已经从需要大量代码行的高度复杂的低级编程语言,过渡到稍微简单一些的中级编程语言,这些语言仍然相当复杂,但需要更少的代码行,再到高级编程语言,这些语言使代码几乎是不可见的,这样程序员就可以快速地编写应用程序,而不必真正了解幕后发生的事情。
在不久的将来,也许在未来十年左右,语言将进一步发展,从而使编码变得几乎不可见。为了开发应用程序,所有程序员都需要做的就是选择预定义的功能,把它们拖来拖去,然后放到他们想要的地方。芜湖手机网站设计:开放源码社区将为世界提供类似于基调或PowerPoint的应用程序,这样,未来的程序员就可以通过拖动块来添加他们想要的任何和所有的功能。
编程语言是什么样子的?
编程语言需要进一步向简单性发展,因为系统架构和未来提出的问题将是异常复杂的。这种复杂性将产生于对并行体系结构进行编程的需要。问题将被分解为各个部分,每个部分将由并行工作的CPU阵列中的CPU单独处理。
必要的简单性将通过基于我们日常使用的自然语言来定义我们的问题的语言来实现。这种自然语言界面将掩盖更复杂的算法,这些算法将在幕后工作。这些人工智能算法将在高级编程语言(如JavaScript或C++)中翻译和定义问题。
这样生成的代码几乎是无缝的,因为它将消除人为的语法错误。这是可能的,因为人工智能将创建变量,形成循环,并定义类和处理所有错误。然而,人工智能不能完全取代人类程序员,因为仍然存在某些超出其范围的问题。这些问题将需要人类的关注和干预,并需要使用我们今天所使用的编程语言。
除了未来复杂的系统结构外,编程语言还需要一个自然的语言接口,使来自各个领域的专家能够解决自己的问题,而不必了解或学习当今编程语言中存在的复杂语义和语法。这种能力将使来自天体物理学、考古学和遗传学等领域的人们能够利用计算机解决最困难的问题。
隐形无缝编码
那么,编码的未来是否真的是无形的或无缝的呢?基于迄今为止的所有证据,以及编程世界中正在进行的努力和进步,人们肯定会倾向于说,是的,编码在未来肯定是不可见的和无缝的。即使在今天,这一点在RCPP包将C++和R结合在一起时也是显而易见的。
C++可以定义为今天的编程语言,而统计语言R可以定义为未来的语言。RCPP包允许在两种语言之间几乎无缝地传输数据,将现在和未来结合在一起。它结合了C++的效率和速度,以及令人难以置信的通用性和R提供高性能统计计算的能力。
RCPP包今天证明了未来的编码可能是无缝的,即使不是看不见的,明天也是如此。是否有更多的编程语言(特别是JavaScript)进化和适应无缝集成的需求还有待观察。但是,未来编程语言不会妨碍程序员和开发人员,而且看上去几乎是看不见的,这是绝对有希望的。