如果你处在一个没有网络但有电和电脑的地方,不想浪费时间:
如果你并不会编程,那你可以将这段时间用在学习编程上
没有网也能学编程吗?对的
首先,在电脑上搜索.html文件。电脑中各软件,包括电脑系统文件中,都四处散落着很多html文件。如果发现它用浏览器打开后有任何内容,就可以将其复制到一个方便的地方展开研究。
html文件旁边或旁边的文件夹里可能有.js .css .jpg .png等文件。如果发现只复制html出来的内容和原本不同,就说明html会用到那些文件,要连带着那些文件和文件夹一起复制出来。
打开浏览器进入那些html,按下F12或Ctrl+Shift+J便可编辑网页的效果和在控制台测试js代码。使用F12在网页中改动的内容绝大部分时候都只会产生临时作用,刷新网页就会还原。
修改html(以及相关的js css等文件)后,刷新网页,便能看到修改的效果。通过找规律,就能学习html js css里面每个数字、每个单词、每个符号的作用。
注意:在F12或Ctrl+Shift+J打开的控制台中,代码是可以补全的。所以,当你不知道一个单词(对象)有什么用途的时候,可以在它后面加个点或者左中括号“[”,就会显示这个单词(对象)里面包含了什么。
HTML包含了JS、CSS、WebGL2、WASM、IndexedDB等计算、渲染、存储的功能。
依靠这些,不止能写出各种小工具,而且已经有能力在十几KB内写出各种单机游戏了
如果运气非常不好,找到的html中完全没有包含canvas相关的内容,那么只能用按钮和文本框做最简单的游戏了(如扫雷)
如果运气较好,发现有关canvas的内容,且包含了ctx=canvas.getContext('2d')之类的代码的话,其附近可以找到很多代码样例,从而学会怎么在canvas里绘制点线面,就可以做出2D游戏。
如果运气很好,发现了canvas.getContext("webgl" 甚至是 canvas.getContext("webgl2" 相关内容,附近又有很多gl开头的单词,那么它将教会你渲染3D物体,从而做出3D游戏。
webgl2渲染的例子
另外,HTML是真正的跨平台语言,真正能编写一次代码处处运行
所以,如果没有网,但是又能用数据线或无线热点的方式让手机连接电脑,且做好了配置允许了文件传输,那么甚至可以把单机游戏html复制到移动设备上,在移动设备上用浏览器打开运行。
总结
目前体积最小的跨平台前端:网页,即html,一个小工具html可以只有几KB。
目前体积较小的跨平台通用编程语言:js,一个小工具js可以只有几KB。虽然性能是c的1/2,但性能比默认的python快5倍。且随时能Function(code)和eval的JIT,使得它很适合动态的任务。缺点是历史遗留问题严重。
同时比wasm容易学:打开浏览器,按F12找到控制台(或者直接ctrl+shift+j转到控制台)即可开始写js,开始编程的成本比python都低:有个浏览器就行了,不需要装软件。
目前体积最小的跨平台3D渲染:WebGL2(更高级的渲染需要WebGPU,比WebGL2要复杂)。一个十几KB的html含js和shader,使用“渲染到纹理”的方法,就能实现利用GPU快速训练神经网络。
html性能比c损失一半并不算太大的问题,性能上主要的问题是js本质上无法多线程。
目前html相比一般的可执行程序,文件操作只能上传和下载文件还算是小事(只是变得稍微麻烦),最大的缺失是不能开服,WebSocket只有客户端。