70 年前一場由女性打頭陣的程式設計革命

從巴貝奇以降的電腦發明者都把焦點放在硬體上。但二次大戰期間參與計算工作的女性和愛達一樣,很早就看出程式設計的重要。她們設法把指揮硬體作業的指令編成程式碼,軟體中蘊含的神奇程式,能以奇妙的方式改變機器的作業。這群程式設計先驅中,故事最繽紛有趣的是膽識過人、活潑迷人的海軍女軍官霍普(Grace Hopper)。
評論
SI Neg. 83-14878. Date: na. Grace Murray Hopper at the UNIVAC keyboard, c. 1960. Grace Brewster Murray: American mathematician and rear admiral in the U.S. Navy who was a pioneer in developing computer technology, helping to devise UNIVAC I. the first commercial electronic computer, and naval applications for COBOL (common-business-oriented language). Credit: Unknown (Smithsonian Institution)
評論

本文摘自《創新者們:掀起數位革命的天才、怪傑和駭客》一書第三章 〈程式設計〉,Inside 獲天下文化授權刊登。

程式設計

戰時打造的所有機器,最初構思時都以完成某項特殊工作(例如解方程式或破解密碼)為目標。但在愛達或圖靈心目中,真正的電腦應該能完美且快速的執行任何邏輯作業。如此一來,機器的作業就並非只由硬體決定,軟體(可以在上面跑的程式)也扮演重要角色。圖靈再度清楚說明這個概念:「我們不需要靠無數的不同機器來完成不同的工作。」他在 1948 年寫道:「只需要一部機器就夠了。在辦公室為通用機器『設計程式』來完成這些工作,取代了為執行不同工作而要生產不同機器的工程問題。」

理論上,像 ENIAC 這樣的機器應該可以程式化,甚至當成通用機器來使用。但實際上,載入新程式的程序非常辛苦,包括必須動手一一拔除連結電腦中不同單元的電纜。戰時打造的機器無法以電子速度轉換程式,因此催生現代電腦的下一個步驟就很重要:設法把程式儲存在機器的電子記憶體中。

霍普—膽識過人的程式設計先驅

