Programming Life
July 23, 2019
2019-08-14
前天学到了一个跟编程无关,却颠覆认知的知识(轻微夸张修辞)。摘自百度百科:
月相是指…,这就是月相的来源。月相不是由于地球遮住太阳所造成的(这是月食),而是由于我们只能看到月球上被太阳照到发光的那一部分所造成的,其阴影部分是月球自己的阴暗面。
我相信当初课本上也没说过“月相因为地球遮住了太阳的光”。只是有一篇讲“天狗食月”的课文最后说 “……是因为地球遮住了太阳的光”,其后至今我都以为这就是月有圆缺的原因。
然后引发了一系列的问题:有时月亮和太阳同时出现,地球是怎么挡住的光;为何月相的缺口不是向内凹,而是向外凸的…… 然而虽然有这些以为,这许多年却从未探究过原因。这次是因为有个同学问我台风过去没,然后我发了一张晴天的照片,恰巧上面有月亮,我就问了这个问题,然后对方也不解,然后我又问了另一个物理系的同学,他说可能是因为太阳没有照到,而不是地球遮住了。然后我想等晚上看看月亮形状有无变化。然后又想不用等晚上,看一下农历,网上查一下当天的月相就可以了。然后一番搜索后去了百科,仍是为了查图片。然后就看到了前面引用的文字。
一直说要探究问题,多问为什么。不知道从何时起变得没有主见,听风即是雨。对于脑海中浮现的问题也敷衍了事,不求甚解。
关于生命起源,宇宙时空,乃至生活的方方面面,皆不知其所以然。游离于他人创造的历史中,成为历史的一粒尘埃。
2019-07-30
Let it be.
ECMAScript 2015 加入了关键字 ‘let’ 用于变量声明,用于解决一些问题。对这个关键字的选择表示很奇怪,学其他语言时也没见过(php, java, python). 搜了下发现确实有些“古老”的语言有这个关键字。
但是为什么选 “let” 呢?以前见过的都很好理解,比如强类型语言直接用类型声明,var 表示 “variable”, const 表示 “constant” 等等。
唯独 “let” 这个词初见时很不像一个关键字。
今天看 ECMAScript 文档时突然有点明白了。因为文档中频繁使用这个句式描述语法:“Let…be…”。虽然没有一下就明白过来,不过相对好理解多了。
let x = 10;
就是让 x 等于 10 的意思,似乎很明显 ……
2019-07-29
History is fun, sometimes.
这两天看到 JavaScript 的类型转换,有些似乎比较反人类的操作。以此为代表的诸多问题,导致 JS 早年名声并不算好。然而 JS 却没有被取代,反而在各个平台都有了起色,可见必有其好处。所谓瑕不掩瑜,大抵如此吧。
无端想起了微信。虽然已经习惯,但是不喜欢用的人想必也不只我一个。如今微信几乎是必备应用了,能到这种地步,必然是哪里做对了吧。
只是这么感慨,并没有什么深刻的见解剖析。
历史的车轮滚滚向前,时间又如大浪淘沙。不可逆转的逝去有些让人无可奈何,作为旁观者的话却别有一番趣味。很多事的发展都不在意料之中,这趣味便是由好奇而起。
这时忽然想写这么一个系列,或许会有几分乐趣。To be contine…
2019-07-24
Why and How?
想起以前一个小漫画, 一个小码农对着一个问题说”为什么呢?”, 然后改了改, 发现还是不行, “为什么呢?”, 几番修改之后可以了, “但是为什么呢?“.
平时写代码难免会遇到写问题, 于是”为什么出错/行不通”并不罕见. 然而却少有”为什么行得通”的疑问. 因为功能可以实现, 似乎就万事大吉.
尤其是如今各种框架工具盛行, 很多事情不需要知其所以然就可以完成. 平日里的工作也多是跟框架打交道. 仔细想想, 还真有些惶恐.
为了让代码生涯更明白, 今后还是多研习下原理. 毕竟当初选择这个行业, 就是因为计算机说一不二的确定性, 如果最后对做的事情模棱两可, 可说是忘了初心.
于是接下来, 会把重心往计算机科学部分偏移一些. 即使短期内对工作没有帮助, 就当作闲暇时的长期投资吧. 且看将来效果如何, 再来评判.
2019-07-23
Code is for Humans.
学编程的时候总要学一门计算机语言。顾名思义,计算机语言是用来同计算机交流时使用的。然而从其发展趋势看,计算机语言越来越像自然语言了,也就是越来越“高级”了。
转念想来,高级语言并不能直接为计算机所理解,需要一个编译的过程,也就是需要一个“翻译”。于是计算机语言更像是与这个翻译进行交流的。
这里就不得不提出语言的更重要的作用,是与人的交流。计算机界的翻译是很强的,只要遵循他的规则,不管多复杂曲折的代码他都能应对自如。而计算机只看翻译的结果,更不管原来是什么样的。
说了这么多,其实就一句:代码首先是给人看的。这个人可能是别人,可能是将来的自己。写的代码不易读,就像上课时笔记写得很潦草,当时可能很清楚,过后却认不得了,笔记的效用也就大大削弱了。