从编程的四个角度尝试这四种语言

2025-06-07

从编程的四个角度尝试这四种语言

编程语言种类繁多,成千上万种,每一种都独具特色。有些语言可读性更强,有些性能更佳,有些语言简洁易懂,有些语言复杂难懂。在这里,我将从编程的四个不同角度为您介绍四种不同的编程语言。我诚邀您逐一尝试,探索它们的优势,发现它们的不足。每一种语言都独具特色,能够更好地解决某些类型的问题。它们会以不同的方式教会您解决同一个问题。

1. C

在贝尔实验室开发 Unix 操作系统时,丹尼斯·里奇 (Dennis Ritchie) 想要一种能够胜任编写操作系统部分功能的语言。他从 BCPL 和 B 语言中汲取灵感,编写了 C 语言。

C 语言的许多语法直接映射到机器码。C 语言拥有汇编语言的强大功能,但与汇编语言不同的是,它是跨平台的。如果您在编写代码时考虑到了可移植性,那么它无需进行太多代码修改即可在多种操作系统和 CPU 架构上运行。

当你想直接与机器对话,消除你和机器之间的所有抽象时,C 就是适合这类任务的语言。

这是一些 C 代码

int square (int number) {
    return number * number;
}
Enter fullscreen mode Exit fullscreen mode

这是编译器生成的汇编代码

square(int):
        push    rbp
        mov     rbp, rsp
        mov     DWORD PTR [rbp-4], edi
        mov     eax, DWORD PTR [rbp-4]
        imul    eax, eax
        pop     rbp
        ret
Enter fullscreen mode Exit fullscreen mode

2. Smalltalk

当我提出面向对象这个术语时,我可以告诉你,我当时并没有想到 C++。——
艾伦·凯

Smalltalk 的诞生是为了教孩子们编程。它的创始人 Alan Kay 对编程方式有着革命性的想法。他率先提出了通过消息传递让各个单元进行通信的想法。他认为语言应该围绕一个通用概念构建。Smalltalk 和面向对象编程彻底改变了编程世界,但这并非好事,因为世界误解了面向对象编程的整个理念。类成为了面向对象编程的核心。

下面是一些 smalltalk 代码:

"Return the weekday of a date"
'2013/5/7' asDate dayOfWeekName

"Save the HTML source of a web page to a file"
'http://www.pharo.org' asUrl saveContentsToFile: 'page.html'

"Count the number of, or show the leap years between two years"
(1914 to: 1945) count: [ :each | Year isLeapYear: each ].
(1895 to: 1915) select: [ :each | Year isLeapYear: each ].
Enter fullscreen mode Exit fullscreen mode

如果您已经了解 ruby​​,那么 smalltalk 就不需要花费太多时间来掌握,但它的实时调试器却是来自另一个世界的东西。

3. Lisp

“Lisp 是一种可编程的编程语言。”
—— John Foderaro,CACM,1991 年 9 月

如果你正在寻找函数式编程领域的一门语言,你很可能会听说过 Lisp。Lisp 是一种极简主义的编程语言,几乎没有语法。Lisp 是那种极具启发性的语言之一。目前最流行的 Lisp 变体是Clojure

Lisp 是可编程的。这意味着如果你不喜欢这门语言的任何结构,你可以用更适合你团队的方法来覆盖它。想象一下,如果 JavaScript 是 Lisp,我们就能修复它的很多缺陷。

下面是一些 clojure 代码:

;; define a var
(def a 42)
;; => #'user/a

;; call a function named `+`
(+ a 8)
;; => 50

;; call a function named `even?`
(even? a)
;; => true

;; define a function that returns the remainder of `n` when divided by 10
(defn foo [n] (rem n 10))
;; => #'user/foo

;; call the function
(foo a)
;; => 2

;; if else 
(str "2 is " (if (even? 2) "even" "odd"))
Enter fullscreen mode Exit fullscreen mode

4. Haskell

Haskell 是一门从数学世界发展而来的语言,它是一种静态类型(或许是最好的静态类型)的函数式编程语言。与大多数主流静态类型语言不同,它具有强类型推断,因此您无需在任何地方都编写类型,但仍然可以获得类型安全。

如果你正在使用静态类型语言编写程序,那么应该尝试一下 Haskell,它具有非常强大的类型推断功能。你可以看看下面的代码,它具有类型安全性,但我没有编写任何类型。Haskell
具有模式匹配、递归、列表推导、一等函数以及函数式编程语言的所有其他酷炫功能。

-- Using recursion (with the "if then else" expression)
factorial n = if n < 2
              then 1
              else n * factorial (n - 1)
Enter fullscreen mode Exit fullscreen mode

封面图片来源:感谢 Ian Schneider 在 Unsplash 上分享他们的作品

文章来源:https://dev.to/itsjzt/try-these-4-languages-from-4-corners-of-programming-epm
PREV
使用 React 构建狗狗币价格行情机
NEXT
声明式编程与 React