自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

《全民編程》我在微軟生活中所接觸的語(yǔ)言

原創(chuàng)
開發(fā) 后端
我們?cè)谥暗奈恼绿岬竭^(guò),每個(gè)人的經(jīng)歷本身就一個(gè)“瑰寶”,把這些經(jīng)歷分享出來(lái)可以讓別人得到很多的啟示。這次,51CTO的記者邀請(qǐng)到了微軟亞洲研究院研發(fā)工程師陳梓瀚陳老師來(lái)分享一下他在微軟生活中的所接觸的語(yǔ)言。

【51CTO原創(chuàng)】自上次《回首往事:十八年的語(yǔ)言分支》一文后,全民編程計(jì)劃也算是正式啟動(dòng)開來(lái),其實(shí)前幾次的文章(詳見底部的推薦文章)確實(shí)為我們分享出了很多的道理。從中我們看到了語(yǔ)言的“叛逆思想”、從中我們對(duì)一些語(yǔ)言有了更深入的認(rèn)知、從中我們也能體會(huì)到身為程序員的各種生活。

肖伯納有句名言是這么說(shuō)的‘人生不是一支短短的蠟燭,而是一支暫時(shí)由我們拿著的火炬。我們一定要把它燃得十分光明燦爛,然后交給下一代的人們’。我們?cè)谥暗奈恼绿岬竭^(guò),每個(gè)人的經(jīng)歷本身就一個(gè)“瑰寶”,把這些經(jīng)歷分享出來(lái)可以讓別人得到很多的啟示。這次,51CTO的記者邀請(qǐng)到了微軟亞洲研究院研發(fā)工程師陳梓瀚陳老師來(lái)分享一下他在微軟生活中的所接觸的語(yǔ)言。我們來(lái)看一下陳老師能為我們帶來(lái)什么樣“瑰寶”。(他的博客園:http://home.cnblogs.com/u/geniusvczh/

“初品編程語(yǔ)言”

當(dāng)每個(gè)人第一次接觸編程語(yǔ)言時(shí),都會(huì)產(chǎn)生或多或少的感觸,這很正常,也就是我們常說(shuō)的第一印象。而我第一次知道有編程這回事時(shí),是在廣東汕頭華僑中學(xué)念初二的時(shí)候?qū)W校開的課,剛好是這個(gè)世紀(jì)的第一年。當(dāng)時(shí)學(xué)校發(fā)了一本前半本QB后半本VB5的教材,書里面有代碼,就算是我第一個(gè)接觸到的代碼吧。當(dāng)時(shí)的感覺(jué)就是:“真是直觀啊。”

再后來(lái)我學(xué)習(xí)編程的過(guò)程中,我很少看別人的代碼。一個(gè)功能的實(shí)現(xiàn)往往有很多種,就像一個(gè)方程的有很多個(gè)解法一樣——盡管最后答案只有一個(gè)。我覺(jué)得知道一個(gè)具體問(wèn)題的解往往是沒(méi)什么太大的意義的,雖然這是初期重要的積累過(guò)程,但過(guò)了這個(gè)階段,再糾結(jié)這些問(wèn)題已經(jīng)對(duì)自己的成長(zhǎng)沒(méi)有什么好處了。

在我基本上能用VB表達(dá)出自己的想法之后,我就差不多不看代碼,而是只看各種原理和API(或類庫(kù),以下省略)手冊(cè)了。盡管當(dāng)時(shí)的代碼還很爛,但是只要不斷地寫,變好只是時(shí)間問(wèn)題。相比之下積累原理和API是更加重要的。

API的掌握

當(dāng)一個(gè)編程人員,經(jīng)歷了從無(wú)到有的過(guò)程后,如果他對(duì)于編程產(chǎn)生了興趣,他一定希望能夠不斷進(jìn)步,達(dá)到一個(gè)又一個(gè)新的高度,我亦如是。

又過(guò)了一個(gè)階段后,讓我覺(jué)得API也變成一件不太重要的事情了,因?yàn)閷W(xué)習(xí)一個(gè)API實(shí)在是太簡(jiǎn)單了。你所需要知道的就是這些東西的存在,就跟看算法導(dǎo)論的時(shí)候知道有那么些算法每個(gè)算法的好處在哪就夠了,等到真的需要了可以去查。當(dāng)然如果你根本不知道這個(gè)算法,那也是不行的——API也是如此。等到學(xué)習(xí)API的時(shí)間已經(jīng)短到可以忽略的時(shí)候,一般就是通過(guò)看博客文章微博等方法來(lái)知道這些世界上存在很多解決什么事情的API,這些API可能也是屬于你從來(lái)都沒(méi)用過(guò)的語(yǔ)言的,不過(guò)沒(méi)關(guān)系,先放著。

