发现每个程序都只是一个文本文件,以及这为什么会改变你的工作方式。
在 Kodokon 中打开本课这里有个几乎让所有人都意外的真相:代码只不过是文本。不是什么秘密格式,也不是什么神秘的二进制文件。一个网站、一个手机应用、一款电子游戏:这一切都始于一些你可以用记事本打开、一个字符一个字符读下去的文件。里面没有任何隐藏的东西,而这恰恰是编程可以被学会的原因。
不过有一点要注意:我们说的是纯文本,不是富文本。当你在 Word、LibreOffice 或 Google Docs 里写东西时,文件里装的远不止你敲下的那些字母:字体、字号、颜色、页边距,全都以看不见的格式信息存了进去。而一个代码文件只包含那些字符,按顺序排列,没有一丝一毫的修饰。你之后在编辑器里看到的颜色并不在文件里:那是编辑器为了帮你,画在屏幕上的。
文件 index.html 的真实内容,一个字符一个字符地看:
<h1>Hello</h1>
<p>My first page.</p>
没有别的了。没有字体,没有颜色,没有页边距。那扩展名呢,就是点后面那个小小的后缀:.txt、.html、.py、.js?它无非是贴在盒子上的一张标签。它丝毫不改变内容。它的作用是告诉各种程序、也告诉你自己,这个文件里应该装着什么。把 photo.jpg 改名成 photo.txt,并不会把图片变成文本:内容原封不动,只是标签在撒谎。反过来也一样,同一段文本存成 page.txt 还是 page.html 都是完全相同的文件,但只有在后一种情况下,你的浏览器才会把它当成网页显示出来。
这一切还有另一个后果:永远不要在文字处理软件里写代码。Word 和 Google Docs 会自动“纠正”你敲下的内容,尤其会把你的直引号换成漂亮的弯引号。对你来说,这个差别根本看不出来。对机器来说,那是两个完全不同的字符,你的程序会直接拒绝运行。
机器期待的 "hello" 直引号
Word 写出来的 “hello” 弯的印刷体引号
另一个常见陷阱 'hello' -> ' 变成了弯撇号.html 这样的文件扩展名有什么用?