|
我覺得,基本上可以說每個程序員都很熟悉“Hello World!”程序。依照慣例,它是學習編程語言、編譯并運行你的首個程序的一種快速方法。然而,除此之外,它的價值不大。下面是我認為Hello World的十個問題。
10. 為什么是“Hello World”?為什么不叫“Hello Dave”或者“It Works!”?(Dave就是《2011太空漫游》中的HAL 9000)
我知道這個問題有點夸張。“Hello World”這種說法從何而來呢?除你之外,最后一次有人運行你的程序是什么時候?也許用“Hello <輸入你的名字>”更合理些。
9. 它只適用于一件事情?
我不是在發表“Hello World”一無是處的言論。然而,他們唯一擅長的就是合理性檢查。
“Hello World”并不能幫你學習任何編程語言,它能做的只是幫你寫一個能編譯和運行的簡單程序。
它可以幫助你檢查其合理性,然后你便可以告訴你自己,“我成功了!”
8. 既不給力又不好玩
隨著游戲中精細圖形及互聯網交互性的發展,幾乎沒有人再對那些在屏幕上輸出一些字的應用程序感興趣。
就像剛才說的那樣,寫一個“Hello World!”程序,除了你自己之外,不會給任何人留下印象。此外,它也不可能是你學習編程的動力。
7. 它不切實際
你最后一次編寫僅要求將字符串顯示到標準輸出的程序是什么時候?有人可能會說,現在很少有程序不包含圖形用戶界面——不管是網頁、窗口界面,或者甚至是對文件、數據庫的操作。可能它在學術界很實用,在學術界可以始終如一地讓程序顯示運算或者數值,但專業領域并非如此。
6. 沒有交互性
“Hello Word!”這個例子,除了需要終端用戶驗證“HelloWorld!”是否顯示在屏幕上之外,不依賴用戶做任何其它操作。它沒有要求用戶輸入用戶名、退出程序或重新運行程序之類的交互。關于終端用戶和程序之間如何進行交互,“Hello Word!”并沒有涉及相關內容。
5. 沒有邏輯和運算
計算處理非常依賴于邏輯結構(如:當這個條件為真時,打印這條語句)和運算。大多數程序的編寫將運用一些標準下的決策邏輯。甚至計算機的基本組成部分(機器代碼)也代表一種邏輯表達式:1=真,0=假。
4. 在不同語言下,太過相似
如果你觀察一下不同語言編寫的“Hello World!”程序,你會發現它們之間非常相似。
一旦你精通于用一種語言寫出 “Hello World!”程序,那么你也差不多能用其他語言熟練地編寫這個程序。
3. 只使用一個關鍵字
如果你看過各種Hello World范例,你會發現他們的共同點就是都只使用一個關鍵字。
一門編程語言有多少關鍵字:數百?上千?在編程語言的學習中,只學一個關鍵字是微乎其微的一步。
2. 忽略了變量和常量
正如我前面提到的,學習一門編程語言,除了要學習如何將一些東西顯示在屏幕上之外,還要學習相當多的其他知識。
很少有程序不使用變量。
你可以說,由于“Hello World!”把語句中的字符串給寫死了,因而這個程序會誤導大家學習不好的編程習慣。
“Hello World”例子至少可以用一個常量來儲存“Hello World”字符串的值。
1. 忽略了函數和OO等概念
“Hello World!”例子并沒有用到一門給定編程語言的其他特性。
比如下面這些:
- 函數簽名
- 類結構
- 命名空間
- 繼承
大多數老練的程序員能理解這些東西,但對于那些新手或者只有過程化編程背景的人來說,這還是會讓他們沮喪。
譯文出處:伯樂在線 - 職場博客
譯文鏈接:http://www.jobbole.com/entry.php/469
原文作者:Repeat Geek 編譯:伯樂在線 敏捷翻譯組 - 高志翔
如需轉載,但請注明原文/譯文出處、譯文超鏈接和譯者等信息,否則視為侵權,謝謝合作!
it知識庫:“Hello World!”的十個問題,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。