在這段時(shí)間里。有空的時(shí)候我就不去具體研究每個(gè)API的細(xì)節(jié)了,而是去積累原理。這里所說(shuō)的原理指的是類似數(shù)據(jù)結(jié)構(gòu)背后的數(shù)學(xué)模型啊,或者是編譯原理啊,或者做渲染的時(shí)候的各種計(jì)算方法啊,或者是設(shè)計(jì)一個(gè)語(yǔ)言的語(yǔ)法的時(shí)候需要掌握的一些譬如類型系統(tǒng)之類的知識(shí)等等。

當(dāng)然想manage一個(gè)API/類庫(kù)也是需要花上那么一段時(shí)間的。但是原理積累的足夠多之后,看到一個(gè)新的東西,往往可以猜出他API背后的一些東西。只要這個(gè)API的作者也是靠譜的,那“英雄所見略同”的事情便時(shí)有發(fā)生。這就是為什么到了這個(gè)階段之后掌握一個(gè)API是很快的,因?yàn)槿绻屇銇?lái)設(shè)計(jì)他,那你大概也會(huì)設(shè)計(jì)出差不多的東西。所以這樣的技巧就可以大大提升你學(xué)習(xí)一個(gè)新的API的速度,用到哪學(xué)到哪,這就仿佛你一開始就掌握得很好。還記得去年,一個(gè)在Office部門當(dāng)過(guò)Architect的同事意味深長(zhǎng)的跟我說(shuō)“Architecture is patterns”的內(nèi)容。正如古人所說(shuō),優(yōu)秀的數(shù)學(xué)家在理論之間看到了相似,而卓越的數(shù)學(xué)家在相似之間看到了相似。我想就是這個(gè)道理吧。

雖然語(yǔ)法啊、API啊、類庫(kù)啊、原理啊、架構(gòu)有很多,而且中間千差萬(wàn)別,但是總的來(lái)說(shuō)掌握他們有兩件事情要做。第一件事情就是要知道他們。你可以掌握的不好,你可以完全不去試一試,這沒(méi)有關(guān)系,但是你至少需要知道他好在哪。第二件事情就是要從中看到相似。再說(shuō)下去估計(jì)就變成玄學(xué)了,所以就此打住吧,言歸正傳,接下來(lái)讓我說(shuō)說(shuō)在微軟接觸到的一些語(yǔ)言吧。

#p#

我的微軟生活

記得我從實(shí)習(xí)開始就是在微軟里度過(guò)的,當(dāng)時(shí)做的是Visual Studio相關(guān)的東西,后來(lái)轉(zhuǎn)正的時(shí)候去了SQL Server,再后來(lái)就到了現(xiàn)在所在的MSRA了。

盡管這三個(gè)部門做的東西差距很大,但是選擇的方法都是一樣的——盡量用C#,不行再說(shuō)。這也不是公司非得推廣C#不可,而是因?yàn)镃#能做【而且能做好】的事情實(shí)在太多了,非得用C++才能做得好的事情已經(jīng)越來(lái)越少了。當(dāng)然或許Windows組不是這么看的,他們覺(jué)得WPF和XAML設(shè)計(jì)得好,就做了一個(gè)native版本的輪子來(lái)當(dāng)Metro UI用,還給VC++搞了一個(gè)/CX,不過(guò)至少在我呆過(guò)的地方都更喜歡C#。

至于C#是不是真的那么神奇,我只能說(shuō)現(xiàn)在像我們的基礎(chǔ)設(shè)施,譬如Azure和VS等,C#占的分量都遠(yuǎn)遠(yuǎn)超過(guò)C++的。只要不是特別計(jì)算密集型的東西,或者對(duì)資源的控制不用斤斤計(jì)較的東西,用不用C++的意義已經(jīng)不大了。其實(shí)有些時(shí)候多買些機(jī)器要比花時(shí)間把程序在一些角落里寫得好要節(jié)省更多的成本,當(dāng)然前提也是需要有的——得先掌握寫scalable程序的方法。

