国产精品久久国产精麻豆99网站,激烈18禁高潮视频免费,老师含紧一点h边做边走视频动漫,双乳被一左一右的吸着

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

【CSDN 編者按】哪個(gè)語言是你心中的最佳編程語言呢?

作者 | Michele Riva

譯者 | 彎月 責(zé)編 | 歐陽姝黎

出品 | CSDN(ID:CSDNnews)

以下為譯文:

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

在過去的幾年里,我有機(jī)會嘗試了多種不同的編程語言

我非常喜歡學(xué)習(xí)不同的語言、方法和范式。我是一個(gè)充滿好奇心的人,一直對編程語言十分著迷。每種編程語言都是不同的,在本文中,我們來討論一下以下五大編程語言的優(yōu)點(diǎn)以及缺點(diǎn)。

  • JavaScript

  • Haskell

  • Go

  • PHP

  • Elixir

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

JavaScript

優(yōu)點(diǎn)

  • 快速的原型設(shè)計(jì):你可以利用 JavaScript 迅速編寫出一些原型來驗(yàn)證自己的想法。你甚至可以使用Node.js 在最短的時(shí)間內(nèi)構(gòu)建后端的概念證明。

  • 靈活性:在 ES6 元編程功能的助力下,JavaScript 的人氣越來越高。但是,即便不使用這些功能,你也可以通過 JavaScript 編寫一些非常通用的功能,并利用它編寫客戶端、服務(wù)器甚至移動(dòng)應(yīng)用(例如 React Native等)。

  • 社區(qū):JavaScript 的社區(qū)非常棒。每次遇到問題,都可以通過 StackOverflow 尋找到答案。npm 倉庫是一個(gè)非常了不起的軟件包的來源,有了它,你只需要使用 JavaScript 一種語言就能夠編寫整個(gè)應(yīng)用程序。

  • 函數(shù)式編程:你可能知道,剛開始的時(shí)候 JavaScript 是“一種類似于 Scheme 的瀏覽器編程語言,只不過使用的是 Java 語法?!比缃窦词?JavaScript 不是純粹的函數(shù)式編程語言,但它也保留了一些函數(shù)式編程的特性,例如高階函數(shù)、匿名函數(shù)(ES6 中的箭頭函數(shù))等等。

  • 語法:最新版的 JavaScript 引入了一些語法糖,可以讓你輕松地編寫更具可讀性的代碼。比如對象/數(shù)組解構(gòu)、箭頭函數(shù)、展開運(yùn)算符等。

  • 異步:你可以嘗試一下如何處理異步代碼,相信你會喜歡的。

缺點(diǎn)

  • 動(dòng)態(tài)類型:JavaScript 的動(dòng)態(tài)類型非常糟糕。比如,我知道為什么 10 \”10\” === \”1010\”,但是我不喜歡這種方式。類型的強(qiáng)制轉(zhuǎn)換很可能會在運(yùn)行時(shí)出問題(而不是在編譯或構(gòu)建時(shí)出問題)。

    其他編譯語言(例如 ReasonML 或 Haskell)實(shí)際上不需要類型注釋,它們可以在編譯時(shí)推斷類型。但是如果遇到一個(gè)整數(shù)和一個(gè)字符串求和,它們會拋出錯(cuò)誤(可能這個(gè)例子不太適合)。

    順便說一下,TypeScript 和 Flow 都可以解決這個(gè)問題。

  • 荒唐的特性:JavaScript的一些荒唐的特性通常都是由類型的強(qiáng)制轉(zhuǎn)換引發(fā)的。

比如, {} === [object object],但是{} === 0

typeof NaN === \”number\”,但 NaN 實(shí)際的意思是:“不是數(shù)字”。

如果你是一名JavaScript 程序員,那么就會明白我所說的這些荒唐的特性了。

  • 尾調(diào)用優(yōu)化(Tail call optimization,TCO):雖然 EcmaScript 為遞歸函數(shù)指定了 TCO,但似乎只有 WebKit 支持。

  • 對象/數(shù)組常量是可變的:就像 Java 的 final 一樣,你可以在初始化后修改對象和數(shù)組,即便它們是常量。

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

