有沒(méi)有一種編譯語(yǔ)言像python一樣方便高效?
問(wèn)題描述
現(xiàn)在用到的python 開(kāi)發(fā)效率很快,但是存在執(zhí)行效率較慢的問(wèn)題。這畢竟只是一種腳本語(yǔ)言。
有沒(méi)有其他語(yǔ)言,有這種開(kāi)發(fā)效率和大量的三方庫(kù)做支持,但是是編譯語(yǔ)言,因?yàn)椋矣X(jué)得編譯語(yǔ)言會(huì)比腳本這種語(yǔ)言快很多 !
不對(duì)之處還請(qǐng)指正!!!
問(wèn)題解答
回答1:編譯性的概念應(yīng)該相對(duì)于解釋性。python除了語(yǔ)法上比較友好,另外一個(gè)特點(diǎn)就是大量三方庫(kù)。
根據(jù)你的要求大概符合:
Golang是靜態(tài)強(qiáng)類型編譯語(yǔ)言。性能和開(kāi)發(fā)效率都不錯(cuò),語(yǔ)法比C/C++現(xiàn)代,比Python/Ruby還差不少,第三庫(kù)比不上python,常用的基礎(chǔ)庫(kù)也都有。
Swift是靜態(tài)強(qiáng)類型編譯語(yǔ)言。語(yǔ)法也比較現(xiàn)代,客戶端和服務(wù)端都能hold住。三方庫(kù)數(shù)量還行,社區(qū)活躍。
Erlang是動(dòng)態(tài)強(qiáng)類型編譯語(yǔ)。語(yǔ)法略古怪,適合分布式IO密集性操作。三方庫(kù)嘛,自身的OTP平臺(tái)強(qiáng)大得令人發(fā)指。
Elixir是基于Elrang VM,類ruby語(yǔ)法的動(dòng)態(tài)編譯性語(yǔ)言。既可以當(dāng)腳本解釋執(zhí)行,也可以編譯成二進(jìn)制可執(zhí)行文件。用老爺子的話就是:既有ruby的快樂(lè),也有Erlang的性能。三方庫(kù)不是太多,但是社區(qū)活躍。
做項(xiàng)目的話推薦Golang和Erlang,畢竟用的人多。學(xué)習(xí)編程范式和自己玩的話推薦Elixir
回答2:關(guān)鍵還是看你的應(yīng)用場(chǎng)景
做web后端的,Go是最符合的,學(xué)起來(lái)快,庫(kù)也很成熟,最大的缺點(diǎn)可能是社區(qū)較小,碰到問(wèn)題不知道問(wèn)誰(shuí)。當(dāng)然,你也可以去學(xué)tornado。
做數(shù)據(jù)方面的,Python就不用換了,一大堆C extension的庫(kù),對(duì)于非BAT級(jí)別的應(yīng)用,效率絕對(duì)夠了。
至于說(shuō)scala容易學(xué)的那位同學(xué),你知道下劃線_有四種用法嗎(逃
回答3:js: 不是編譯語(yǔ)言,不過(guò)node.js有不錯(cuò)的JIT。再用上TypeScript就很接近編譯語(yǔ)言了。
庫(kù)不差于py又是完全編譯語(yǔ)言的,現(xiàn)階段可能只有JVM.. 你愿意付出學(xué)習(xí)成本的話scala可以少寫很多代碼。
回答4:Scala!
優(yōu)雅的語(yǔ)法!
支持所有Java庫(kù)
我也正在學(xué)習(xí)..... 推薦一本書 《快學(xué)Scala》
相關(guān)文章:
1. javascript - 為什么我的vue里的router-link不起作用2. javascript - 求助Angular 跨控制器調(diào)用方法可行嗎?3. CSS更改未得到反映。為什么?4. 用戶在微信小程序支付成功以后,財(cái)務(wù)在微信支付后臺(tái)用交易單號(hào)能查到這筆訂單 但財(cái)務(wù)說(shuō)錢沒(méi)有入對(duì)公賬號(hào)?5. javascript - node redirect重定向失敗6. javascript - JS使用ele.style.backgoundImage = ’’ =’none’取消背景圖片都無(wú)效7. a標(biāo)簽跨域下載文件能否重命名?8. android - weex 項(xiàng)目createInstanceReferenceError: Vue is not defined9. javascript - 如圖,百度首頁(yè),查看源代碼為什么什么都沒(méi)有?10. pdo 寫入到數(shù)據(jù)庫(kù)的內(nèi)容為中文的時(shí)候?qū)懭雭y碼