當(dāng)然這并不阻止我在不工作的時(shí)候還繼續(xù)研究C++的東西。我在上班的時(shí)候?qū)懝镜拇a,下了班開始寫自己的代碼,其實(shí)自己研究項(xiàng)目的難度其實(shí)往往要更大,因?yàn)樽约焊銝|西不在乎成本,搞不出來(lái)可以拖,慢慢研究會(huì)了再搞。盡管在微軟內(nèi)部也是差不多的,但是項(xiàng)目畢竟還是有期限的,事情不能做得太天馬行空。

我所染指的語(yǔ)言

談到語(yǔ)言,就不得不提到項(xiàng)目,項(xiàng)目確實(shí)是我們?cè)诠ぷ髦谐砷L(zhǎng)的重要因素。每個(gè)項(xiàng)目都有自己最合適的語(yǔ)言,只要政策允許,我都會(huì)盡量選擇最合適的那門語(yǔ)言去學(xué)。所以這不是一個(gè)選擇的問(wèn)題,一個(gè)項(xiàng)目不是你用不同的方法去“選擇”一門語(yǔ)言,最適合的語(yǔ)言就會(huì)變的。這就跟數(shù)學(xué)定理一樣,一直在那里,只有你發(fā)現(xiàn)和沒(méi)發(fā)現(xiàn)的區(qū)別。

很多新人認(rèn)為編程語(yǔ)言的選擇是否會(huì)對(duì)未來(lái)的職業(yè)規(guī)劃出現(xiàn)影響,至少對(duì)我來(lái)說(shuō),我認(rèn)為應(yīng)該是不太會(huì)。因?yàn)閷W(xué)習(xí)一個(gè)語(yǔ)言需要花很長(zhǎng)時(shí)間的這個(gè)階段已經(jīng)過(guò)了,為我在讀書的時(shí)候的主題是做編譯器,所以各種各樣奇葩的語(yǔ)義結(jié)構(gòu)基本上都見過(guò)了,所以當(dāng)接觸一門新語(yǔ)言的時(shí)候,就會(huì)跟上文所提到的一樣產(chǎn)生各種“英雄所見略同”的感覺(jué)。當(dāng)然有一些語(yǔ)言的設(shè)計(jì)者對(duì)一致性這種重要的特點(diǎn)是沒(méi)有追求的——譬如說(shuō)go,盡管他是Google做的,但這并不阻止這門語(yǔ)言看起來(lái)就像很多個(gè)補(bǔ)丁黏在一起。

在微軟的生活中我重點(diǎn)染指的語(yǔ)言大概有VB、Delphi(前面這兩個(gè)估計(jì)在也不會(huì)用它了)、C++、C#、F#、Haskell和Prolog。剩下的其它語(yǔ)言,絕大多數(shù)都跳不出這幾門語(yǔ)言所能覆蓋的范圍。此后接觸一門新語(yǔ)言的重點(diǎn)就是收集和體驗(yàn)他的一些最佳實(shí)踐,所以已經(jīng)不是什么重要的問(wèn)題了。

其實(shí)還有一些其他的語(yǔ)言,例如Go啊,Rust啊,Scala啊,Java啊,Prolog啊,Erlang啊,Perl啊,Lisp啊,BrainFuck啊,JavaScript啊,objc什么的,還有很多叫不上名字的東西,我都會(huì)去看。有些語(yǔ)言還在別人那里很流行,至少我現(xiàn)在還用不上。我會(huì)去看的原因有兩個(gè),第一個(gè)就是說(shuō)不定將來(lái)要面臨“選擇”所以知道的越多越好,另一個(gè)就是現(xiàn)在我的興趣好保留在如何設(shè)計(jì)一門好語(yǔ)言,如何寫一個(gè)好的library上面,所以開眼界是很重要的。

當(dāng)然在這里我并不是提倡語(yǔ)言無(wú)用論,我提倡的是,語(yǔ)言有很多,而且不同的項(xiàng)目最適合的語(yǔ)言是千差萬(wàn)別的。所以千萬(wàn)不要試圖去相信一個(gè)語(yǔ)言是銀彈(最近迷信C語(yǔ)言的風(fēng)氣又再一次上來(lái)了),我們所需要做的事,把它們統(tǒng)統(tǒng)都學(xué)會(huì),那這樣選擇也就變成一件容易的事情了。而且大項(xiàng)目里面的小項(xiàng)目用不同的語(yǔ)言來(lái)寫這種事情是很常見的,不能回避。

