如果你想开始或在编程生涯中取得进步,学习一门新的语言是个明智的主意。但是,大量使用的语言引发了一个问题:哪种编程语言是最值得学习的?为了回答这个问题,让我们从一个简化的问题开始:你想做什么类型的编程?
如果你想在客户端进行 Web 编程,那么专门的语言 HTML、CSS 和 JavaScript(以及它看似无限的方言之一)是必不可少的。
如果你想在服务器端进行 Web 编程,那么可以选择所有熟悉的通用语言:C++、Golang、Java、C#、Node.js、Perl、Python、Ruby 等等。当然,服务器端程序会与数据存储(如关系数据库和其他数据库)交互,这意味着诸如 SQL 之类的查询语言可能会发挥作用。
如果你正在为移动设备编写原生应用,了解目标平台非常重要。对于 Apple 设备,Swift 已经取代 Objective C 成为首选语言。对于 Android 设备,Java(带有专用库和工具集)仍然是主流语言。还有一些特殊的语言,如 Xamarin,与 C# 一起使用,可以为 Apple、Android 和 Windows 设备生成特定于平台的代码。
通用语言呢?在通常的分类中,有各种各样的选择。在动态或脚本语言(例如,Perl、Python 和 Ruby)中,有较新的产品,如 Node.js。Java 和 C# 比它们的粉丝愿意承认的更相似,它们仍然是以虚拟机(分别为 JVM 和 CLR)为目标的静态编译语言中的主导者。在编译成原生可执行文件的语言中,C++ 仍然在其中,以及后来的 Golang 和 Rust。通用的函数式语言比比皆是(例如,Clojure、Haskell、Erlang、F#、Lisp 和 Scala),通常带有热情奉献的社区。值得注意的是,诸如 Java 和 C# 之类的面向对象语言已经添加了函数式结构(特别是 lambda 表达式),而动态语言从一开始就具有函数式结构。
最后,让我为 C 语言做个推介,它是一种小型、优雅且可扩展的语言,不要与 C++ 混淆。现代操作系统主要用 C 语言编写,其余部分用汇编语言编写。任何平台上的标准库也大多用 C 语言编写。例如,任何发出Hello, world!问候语的程序都是通过调用名为 write 的 C 库函数来完成的。
C 语言充当可移植的汇编语言,暴露了其他高级语言有意隐藏的关于底层系统的细节。因此,理解 C 语言可以更好地掌握程序如何争夺执行所需的共享系统资源(处理器、内存和 I/O 设备)。C 语言既是高级的,又是贴近底层的,因此在性能上无与伦比——当然,汇编语言除外。最后,C 语言是编程语言中的通用语,几乎每种通用语言都以某种形式支持 C 调用。
对于现代 C 语言入门,请考虑我的书 C 编程:可移植汇编器入门。无论你如何学习,学习 C 语言都会让你学到的不仅仅是另一种编程语言。
你认为哪些编程语言是重要的?你同意还是不同意这些建议?请在评论中告诉我们!
21 条评论