PTT評價

Re: [問卦] 知道Turbo C的人都幾歲了

看板Gossiping標題Re: [問卦] 知道Turbo C的人都幾歲了作者
HuangJC
(吹笛牧童)
時間推噓 3 推:3 噓:0 →:1

: 知道
: Turbo C
: Turbo C++
: 的人都幾歲了

幾歲不重要,重要的是歷史意義

: Turbo C
: Turbo C++
: 是MS DOS下的C語言C++語言編譯器
: 很多人都是用Turbo C
: Turbo C++來學C語言
: 是由知名的軟體公司寶蘭Borland出品的
: 知道或用過Turbo C
: Turbo C++的人都幾歲了

當年小教授二號出現在台灣,而它是抄 Apple II 的家用電腦
其實還有個小教授一號,我家有,但我連開機都沒開過(我們是賣方 XD)

Apple II 上最早的是 Basic,列編輯器式的高階語言
需要用行號來打程式

列編輯器?這什麼鬼?所以我雖然沒學過 vi, 但我也玩過它的表哥了

然後 8086/8088 出現,上面學的就是 Turbo Pascal 了
應該說早就有 Pascal, 而 Turbo 系統主推的就是強大的 IDE,整合發展環境
它就像內建一個 PE2,全螢幕編輯器一樣

事實上如果用全螢幕編輯器來寫程式,那 Basic 也不用行號了
啊。。不完全是,重點在 Basic 用了 goto 這種指令,而 goto 的目標是行號 XD

Pascal 重點在結構化,begin end, repeat until 各式各樣的區塊
而且這時大家開始討厭 goto 了
回過頭來說,basic 照樣可以加入 begin end 來苟延殘喘
而且 goto 的目標可以從行號改成 label
所以我不知道 basic 和 Pascal 差多少,只感覺語法可以一一對應,幹麻分兩種
忽略歷史而只看最後結果的話,就真沒差啊;因為他們可以互相學習
除非 Pascal 把區塊式語法宣告專利,禁止 basic 學,那肯定能看出巨大差別

Turbo Pascal 不完全是 Pascal;前者是產品名,後者是類別名
Turbo Pascal 是一種 Pascal, 但這樣描述沒強調出 Turbo 系列的巨大差異
那個 IDE 是真好用,沒有它,我們就要從 PE2 打程式,存檔,回命令列 compile, 執行但這樣也有好處,能有完整的檔案概念
Turbo Pascal 因為可以全在記憶體中跑,於是沒檔案概念,純討論語法都能寫

再來就是 Turbo C 出現了,在 Turbo C 中更強調模組開發
但是 link 的動作讓我看了礙眼
其實它是說 *.c 要編成 *.obj, *.obj 再 link 成 *.exe
這動作 Turbo Pascal 不能說沒有,但 Turbo C 更強化這種感覺
其實我的感覺只有慢而已,所以我們趕快去學了 smart drive, 或 ram disk
切一塊記憶體當成硬碟,硬是把 Turbo C 又當成 Turbo Pascal 來用
同樣的,C 和 Pascal 除了語法不同,感覺很像;這仍是事後諸葛的結果
其中,C 讓我學到了 函式,也就是把 Pascal 的函數和副程式合在一起的函式
副程式沒有傳回值,而函數有傳回值,必需被接收
那我在 Pascal 可以照樣只寫函數,若不需要傳回值時就接回來丟掉啊 XD
感覺不到差別。。。

再來一個是 predefine, 前置處理器,但因為可以互相學習的結果
Turbo Pascal 照樣推出了前置處理器;所以 C 還有哪裡特別?被學走了。。。
也就是說,我完全可以把 Turbo Pascal 當主力建構系統
Borland 公司自己還真這麼幹,他們出了很多 compiler, 但裡面要提供 lib 時
有需要 C 提供 C lib, Pascal 提供 Pascal lib 嗎?
介面的部份是,但鑽進去的 source code 只有 Pascal (它們叫 Delphi)
所以我在學 BCB 時,幸好有 Pascal 的基礎,不然 debug 有我受的
Borland 公司要這麼做不是不行,只是那就像錄影帶界 Beta 與 VHS 之爭
你行我也行,上市場原理比比誰留下來

結果 Borland 走了

Borland 的視覺化開發還是比較猛的,相對的 Visual C 比較零散
我們那時都唸成 Virtual C, 想清楚就知道哪裡錯了
會唸 Virtual 是因為電子電機在學放大器時,有學一個 Virtual Ground
所以看了像,唸了像,就變成這樣記
但人家產品名明明就是 Visual, 視覺化開發工具,不是虛擬開發工具
而 Visual C 的視覺化開發環境其實是輸 Borland 的
只是,平台是微軟的,最新功能出現時,比如多一個硬體裝置
或者 OS 升級,多一個 DLL 提供一個新的 API
這些都會從 Visual C 上發佈
而 Borland 要怎麼跟上?只能回最底層用 obj, lib, api 概念去跟啊
那是 C 語言各元素的基本定義,保證相容
而 Borland 再包裝後,變成 IDE 裡好用的,滑鼠拉一拉就會動的東西
新東西來就得重新包裝,所以開發總是會慢一步

到這時只好說:Borland 是好用的開發工具,讓不太會用的人專注在高階邏輯
而底層開發還是 Visual 比較快

C 是這樣,C++ 更是這樣
因為 C 有標準,C++ 的 function API 可是各有各的標準
Borland C++ 無法 link Visual C++ 裡的函式,都要回到 C 去連結
那,C++ 就不能推出標準嗎?應該可以,可是標準還沒出來,產品就一大堆了
就像日本靠左台灣靠右,都已經分開不同標準幾十年了
這時再推出新的標準,就永遠日本和台灣差了一句你靠左我靠右
不然誰要改?