接觸過(guò)這么多的語(yǔ)言后,必定會(huì)有一個(gè)相互之間的比較,也會(huì)產(chǎn)生出每個(gè)人心中最傾心的一種編程語(yǔ)言,那么你猜我最傾心的編程語(yǔ)言回是什么呢?你肯定猜不到。

#p#

我最傾心的Haskell!

之所以上面我會(huì)說(shuō)你想不到,是因?yàn)樽屛易顑A心的語(yǔ)言是Haskell,你沒(méi)看錯(cuò),的確是Haskell。就像我《伴隨我成長(zhǎng)的編程書》所提到的一樣,我是從Haskell開始才知道掌握程序語(yǔ)言相關(guān)的理論是多么的重要。當(dāng)我逐漸把Monad啊、CPS變換這些看起來(lái)跟寫代碼沒(méi)什么關(guān)系的知識(shí)都學(xué)會(huì)了之后,遇到一個(gè)所謂“多范式語(yǔ)言”(特別是C++和C#)的時(shí)候,在一個(gè)程序的不同的部分使用不同的范式來(lái)提高開發(fā)效率和可維護(hù)性(主要是通過(guò)違反多少次DRY原則來(lái)衡量的)的這種事情已經(jīng)不再是一個(gè)問(wèn)題了。

可以說(shuō)沒(méi)有Haskell,我就不會(huì)知道這個(gè)世界上還有l(wèi)ambda calculus,還有類型系統(tǒng),還有各種各樣美妙的知識(shí)。盡管對(duì)于我喜歡寫的大部分程序講Haskell都不是最好的語(yǔ)言,但是這并不妨礙我喜歡Haskell。Haskell讓我對(duì)其它語(yǔ)言掌握得更好,特別是C++。

與Haskell相似的東西除了C++的模板以外,我再也找不出別的可以相提并論的語(yǔ)言了。只有這兩個(gè)東西讓我感受到編程語(yǔ)言的魅力。隨著硬件越來(lái)越牛,將來(lái)取勝的程序語(yǔ)言,我在這里斗膽做一下預(yù)測(cè),肯定包含兩個(gè)特征:

1、語(yǔ)言表達(dá)能力強(qiáng),噪音少,各種庫(kù)一致性高。

2、語(yǔ)言本身要容易分析(指語(yǔ)義上的),這樣才能不需要太過(guò)于復(fù)雜的過(guò)程(譬如說(shuō)分析指針內(nèi)容的別名這種亂七八糟的事情)也可以產(chǎn)生出很好的代碼。

盡管最后的贏家可能不是Haskell,但估計(jì)也是差不多的東西。那種不僅學(xué)起來(lái)難,坑多,而且還很難分析的語(yǔ)言——首當(dāng)其沖的是C語(yǔ)言——估計(jì)會(huì)跟Java一樣因?yàn)橛写罅康倪z留程序而得以保存,但遲早會(huì)被邊緣化的。不過(guò)我想這個(gè)時(shí)間還很長(zhǎng),因?yàn)槿绾伟袶askell編譯的更好的這些相關(guān)技術(shù)還有待研究。

這么說(shuō)可能有點(diǎn)抽象。如果想理解這方面的東西的話,我推薦一個(gè)視頻教程集合Channel9:http://channel9.msdn.com。去上面找我敬仰的Erik Meijer關(guān)于Haskell、Linq和Reactive Programming等相關(guān)內(nèi)容的東西去看??炊酥螅涂梢园褜⑵渌Z(yǔ)言的優(yōu)點(diǎn)強(qiáng)加在自己喜歡的語(yǔ)言上的這件事情,做得更加得心應(yīng)手了。正如《Monadic Parser Combinators using C# 3.0》這篇文章所施展的技巧一樣,當(dāng)你看著LINQ的代碼,眼睛里的不是LINQ,而是CPS變換的時(shí)候,你可以把Parser也寫成跟LINQ一樣的東西。

也許這對(duì)大部分人可能沒(méi)什么用。因?yàn)槲也还茏鍪裁礀|西,主要的業(yè)務(wù)還是做Library,所以關(guān)注點(diǎn)也好,但跟做App的人的區(qū)別還是相當(dāng)大的。所以盡管有些人覺(jué)得“Monad都是些什么亂七八糟的東西反正我學(xué)了也不能讓我漲工資也不能讓我這個(gè)項(xiàng)目的加班時(shí)間更少”,至少對(duì)于我來(lái)說(shuō),是很有意義的。

