国产免费牲交视频无遮挡_偷偷鲁视频成人免费视频_中文无码 日韩精品_曰韩无码人妻中文字幕

新聞資訊

新聞資訊
首頁 > 新聞資訊 > 正文內容

做網(wǎng)站用什么軟件語言(做網(wǎng)站用什么軟件)

時間:2023-11-12 信途科技新聞資訊

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

作者 | Michele Riva 譯者 | 彎月 責編 | 歐陽姝黎出品 | CSDN(ID:CSDNnews)

以下為譯文:

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

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

JavaScript

Haskell

Go

PHP

Elixir

JavaScript優(yōu)點

快速的原型設計:你可以利用 JavaScript 迅速編寫出一些原型來驗證自己的想法。你甚至可以使用Node.js 在最短的時間內構建后端的概念證明。

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

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

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

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

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

缺點

動態(tài)類型:JavaScript 的動態(tài)類型非常糟糕。比如,我知道為什么 10 + "10" === "1010",但是我不喜歡這種方式。類型的強制轉換很可能會在運行時出問題(而不是在編譯或構建時出問題)。

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

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

荒唐的特性:JavaScript的一些荒唐的特性通常都是由類型的強制轉換引發(fā)的。

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

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

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

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

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

Haskell優(yōu)點

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

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

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

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

類:非常類似于 Java 的接口,但由于分層設計而更加強大。

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

模式匹配:無需多說,Haskell 模式匹配既有趣又強大:

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ù)才會被計算。

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

缺乏有效的資源:學習 Haskell 真的非常非常困難。我閱讀了 5 本書并參加了 3 門在線課程,但仍然無法得心應手。很難找到導師。

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

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

Go優(yōu)點

學習難度低:我在第一次接觸 Go 語言的時候,大約使用了一個小時就構建了一個Web服務器。Go 的語法與 C 有點類似,因此如果你有JavaScript、PHP、Java、C 的經驗的話,學習 Go 會非常容易。

出色的性能:即使不怎么關心代碼的編寫方式,也可以獲得不錯的性能。

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

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

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

缺點

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

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

沒有三元運算符:這一點似乎不重要,但是這行代碼:

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

比下面這段代碼強太多了吧:

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

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

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

PHP優(yōu)點

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

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

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

快速的原型設計:與 Node.js 一樣,我可以在短短幾個小時內構建最小化可行產品或概念驗證。

簡單易用:有時我感覺 PHP 就好像是 Node.js 的先驅。你可以利用 PHP 隨意編寫代碼,然后就可以正常工作,并不會遇到太大問題。這一點與 OCaml、Haskell、Elm 以及其他強類型語言有很大的不同,因為在使用這些語言的時候,你花費在思考如何編寫代碼上的時間甚至超過了實際編寫代碼的時間。

缺點

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

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

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

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

糟糕的設計:PHP 語言本身存在幾個設計錯誤,例如:

無法使用 try/catch 處理 trigger_error。

不支持動態(tài)范圍。

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

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

類似于 JavaScript 的荒唐特性:與 JavaScript 非常相像,PHP 也有一些非?;奶频奶匦裕?/p>

"foobar" == 0 為 true,"foobar" == true 為 true,但是 0 == true 為 false

以下代碼會導致三元運算符出錯:

<?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 轉義語法。

語法:我發(fā)現(xiàn)過程式 PHP 很難閱讀。面向對象式的 PHP 更合理,也許是因為它更有條理。你嘗試過閱讀 WordPress 的源代碼?

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

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

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

Elixir優(yōu)點

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

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

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

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

缺點

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

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

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

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

聲明:本文由CSDN翻譯,轉載請注明來源。

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

掃描二維碼推送至手機訪問。

版權聲明:本文由信途科技轉載于網(wǎng)絡,如有侵權聯(lián)系站長刪除。

轉載請注明出處http://macbookprostickers.com/xintu/15350.html

相關文章

nas主機做網(wǎng)站服務器(群暉nas做網(wǎng)站服務器)

黑群暉系統(tǒng)其實是指在普通電腦運行Synology DSM系統(tǒng), 事實上在普通PC電腦上安裝黑群暉(Synology DSM)也非常方便, 現(xiàn)在把教程簡單寫一下。引導系統(tǒng)裝哪里?非常關鍵的問題,DSM采...

營口引流推廣(小紅書如何引流推廣)

田成方,林成網(wǎng),渠相通,路相連。近年來,營口市老邊區(qū)柳樹鎮(zhèn)全面貫徹落實新發(fā)展理念,不遺余力改善民生,已初步形成了以高鐵營口東站為中心向周邊輻射的一村一品發(fā)展模式。前山的葡萄,石灰、東西柳的西紅柿、黃瓜...

迪奧品牌網(wǎng)絡營銷策劃方案的簡單介紹

其他知名香水品牌也占據(jù)著大部分的香水市場 四網(wǎng)絡營銷推廣方案與策略 一網(wǎng)絡廣告營銷1以電視廣告為主要媒介,在。年,是國內最具創(chuàng)新力的品牌營銷機構之一,聚集了兩萬多名一線營銷人員作為創(chuàng)新型數(shù)字營銷解決方...

關于為小米手機寫一個網(wǎng)絡營銷廣告語的信息

而小米智能手機的一出產就是為手機行業(yè)的佼佼者,當然不會放過任何一個發(fā)展的機會,一場轟轟烈烈的智能手機推廣及搶占市場就此展開 二產品背景。小米是一個非常重視用戶運營的手機廠商,小米11系列臨近發(fā)布,它的...

網(wǎng)絡營銷方案主要內容,網(wǎng)絡營銷調研的主要內容

網(wǎng)絡營銷策劃方案15篇 為了確保我們的努力取得實效,常常需要提前準備一份具體詳細針對性強的方案,方案是解決一個問題或者一項工程,一。篇一網(wǎng)絡營銷策劃方案 網(wǎng)絡營銷,作為電子商務的第一步,是信息時代企業(yè)...

網(wǎng)絡營銷技能項目介紹,什么是項目五看網(wǎng)絡營銷

網(wǎng)絡視聽主播職業(yè)技能培訓項目簡介 2020 年 7 月 人力資源社會保障部市場監(jiān)管總局國家統(tǒng)計局聯(lián)合發(fā)布“區(qū)塊鏈工程。項目方法守游網(wǎng)絡推廣,市場營銷的專業(yè)技能 身為服裝人周欽年,2004年30歲的他在...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費
    效果付費

    先出效果再付費

  • 極速交付
    極速交付

    響應速度快,有效節(jié)省客戶時間

  • 1對1服務
    1對1服務

    專屬客服對接咨詢

  • 持續(xù)更新
    持續(xù)更新

    不斷升級維護,更好服務用戶