我想问一下,微软,IBM,当时没有视觉界面的情况下,是怎么编程软件程序的?

户外探寻生存篇


圖形化介面之前,是字符介面,亦即現在Linux主義者吹捧的黑窗命令行介面,DOS就是那樣的。Linux信徒們怎樣炫耀的,那個時候就是怎樣的。


TonyDeng


别说以前了,即使到今天,也有很多人可以不用任何图形界面,完全用命令行开发程序。而且在大牛中,这类比例还不少。

我也是最近几年才开始接触Linux编程的,之后,完全颠覆了我的认知。就是可以不用图形界面完成大部分日常开发工作。

早些年,所有操作系统都没有图形界面,那时候计算机还是专业人士的专属,普通人玩不了。操作系统的主要功能无非就是管理文件,文件读写,键盘输入和屏幕输出,大部分任务就是进行科学计算。“电子计算机”这个词就是这么来的。

后来有了带图形界面的操作系统,特别是Windows,才引起了世界轰动。后来还出现了一个有时代烙印的词,叫做“多媒体电脑”。不过,本质上,任何软件,包括操作系统(系统软件),在计算机上都是二进制。我们就一定可以用纯命令的形式写出代码,编译出这样的二进制软件。第一个图形操作系统也是这样用纯命令写出来的。所谓编译,简单地说就是把人类能理解的文字代码翻译成计算机可以理解的二进制机器代码。


犍为真人


编程语言怎么发展的、编程工具就是怎样发展的,也就是说编程语言的发展同时推动了编程工具的发展。

机器语言、汇编语言阶段

早期机器语言开发都用直接用纸袋打孔编程。

后来出现汇编语言,慢慢地有了一些先进的编程工具,radasm、MASM、tasm等都是比较出名的汇编语言编程工具。

C语言的出现

很久以前一个叫做肯汤普森的计算机科学家,他设计了B语言,并且用B语言写了Unix操作系统,不过写出来以后哥几个不满意呀,这就必须要改了。

  • 工欲善其事,必先利其器

可是移植Unix是一个系统工程,他们发现难度很大,于是就决定重写Unix,可是他们对B语言写的Unix不满意啊。

因此肯汤普森有个小伙伴叫做丹尼斯里奇,在B语言的基础上,重新设计了一门更强大的编程语言,这个编程语言就是现代编程语言的雏形“C语言”,C语言的第一个编译器是用B语言写的,兄弟两个又用C语言重写了Unix,于是现在编程生态初具模型。

  • VI/Emacs的出现

C语言诞生以后、Unix被重写,美国计算机科学家比尔乔伊觉得得有个更强的编辑器才能配得上Unix,于是他写出了VI,这成为最符合Unix哲学的文本编辑器,也是一个非常强大的现代工具。

后来一个叫做理查德斯托曼对Unix不够开放极其不满,于是他也准备自己做一个操作系统,也就是现在的Emacs,Emacs拥有非常多的分支,不过GNU Emacs是最知名的,后来一个叫做Linus的芬兰年轻人写出了Linux内核,理查德斯托曼非常满意,Emacs就被定义成了文本编辑器,不过Emacs功能强大,主要就是他本来就是操作系统来的。

RMS老爷子还编写出了GPL开源协议,还写出了GCC、GDB等一系列开发者工具。

  • Turbo C的出现

Turbo C是一个划时代的编程工具,从此编程工具开始迈入了真正的集成开发环境时代,这应该也是一个真正生产力时代的标志性工具。

Turbo C之后,微软也逐渐开发出了visual studio等系列产品,随着VS等软件工具的诞生,逐渐推进了现代编程工具的发展。

Delphi、visual studio、eclipse、Xcode、IDEA、netbeans、WingIDE、Android Studio等众多的集成开发环境。


EmacserVimer


最开始是预先在纸带上打孔,然后由计算机将纸带读进去,应该属于机器语言。当时的计算机主要用于计算一些复杂的公式,程序员的工作就是将这些公式弄成纸带。不过当时的纸带可移植性非常差,同一个公式必须针对每一台计算机开发不同的纸带。此时的计算机是电子管组成,运行速度比不上现在的计算器。

接着计算机进去晶体管时代,发现以前做的很多事都在重复造轮子,然后在设计计算机时将同种功能使用一个命令来简化,这个时期程序员使用的语言就是汇编。一些简单的操作系统也是这个时期出现的。此时的计算机还是用于科研,运行速度和现在的计算器不相上下。

进去集成电路时代后,计算机的体积才算降到正常水平,然后大量使用于工业和制造业,得到普及后就有人不满足汇编这种低级语言,然后就有了c语言,c语言和汇编最大的区别就是不用自己申请地址,地址由编辑器统一分配。严格来说,c语言也算低级语言。unix系统就是此时的产物。此时的计算机都是命令行模式,没有鼠标。运行速度比不上现在的手机。

最后一个阶段,大规模集成电路。就是目前大家看到的电脑了,已经出现了各种各样的高级语言。最重要的是带窗口的系统出现了,鼠标也有了,游戏也丰富起来了。

下一阶段可能是量子计算机了,目前的编程语言不适用于量子计算机,不过等到普及也是很久以后的事了。long long after ...


3141592653589793239


不用说最早的纸带和打孔机了,96年我进大学计算机系,我们都是普遍在unix的终端机上进行编程,当时用的是Dec-unix。我们系当时有两种机房,占大多数的是unix机房,还有两三个PC机房在新大楼里。现在的学生可能很难想象当时的终端有多慢,你打字打快点,屏幕上的光标都跟不上,只能等一会儿,看着之前打的字母哒哒哒的显示完整。就这样我们每学期还有上机考试,就是现场拿到算法题,可以在草稿纸上打草稿,然后用代码实现并通过测试用例来验证程序的正确性。有限的时间里还得等哒哒哒的出字母,简直要急死人!

当然我们学校的软硬件还是更新换代很快的,大二的时候unix机房里普遍装了x-terminal,即unix环境里的图形化界面。PC机房里也从最开始的win3.1升级到了win95。但是我们大部分时候还是通过文本在编写程序,直到大三开始接触VB编程,然后密集使用Visual Studio的IDE,才基本上告别了命令行编程的学习。然后早出去工作的同学,特别是在银行工作的,回来告诉我们他们银行里还是普遍在使用终端机,出于性能和可靠性的考虑吧,还有成本问题。

所以有图形化界面是后来人的福气,比之前的命令行编程方便多了。。。


江南渔夫


最原始的编程是用汇编写程序,然后查手册将汇编指令翻译成二进制0和1,然后使用打孔机在纸带上打孔,将纸带输入计算机。这样程序就是下载到计算机里面了。


NullMoon


起初,计算机没有存储部件,也没有键盘,也没有屏幕,程序是通过一个一个开关的状态来表现的。输出用灯泡的亮灭来表示。上古时期电脑用穿孔的卡片来编写程序,卡片上不同的位置的空代表不同字符,输出通过屏幕输出。中古时期计算机有了键盘和显示器后程序的编辑类似于计算器里输入算式


_闷声发大财_


我很尊重第一个发明显卡的人


用户2419180392913


人家当时玩儿的是计算机,不是编程!


藕丝空间东方鹗


您想想当年那些汇编的,PCB设计的


分享到:


相關文章: