我想問一下,微軟,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設計的


分享到:


相關文章: