如何改善国内基础编程环境?


Author: Kimmy

如何改善国内基础编程环境?

知乎链接


其实你说的那三点都并没有切中主要问题。
主要问题还是太多人在乎钱和名了,而没有真正地在做事情。

就像非要拿国家的经费搞所谓的自主知识产权的xx系统(不止是OS哦),然而对于真正跟生产实践和学术研究相关的问题都抛到了一边。
更不用说去传播和普及计算机科学知识了。

好的我们抛开一切情怀话题,从“如何改善国内基础编程环境?”上入手。
---------------------------------------------------------------

首先,我更倾向于Alan Perlis及其弟子

关于中文编程语言的看法。(为什么你应该用中文写程序 - impress your cat - 知乎专栏
并且,这实际上已经不只是“编程”或者“计算机科学”领域的话题了,更深远一点,要涉及到语言学和数学相关的东西。有很大一部分人(包括我)的表达能力根本不够,却还希望传达自己想法,就会造成不小的问题。
但反过来,对于编程语言,其每一个语法单元都是形式定义的,每一个执行步骤的语义也都是确定的,不存在表达不清晰或者理解不透彻这种情况(当然,也有unspecified behavior这个概念,但这并不能说明什么,毕竟对于特定实现还是会specify的)。
至于中英文互译,这很大程度上反映了中文的复杂性。中文中很多时候一个词可以兼做动词名词形容词和副词,稍不留意就可能一下偏离原文的意思很远。再加上本来IT类语言借自于其他领域的词汇就很多(想想看overload)很难甚至根本不能进行准确的意译(把overloading翻译成“过载”?),更是容易增加这个复杂度。
就像题主所说的,很多译著术语不统一,用词不准确,表意混乱。
(关于术语翻译这个问题,只要是学术典籍都会有存在。要么等业界出一套标准,要么在译著后面附一个索引。有责任的作者和译者都在往这两方面努力吧。
另外,侯捷先生对于这个问题很早就有过讨论,从他的作品来看,是业界的标杆。(技術引導乎 文化傳承乎

然后是让更多人去尝试注重过程而非结果
就像题主说的,主流操作系统软件(用于包括个人电脑、嵌入式设备和高性能计算机等)的核心都是源自国外的手笔,于是看到这一结果很多人就开始说要发展“我国”的OS了。然而大部分人都忽略了导致这个结果的整个过程:几十年前的OS林立以及后来慢慢的发展和合并,才有了现在的Windows、Linux各发行版和各种版本的Unix。举国之力开发出来的操作系统,估计还不如几年前番茄花园的Ghost XP。且不说生态圈和技术积累之类的概念,单只由于对利益十分看重导致计划不能长久执行这一点,就会让每一个新OS都是从零开始。
过程就这样被忽视掉了。

举个例子就是,20年前发布的ECMA-234,里面提及的内容,在现在你的Windows SDK里面依然能够正常的用。
然而我们国家20年前开发的操作系统在哪儿呢?

学习编程(和其他的知识、技能)也一样。如果是冲着一个特定的目的去学,那么这次用完学到的东西之后,大概过不了多久就忘掉了。(就因为这个原因,每回用Python写代码我都要去翻标准库使用手册。)

另外,编程是一种思想方法艺术。就像是美术和音乐一样,也需要创作灵感,也需要特殊的思维方式,也需要作为一种兴趣来培养,并不是反复练习就能达成的。但是在我们国家很多人最开始接触编程就是通过竞赛。跟很多基础性学科一样,我们国家竞赛很屌,结果真的在学科贡献上呢?

同样地,国内的专业教育也是很乏力。就像在大学物理课上只能学到科普知识,在数学系也只能学到一些粗浅的皮毛一样,计算机科学和编程的教育在大部分高校都很差劲。很多时候制定教材和讲授课程的老师们也都不知道他们在做什么,学生们也更在乎这门课是不是能够考过,所以大部分情况下都在死死的纠结考点细节的时候啥都没学就结束了。我几天前有幸再次回学校听一个老师讲计算机网络,完全是摘读谢希仁先生的那本教材,特别地点出说,哪儿哪儿是考点,你们一定要好好看,而并不知道他自己对这个发展了这么多年的体系有多少理解。

=================
第一次说这么多废话,好像并没能解答题主的问题。
1.从OS角度讲,几大主流OS都是国外的。本人用ubuntu,每次查系统手册,基本是英文,虽然也有中文手册,总觉得翻译的中文手册读起来怪怪的,不 像中文,而且理解起来还不如直接看英文原文,虽然阅读效率理解效率低下了些(明明是自己英文水平不行~~~)如果中文编程能够发展得很好,是否有助于改善 这种状况。
不能,见前文。
2.从编程语言角度讲,编程语言都是基于英文创造的,虽然只要英语不是太烂,大多数编程语言还是hold得住的。但本着好奇的态度,参考过一般编程语言都是英文的,大家对中文编程有什么样的看法,中文编程有哪些优劣势? - 编程为什么大家都很否定中文编程? - 编程语言两 个问答贴,感觉大家总体上还是否定中文编程的,主要理由大致是编程主要在于数学,数学无国界,和语言关系不大。对于易语言也持有“骗政府钱”的态度。个人 觉得中文编程若发展得好,还是在一定程度上会促进国内编程环境改善。从这个角度,中文编程是否有其发展必要?(未来计算机技术应该应用会更加广泛,假如最 后到了需要统一语言的时代,无论如何这个因素都会成为英文占统治地位的一个强大筹码。脑洞大开了~~~)
基本上也没什么必要。更何况b大都放弃了。
3.从编程资料角度讲,实在是想吐槽国内 书籍以及翻译。有些作者是本着读者看不懂的目的写书的吗~~~虽然不乏有好书,但是后来发现要么看国外大牛的书,要么看官方文档,国内的一些书看着就是浪 费时间。还有很多译著,术语不统一(强迫症读者恨不得砍人了~~),用词不准确,表意混乱比比皆是。好吧,这些是吐槽,因为不好拿出直接证据,权当个人主 观感觉吧。

参见前文和侯捷先生的文章。

==========
第一次在知乎答这么长的内容。
给个赞吧。

创建时间:2015-10-01 最近更新时间:2023-11-03