别见异思迁了,其实计算机语言“姜也还是老的辣
好的编程语言是进化来的,不是设计来的,而语言的进化需要时间。
——赵 菁(华钦科技技术专家 副总裁)
众所周知,计算机技术的更新换代非常迅猛,新的编程语言、工具、框架层出不穷,每年都有新技术涌现,有时甚至对于业内人士来说都闻所未闻,即便一天24小时都学习也没法一直保持最新技术。但在技术快速更新的同时,似乎存在着一个“矛盾”的现象,那就是,很早以前就发明的语言在目前仍然有很高的使用程度。
比如,在当今国际广泛认可的编程语言排名榜TIOBE中,如果把10年前的排行榜前十名和当前相比,其包含的是完全相同的编程语言;
Top 10 编程语言TIOBE 指数走势(2002-2016)
再比如,诞生于1957 年的世界首个高级程序设计语言FORTRAN,发明于1958 年的 LISP,问世于1958年的ALGOL,研制于1959年的COBOL等,在如今依然拥有稳定的使用人群。
1. 计算机语言世界里的“矛盾”
为什么年代久远的计算机语言,在经历了计算机技术翻天覆地的巨变后,不仅没有被新的语言所淘汰,反而一直保持着活力?这在一般观念里似乎是不可思议的,背后有什么道理吗?
华钦科技对此的观点是,好的编程语言是进化来的,不是设计来的,而语言的进化需要时间。
每一门编程语言的推出都有自己的定位与功能,很早就发明并活跃至今的语言都是经过时间验证、持续改进后的成果。这些编程语言应用至今,沉淀了大量无价的资源,如框架、库以及可复用、可移植的代码等。只要这些资源存在,旧语言基本上就不可能消亡。
因为对于使用者来说,显然更愿意在原有的语言中实现创新,借鉴其他编程语言的新的特性,而不是换用新的编程语言,以避免更换语言给整个系统带来的较大风险和损害;另一方面,旧语言经过岁月检验而不断进化,导致一门新的编程语言想要流行的门槛也越来越高,要想淘汰旧语言的难度更大。
换句话说,“姜还是老的辣”这个道理在计算机语言中同样适用。作为最早的高级程序设计语言之一,COBOL就是这样一个典型的例子。
2. “宝刀不老”的典型例子
COBOL(Common Business Oriented Langauge)正式发布于1960年,时至今日,已经走过50多年的岁月。经过不断修改、丰富完善和标准化,COBOL已发展为多种版本的庞大语言,在财会工作、统计报表、计划编制、情报检索、人事管理等数据管理及商业数据处理领域,都有着广泛的应用,但COBOL最为主要的应用还是在银行、金融和会计行业等非常重要的商业数据处理领域,因此,甚至有“COBOL掌控全球的钱袋子”这样的说法。
尽管已如此“高龄”,但COBOL在当前的商业领域仍然占有重要席位,其重要性可以用这组数字来描述:世界上70%的数据都是用COBOL语言处理的,并且90%的ATM事务处理用的都是COBOL语言,每天在线处理的COBOL事务有300亿次,500强中有492家(包括全部的100强)使用了COBOL语言,目前在COBOL方面的投资已经超过3万亿美元。
正如其字面的含义——“面向商业的通用语言”,COBOL的设计初衷就是为了应用商业领域。也正是COBOL的出现,使人们开始意识到计算机不只应用于科学计算领域,而且还可以进入各种事务处理领域。COBOL之所以适合应用于商业数据处理领域,是基于这门语言的几大技术特点。
首先,COBOL蕴含着强大的商业逻辑。在企业管理中,数值计算并不复杂,但数据处理的信息量却很大。COBOL重视数据项和输入/输出记录的处理,对具有大量数据的文件提供了简单的处理方式,因此尤为擅长解决商业和企业管理等领域的大量数据处理问题。
其次,COBOL的语法模式比较接近于自然语言(英语),程序员阅读COBOL基本不费力,可使商业数据处理过程精确表达。正如利默里克大学教授Michael Coughlan表示,“COBOL的一个最大优点是不仅可写性强,而且很多年之后你仍然可以轻松理解这些代码的含义。”市场调研公司Forrester研究人员Mike Gilpin也赞同这种说法,“COBOL是过去50年内少数几个可读性极高的语言之一,很多现在流行的语言非常难以理解,比如PHP、Java。”
此外,COBOL通用性强,标准化程度高,使得程序在不同计算机系统上的移植比较容易实现。
由于这些技术特点以及在商业领域的雄厚基础,使得COBOL直到如今依然是商业计算中首选的编程语言。即使对于具有相当经验的IT公司来说,重新编写COBOL语言的可靠的应用软件也是不实际的,或是从商业角度上并不可行的,而且还要花上很长的时间。正如IBM软件发布及策略组主管Charles Chu所说,“企业在不断创新,但是全球2500亿行的COBOL代码仍然可以非常出色地完成工作,企业有理由去替换掉正常工作的系统吗?”
3. 学习计算机语言“万变不离其宗”
编程语言的版本不断改进,流行的语言也在不断变换,现在学的知识也许在很快的将来就不适用了。那么,程序员应该如何面对编程语言不断的更新换代呢?
对此,华钦科技认为,程序员在计算机语言的学习过程中应该保持正确的态度和方法,认清本质,掌握规律,多进行有效积累。
计算机兴起也就这么短的时间,变化速度相对于其他传统学科而言确实快到飞起,但编程语言再多,其中有一些本质的改变却是最慢的,比如设计模式、算法、数据结构、思维模式、软件架构等。不要太过于沉迷跟进新技术,而要多从历经岁月沉淀的技术中总结精髓。正所谓“万变不离其宗”,只有关注到了本质,那么你的所有积累才会是有效积累。
况且,从另一方面说,如果本质的东西掌握得够扎实,学新技术的过程反而会变得非常迅速。因为不管“鲜姜”还是“老姜”,他们的本质也并没多大改变。
Follow Us