写点什么

程序员,你会尝试一门新的编程语言吗?

  • 2023-11-29
    四川
  • 本文字数:1054 字

    阅读完需:约 3 分钟

不知道大家对一门新的编程语言态度如何,我想太多数人对于一个新事物并不会太宽容,特别是某些上了年纪的人。俗话说:在我生命的前 30 年,科技是向善的;中间 30 年,是中性的;最后 30 年,是有害的。

但对新生事物的排斥可能会让我们错过很多好东西,比如说硅谷的互联网创业之父保罗·格雷厄姆,一开始就采用 Lisp 这种新型的编程语言,别的竞争对手都因为没有选择这种更高效的技术架构,因此永远追不上 Viaweb 频繁的更新速度,最终只有​ Viaweb(他们开发的软件)仅仅依靠 2-3 人的开发规模胜出,甚至远超那些上百人的商业公司。

Viaweb 的成功很大程度上归功于创始人对编程语言的选择,当时 Lisp 这门语言还没有任何的公司用于构建商业程序。而​保罗看到了这款编程语言背后的潜力:抽象程度更高,表达能力更强,开发速度更快,这使得他做得产品可以远超当时市面上的任何一款同类软件。

​尽管当时的 Lisp 语言显得甚至有些小众和冷门,很多投资公司也对 Lisp 感到陌生而犹豫不决,但保罗最终没有动摇,没有因为甲方的投资改变自己的立场,他强调一切应该以用户的体验为主,不论是稳定性还是更新的速度。

他在书里打趣地说,如果不是用 Lisp 语言,这些投资人也不可能看到那时的 Viaweb,他们眼中不正常的事情恰恰就是使得一切发生的原因所在,我觉得这给我们的启发是很大的。

我们都会觉得自己熟悉的语言已经足够好了,因此不再去尝试一种新的、更强大但陌生的编程语言,其实很容易让自己的眼光变得狭隘。

要判断一种编程语言的能力,我们可以用一个判断标准来定夺:写同样的程序,需要代码量的多少。

毕竟代码写得越多,就越容易错,也意味着之后进行维护和升级的成本都会显著上升。而且这里还没考虑,不同的编程语言能编写的功能也不尽相同。

以这样的能力做衡量标准,个人使用下来, iVX 这种可视化编程适合快速建模、构建原型,比如 web 程序和 app 等;python 丰富的数据库适合做脚本、C++适应硬件层,做​开发操作系统、嵌入式系统很好用;Lisp​ 的宏系统和动态类型系统使得它非常适合快速开发复杂的原型。

在这方面我觉得 iVX 跟 Lisp 有很多相似的地方,比如说适合高效地构建模型,快速实践想法、做出应用。

​ Lisp 的运行时效率可能不如编译型语言,但其语言的灵活性和动态特性使得开发非常高效。

我个人也比较赞成保罗对编程语言的这段评价:一门优秀的编程语言,应该允许程序员快速构建出原型,随后再花时间进行优化更改。而一门越优秀的语言,在初期构建应用上的阻力就应该越小,​而对于条件越苛刻的项目,强大的编程语言就越能发挥作用。

希望这段话也能引发大家的一些思考。


用户头像

一个程序员跟他的猫 2023-10-30 加入

做过 2 年建筑业,现在 3 年程序员

评论

发布
暂无评论
程序员,你会尝试一门新的编程语言吗?_代码生成器研究_InfoQ写作社区