Haskell

優(yōu)點(diǎn)

  • 思想的轉(zhuǎn)變:在接觸 Haskell 之后,你將以完全不同的方式思考代碼。

  • 性能:Haskell 是一種編譯語言,由于其純函數(shù)式的性質(zhì),編譯器可以在編譯時(shí)采用很多優(yōu)化。

  • 類型系統(tǒng):Hindley-Milner 類型系統(tǒng)很棒。類型聲明清晰且易于理解。此外,Haskell 類型系統(tǒng)可以在編譯時(shí)推斷類型并檢查錯(cuò)誤。

  • 語法:在習(xí)慣了 Haskell 的語法后,閱讀 Haskell 代碼就是一種樂趣。

  • 類:非常類似于 Java 的接口,但由于分層設(shè)計(jì)而更加強(qiáng)大。

  • 設(shè)計(jì)良好:Haskell 沒有常見的設(shè)計(jì)錯(cuò)誤(例如 JavaScript 犯的錯(cuò)誤),而且更偏向于軟件的正確性,而不是“不惜一切代價(jià)擁有 X 功能”。

  • 模式匹配:無需多說,Haskell 模式匹配既有趣又強(qiáng)大:

sayMe :: (Integral a) => a -> StringsayMe 1 = \"One!\"sayMe 2 = \"Two!\"sayMe 3 = \"Three!\"sayMe 4 = \"Four!\"sayMe 5 = \"Five!\"sayMe x = \"Not between 1 and 5\"

  • 惰性求值:只有在絕對必要時(shí),函數(shù)才會被計(jì)算。

缺點(diǎn)

  • 學(xué)習(xí)難度過高:Haskell 是一門很有魅力的編程語言,但有時(shí)讓你感覺沒有范疇論的博士學(xué)位就不配學(xué)這門語言。學(xué)習(xí)曲線真的很陡峭。

  • 缺乏有效的資源:學(xué)習(xí) Haskell 真的非常非常困難。我閱讀了 5 本書并參加了 3 門在線課程,但仍然無法得心應(yīng)手。很難找到導(dǎo)師。

  • Monad:基本上就是自函子范疇的幺半群。聽懂了?順便說一句,問題不在于 monad,而是我壓根搞不明白這是個(gè)什么玩意兒。

  • 術(shù)語:你之前所學(xué)的關(guān)于編程的術(shù)語都沒用,在 Haskell 中,你基本不用糾結(jié)列表、整數(shù)、循環(huán)以及其他常見的編程關(guān)鍵字,你需要花費(fèi)大把時(shí)間討論monad、幺半群、函子、可應(yīng)用性。感覺就像從頭開始學(xué)習(xí)編程。

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

Go

優(yōu)點(diǎn)

  • 學(xué)習(xí)難度低:我在第一次接觸 Go 語言的時(shí)候,大約使用了一個(gè)小時(shí)就構(gòu)建了一個(gè)Web服務(wù)器。Go 的語法與 C 有點(diǎn)類似,因此如果你有JavaScript、PHP、Java、C 的經(jīng)驗(yàn)的話,學(xué)習(xí) Go 會非常容易。

  • 出色的性能:即使不怎么關(guān)心代碼的編寫方式,也可以獲得不錯(cuò)的性能。

  • 并發(fā)處理很簡單:使用 goroutines 編寫并發(fā)代碼非常簡單。

  • 了不起的生態(tài)系統(tǒng):Go 的生態(tài)系統(tǒng)龐大且擁有大量高質(zhì)量的軟件包。

  • Go 模塊:有了 Go 模塊后,大多數(shù)時(shí)候你都不需要關(guān)心 $GOPATH。而且它們還可以更輕松地管理應(yīng)用程序的依賴項(xiàng)。

缺點(diǎn)

  • 沒有泛型:Go 不支持泛型類型,因此很難構(gòu)建可重用的函數(shù),例如filter、sort等。

  • 沒有箭頭函數(shù):雖然使用 Go 編寫匿名函數(shù)在技術(shù)上是可行的,但是我想念箭頭函數(shù)的形式。

