铛铛铛,古董电脑室开始上课啦!
我听说以前的系统没有图形界面,那他们是用C#等语言直接敲代码吗?
这个问题问的很好!利用编程语言,特别是人类易于看懂的高级语言和电脑交互在相当一段时间内是主要的人机交互方式!
C#出现于2000年,此时图形界面已经相当普及,所以不会用C#。但其他更早出现的高级语言,比如BASIC(出现于1964年)和PASCAL(出现于1970)年,确实都在一些情况下充当过人机交互的主界面,特别是BASIC语言,曾经广泛的使用在从大型主机到个人电脑等多种平台上。我签名里的网页电脑博物馆提供了可以在PDP-11上运行的BASIC试玩1970年原版PDP-11 BAISC:网页里的电脑博物馆
加载方式,在Paper Tape Controls(纸带控制)里选中BASIC,点Load,再点READ,再点Start,机器就会加载进BASIC,在左边VT100终端模拟器里出现
PDP-11 BASIC, VERSION 007A *O
之后,点CAPS LOCK把终端的大写锁定打开,这时VT100模拟器右上角CAPS会亮绿灯,然后回车出现READY就进入了BASIC模式。
另外像BBC Micro,Commodore 64,TRS-80,Apple II这种老式家用电脑都是BASIC语言的,特别有意思的是TI-99/4A的 TI Extend BASIC,可以通过BASIC指令控制语音合成功能:
在 网页里的电脑博物馆 可以试玩
这样写出来的东西怎么放到别的系统使用?
编程语言一般都有访问外存的指令,可以把编写的代码保存到外存(磁带、磁盘)上,80年代家用电脑常用的一般是盒式录音带
把程序写入录音带的指令大概像这样
然后大量翻录录音带,就可以把软件分发给其他人,甚至曾经有一些广播电台节目会播放程序录音,利用收录机将电台播放的程序录制下来,就可以传进电脑里运行。
还有这种系统可以上Q什么的吗
不能上QQ,但是可以上BBS、USENET和其他一些远程服务,想体验一下的话可以去 Telehack 看看。进去之后,输入usenet回车,就可以进入模拟的usenet界面,这就是现在各种论坛的前身。
输入帖子的编号就可以查看帖子了
那他们是怎么知道上面写的什么
高级语言并不难看懂,一段典型的老式BASIC语言类似这样,input、print、for、to、goto、end都是英文单词len是英文单词length的缩写
10 INPUT "What is your name: "; U$ 20 PRINT "Hello "; U$ 30 INPUT "How many stars do you want: "; N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT "Do you want more stars? "; A$ 100 IF LEN(A$) = 0 THEN GOTO 90 110 A$ = LEFT$(A$, 1) 120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30 130 PRINT "Goodbye "; U$ 140 END
难道……他们能看懂机械代码?
某些情况下是可以看懂的,比如著名的“手拨13条”
软件开发的人都是怎么操作的?
各种都有,有手拨开关直接输机器码的,有打纸带写汇编的,有直接在高级语言环境上写程序的,有在操作系统下开发的
Data General Nova,上面的“手拨13条”就是给它用的启动程序,需要靠面板上的开关手动输入,输入完之后,机器就会读取纸带上的程序,并启动高级语言环境或者其他外设。
梦回70年代,一个Unix小实验
很多人可能会对早期的Unix感兴趣,所以我大概讲一下PDP-11 Unix v5的玩法吧,开机之后,RK0选Unix v5(SimH),然后点Load,再点Reset,出现boot之后,输入boot rk0回车,出现@符号之后,输unix回车,再以root登陆,就可以操作了。
PDP-11在线模拟器:http://www.compumuseum.com/player.html?machine=pdp11
至于这个RK0指的是什么,是一种盘片可拆卸的硬盘
启动之后可以利用chdir命令进入目录,类似现代Unix的cd命令,用ls列目录,比如
chdir usr ls
进入usr目录,然后我们可以试一下当时的文本编辑器,Unix v5不是指后来我们常说的System V,而是更早的UNIX Time-Sharing System v5,发布于1974年。
高能警告!下面您将会尝试“有屎以来最虐人的编辑器”(the most user-hostile editor ever created)
高能警告x2!Unix v5里的ed编辑器非常原始,和后来BSD、Linux上的GNU版本并不完全一致,请手持此说明书以备不时之需(此说明书的作者Brian Kernighan就是著名 的K&R《C程序设计语言》中的“K”): https:// 9game.oss-us-west-1.aliyuncs.com /ed.pdf
输入ed hello.c进入ed编辑器开始编辑源代码hello.c
输入a 开始添加(append)状态
输入代码
main(){ printf("hello world
"); }
输的时候要小心!退格键不起作用!输完之后输入一行 . (一个小点)结束编辑状态
如果输错了,先输 1,$p 查看已经输入的代码,再输入要修改的行数,比如我要修改第二行就输入2c (c是change - 修改的意思)然后重新输入这一行。然后再打a继续输入,如果多输入了某一行则用行号d来删除,比如3d就是删除第三行。
上手比较难,即使是用vi比较熟也要多练几遍,输完检查正确时候(我截图里的代码是错的,别抄),输w保存结果,再输q退出
刚才的代码编译出错了,修改之后再次用cc hello.c 编译,不出错的话不会有提示,但目录里会多出一个a.out文件
输入./a.out ,运行成功!
这个小实验实际上已经包含了Unix操作系统最基础的三大组件,编译器、编辑器和shell,有了这三大组件,人们就可以利用编辑器编写新的代码,用编译器将代码转换为可执行的程序,并利用shell管理和执行他们,人们不仅可以用它们开发各种类型的应用程序,也可以利用它们来改善这些工具本身。虽然许多年过去,电脑软件改进的早已看不出本来的样子,但对于开发者们来说最重要的仍然是编译器、编辑器和shell(包括图形界面,也是shell的一种)三大类工具。
这问题有股时代错乱感……
我们先大致排个序:
C语言及编译器 -> UNIX(C语言版) -> PC -> DOS -> 字符模式GUI(这个具体排序存疑) -> 图形模式GUI -> Windows -> QQ -> C#
最早的程序只能用穿孔卡片,那时候的确是必须精通机器指令编码的。后来有汇编器,可以用助记码写机器指令。再后来有高级语言和编译器,最早版本的编译器自然也需要用汇编来编写。
当时用来输入输出的设备采用字符模式,这种模式的好处在于非常节约内存,原理是一个屏幕上固定有若干行,每行有固定列数,形成一个矩阵,每个位置上显示一个定宽的字符,早期的时候显示的主要是字母数字常见标点符号等,后来扩展到表格字符,再后来可以通过一些新技术显示中文字符等(当年挺有名的UCDOS)。每个字符存储时只需要一个字节就够了(中文实际上是分成两半拼起来,占两个英文字符的宽度,也占两个字节)。
既然可以显示字符,那当然没理由看不懂了,显示英文就行了,后来还可以直接显示中文。仅仅通过输入文本、输出文本交互的系统就叫做命令行系统,操作起来只需要记住命令的名称就行了,每个操作会通过屏幕回显告诉你成功没有,对于简单的任务来说其实也没有什么不方便的,甚至发个电子邮件啥的也没啥问题。UNIX和DOS都是命令行操作系统。从键盘直接输入程序,然后调用以前写好的编译器,就可以编译出应用程序来。
你可能也能想到,这样做文本编辑并不方便,所以在当时已经出现了利用字符模式显示技术的GUI,原理也很简单,在合适的地方用合适的前景色、背景色画出相应的文字或者图形,然后对键盘操作做出特殊的响应,展示出相应的元素就行了,就显示风格而言和现在的Windows应用程序区别并不大:
可以看到,上面有一排菜单,按Alt可以切换到菜单上,可以用上下左右选择相应的功能,下面有快捷键提示,甚至还有初步的窗体拆分等功能,文本编辑则有光标,可以上下左右移动,随时编辑任意的部分。现在的命令行操作系统中流行的文本编辑器如Vim也大同小异,不过显示风格和操作风格上有所不同。
可以看出,在这个时候其实应用程序的功能已经很强大了。
后来随着技术发展,显示器的图形显示模式越来越普及,可以通过相应硬件指令将显示器切换到图形模式,图形模式下不再按照字符显示,而是按像素,这就有了更高的自由度,可以显示图片等多媒体内容,这样上面的字符GUI就更进一步升级到了图形模式GUI,然后到的今天。QQ和C#都是这之后的事情了。
另外,虽然QQ是图形界面出现之后才开始发展的,但其实早期的互联网用户交流起来也并不困难,因为很早就有BBS了,而且是命令行界面下的BBS,使用起来非常简单,用称作telnet的工具连上就行了,通常有字符模式的GUI,使用起来并不困难。后来流行的基于Web的BBS得叫这些telnet程序一声老前辈。网络游戏也很早就有了,也是命令行模式的,现在也仍然有不少的MUD爱好者。
悄悄告诉你,我们现在也是直接敲代码的……
当感情成为生活的一种负担而且无力改变的时候。
与女生不同,大多数男生是不会把感情当作生活的全部的,过日子是头等大事,感情只是其中一部分。所以对于男生来说,一段好的感情是能让生活更轻松的。
一个男生可能会因为你漂亮而喜欢你,但这种喜欢无非是荷尔蒙冲动无法长时间维系,真正能让男生愿意和你一辈子走下去的,是你能够理解他,能够支持陪伴,能够默契相处。
但就这一点上,很多女生都是在逆行。她们所期望的感情都是建立在对于男生的索取之上,她们会因为男朋友没有足够专注自己而去作,会因为男朋友没满足自己的需要而去闹,会频繁吵架提分手来试探这个男人是否足够爱自己,却忽略了这个过程中,自己一步步在抛掉自己值得被爱的筹码。
当男生觉得和你在一起,不但体会不到丝毫乐趣,反而成为一种负担的时候,其实就已经在积累失望了。但这个时候男生一般不会直接放弃,他们会尝试逃避,会尝试沟通,会寄希望于你能逐渐去改变。
所以有经验的女生应该知道,男人的态度变化是有个周期的,不会因为你和他吵几次而一下子和你分手,但是会逐渐冷漠下来,这个过程中他就是在开始怀疑是否真的合适,会希望看到你有所变化。然而往往女生在这个阶段,又会因为男生的逃避而更加变本加厉去作去闹,想要控制对方,最终形成恶性循环。
等到失望积累够了,也就变成绝望。他会判断你已经不会变了,无药可救了,再相处下去只会让那自己越来越累,最终决定分开,等你意识到问题所在时已经来不及了,这种理性思考下的分手,往往挽回难度也是比较大的。
很多女生整天担心男生变心不爱自己,但同时却又是亲手在不断把他往外推,想想还挺可笑的。