全世界編程語(yǔ)言數(shù)不勝數(shù),總有一個(gè)是你喜歡的,也總有一個(gè)語(yǔ)言是你聽都沒(méi)聽過(guò)的,那么你會(huì)想,為什么會(huì)有這么多的編程語(yǔ)言呢?有些語(yǔ)言真的有存在的意義嗎?

我是如何看待如此之多的語(yǔ)言

很多人認(rèn)為之所以有這么多編程語(yǔ)言,有工作的需要,但也有一部分是因?yàn)槊總€(gè)編程語(yǔ)言都有一些缺點(diǎn),所以需要另一種語(yǔ)言來(lái)進(jìn)行完善。但是我覺(jué)得這種說(shuō)法有一種“語(yǔ)言都是沖著成為銀彈去的”的這個(gè)觀點(diǎn)在里面。其實(shí)這樣說(shuō)是不合適的,譬如說(shuō)SQL語(yǔ)言,雖然說(shuō)SQL已經(jīng)越來(lái)越像通用語(yǔ)言了,但是你也只會(huì)拿它來(lái)操作數(shù)據(jù)庫(kù),的同時(shí)你也不會(huì)選擇其他語(yǔ)言來(lái)操作一個(gè)數(shù)據(jù)庫(kù)。

另一個(gè)例子就是Shader語(yǔ)言了,Shader語(yǔ)言是用來(lái)操作顯卡渲染圖形的。做渲染一定會(huì)用Shader,而Shader也只會(huì)用來(lái)做渲染。盡管現(xiàn)在有什么GPGPL的概念,但是只要一涉及到通用計(jì)算,大家就不會(huì)傾向于選擇DSL,在我們的日常開發(fā)里面,DSL往往充當(dāng)一個(gè)更加重要的位置。因此我們就有業(yè)界良心NVidia公司的作品CUDA,還有VC++2012的一個(gè)更強(qiáng)大的實(shí)現(xiàn)C++AMP了。

其實(shí)還是跟上面所強(qiáng)調(diào)的一樣,每一個(gè)項(xiàng)目都有自己的最好的語(yǔ)言。所以答案很明顯,之所以語(yǔ)言這么多,除了作者閑到非要做一個(gè)編譯器來(lái)玩一玩的這種事情(譬如說(shuō)我,不過(guò)我的語(yǔ)言都坑了,有些人的語(yǔ)言就沒(méi)坑,譬如說(shuō)ruby之父松本行弘)以外,最重要的原因就是,項(xiàng)目之間的差距太大,所以對(duì)語(yǔ)言的要求的區(qū)別也很大。一個(gè)語(yǔ)言不可能同時(shí)滿足這么多相差很大的要求,所以就有很多個(gè)語(yǔ)言長(zhǎng)出來(lái)了。因果關(guān)系不能顛倒。

既然有這么多的語(yǔ)言,那必定市場(chǎng)上就會(huì)出現(xiàn)各種語(yǔ)言從入門到精通的書籍,在我的《伴隨我成長(zhǎng)的編程書》一文中已經(jīng)分享了很多自己在實(shí)際開發(fā)中看過(guò)并覺(jué)得比較好的書籍,下面我會(huì)說(shuō)說(shuō)我在實(shí)際開發(fā)中認(rèn)為比較好的工具。

推薦完書后我們?cè)谡務(wù)劰ぞ?/strong>

說(shuō)道最喜歡的工具,那么首當(dāng)其沖的當(dāng)然是Visual Studio。盡管我很喜歡搞那些平臺(tái)無(wú)關(guān)的東西(這并不意味著我喜歡跨平臺(tái)),但是我毫不否認(rèn)一個(gè)稱手的工具是相當(dāng)重要的。IDE對(duì)我的重要性已經(jīng)高到我會(huì)為我的語(yǔ)言寫IDE的這種程度了。盡管我現(xiàn)在寫的還不好,所以在可以預(yù)見的時(shí)間里面我還將繼續(xù)研究這個(gè)事情。別的就不說(shuō)了,VS寫ASP.NET MVC4程序的時(shí)候,在一個(gè)Razor模板文件里面充滿了JavaScript、C#、Html和CSS四種語(yǔ)言。令我感到驚訝的事,盡管這四種語(yǔ)言你揉在一起寫,但是Visual Studio的IntelliSense精準(zhǔn)而且好用到那四種語(yǔ)言仿佛就是一種。我無(wú)法想象要是讓我用不帶IntelliSense和Debugger的編輯器來(lái)搞這些事情那是個(gè)什么樣子。

