优秀的开发者为什么要学习研究新的编程语言?

点击关注 异步图书,置顶公众号

每天与你分享 IT好书 技术干货 职场知识

跟我交流较多的朋友们会知道,我是很早就坚持研发人员要多学会几套编程语言的人,特别是新的开发语言。有段时间,我甚至都在准备尝试自己设计一个有应用场景的编程语言。计算机语言是人设计的,了解了核心的原理,真的没那么困难。当然,要做的出色,有很多用户,那就是另外一回事了。

基于C/C++语言的开发我做了10年以上。后来我逐渐的把应用需求分解到其它语言中去,PHP/Python/JavaScript(前端/Node.js),我都花了不少功夫研究。我在开发过程中能做到各种语言随时切换,得心应手,没有任何障碍。并且,仰仗着过去在C/C++时代打下的良好基础,我可以在源码级研究并理解编程语言。特别是用C写的各种脚本语言,只要觉得手册没写清楚的,我就直奔源代码看个明白。这是开源时代给多语言开发者带来的巨大优势。

最近,我在研究Go语言。其它几种感兴趣的编程语言,我也有计划钻研一下。

为什么我对新的计算机语言,这么乐此不疲?很简单,时代变革,与时俱进。参考:人要与时俱进,顺应时代潮流

对当今的IT领域来说,单一语言包打天下的时间已经一去不返。未来的趋势是,各种语言站住自己的核心应用地盘,相互借鉴、相互竞争,不断拓展、侵蚀到其它语言的应用领域,逐渐发现更好的表达模式和方法。

新的语言,代表着对事物更新的理解和更好的阐述方式。

语言是人类思维的工具。人类之间的语言,与人类对计算机讲的语言,实质都是要表达出思想。人依靠编程语言来指挥计算机运行。不同的语言,代表了对问题领域、对计算机系统不同的理解方式。

催生这些语言并促进其发展的,是背后的环境变革。更新的语言,常常是吸收了上一代语言的优点,再尝试使用新的思想模型、新的方法去解决各种已知、未知的问题。有时候使用者会发现它很有效,很方便,这个语言就容易在一个问题域站稳脚跟了。

我们的开发环境、应用环境,一直在变化。但是人类往往对缓慢的变革熟视无睹,习惯的延续原来的假设和出发点,这就给创新留下了口子,经常可以从这里获取突破性进展。

比如,单机时代,CPU性能弱,存储器速度、容量都很低。那么在这个条件下,作出的各种软件开发决策,都会带上这个默认环境的影响。以至于后面的硬件突飞猛进,原本的假设不成立了,它的影响可能还在延续。原来的计算机网络物理层面不够可靠,所以网络协议设计了很多校验机制,但是后面的光纤时代,这些校验就成了成本和负担,检验并不是越多越好。参考:重要的技术创新节点容易发生在什么地方?

从单机转向网络应用,再做移动设备开发,以及和网络的融合,以后再有各种智能硬件设备、万物互联,不同的应用发展,带来了不同的需求和环境。而原本的编程语言,设计者考虑的平衡点可能就不合适了,需要新语言替代它,进行革新。

所谓的“平衡点”是说,设计决策里面对相互冲突的特性,作出的妥协点在哪里。你是要编译式的静态语言,还是动态语言解释型的?重点是编程灵活还是运行速度?考虑多少安全问题?要不要垃圾回收?用什么机制?比如CPU从单核进化成多核,如何在语言设计上充分利用硬件的能力?

如此多的应用需求变化,对各种不同设计思想的计算机语言的产生必然是催化剂。单一语言解决所有问题域,是不可能的了。强行上马,只能让开发者痛苦,大幅降低效率和质量水准。现在还有谁用C++写Web应用?

庆幸的是,在计算机系统架构未得到根本变革之前,绝大部分编程语言都有很相近的语法结构,弄懂学会并不难。计算机算法也是共通的。但是考虑到它创建并依赖的生态环境、设计思想、开发模式和习惯用法,应用自如还是需要耗费很多精力的。

这里链接几篇关于学习能力培养、学习方法的原创文章,供大家参考:

学得快,记得牢,花的少 – 请尽快开发你的大脑

职场人的学习方法

IT人永远不老,老程序员价值何在?

IT领域,学无止境,各位继续努力吧!



本文摘自异步社区,作者: winston 作品:《优秀的开发者为什么要学习研究新的编程语言?》

点击下方阅读原文,查看更多内容

阅读原文

原文地址:http://blog.51cto.com/13127751/2085462

时间: 2024-10-06 23:53:11

优秀的开发者为什么要学习研究新的编程语言?的相关文章

开发者协会暑假招新方案

