面向初学者和专家的两种可读性编程语言

什么是可读性代码?

下面一个幽默:

  • f(x,y) -> 清晰明了,是实用编程的标志。
  • f x y -> 在 shell 脚本中可以接受,但有点奇怪。
  • (f x y) -> 令人费解。请谨慎使用!

有两种类型的可读性:

  • 新手可读性:您能够多快地快速阅读一门新的编程语言。与您对所使用的语法和概念的熟悉程度有关,尽管以前从未见过该语言。
  • 经验丰富的可读性:有该语言经验的人理解一段代码的速度有多快。

它们可能会发生冲突。

可读性增强剂
1、结构增强:
使用函数、空格、注释甚至注释标题来直观地构建代码。

  • 对初学者的影响:使代码更易于浏览和理解;帮助分组相关逻辑。
  • 对专家的影响:帮助快速导航和理解代码结构;减少脑力劳动。

2、简化技巧
利用减少错误可能性的结构并利用内置函数来完成常见任务。

  • 对初学者的影响:通过降低复杂性来简化对代码的理解;最大限度地减少常见错误。根据特定的熟悉程度,它可能会损害可读性。
  • 对专家的影响:简化代码,使其更易于阅读和维护;提倡使用简洁、富有表现力的结构。

3、高级语言功能
采用高阶函数、模式匹配和其他表达性语言功能。

  • 对初学者的影响:由于需要掌握更多概念,增加了复杂性和学习曲线。
  • 对专家的影响:增强表现力和简洁性;允许更复杂的概念和更清晰的意图。

选择哪个?
那么,您最关心哪一栏?该如何取舍?

Go 选择了初级可读性和简单性。显然,Go 在 "云原生 "网络服务领域的应用取得了巨大成功,我相信这也是选择 Go 的部分原因。

Rust 的选择恰恰相反。不是因为借用检查器与 Go 的 GC,而是因为特质系统、和类型、结构模式匹配、常量泛型、过程宏等等。这也是一个完全合理的选择。Rust 选择成为一个更复杂、更适合知识渊博的专家使用的工具。

我个人认为,专家的可读性比初学者的友好性更重要。未来,我希望我们能使用更高级别的概念。我希望这能让我们写出更好的代码。

然而,承认必须取得平衡是至关重要的。复杂的功能会让初学者的学习曲线变得更加陡峭。高阶函数、模式匹配和其他复杂的构造都是需要学习的额外层次,这可能会让那些编程新手或特定语言的学习者望而生畏。

但专家的可读性也很重要。简单的语言总是需要的,但我们也应该为有经验的用户进行优化。我们需要专家能快速理解代码的语言,因为代码能准确传达其意图,为此,我们需要比 if 和 for 循环更大的构建模块。