當(dāng)然VS也并不是總是可以完成我想要完成的內(nèi)容。我有一次還是掉了坑的,就是在我寫GacUI(www.gaclib.net)的時(shí)候,我給我的類都加上了XML注釋,結(jié)果發(fā)現(xiàn)沒(méi)有一個(gè)工具可以讓我用XML注釋來(lái)給Native C++程序產(chǎn)生文檔。微軟的這方面工具都是針對(duì).Net(包括C++/CLI)的。所幸的是,VS還是給了我一個(gè)讀PDB文件的API,盡管藏得很深,但還是Public API。因此我最后選擇通過(guò)把PDB和XML注釋編譯出來(lái)的一個(gè)XML文件拿來(lái)join的方法,自己搞定了這件事情。

還有一個(gè)我想提到的是,我們都知道因?yàn)镃語(yǔ)言的宏實(shí)在是坑太多了,于是Boost.PP應(yīng)運(yùn)而生。但是Boost.PP因?yàn)槭墙⒃诤晟厦娴?,因此坑也很多,我在大三那一年耗盡了心血都沒(méi)辦法把他掌握到一個(gè)可以再?gòu)?fù)雜情況下安全使用的地步,一怒之下,開發(fā)了fpmacro(gac.codeplex.com的項(xiàng)目里面就有,那些擴(kuò)展名為fpm的文件就是)。fpmacro長(zhǎng)得跟宏差不多,但是它是一門嚴(yán)謹(jǐn)?shù)恼Z(yǔ)言,語(yǔ)法是經(jīng)過(guò)精心設(shè)計(jì)的,專門用來(lái)寫只能用復(fù)雜的邏輯才能產(chǎn)生你的不想人肉寫的C++代碼。至于我為什么會(huì)需要這么一個(gè)工具,是因?yàn)槲医?jīng)常需要產(chǎn)生跟std::function一樣風(fēng)格的大量三角形特化。

這個(gè)故事告訴我們,能自己寫工具,才是終極的解決辦法。

全民編程

51CTO記者寄語(yǔ):在語(yǔ)言這塊,每個(gè)人跟每個(gè)人了解的各有差異,而陳老師在微軟的成長(zhǎng),更是讓他發(fā)現(xiàn)了他“獨(dú)愛(ài)”的編程語(yǔ)言,本文中他對(duì)于Haskell的講述更是讓我們看到了這門很多人并沒(méi)有在意的語(yǔ)言它的亮點(diǎn),并且我們也應(yīng)該深思一下,自己每天運(yùn)用的代碼是否自己真的了解其原理和機(jī)制呢?還只是一種熟能生巧的習(xí)慣呢?

網(wǎng)友朋友們,你們又將會(huì)有什么樣的編成生活要講述給我們呢?亦或是又會(huì)有什么樣的語(yǔ)言見解給我們分享呢?這些都會(huì)是我們所期待的,就讓我們行動(dòng)起來(lái),一起來(lái)參與全民編程吧!

【編輯推薦】

  1. 回首往事:十八年的語(yǔ)言分支
  2. 去項(xiàng)目中成長(zhǎng)吧!程序員
  3. 編程賦予了我們什么樣的改變
責(zé)任編輯:張偉 來(lái)源: 51CTO
相關(guān)推薦

2013-06-27 10:31:39

2015-07-20 11:32:07

編程語(yǔ)言

2009-07-23 09:31:26

美國(guó)微軟面試

2021-05-20 10:17:59

編程語(yǔ)言javaPython

2013-03-25 11:11:37

編程語(yǔ)言編程語(yǔ)言書籍編程語(yǔ)言書

2014-05-23 10:25:48

Clojure

2013-01-15 09:26:00

智能手機(jī)移動(dòng)生活APP時(shí)代

2013-06-25 11:06:51

編程技巧蘋果

2009-05-13 15:38:45

微軟并行語(yǔ)言Axum

2013-04-15 01:07:04

2013-11-11 11:00:39

編程語(yǔ)言排行榜

2012-05-25 09:48:01

編程程序員

2011-11-24 17:11:13

2018-12-04 15:46:53

編程語(yǔ)言Python

2014-07-28 09:43:58

編程語(yǔ)言鑒別編程

2009-08-04 11:15:57

編程語(yǔ)言排行榜微軟

2011-07-11 10:34:40

編程技巧蘋果

2019-11-18 15:07:54

編程語(yǔ)言C#

2013-08-12 09:38:22

2014-01-02 14:04:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)