我们协会已经开始运作咯,谢谢大家这段时间的关注&支持! --------------- 终于可以宣布 计算机科学系 开发者协会 成型啦!我们低调地调查,低调地组织,低调地成立,低调地做规划.现在,我们稍微高调地宣传. 我们的宣传方案也很简单,首先请各班班长帮忙群发下面标记红色的短信内容: 大伙,系里的开发者协会开始招新了.协会的驱动形式是这样的:组织系里优秀的学生到讲师组给大伙培训,然后将大伙中表现良好的送到实验室.工作室.企业实习,然后又把优秀的学生邀请到讲师组,死循环-现在暑假集训方案:8月

【译】如何成为一个优秀的开发者

*前言:原作者George Fekete是一个拥有10年客户端和服务端的web开发者,擅长PHP.JavaScript,致力于各种中大型的web应用,Primal Skill的创始人,CTO.本文根据How to be a Good Developer翻译而来.* 作为一个苦逼的程序员,你需要在这个随时变化的行业中不断的提升身自己,学习并且实践,成为一个成功的开发者,才能在这巨大压力的竞争中找到自己的立足之地. 那么问题来了,什么是我们所说的成功的开发者,他们是了解各种语言和工具的博学者?还是把

个人前端学习路线图与github优秀前端开发者的路线图推荐

1.个人目前学习的路线图 2.github优秀前端开发者的路线图推荐 打开github首页,在搜索框输入developer-roadmap,搜索github前端路线图 选择kamranahmedse/developer-roadmap拥有56.5k的星,足以证明这个路线受到广大前端开发者的喜爱与推荐 选择clone与down,下载可以慢慢研究了. 原文地址:https://www.cnblogs.com/NineKit/p/9612808.html

前端开发者进阶之ECMAScript新特性--Object.create

前端开发者进阶之ECMAScript新特性[一]--Object.create Object.create(prototype, descriptors) :创建一个具有指定原型且可选择性地包含指定属性的对象 参数:prototype 必需.  要用作原型的对象. 可以为 null.descriptors 可选. 包含一个或多个属性描述符的 JavaScript 对象."数据属性"是可获取且可设置值的属性. 数据属性描述符包含 value 特性,以及 writable.enumerab

框架成为新的编程语言的7种理由

感谢强大的工具.对速度的需求.和编程本身的变迁,下一次乏味的战争将终结于框架 API.而非语法. AD: 在 1980 年代,掀起一场乏味战争的最简单方法,就是赞扬你钟爱的编程语言是最棒的.C.Pascal.Lisp.Fortran?程序员们花费数个小时来详细解释关于精巧制作一条 if-then-else 语句的特定方式为什么优于你的方式. 那是过去的事情了.今天,涉及语法和结构的战争基本结束了,因为世界已经汇总了一些简单标准.在 C.Java 和 JavaScript 里,分号.花括号等之间的

快速学习一门新的编程语言

为什么 Objective-C 很难 - linux,dev - 博客园http://www.cnblogs.com/huapox/archive/2012/12/01/3251600.html 9 个指导开发者快速编码/学习的网站推荐 - 楚广明 - 博客园http://www.cnblogs.com/chu888chu888/archive/2012/02/16/2354813.html 教是最好的学 - MNight - 博客园http://www.cnblogs.com/mnight/p

苹果新的编程语言 Swift 语言进阶(十四)--扩展

Swift语言的扩展是为一个已经存在的类.结构.枚举类型添加新功能的一种方式,包括为不能存取源代码的那些已经存在的类型添加功能.        扩展类似于Objective-C语言中的类别,与类别不同的是Swift语言的扩展没有名字.        扩展能够为已存在类型:     1)增加计算属性和计算静态属性:     2)定义新的实例方法和类型方法:     3)提... 请转移到此位置继续阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(十四)--扩展 苹果新的编程语言 Swift 语

苹果新的编程语言 Swift 语言进阶(八)--属性

请转移到此位置阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(八)--属性 http://blog.csdn.net/goohong/article/details/32096289 苹果新的编程语言 Swift 语言进阶(八)--属性,布布扣,bubuko.com

苹果新的编程语言 Swift 语言进阶(十五)--协议

协议定义了适合某个特定任务或功能需要的方法.属性和其它需求的一个蓝图.协议本身不提供这些需求的实现,它只是描述了一个任务或功能实现的蓝图.       协议与java 语言中的接口定义类似,都是描述了一个实现可以干什么,而本身却不包含任何实现.与接口不同的是swift语言定义的协议可以被一个类.结构.或者枚举采用,来提供协议规定需求的实际实现,而java 语言的接口只能被类实现.   ... 请麻烦转移到此位置阅读,谢谢! 苹果新的编程语言 Swift 语言进阶(十五)--协议 苹果新的编程语言