编程的未来
随着IT技术的发展,编程正在发生改变,PC时代即将被移动时代所取代,软件开发人员的硬件配置、职能以及所遇到的问题,与单机时代相比,都有着非常大的差异。尤其是大数据时代的来临,编程已不单单是维护工程的祭司,编程能力将变得愈加重要。
本文抓住目前影响编程的几大领域,结合当前的编程变化及趋势,对未来的编程进行了探讨。旨在让大家了解短期和长期的编程变化,以及需要关注的领域和该掌握的基本技能,让自己永远走在技术的最前端。
分布式计算
即使今天非常“普通”的编码环境都与十年前有着非常大的区别,随着Web应用、移动和大数据的流行,一个程序只涉及一台电脑的时代已经结束。对程序员而言,意味着我们必须克服诸如并发、锁定、异步以及网络通信方面等问题。即使是最基本的Web编程,你都必须要熟悉概念,如缓存。
鉴于以上所说的压力,我们也看到,在计算机堆栈领域也相应地以不同的级别呈现。在高层次上,云计算旨在减轻对多台服务器维护的麻烦;就应用开发层次而言,框架试图体现出熟悉的模式和把执行细节抽象出来;在语言层次上,像Go或Scala等语言使得并发性和网络计算更加简单。
硬件计算
现如今,大多数电子设备上都有处理器和应用程序,而电脑已经变得愈来愈小众,并不是说每个人都需要从事嵌入式开发,但开发者最好去学习下移动开发是做什么的。在不久的将来,无人驾驶汽车、无人驾驶飞机等都会出现在我们的生活中。
即使是非常传统地计算,作为一种先进数据运算的协同处理器GPU阵列的迅速崛起需要各种不同的编程方法,同样,不同的因素也需要不同的编程方法。
此外,程序员对先前专家们遗留下来的问题作出响应,比如低内存和CPU速度、功耗、无线电通信、软/硬件的实时需求。
数据计算
现如今比较流行的编程形式有面向对象编程,其重点主要放在访问方法时的包装数据和将数据集合封装的更紧。在数学世界中,数据虽然没有行为,但是严格的C++或Java程序员会担心如何访问这些数据。
由于数据和分析变的越来越重要,数据在编程语言中的地位也相应地水涨船高。在这股潮流地带动下,R语言的地位也有所上升,在通用的编程语言中,Python和Clojure使数据操作变得更加容易。
民主化的编程环境
越来越多的人从事编程,而这些“临时”的开发者在Excel宏、JavaScript工艺以及与Web服务器方面都会存在争论或争吵。这是很合理的,因为他们不熟悉软件开发。
然而,在许多情况下,这种“临时”的程序员会更容易在编程上遇到麻烦,虽然他们只是想要做好事情。好一点可能就是有一点烦人,最坏的情况,就是要承担雇主责任。但更重要地是,这不是程序员的错误。
对于这些“临时”开发者,该如何为他们提供更好地可编程环境?在现有的语言中,我们是否需要新的语言,更好的框架?它不仅仅是教育方面的关注,还涉及到方方面面,甚至是生活方面。
安全因素
最后,值得探讨的是当前我们正在构建的软件开发方法。问题很简单:大脑只能够承受这么多。作为当今社会的程序员,你需要根据大脑里的想法来编写程序。
当问题空间变大时,大家的反应是编写一个框架来使问题变得愈来愈小。所以,我们在顶级的CPU上运行操作系统,库和UI同样也运行在这些操作系统上,这些库在应用框架和Web浏览器上运行,JavaScript运行于浏览器上,JavaScript库运行于JavaScript之上,就这样,一直循环下去。
我们制造更快更强大的CPU,但得到的确是与10年前一样的应用程序性能,安全漏洞在框架中大量出现,使大量的系统处于危险之中。
我们为什么要这样使用电脑,为什么要让这些漏洞频出的东西和其有限的功能充斥着我们的大脑?未来应该继续这种观念还是寻找另一种出路?
总结
关于编程趋势和未来的发展,我们仍将继续研究下去,如果你有更好地观点或经验,欢迎与我们进行分享。(编译/张红月审核/王果)
本文来自:HTML5中国 http://www.html5cn.org/article-5376-1.html