然後我進入 Python 的世界了
這時前同事傳來句話:有沒有興趣回去看看 C++,新標準把世界又變了

沒空啦~ 工程師的生命一直在燃燒,像風中蟾蜍
我以前學的就很夠用了,新東西一定更好,但我不求上進總行。。。

錢錢又賺得沒比人家多
我要去洗澡,種豆芽菜了

: --
: ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.93.229 (臺灣)
: ※ 文章網址: https://www.ptt.cc/Gossiping/E.kSmL9qNIDQLM
: → showdoggy: 樓下幾歲破肛門處 42.70.232.93 04/28 23:34: → zorro1111: 樓上出櫃那一年 114.25.235.33 04/28 23:35: 推 Insania: 棒賽硬窟窿<stdio.h> 49.216.16.100 04/28 23:35: 推 selfhu: 你知道嗎,debug可以寫組語 1.169.197.44 04/28 23:36

call-151 for Apple II
call-159 for 小教授二號

這是八位元版的監督程式進入點
當年 6502 CPU 能使用的位址空間有 64K
其中 16K 的 ROM 就整合進了 Basic 及一套簡單的監督程式
可稱為陽春版的組合語言

A9 是 LDA,不過只能打 A9, 不能打 LDA
也就是說,我真的是學著機械碼在寫程式的
有夠辛苦

※ PTT 留言評論

squelch 04/29 11:57啊 有老人啊!

快點去看飯島愛,又清純又漂亮 還有白石瞳 這兩個相提並論是因為,當年建中還成立了白飯研究社。。。 喔喔喔,工程師壓力大都會看些片片 但工程師是善良的,不要來查我硬碟 我要向日本申請 A片領域的政治庇護 工程師看 A片是人權。。

※ 編輯: HuangJC (123.110.76.230 臺灣), 04/29/2025 12:05:18

taylorabc 04/29 12:04有歲數

stonys 04/29 12:09Delphi真心好用,尤其是寫DB程式...後來改

stonys 04/29 12:09用ADO.net用起來就是很彆扭

tnnua 04/29 12:1540+

albert2942 04/29 12:16挫賽死翹翹

specman 04/29 12:19你忘了Visual Basic當年也很火紅

albert2942 04/29 12:211994以前文件很少是真難理解,尤其是

albert2942 04/29 12:21通訊接口,書又寫的不是很好,搞死人

albert2942 04/29 12:21。那時候顯學是Java,會寫這個的都很

albert2942 04/29 12:22跩。

sppmg 04/29 12:22勾起我些微的列編輯basic

leolarrel 04/29 12:29本來想回,看到id後

就覺得,人還是重點是吧。。

※ 編輯: HuangJC (123.110.76.230 臺灣), 04/29/2025 12:36:28

quenquen 04/29 12:36你手上有拿個鐵碗嗎? 程式寫得好...

要飯要到老;摸通 C 語言,摸不到 C 罩杯 ------- 忘了補一段 曾經一個我喜歡的女孩有需要寫程式,當然就我來舔啦 那時還不是用 line, 我們用 msn 溝通 她的 C compiler 是 unix 環境下的 交大啊,傳統的殿堂,雖然她比我年輕,但學校並不是用市面上流行的 VC 而是用傳統經典的 gcc 用 unix 而不是 linux 就很酷了 那時我寫了個遞迴給她,說這邏輯簡單清楚,可以解她的數學公式 她拿去一跑,嗝屁,爆堆疊 原來我的 VC,當時背景 OS 是 win, 它有自動記憶體管理 不只能使用超過一個堆疊段 當 RAM 不夠時,還能自動置換進硬碟 因此我的堆疊空間和她比是無窮無盡 但相反的,她的環境很單純;不能說 unix 很差 要說 unix 有多少能力,和她架設的系統有關;也許她只有純文字 unix 又沒有記憶體管理,於是她只能用一個堆疊段 而遞迴就是吃堆疊 當時我都想出用全域變數這個法子了 程式一啟動,先宣告一個全域變數 然後所有自動變數用指標的方式,在全域變數中索用 也就是把全域變數當成堆疊空間,但我手動管理 這不是強人所難嘛,但這是做得出來的 我懷疑的是,她老師怎麼會出這麼難的作業 在 C++, 我還能用 new & delete, 超好用 其空間來自 heap, new 出來的 pointer 仍在堆疊裡,程式大架構不變 而 new 可讀性又很高 她問什麼是 new, 她不能用;她的是 C 我說,不然用 malloc? 我用不熟,但我知道這是 new 出來之前,底層的記憶體管理函式 嗯。。果然之後會教 malloc, 但當天沒有 看來老師就是要讓她們踢到鐵板,對記憶體有需求,然後再教 malloc 我若用全域變數硬解,是繞了遠路 一個月後我問她,老師教她們什麼 她開心的說不學 c 了 現在學 matlab 暈倒,果然我是工具人 人家是數學系的,執行速度不是重點,重點在數學邏輯 matlab 可以完全解放她對記憶體管理等底層 API 的的需求 用對工具就好 所以知道為什麼我不能賺大錢了吧。。 她有更高階的思維,這個才是重點 她畢業後也沒去做數學(什麼叫 做數學 XD) 她進管理層去了,運轉公司經營邏輯

※ 編輯: HuangJC (123.110.76.230 臺灣), 04/29/2025 12:50:00

Geeek 04/29 12:47老人味

CIDgreen 04/29 13:03工程師的爛漫推

LightWorker 04/29 13:58Turbo C 只能產生 .com 檔

HowLeeHi 04/29 14:07有沒有寫asm的故事?