沒有三元運(yùn)算符:這一點(diǎn)似乎不重要,但是這行代碼:

myVar := 10 > 5 ? \"foo\" : \"bar\"

比下面這段代碼強(qiáng)太多了吧:

var myVar stringif 10 > 5 { myVar = \"foo\"} else { myVar = \"bar\"}

  • 錯(cuò)誤處理:盡管使用 Go 編程有一段時(shí)間了,但還是覺得這種錯(cuò)誤處理很奇怪:

val, err := someFunc(\"foo\")if err != nil { handleError(err)}

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

PHP

優(yōu)點(diǎn)

  • 易于上手:PHP 是我的第一門編程語言,我利用它構(gòu)建了很多東西。

  • 易于部署:使用 Node.js、Ruby、Python、Elixir 時(shí),你必須設(shè)置一個(gè)應(yīng)用程序服務(wù)器才能將網(wǎng)站公開到互聯(lián)網(wǎng)。但是 PHP 只需要 Apache 或 NGINX。

  • 豐富的生態(tài)系統(tǒng):與JavaScript 一樣,,許多開發(fā)人員已經(jīng)用這種語言構(gòu)建了大量的軟件庫。

  • 快速的原型設(shè)計(jì):與 Node.js 一樣,我可以在短短幾個(gè)小時(shí)內(nèi)構(gòu)建最小化可行產(chǎn)品或概念驗(yàn)證。

  • 簡單易用:有時(shí)我感覺 PHP 就好像是 Node.js 的先驅(qū)。你可以利用 PHP 隨意編寫代碼,然后就可以正常工作,并不會遇到太大問題。這一點(diǎn)與 OCaml、Haskell、Elm 以及其他強(qiáng)類型語言有很大的不同,因?yàn)樵谑褂眠@些語言的時(shí)候,你花費(fèi)在思考如何編寫代碼上的時(shí)間甚至超過了實(shí)際編寫代碼的時(shí)間。

缺點(diǎn)

  • .htaccess:我不明白為什么應(yīng)該使用這個(gè)文件。由于瀏覽器的緩存,一旦寫錯(cuò)一次,網(wǎng)站就徹底廢了。

  • 模塊系統(tǒng):PHP 本身沒有合適的模塊系統(tǒng)。你需要通過 include,將整個(gè)文件包含到另一個(gè) PHP 文件中(相當(dāng)于復(fù)制粘貼)。

    你可以使用 PHP 的 OOP 特性,但如此一來,你就必須采用 OOP 了。

    此外,所有常規(guī)函數(shù)都可以從全局范圍訪問(如果不使用命名空間的話)。

  • 糟糕的設(shè)計(jì):PHP 語言本身存在幾個(gè)設(shè)計(jì)錯(cuò)誤,例如:

  • 無法使用 try/catch 處理 trigger_error。

  • 不支持動(dòng)態(tài)范圍。

  • 實(shí)例方法中的靜態(tài)變量的范圍不是實(shí)例。這意味著一旦設(shè)置一個(gè)變量,它就是所有實(shí)例的全局變量。

  • 整數(shù)字節(jié)大小因操作系統(tǒng)而異。

  • 類似于 JavaScript 的荒唐特性:與 JavaScript 非常相像,PHP 也有一些非常荒唐的特性:

  • \”foobar\” == 0 為 true,\”foobar\” == true 為 true,但是 0 == true 為 false

  • 以下代碼會導(dǎo)致三元運(yùn)算符出錯(cuò):

<?php $initial = \'M\'; $name = ( ($initial == \'M\') ? \'Mitch\' : ($initial == \'K\') ? \'Kevin\' : ($initial == \'J\') ? \'John\' : ($initial == \'A\') ? \'Andrew\' : \'unknown\'); echo $name; // Andrew?>

  • 不支持 Unicode:PHP 委員會仍在討論支持 Unicode。PHP 7 引入了 Unicode 轉(zhuǎn)義語法。

  • 語法:我發(fā)現(xiàn)過程式 PHP 很難閱讀。面向?qū)ο笫降?PHP 更合理,也許是因?yàn)樗袟l理。你嘗試過閱讀 WordPress 的源代碼?

  • 糟糕的功能:Rasmus Lerdorf 曾經(jīng)說過:“與其壓根沒有某個(gè)功能,還不如有一個(gè)丑陋的功能……”抱歉,我不贊同。

    我的意思是,如果你要構(gòu)建一個(gè)博客、一個(gè)最小化可行產(chǎn)品或其他東西,那么這樣做沒問題,但是不能在建立一門完整的編程語言時(shí)采用這種態(tài)度。

    軟件的正確性遠(yuǎn)比社區(qū)需要的功能重要。

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

