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

简介:

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

职场人的学习方法

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

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


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


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

相关文章
|
6月前
|
机器学习/深度学习 开发框架 人工智能
探索C++的深邃世界:编程语言的魅力与实践
探索C++的深邃世界:编程语言的魅力与实践
|
4天前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
21 7
|
3天前
|
存储 XML 开发工具
探索安卓应用开发:从基础到进阶
在这篇文章中,我们将一起踏上安卓应用开发的旅程。不论你是编程新手还是希望提升技能的开发者,这里都有你需要的东西。我们会从最基础的概念开始,逐步深入到更复杂的主题。文章将涵盖开发环境设置、用户界面设计、数据处理以及性能优化等方面。通过理论与实践的结合,你将能够构建出既美观又高效的安卓应用。让我们一起开启这段技术之旅吧!
|
3月前
|
存储 数据挖掘 数据库
探索Python编程:从基础到高级探索移动应用开发之旅:从概念到实现
【8月更文挑战第29天】本文将带你进入Python的世界,无论你是初学者还是有一定经验的开发者。我们将从Python的基础知识开始,然后逐步深入到更复杂的主题。你将学习到如何编写清晰、高效的代码,以及如何使用Python进行数据分析和网络编程。最后,我们将介绍一些高级主题,如装饰器和生成器。让我们一起开始这段旅程吧!
|
1月前
|
JavaScript 前端开发 编译器
如何系统地学习编程语言
【10月更文挑战第13天】如何系统地学习编程语言
122 64
|
22天前
|
Rust 安全 Java
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第27天】Rust语言以其独特的特性和优势在编程领域迅速崛起。本文介绍Rust的核心特性,如所有权系统和强大的并发处理能力,以及其性能和安全性优势。通过实战示例,如“Hello, World!”和线程编程,帮助读者快速入门Rust。
45 1
|
6月前
|
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`获取更多内容。
120 0
让我设计一门编程语言或开发一套解决框架
让我设计一门编程语言或开发一套解决框架
91 2
|
安全 前端开发 Java
2023年值得学习的六种小众编程语言
2023年值得学习的六种小众编程语言
210 0
|
程序员
第5章 编程语言的组成 《丰富多彩的编程世界》
第5章 编程语言的组成 《丰富多彩的编程世界》 丰富多彩的编程世界 作者 陈光剑 第1章 名可名非常名第2章 语言的构成第3章 有趣的编程第4章 编程语言大观第5章 编程语言的组成第6章 编程范式第7章 编程思想第8章 编程心理学第9章 程序员这群人第...
944 0
下一篇
无影云桌面