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

简介:

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

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

20180312124729698

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

职场人的学习方法

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

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


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


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

相关文章
|
29天前
|
Java 程序员 C#
C++ 编程入门指南:深入了解 C++ 语言及其应用领域
C++是一种由Bjarne Stroustrup开发的跨平台编程语言,以C语言为基础并添加了面向对象特性。它用于创建高性能应用,支持类和对象,提供高级系统资源控制。C++经历了多次更新,包括C++11、C++14、C++17和C++20。因其可移植性和代码重用,成为流行选择。学习C++简单有趣,与C、C#、Java有共通性。开始C++编程,可以从打印"Hello World!"的简单程序入手。关注微信公众号`Let us Coding`获取更多内容。
23 0
|
3月前
|
Rust
Rust编程语言:探索性学习与实践指南
Rust编程语言:探索性学习与实践指南
33 0
|
3月前
|
前端开发 JavaScript Java
揭秘各种编程语言在不同领域中的精彩表现
揭秘各种编程语言在不同领域中的精彩表现
|
4月前
|
存储 Python
跟我从0学Python——掌握编程的基石
Python基础语法 —— 掌握编程的基石
|
6月前
|
Cloud Native Go 开发者
如何通过开源项目学习编程?
如何通过开源项目学习编程?
90 0
|
8月前
让我设计一门编程语言或开发一套解决框架
让我设计一门编程语言或开发一套解决框架
70 2
|
9月前
|
安全 前端开发 Java
2023年值得学习的六种小众编程语言
2023年值得学习的六种小众编程语言
133 0
|
10月前
|
存储 C# Windows
C#基础知识入门:从零起步学习C#语言
C#基础知识入门:从零起步学习C#语言
131 1
|
机器学习/深度学习 Java Scala
要获得“机器学习或数据科学”的工作,到底选哪种编程语言更好?
如果想要获得机器学习或者数据科学这样的工作的话,开发者到底应该学习哪种编程语言呢?这是一个非常重要的问题。 在Indeed.com上使用趋势搜索。 它可以根据时间搜寻实际工作机会中特定的条款。 这表明了雇主们正在寻找拥有该技能的人才。
1500 0