Elixir

優(yōu)點(diǎn)

  • OTP:開放電信平臺(Open Telecom Platform,OTP)擁有創(chuàng)建大規(guī)模可擴(kuò)展實(shí)時(shí)分布系統(tǒng)所需的一切。

  • 性能:Elixir 的性能非常出色。盡管與 Java 相比,單個(gè)函數(shù)的速度可能會慢一些,但是,在嘗試并行化和水平擴(kuò)展后,Elixir 的性能可以輕松擊敗 Java。

  • 元編程:Elixir 元編程功能非常出色。

  • 語法:Elixir 的語法類似于 Ruby,無論是閱讀還是編寫代碼都是一種樂趣。

缺點(diǎn)

  • 動(dòng)態(tài)類型:Elixir 是一種動(dòng)態(tài)類型語言。這意味著你不可能擁有 Haskell 的強(qiáng)類型優(yōu)勢。

  • 魔法:有時(shí),Elixir 的元編程功能將程序的工作方式隱藏到宏后面。

  • 括號:括號在 Elixir 中是可選的,但大部分時(shí)間都需要。我更喜歡 Haskell 處理括號的方式。

原文鏈接:https://itnext.io/my-thoughts-about-programming-languages-43a8d23ead1f

聲明:本文由CSDN翻譯,轉(zhuǎn)載請注明來源。

JavaScript、PHP、Golang、Haskell、Elixir,哪個(gè)才是最佳編程語言?(golang與php哪個(gè)難)

生于2001年的《程序員》曾陪伴了無數(shù)開發(fā)者成長,影響了一代又一代的中國技術(shù)人。時(shí)隔20年,《新程序員》帶著全球技術(shù)大師深邃思考、優(yōu)秀開發(fā)者技術(shù)創(chuàng)造等深度內(nèi)容回來了!同時(shí)將全方位為所有開發(fā)者呈現(xiàn)國內(nèi)外核心技術(shù)生態(tài)體系全景圖。掃描下方小程序碼即可立即訂閱!

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

成人免费一区二区三区视频| 变态捡到女婴h养成调教| 护士长在办公室躁bd| 少妇bbw搡bbbb搡bbbb| 人妻尝试又大又粗久久| 肉大捧一进一出免费视频| 老师真嫩真紧好爽20p| 国产精品久久欧美久久一区| 国产人妻大战黑人20p| 国产精品婷婷久久爽一下| 精品久久久久久中文字幕大豆网| 亚洲精品无码久久久久| 老师洗澡时让我进去吃她的胸| 亚洲av无码第一区二区三区| 久久久久国产精品熟女影院| 中字幕视频在线永久在线观看免费| 粗长灼热快速捣出白沫h| 婷婷综合久久中文字幕| 无码无套少妇毛多18pxxxx| 国产精品久久久久9999赢消| 亚洲日韩乱码久久久久久| 久久久久人妻一区精品色| 在线看免费观看日本av| 任你躁国语自产在线播放| 久久久久琪琪去精品色| 粗大的内捧猛烈进出a片| 丰满人妻在公车被猛烈进入电影| 韩国三级中文字幕hd久久精品| 免费a片在线观看| 亚洲av永久无码精品| 又硬又粗进去好爽a片看| 最近免费中文字幕大全高清mv| AV无码精品一区二区三区| 国产高清不卡一区二区| 国产国产国产国产系列| 国产剧情av精品迷奷| 国产麻豆精品一区二区三区V视界| 狠狠躁18三区二区一区| 惨遭蹂躏的大学校花| 国产二级一片内射视频播放| 入禽太深免费观看|