怎么开发新的编程语言,编程语言发展
关注异步书,置顶微信官方账号。
每天和你分享IT书籍、技术、干货、职场的知识。
多和我交流的朋友都会知道,我长期坚持R&D人员要多学几套编程语言,尤其是新的开发语言。有一段时间,我甚至尝试设计一种有应用场景的编程语言。计算机语言是由人设计的。理解核心原理真的没那么难。当然,要做好,用户多,那是另一回事。
我开发C/C语言已经超过10年了。后来我逐渐把应用需求分解到其他语言,PHP/Python/JavaScript(front-end/node . js),我花了很多时间研究。在开发过程中,我可以随时切换语言,得心应手,没有任何障碍。而且依靠过去在C/C时代打下的良好基础,我可以在源码层面学习和理解编程语言。尤其是各种用c写的脚本语言,只要我觉得手册写的不清楚,我就会直奔源代码去看一看。这是开源时代给多语言开发者带来的巨大优势。
最近在学习围棋语言。我还计划深入研究其他几种有趣的编程语言。
为什么我对新的计算机语言如此满意?很简单。时代在变,与时俱进。参考:人要与时俱进,顺应时代潮流。
对于今天的IT领域来说,单一语言一统天下的时代已经一去不复返了。未来的趋势是,各种语言都站在自己的核心应用地盘,互相学习,互相竞争,不断扩大和蚕食其他语言的应用领域,逐渐发现更好的表达模式和方法。
这种新的语言代表了对事物的一种更新的理解和一种更好的解释方式。
语言是人类思维的工具。人类之间的语言,人类对计算机说的语言,本质上都是为了表达思想。人们依靠编程语言来指导计算机的操作。不同的语言代表了理解问题领域和计算机系统的不同方式。
催生这些语言并促进其发展的是其背后的环境变化。较新的语言往往吸收上一代的优点,然后尝试用新的思维模式和新的方法来解决各种已知和未知的问题。有时候用户会觉得它很有效很方便,语言很容易就能在某个问题域站稳脚跟。
我们的开发环境和应用环境是不断变化的。而人类往往对缓慢的变化视而不见,习惯延续原来的假设和出发点,这就给创新留下了一个漏洞,从这个漏洞往往可以取得突破。
比如单机时代,CPU性能弱,内存速度和容量都很低。在这种情况下,各种软件开发决策都会受到这种默认环境的影响。结果是背后的硬件突飞猛进,原来的假设已经失效,影响可能还会继续。原来计算机网络的物理层不够可靠,所以在网络协议中设计了很多验证机制。但是到了后来的光纤时代,这些验证就变成了成本和负担,测试越多越好。参考:重要的技术创新节点容易发生在哪里?
从单机到网络应用,再到移动设备开发和与网络的融合,未来会有各种智能硬件设备和万物互联。不同的应用开发带来了不同的需求和环境。而原来的编程语言,设计者考虑的平衡点,可能并不合适,需要一种新的语言来替代,进行创新。
所谓“平衡点”,是指设计决策中相互冲突的特性的折中点。要编译静态语言还是动态语言解释?强调的是编程灵活性还是运行速度?考虑了多少安全问题?你想收垃圾吗?用什么机制?比如CPU从单核发展到多核。如何在语言设计中充分利用硬件的能力?
应用需求变化这么多,设计思想不同的计算机语言的出现一定是催化剂。单一语言不可能解决所有问题领域。强行推出只能让开发者吃亏,大大降低效率和质量标准。现在还有谁用C写Web应用?
幸运的是,在计算机系统架构的根本改革之前,大多数编程语言都有非常相似的语法结构,因此理解和学习并不困难。算法也很常见。但考虑到它所创造和依赖的生态环境、设计思路、开发模式和习惯用语,要想运用自如,还是需要耗费大量精力的。
下面是一些关于学习能力培养和学习方法的原创文章,供大家参考:
学得快,记得快,花得少——请尽快开发你的大脑。
职场人的学习方法
IT人不老,老程序员有什么价值?
在IT领域,学无止境。请继续努力!
作者:温斯顿作品:《优秀的开发者为什么要学习研究新的编程语言?》
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。