我經歷過的技術變革
手繪機械製圖 -> AutoCAD 電腦繪圖
PC 個人電腦
DOS-Windows 3.1->Windows 95-> Windows xxxxx
程式開發
Basic -> 組合語言(6502->x86) -> C 語言 -> C++ 物件導向
從 C 轉換到 C++ 是一個很大的思維轉換跳躍,因為物件導向的觀念跟一開始學的程序性開發完全不太一樣
Dos 程式設計到 Windows 程式設計也是,作業系統從單工變成多工,要開發一個視窗應用程式首先要了解 Windows 的 Event 運作原理,還有要處理 windows 的 callback function
多工作業系統的特性還不只這些,以前在單工作業系統沒碰過的行程資訊溝通 ( IPC ) ,多執行緒開發....
Window 程式設計當年 VB 跟 Delphi 還蠻流行的,但是這些東西還在嗎?
Windows SDK -> MFC 這也是一個很大的轉變,當時看到不少人抱怨 MFC 很難用
MFC 最後也被 .Net 給取代掉
Mac 平台
C 語言 -> C++ ( PowerPlant ) 這部分跟 Windows SDK 到 MFC 是很類似的東西
當年我的主管是很資深的 Mac 程式設計師,他很反對我使用 PowerPlant ,原因跟使用 Windows SDK 轉換到 MFC 不適應的人一樣,封裝了太多的細節
我後來自己用 PowerPlant 在下班時間接了一個數位相機的影像管理程式專案( 日本 Cannon 數位相機 ) ,其實 PowerPlant 是一個很穩定的 framework
Mac 作業系統
OS 8/9 -> OS X 這也是一個很大的跳躍,從 C/C++ 要改成 Objective C 還要學習 Cocoa framework ,當然 Apple 也有提供過度的解決方案,例如使用 Carbon 來將 OS 8/9 的程式轉換到 OS X ,但是 Carbon 還是暫時的,想要開發出 OS X 風格的 GUI 還是要用 Objective C
iOS App 開發
Objective C -> Swift ,這部分 iOS 開發者應該印象還很深刻
在軟體業唯一不變的大概就是"變"
當然如果開發越底層的程式,變化比較沒那麼大,例如用 C 語言開發系統程式,生命週期比較長一點
但是在你的職涯發展中,很多事情可能不是你能決定的,如果我堅持要用 C 語言過一輩子當然也是可以,但是我可能會面臨到沒有適合我的職缺,當然像 Linus 這樣的大神自己做一個作業系統是最好的 🙂
對了,裡面我都沒提到 Web programming,因為 Web programming 我是最近幾年才比較認真在學習
我也發現到 Desktop application 似乎重要性逐漸被 Web application 取代
從這些技術變革來看,你覺得 Web application 不會被另一種技術給取代嗎?
我從這些技術變革學到一件事 - 持續學習跟適應能力真的還蠻重要的,每一項技術變革都刷掉不少人,我自己也曾經對學習新技術感到疲憊,但是後來發現,這不就是當年第一次看到電腦時吸引我的地方
留言