列举ospf的5种报文类型_9种语言的应用场景,程序员的候选清单,你最看好哪一门语言...
從事主流開發(fā)語言的人員有很多,但是除了這些語言,我們也應(yīng)該了解一些其他的,這樣,我們才能根據(jù)場(chǎng)景的不同決定采用哪一種。本文為大家列舉了9種語言的應(yīng)用場(chǎng)景。
目前比較流行的開發(fā)語言之所以能夠被大多數(shù)開發(fā)人員使用,是因?yàn)樗鼈兏髯杂懈髯缘膬?yōu)勢(shì)。但是除了C#、Java或者JavaScript這些語言外,還有些其它的高級(jí)語言在某些時(shí)候也會(huì)提供很高的價(jià)值。下面的9種語言應(yīng)該出現(xiàn)在每一位程序員的候選清單中。它們可能不是所有場(chǎng)景下的較佳選擇,因?yàn)樗鼈兌际怯袑S糜谀骋环N情況下的。但它們都提供了值得研究和學(xué)習(xí)的有利方面。可能有一天,其中一種語言被證明是你的項(xiàng)目或老板所需要的。
Kotkin:重新設(shè)計(jì)過的Java語言
Java是一門偉大的語言,支持各種主流的平臺(tái)。但是它現(xiàn)在有點(diǎn)過時(shí)了,而且痛點(diǎn)正在被放大。Kotlin的意思是快速的編譯,它與Java并存,解決了Java開發(fā)者耗時(shí)長(zhǎng)的問題。Kotkin的特性中需要重點(diǎn)關(guān)注的就是它對(duì)空值的處理,這個(gè)問題每個(gè)開發(fā)者都會(huì)遇到。Kotkin在這一方面取得了巨大的進(jìn)步,它還可以和現(xiàn)有的Java代碼一起使用,而且還可以將代碼編譯成JavaScript和本地代碼。
Erlang:實(shí)時(shí)系統(tǒng)的函數(shù)式編程
Erlang的秘密武器就是功能范式。大多數(shù)代碼都被迫在自己的小世界中運(yùn)行,這樣這些代碼就不會(huì)對(duì)系統(tǒng)其他部分產(chǎn)生影響。這些函數(shù)在內(nèi)部完成所有的工作,在類似于沙箱一樣的的小“進(jìn)程”中進(jìn)行運(yùn)行,并且只通過郵件消息相互通信。該模型還簡(jiǎn)化了運(yùn)行時(shí)代碼需要哪些代碼確定可以同時(shí)運(yùn)行的過程。這樣做就使得并發(fā)性非常容易檢測(cè),所以運(yùn)行時(shí)進(jìn)程的開銷也會(huì)非常小。
如果你正在構(gòu)建一個(gè)實(shí)時(shí)系統(tǒng),該系統(tǒng)沒有空間給那些已經(jīng)刪掉的數(shù)據(jù),比如移動(dòng)電話交換機(jī)的計(jì)費(fèi)系統(tǒng),那么可以考慮一下Erlang。
Go:簡(jiǎn)單性和動(dòng)態(tài)性
谷歌在調(diào)查開發(fā)語言的過程中,發(fā)現(xiàn)這些語言雜亂無章、復(fù)雜,而且往往很慢。2009年,谷歌發(fā)布了它的解決方案:一種看起來像C語言的靜態(tài)類型的語言,但它的后臺(tái)更智能,可以讓程序員不必指定類型和處理malloc調(diào)用。谷歌使用了和Sun以及蘋果公司完全不一樣的策略,他們希望Go語言的代碼能夠“簡(jiǎn)單到可以一直保存在程序員的腦海中”。
如果你是一家想要吸引谷歌眼球的創(chuàng)業(yè)公司,你需要建立一些服務(wù)器端業(yè)務(wù)邏輯,那么Go就是一個(gè)很好的起點(diǎn)。
OCaml:適用于復(fù)雜的數(shù)據(jù)層次
有些程序員不希望指定變量的類型,動(dòng)態(tài)語言可以做到。其他人則喜歡定義變量是否整數(shù)、字符串或?qū)ο蟆?duì)他們來說,許多編譯語言提供了他們想要的所有支持。還有一些人夢(mèng)想著精心設(shè)計(jì)的層次結(jié)構(gòu),甚至可以說是創(chuàng)造出“代數(shù)”的類型。他們?cè)O(shè)想了各種不同類型的列表和表,它們被組合在一起,以表達(dá)復(fù)雜的、多層次的數(shù)據(jù)。它們談到了多態(tài)性、模式匹配原語和數(shù)據(jù)封裝。這僅僅是一個(gè)復(fù)雜的、高度結(jié)構(gòu)化的世界的開始,他們想要的是類型、元類型和元數(shù)據(jù)類型。
TypeScript:你會(huì)喜歡的JavaScript語言
TypeScript是目前比較受歡迎的開發(fā)語言,因?yàn)樗笏械淖兞慷急仨毝x一個(gè)類型,這種做法會(huì)讓Java程序員感到更加的安全。TypeScript現(xiàn)在之所以這么受歡迎,最重要的原因就是因?yàn)锳ngular,而且TypeScript支持和遺留的JavaScript進(jìn)行整合。還有一個(gè)原因是因?yàn)門ypeScript是JavaScript的父集。強(qiáng)類型有很多優(yōu)勢(shì),比如可以在早期捕獲一些bug,而且可以提高編譯的速度。對(duì)他們來說,這是OCaml,這是編程語言社區(qū)的一項(xiàng)嚴(yán)肅的努力,推廣了上面提到的許多想法。有對(duì)象支持、自動(dòng)內(nèi)存管理和設(shè)備可移植性。甚至還有來自蘋果應(yīng)用商店的OCaml應(yīng)用。
Rust:安全可使用的系統(tǒng)語言
Rust就像是翻新過的C語言版本,但是它有大量的多態(tài)類型。Rust發(fā)展很快,在Stack Overflow的語言流行排行榜上,以前大概50名左右,今年則躍升至18名。原因就是因?yàn)樗鉀Q了很多C語言擁有的問題。系統(tǒng)程序員不喜歡依賴?yán)厥諜C(jī)制,他們喜歡自己掌握內(nèi)存的數(shù)量,Rust就會(huì)讓你有這種感覺。
Scala:JVM上的函數(shù)式編程
如果你非常喜歡功能范式,又需要將項(xiàng)目變?yōu)槊嫦驅(qū)ο髮哟谓Y(jié)構(gòu),而且代碼還得簡(jiǎn)單,你可能會(huì)有多個(gè)選擇。但是如果你有Java的基礎(chǔ),Scala就可以幫助你了。Scala也是基于JVM運(yùn)行的,與Java相比,它的代碼顯得更為整潔。Scala的類型機(jī)制是強(qiáng)靜態(tài)的,編譯器為了推斷類型會(huì)做很多工作。在Scala中原始類型和對(duì)象類型之間沒有區(qū)別,因?yàn)镾cala希望所有的東西都可以從一個(gè)ur-object中調(diào)用。
Scala提供了函數(shù)式語言的許多特性,比如延遲評(píng)估、尾遞歸和不可變變量,但是為了在JVM上面運(yùn)行,它已經(jīng)做過修改了。基本的元類型或集合變量,如鏈表或哈希表,可以是可變的,也可以是不可變的。
如果你必須在數(shù)千個(gè)處理器集群中處理數(shù)據(jù),而且還面臨著遺留的Java代碼問題,那么Scala是一個(gè)很好的解決方案。
Haskell:純粹簡(jiǎn)單的函數(shù)式編程
20多年來,致力于函數(shù)式編程的學(xué)者們一直在積極地發(fā)展Haskell。它是理想的函數(shù)式編程一種更純粹的表達(dá)方式,它有一套很健全的體制去處理輸入/輸出通道。此外,Haskell的社區(qū)也非常活躍。如果你認(rèn)為你的數(shù)據(jù)結(jié)構(gòu)會(huì)很復(fù)雜,而且有很多類型,Haskell將會(huì)幫助你的。
Julia:速度更快的Python語言
軟件行業(yè)喜歡用Python開發(fā)的人非常多,然而,無論P(yáng)ython的優(yōu)點(diǎn)有多明顯,它一直都存在一個(gè)讓人特別惱火的問題,就是速度問題。Julia的出現(xiàn)就是為了解決這個(gè)問題。它引入了Python開發(fā)者所崇尚的clean語法,使得代碼可以在后臺(tái)進(jìn)行編譯。它還提供了一個(gè)強(qiáng)大的類型推理引擎,可以讓代碼運(yùn)行的更快。與Python相比,它的速度明顯快很多。如果你的數(shù)據(jù)量比較大,但是喜歡Python的語法,那么Julia可以是你的下一個(gè)學(xué)習(xí)的語言。
接下來,是程序員候選清單投票,個(gè)人比較看好Julia
人工智能、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的未來發(fā)展值得重視,均為前沿產(chǎn)業(yè),多智時(shí)代專注于人工智能和大數(shù)據(jù)的入門和科譜
總結(jié)
以上是生活随笔為你收集整理的列举ospf的5种报文类型_9种语言的应用场景,程序员的候选清单,你最看好哪一门语言...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中多个数组行合并及列合并的方
- 下一篇: 前端dashboard框架_微前端在网易