有很多很棒的編程教程讓你開始編寫代碼。但在深入研究它們之前,您必須回答一個非常困難的問題:我應該學習哪種編程語言?
有些語言對初學者來說更容易學。其他的對未來最有用。其他人最有可能幫你找到一份編程工作。
在本文中,我們將從另一個方面著手:您應該避免使用哪些編程語言?
讓我們從一個簡單的開始。深奧的編程語言(簡稱esolang)旨在將編程推向其簡單性的極限。通過這樣做,他們成功地使它變得異常複雜。
雖然這在術語上似乎是矛盾的,但請快速看一下這個不幸命名的Brainf&;k語言:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.這個怪物是函數,圖靈完整的代碼。這個程序的功能是什麼?它印著你好世界!到屏幕上。很簡單,不是嗎?
該語言由八個字符組成,它們在程序數組中移動數據指針,並修改或輸出每個位置的數據。所有這些加起來就是一種簡單的語言,它是一種絕對的心靈毀滅者。這就是不幸的名字。順便說一句,Brainf$k並不是唯一一種有著“豐富多彩”名字的深奧語言,所以你要自己去好奇!
Brainf^&k是一種更為人所知的深奧的編程語言,儘管可以找到更多。也許你想用阿諾德施瓦辛格的一行程序來構建一個程序?Chef尤其值得注意,因為您編寫的代碼最終會像菜譜一樣閱讀。
對於程序員來說,深奧的語言設計更像是一個有趣的挑戰,而不是日常使用。一般來說,這些語言都是圖靈陷阱,如果用於實際的編程任務,將比任何其他語言都更令人沮喪。同樣的道理,坐在桶裡翻越尼亞加拉大瀑布是沒有必要的,我相信你們中的一些人無論如何都會用深奧的語言編程!
這就是事情可能引起爭議的地方。PHP是為web開發設計的服務器端語言,因此您可以使用它來構建一個簡單的PHP網站。最初發佈於1997年的PHP很快就接管了web。很難找到任何不使用PHP的大型web實體。PHP引入了***站的概念,允許用戶實時查詢數據庫,而不是每次交互都加載靜態頁面。
最近的一項堆棧溢出調查顯示,PHP是第九大流行語言,對PHP開發人員的需求仍然很大。到現在為止,一直都還不錯。廣泛使用,需求旺盛,歷史悠久,有什麼不喜歡的?
好吧,取決於你問誰,很多!
PHP並不是一種語言,它不是一種通用的結構,而是一段一段地發展。這使得學習PHP成為一種令人沮喪的經歷。
一個恰當命名為phpsadness的例子是PHP的get函數:
gettype()get_class()這些內建函數命名上的小不一致是一個更大問題的一部分。語法和語義上的微小差異使得PHP在來自另一種語言時很難學習。
在一個編程語言多語言的時代,這些問題對您來說可能不是什麼大問題,但足以讓一些開發人員望而卻步。
在我們擺脫這些矛盾之前還有一件事。在PHP中,函數名和類名不區分大小寫,但變量是區分大小寫的。
等等,什麼?
無論它是PHP特殊結構的產物,還是它的創建者的一時興起,PHP中的三元運算符都令人費解。考慮一下:
$a = 11; echo ( $a == 10 ? 'ten' : $a == 11 ? 'eleven' : $a == 12 ? 'twelve' : $a == 13 ? 'thirteen' : 'something else'); echo "";//this code prints 'thirteen' to the c***ole正如您在上面的示例中所看到的,PHP使用三元運算符做了一些奇怪的事情。在幾乎所有其他語言中,您都希望此代碼輸出11個。PHP不同意。
這種奇怪的行為來自使用左聯想三元運算符的PHP。這種有點令人費解的行為對許多程序員來說是完全不直觀的,即使在閱讀了關於它如何工作的詳細解釋之後,仍然令人困惑。
PHP仍然被廣泛使用,許多人聲稱它在20年的任期內有了巨大的改進。
如果你想創建自己的WordPress插件,那麼它當然值得學習。有很多資源可以讓你開始學習PHP,它的流行意味著一旦你有了它,你很可能會得到一份開發工作。
真正的問題是:有這麼多其他語言,還有像節點.js還有Ruby on Rails,你真的想嗎?
你能聽見嗎?這是上千名開發人員敲響他們的指節,準備在評論部分捍衛JavaScript的榮譽的聲音!
JavaScript是互聯網的語言。它的統治地位是無法掩飾的。如果您使用的是瀏覽器,那麼您正在查看的頁面幾乎肯定會使用JavaScript。當你觀看Netflix或使用PayPal時,你使用的是正在運行的服務器節點.js,JavaScript的服務器端運行時。快速瀏覽一下程序員的工作板就可以看出對JavaScript開發人員的需求。
為什麼它屬於這個名單?嗯,前端的寵兒有一些怪癖。
如果您熟悉Java或任何C系列編程語言,您就會知道分號用於表示語句的終止。解釋器看到分號,知道如何繼續。
在JavaScript中,情況有些不同。分號是可選的。雖然這看起來不可能,但許多人希望從JavaScript中刪除分號。
雖然這是個好主意,但也不是沒有問題。自我承認的分號否認和YouTuber凱爾羅賓遜楊使一個很好的理由,為什麼他們應該使用初學者。
這段視頻中提出的問題指向了一個更廣泛的問題。JavaScript在沒有分號的情況下大部分時間都可以正常工作。這是因為分號根本沒有消失,它們只是自動**到解釋器認為應該去的地方。
雖然解釋器出錯的情況被更有經驗的編碼人員視為“邊緣情況”,但這些都是初學者可能遇到的情況,因此使用JavaScript的體驗不受歡迎。
對JavaScript中分號主題的簡短搜索將使您陷入一個幾乎沒有盡頭的意見和猜測的兔子洞。當一門語言需要一整頁的閱讀,只是為了理解你應該在哪裡使用分號,只是為了得出你應該自己下定決心的結論時,認為有什麼不對是可以原諒的!
任何參加過初級編碼課程的人都將熟悉數組。它們是一種簡單的方法,可以收集大量相同類型的數據,並對它們進行排序,以便稍後輕鬆地將其取回。
這是編程的基礎,所以它們應該很容易理解,對吧?實際上不,不對。James Mickins關於JavaScript的搞笑演講中的第一個例子很好地總結了這一點:
“JavaScript數組是數組列表字典組合的多類型對象。”
就在那時。晴朗如白晝。
這些只是幾個小例子,說明了為什麼JavaScript會被視為一種糟糕的學習和使用語言。對於這裡的每一個案例,以及網絡上成千上萬的其他案例,都有一大群人準備為這些行為辯護。有一點是肯定的,JavaScript不會有任何進展,網上關於它的爭論也不會無休無止。
最後一點有趣的是,回到前面討論的深奧語言:在web瀏覽器中打開一個JavaScript控制檯並粘貼到這個怪物中:
alert((![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]);你能聽見**的格格聲嗎?憤怒的開發者們準備推翻本文中的每一點嗎?事實上,他們不會錯的。幾乎每一種語言都有成千上萬的其他例子。
除了深奧的語言之外,每種編程語言都有其優缺點。與所有工具一樣,讓一個用戶大吃一驚的特性是另一個用戶所珍視的功能。分號可能是一個人的氪石,而空格可能會讓其他人在晚上睡不著覺。
對於初學者來說,任何編程語言都是很難的,你應該花時間學習編程的基礎知識,然後再過多地考慮選擇哪種語言。話雖如此,重要的是要隨時瞭解正在流行的最新語言。現在,Rust是最令人興奮的編程語言探索!
圖片來源:fizkes/Depositphotos
...語的區別在於它們傳遞資訊的方式。在現代社會,有許多語言在使用。其中一些是口語,另一些是手語。這兩種語言不同,應視為自然語言。口語可以理解為聽覺語言和有聲語言。手語是一種用手勢和麵部表情來傳達資訊的語言...
...生課。然而,在其傳奇的過去,編碼也造成了破壞。一些糟糕程式碼的例項在很大程度上造成了災難。以下是10個歷史上最嚴重的程式設計錯誤。 ...
... 提供這些提示只是為了幫助您識別和避免玩家。網上約會沒什麼錯,但當你向陌生人敞開心扉的時候,就沒有天真的地方了。 ...
...AdSense廣告出現在網路上,因為騙子不斷地從中溜走。更糟糕的是,它們經常出現在你想要合法下載的頁面上。 ...
...用的是原裝電池。我沒想到會有什麼好的,但夥計…這太糟糕了。 不過,Nexus5的第一天並不是很糟糕!直到第二天我才真正意識到事情會變得多麼糟糕。 第二天:等待是最難的 所以,Nexus5沒有很好的老化。現在的表演令人難以...
...而且可以利用。這並不比微軟Office巨集或電子郵件附件更糟糕,但它有可能被濫用。 安全專家指出,越來越多的惡意軟體是用JavaScript編寫的。這些通常透過電子郵件傳送,偽裝成簡歷,或針對企業的網路釣魚資訊,或聲稱附件...