SI Neg. 83-14878. Date: na. Grace Murray Hopper at the UNIVAC keyboard, c. 1960. Grace Brewster Murray: American mathematician and rear admiral in the U.S. Navy who was a pioneer in developing computer technology, helping to devise UNIVAC I. the first commercial electronic computer, and naval applications for COBOL (common-business-oriented language). Credit: Unknown (Smithsonian Institution)
▲ Grace Hope(右二)與 UNIVAC(照片來源:Public.Resource.Org

從巴貝奇以降的電腦發明者都把焦點放在硬體上。但二次大戰期間參與計算工作的女性和愛達一樣,很早就看出程式設計的重要。她們設法把指揮硬體作業的指令編成程式碼,軟體中蘊含的神奇程式,能以奇妙的方式改變機器的作業。

這群程式設計先驅中,故事最繽紛有趣的是膽識過人、活潑迷人的海軍女軍官霍普(Grace Hopper),她先是為哈佛大學的艾肯工作,然後又加入艾科特和莫渠利的團隊。她在大學時代主修數學和物理,從瓦薩學院畢業後,進入耶魯大學攻讀研究所,並且在 1934 年拿到數學博士的學位。

出人意料之外的是,霍普的教育過程在當時其實不算太不尋常。耶魯大學在 1895 年首度頒發數學博士學位給女性,而她是第十一位獲頒耶魯數學博士學位的女性。女性數學博士在 1930 年代並不算太罕見,尤其如果她們出身名門的話。事實上,比起後來的世代,霍普成長的年代更常見到女性數學博士。1930 年代,美國有 113 位女性獲得數學博士學位,占美國數學博士總數的 15%。但到了 1950 年代,只有 106 位女性獲得數學博士學位,只占總數的 4%。(到了二十一世紀的最初十年,情況已大幅好轉,那段期間美國總共有 1,600 位女性獲頒數學博士學位,占總數的 30%。)

嫁給比較文學教授文森.霍普(Vincent Hopper)之後,葛瑞絲.霍普到瓦薩學院任教。和其他數學教授不同的是,她堅持學生必須具備良好的寫作能力。她上機率課時,會先講解自己最愛的數學公式 1,然後要求學生以此為題寫一篇文章。她批改時,也會就文章清晰度和寫作風格來評析。

「我(在文章上)寫滿評語,而他們會抱怨這是數學課,又不是英文課,」她回憶道:「然後我會解釋,除非他們懂得怎麼和別人溝通,否則學習數學毫無用處。」終其一生,霍普一直很擅長把科學問題(例如有關軌道、流體流動、爆炸、天氣型態的問題)轉換為數學方程式,然後再翻譯成一般人聽得懂的英文。這項才能也幫助她成為優秀的程式設計師。

⋯⋯

霍普的長處是很懂得把現實世界的問題轉化為數學方程式,然後用機器能夠了解的方式下達指令,和機器溝通。「我學習海洋學的術語,還有和掃雷、雷管、近發引信及生醫領域相關的種種詞彙,」她解釋:「我們必須學習他們的用語,才有辦法解決他們的問題。我可以隨時轉換詞彙,先用高度技術性的術語跟程式設計師溝通,然後幾小時之後,再用完全不同的詞彙向主管報告相同的事情。」要成功創新,有賴於清楚的溝通。

由於霍普清晰準確的溝通能力,艾肯指派她撰寫電腦程式設計手冊,這是全世界第一部程式設計手冊。有一天,艾肯站在霍普的辦公桌旁,對她說:「妳要寫一本書。」

「我沒辦法寫書,」霍普回答:「我從來沒有寫過書。」

「妳現在加入海軍了,」艾肯說:「妳要撰寫一本書。」

結果霍普寫出一部厚達五百頁的巨著,裡面包含了馬克一號的發展史和程式設計指南。霍普的引言就從巴貝奇開始說起。她和愛達一樣,知道巴貝奇分析機有一種特質,也就是她和艾肯所深信,馬克一號有別於其他電腦的特質。艾肯的馬克一號和巴貝奇未完成的機器一樣,藉由打孔紙帶接收源源不絕的指令,可以透過重新編程,傳達新的指令。

霍普每天晚上都把當天撰寫的內容唸給艾肯聽,她因此領悟到成為優秀寫手的簡單訣竅,她說:「他指出,如果你大聲朗讀時,會結結巴巴讀不順,那麼最好修改句子。我每天都得朗讀五頁我寫下的內容。」於是,她寫的句子變得簡潔、生動、清晰。霍普和艾肯成為最佳拍檔,活生生是百年前愛達與巴貝奇的現代翻版。霍普愈深入了解愛達,就愈認同她。「她寫了第一個程式迴圈,」霍普說:「我絕對不會忘記這點。我們都不會忘記。」

霍普撰寫的電腦發展史偏重個人,所以她的書強調個人角色。反之,在霍普的著作完成後沒多久,IBM 的主管也推出自己的馬克一號發展史,把大部分功勞都歸諸在紐約恩狄考特建造機器 IBM 團隊。「以組織歷史取代個人歷史,最符合 IBM 的利益,」曾深入研究霍普的史學家拜耳(Kurt Beyer)指出:「根據 IBM 的說法,公司才是科技創新的所在。組織裡的工程師團隊扮演無名英雄,逐步推動進步,取代了獨自在實驗室或地下室埋首研究的激進發明家。」在 IBM 版本的歷史中,馬克一號涵蓋的一長串小創新(例如棘輪式計數器和雙層饋卡機制等),都要歸功於一群工程師在恩狄考特默默耕耘、通力合作所促成的。2

霍普版的歷史和 IBM 版之間的差異,其實不只關乎誰功勞最大的爭議,而隱含了更深遠的意義,進一步暴露出雙方的創新史觀在根本上的差異。和霍普一樣,有些科技相關研究也強調創意十足的發明家推動了跳躍式的創新。其他研究則強調團隊和組織的角色,例如貝爾實驗室工程師的努力,以及 IBM 恩狄考特團隊的合作成果。後者試圖說明,有些科技突破也許表面看來像是靈光閃現後的大躍進,實際上卻是逐步演進的結果,等到各種想法、概念、技術和工程方法都同時醞釀成熟時,才一舉畢其功。這兩種科技發展史觀都不夠完善。事實上,數位時代大部分的偉大創新,都仰賴擁有高度創造力的個人(莫渠利、圖靈、馮諾伊曼、艾肯等),和有能力實現創意的團隊之間的良好互動。

霍普在哈佛大學開發出來的其中一種程式是「次常式」,是為了特殊工作而編寫的大段程式碼,可暫時儲存起來,在主程式某個部分需要用到時再叫出來使用。「次常式是明確、簡潔,而且通常一再重複的程式,」她寫道:「哈佛的馬克一號包含了為 sin x、log10x、10x 設計的次常式,每個次常式都用一個作業碼來呼叫。」

愛達在關於分析機的評注中,最先描述了這個概念。霍普累積了許多這類次常式。她為馬克一號寫程式的時候,也發展出「編譯器」(compiler)的概念,她發明一種程序,能把源碼轉譯為不同電腦處理器使用的機器語言,加速了為多部機器撰寫相同程式的過程。

除此之外,「bug」(錯誤)和「debug」(除錯)這兩個詞,也在霍普團隊推波助瀾下,成為電腦界的流行用語。當時打造馬克二號電腦的哈佛建築物沒有裝紗窗。有一天晚上機器突然故障,工作人員開始檢查究竟哪裡出問題。他們發現有一隻翅膀達四公分寬的大飛蛾卡死在電機繼電器中。於是他們取出飛蛾,把牠用膠帶黏在對數表上,並在實驗日誌中記下:「面板 F,(飛蛾)在繼電器中。找到第一隻真正的蟲(bug)。」從此他們就把偵錯和除錯稱為「debug」。

電腦創新者和其他開路先鋒一樣,如果在半途卡住了,很容易從超前變落後。執著和專注等特質令他們創造力豐沛,但是面對新觀念時,他們也可能因為相同的特質而抗拒改變。賈伯斯的執著和專注十分有名,然而當他領悟到必須改弦易轍時,他會突然改變主意,令同事眼花撩亂,困惑不已。艾肯卻缺乏這種靈活應變的能力,只是一味憑著海軍指揮官的本能,採取中央集權的管理方式。

⋯⋯

令霍普欣慰的是,這場程式設計革命是由女性打頭陣。


  1. 她最喜歡的是斯特林公式(Sterling’s formula),這個公式可以計算出某個數階乘的近似值。
  2. 哈佛科學中心原本在展示馬克一號時,隻字不提霍普,也沒有展示任何女性的照片,直到 2014 年才修正,開始凸顯霍普和其他程式設計師扮演的角色。

用 Line 視訊太久會致癌?別再污名化手機通訊,謠言比電磁波更有害!

「聽說 LINE 通話會讓電磁波飆高 6 萬倍」、「手機通話的電磁波可以爆爆米花」…這些如同都市傳說的網路文章,你是否也曾閱讀過呢?
評論
Photo Credit:Unsplash
評論

茶水間內,兩位 OL 正在一邊加熱中午的便當一邊閒聊著,「最近有一件事情讓我有點擔心⋯」今年剛滿三十歲的北漂族 A小姐說道,「因為疫情我跟我男友已經好幾個月沒有見面了,但我們還很熱戀呀,所以常常每晚都開著 Line 視訊電話聊到睡著。」

「這樣很甜蜜啊,有什麼好煩惱的?」B 小姐盯著微波爐內旋轉著的便當盒答。A 小姐吞了吞口水,「還不是最近看到一些網路文章,說電子產品用太多,那個什麼⋯電磁波會影響大腦,聽說會致癌耶!太可怕了,害我這陣子都怕怕的⋯⋯」

Photo Credit:unsplash

Q:聽說LINE通話會讓電磁波飆高 6 萬倍,恐導致癌症,這是真的嗎?

答案是錯的喔,台大電機系教授陳士元表示,手機的電磁波並不會因為你現在在用何種 APP,就會發出不同的電磁波。只要在一樣的通訊情境下,不管是滑臉書、看 YouTube,還是用 Line 講視訊電話,電磁波都不會大幅改變的。

當然還是會有輕微變動的狀況,通常發生於手機開機與接通電話的瞬間,電磁波會稍微增強,不過正常使用和通話期間電磁波反而強度會削弱,不過這些電磁波的數值都符合國家及國際規範。

你可能會問,但用 Line 講電話的時候,手機都會變得比較燙呀?陳士元教授解釋,這與電磁波無關,純粹就是手機用電量增加而熱度提高,大家毋須擔心。

這裡補充一個小知識——根據國際非游離輻射防護委員會規定,手機電磁波高低判定,是看每一款手機的電磁波能量比吸收率(Specific Absorption Rate ,簡稱 SAR 值),也就是指生物體在每單位公斤所吸收到的輻射量功率,當 SAR  值越低,代表人體所接收到的輻射量越少。

如果你和 A 小姐一樣,很好奇或擔心自己的手機到底會釋放多少 SAR值,可以到 NCC 網站中,點擊「型式認證查詢網頁」(https://nccmember.ncc.gov.tw/Application/Fun/Fun016.aspx),輸入手機的「廠牌」、「型號」或「型式認證號碼」等資訊,最後再輸入確認碼後就可以看到相對應的資料囉。網頁中也列出不符 NCC 所定技術規範的電子設備,也趁機檢查看看家中是否有這些帶有風險的裝置吧。

Q:之前曾在網路上看過手機通話時的電磁波可以爆爆米花的影片,看起來好危險喔,這是真的嗎?

這個在網路上流傳的影片,乍看之下好像很嚇人沒錯,但其實是美國的廣告影片,所以即使看起來很真實,但裡面的效果都是假象喔,大家可千萬別信以為真。

仔細想想,中午熱便當所使用的微波爐,也至少要花一分鐘才有可能將玉米變成爆米花,更何況是平均輸出功率更低的手機,簡直是不可能的任務。所以影片中應是在桌下藏了瞬間加熱器的裝置,才能在幾秒間將玉米變成爆米花呢。

Photo Credit:Unsplash

基地台太近對健康有害?答案並非你想的那樣!

民眾可能會有個迷思:離通訊基地台越近,信號越強電磁波應該也越強,對健康會造成危害?

事實上,手機發射的訊號與基地台電磁波的強度,兩者是反比關係喔。距離基地台越近,手機訊號越好,手機電磁波的強度越弱;反之,距離基地台越遠,訊號越差,手機電磁波反而強度越強。

此外,現在的通訊基地台皆採用「蜂巢式通訊系統」的架構來建造,將服務區域切割成小塊小塊的範圍,透過大數量基地台所組成的「蜂巢」來涵蓋所有通訊區域的範圍。也因此,每座基地台的電磁波強度皆不高,且都在人體可接受的範圍內,因此不會對健康有所危害。

 別再污名化電磁波,好好相處才是長久之道

今天我們簡單洗刷了「電磁波」的冤屈,還它個清白——A 小姐不需要再擔心使用 Line 通話會被電磁波影響健康了,如果你想認識更多相關資訊,歡迎至國家通訊傳播委員會的行動通訊電磁波官網(https://memf.ncc.gov.tw/),查看更多延伸閱讀。

除此之外,如果你對家中或手機的電磁波曝露量很有疑慮,也歡迎撥打基地臺電磁波量測服務專線 0800-580-010(0800,我幫您,量一量),讓專業人士到府服務來替你排除疑慮,停止被謠言迷惑心智!

國家通訊傳播委員會 廣告