作为<em>Python</em>之父的龟叔,从加入微软到现在,已经有半年的时间了。微软也是在龟叔入职的半年之际,独家采访了龟叔。通过向网友广泛征集13个问题,来回答网友们的一些提问。小伙伴赶紧搬好板凳,听听龟叔怎么说吧。
2021-05-21 10:30:31
「來源: |Python爬蟲與資料探勘 ID:crawler_python」
回覆「書籍」即可獲贈Python從入門到進階共10本電子書
今
日
雞
湯
謝卻海棠飛盡絮,困人天氣日初長。
作為Python之父的龜叔,從加入微軟到現在,已經有半年的時間了。微軟也是在龜叔入職的半年之際,獨家採訪了龜叔。通過向網友廣泛徵集13個問題,來回答網友們的一些提問。小夥伴趕緊搬好板凳,聽聽龜叔怎麼說吧。
1.Python是如何被創建出來的
龜叔自阿姆斯特朗大學碩士畢業後,加入了CWI研究實驗室,從事的正是程式語言(abc)的開發工作,但是由於缺乏語言的使用者而導致語言最終取消。而後,龜叔加入了分散式作業系統(amoeba)的研發工作,在研發過程中,龜叔發現利用C語言來進行指令碼程式的撰寫非常的不便。
而恰巧項目的leader在這個時間去了矽谷,給了龜叔自由發揮的空間,因此龜叔在聖誕節後,花了三個月的時間研發了一門程式語言,經過檢測後,受到了同事的一致認可,而這門語言,便是Python。
隨著團隊越來越多的使用Python,龜叔決定將python開源。並在usenet社群公佈了Python。一經推廣便獲得巨大成功,龜叔受到了大量的使用者私信,就這樣Python一步步的發展至今。
2.在創建Python之初,是否料想到Python在AI領域獲得廣泛應用?
」oh, No,No,No",重要的事情說三遍,龜叔聽到這個問題後,立刻用三個No表達了否定。
龜叔表示,在Python創建的時候,AI並沒有獲得太多的關注,因為在60到70年代,AI做出了很多的預測,但是都沒有實現,所以很多人認為AI已經沒有發展的前景,所以Python在創建之初的目標就是能夠成為一門優秀的工具語言。
3.對於Python的一些內建函數,2021年會有更新?
對於這一點,龜叔首先指出了幾個Python常用的內建函數,例如lambda、map、filter和reduce函數。龜叔簡要的介紹了函數的用法,並且提出想要去掉reduce的內建函數,但是這一想法遭到了一些使用者的反對。
龜叔很有個性的表示,Python是我寫的語言,有本事你自己去寫一個語言,在我的語言裡,我就是要去除掉reduce。龜叔也坦言,對於Python的更新,更像是一個game-changer,去改變一些Python的使用規則。
4.Python在web開發以及移動端的應用開發應用
「Web開發和移動端的應用開發是不同的事情」。龜叔首先指明瞭二者是不同的。對於Web的開發,Python是一門非常受歡迎的語言,就像Dropbox的伺服器,就是利用Python進行開發。
當然對於Web的前端,則是JavaScript語言。當然也有利用Python進行web前端開發的嘗試,但是需要使用者下載並安裝特定瀏覽器以及會出現各種bug,因此推廣失敗。
說到這裡,龜叔也不忘提及,Java同樣也是在做前端,但是也是沒有太大的發展。當然還有例如將Python語言翻譯成JavaScript語言的嘗試,或者是由JavaScript寫的Python直譯器。
對於這些嘗試,龜叔不確定他們是否會有發展。龜叔認為不同語言都有不同的目的,Python應該專注於Web的後端開發、資料科學這些更為擅長的領域。
對於移動端的應用 開發,龜叔指出確實有一些人在進行著方面的工作,但是Python更適合在桌面或者是伺服器的環境中進行開發運行,很多在安卓或者是ios開發中使用Python的人發現,利用Python開發很吃資源。
5.對於新的語言,例如rust,typescript的看法?
至少從理論的角度來說,我是熱愛新的語言的,經常閱讀程式語言教程,但是我不擅長安裝一門語言並編寫程式,我沒有學習過rust,但是我同一些使用過rust進行開發的人聊過天,它看上去是一門很棒的語言,對於一些特定的事情。
例如在解決記憶體分配的問題上,我確信當你在開發一個非常大的應用時,rust在解決記憶體分配問題上要比c++更優秀,所以我認為rust是一門非常有趣的語言。
1).龜叔在給出對於rust語言的表述後,也指出go語言也是非常有趣的語言。在所有的新語言中,go是最為pyhonic的語言。
2).Julia語言在一些細節上同Python非常的類似,但是在一些語法習慣上讓習慣Python程式設計的人很頭疼。在龜叔看來,Julia的應用很有侷限性,例如無法在web開發中發揮優勢
3).至於typescript,龜叔同樣表示typescript是非常好的語言,typescript解決了一些Python無法實現的問題,最近,龜叔和它的團隊也在借鑑typescript的內容來拓展Python。
短短的一些話,龜叔提及了好幾種程式語言,體現出龜叔對於程式語言的喜愛,和深厚的程式設計功底。
6.對於教學來說,是否應該在學習其他程式語言之前先學習Python
「絕對的,沒有任何疑問!當被問道這個問題是,龜叔的回答是如此的乾脆利落,沒有絲毫的遲疑。龜叔指出,幾年之前的發表在acm討論區的一篇文章就指出越來越多的學校將Python作為程式語言教學的第一門課程。
事實也是如此,無論是國內還是國外,在人工智慧如火如荼發展的當下,很多大學都開設了人工智慧課程,並且需要學生們具備Python的程式設計能力。
7.Python2 到Python3的過渡,最應該學習的是什麼?
談到Python2到Python3的過渡,歸誰認為這個過程是非常簡單的,有些Python2的程式碼甚至不需要做太多的改變就可以轉換到Python3。
同時龜叔也發現Python對於一些程式設計小白也是非常友好的,一些做金融交易的團隊也在使用Python進行程式設計來解決問題。當然在進行Python2到3的轉換時,龜叔的團隊只是考慮到了Python的愛好者,認為他們都會認為Python3要好於Python2,但是實際情況有一些區別。
談到這裡,龜叔還不忘指出,自己曾在twitter上指出,Python3到Python4的轉換與Python2到Python3的轉換是完全不同的轉變。
小編自己在學習的過程中,也是發現,Python2到Python3的轉變並不是特別困難,而且在程式碼的更迭方面,只需要進行某幾個語法點進行修改即可。
8.目前Python安裝第三方庫的方法,有新方法嗎?
針對於目前Python的依賴庫安裝管理,pip 並不是唯一的安裝方法,而且pip在針對某些第三方庫的安裝問題上,表現的也不是特別完美。龜叔提醒大家,在項目開發中最好是給每一個項目創建新的虛擬環境來避免「dll hell」問題。
雖然這樣這並不能完全保證能夠規避「dll hell」問題。特別是針對於做機器學習和資料科學的人,儘管有很多很有用的第三方庫,但是不同的開源社群會開發不同的庫,在匯入這些庫時,往往會因為版本不一致而出現錯誤。
大家在平時的第三方庫的安裝過程中,相比也會遇到因為版本的不同,而導致程式報錯的問題,並且這樣的問題,解決起來往往並不是特別輕鬆。
9.為什麼Python語言會被命名為「Python」
談到Python的命名,龜叔提到了最重要的一點,是因為本人是monty Python(英國的一組超現實幽默表演團體)的超級粉絲,龜叔非常喜歡他們,並跟著他們學習英語。
在很長的一段時間裡龜叔都是反對利用蛇來作為Python語言的logo。龜叔還自己己設計的一個logo,logo的內容是16-ton weight(出自monty Python的作品),龜叔自己說因為這是他能夠畫出的最簡單的圖畫了。
在amoeba工作的時候,團隊的人喜歡把每個模組都按照當時流行的TV show進行命名。
而且龜叔並不喜歡以一些科學、工程上的重大事件來命名程式語言,因此他決定從流行文化中來選擇命名靈感。對於「Python」的命名,網上的原因總是五花八門,現在Python之父終於給出了最權威的回答。
10.Python未來會支援量子計算嗎?
這個問題把龜叔也難住了,龜叔指出自己並不知道Python能夠在量子計算領域發揮什麼作用,但是龜叔知道有微軟的庫宣稱支援量子計算的加速,是用Python編寫的。
11.你在微軟工作的內容和職責是什麼?
「退休的我覺得太無聊了,當我從dropbox辭職後,我想的是跟我的妻子到處旅遊,和朋友聚聚會什麼的,但是時間久了我意識到我需要項目,因此我又開始程式設計,包括Python的改進。
「充滿精力的龜叔永遠都不願意停下奮鬥的腳步,龜叔為了重新找一份工作,便詢問了一下,能夠在微軟兼職工作。但是當他參加了kevin scott的訪談後,龜叔意識到微軟依舊想要全職僱傭他。
談到這裡,小編只能感嘆道龜叔不小心就凡爾賽了一把。龜叔入職微軟後,大概花了三四個月的時間讓自己明確工作方向,與喜歡用Python程式設計的人進行交流,包括機器學習,notebooks,excel等方向。但是龜叔覺得自己寧願去碼程式碼也不願意一直同人去交流,所以開始系統的研究自己能夠勝任哪些項目。
通過觀察,龜叔發現機器學習和Python的流行是相輔相成的,而且他熟悉web伺服器的開發,但是對機器學習卻知之甚少,所以龜叔開始跟微軟的機器學習工程師進行了解,但是發現需要學習很長時間。
無奈龜叔還是迴歸了老本行,組建團隊來提升Python的運行速度。前不久龜叔的團隊就發行了Python3.10beta的測試版本,未來還將將會公佈Python3.11版本,3.11版本將會在速度上遠遠超過3.10版本。不得不說,龜叔針對於Python的更迭是無人能比的,也不愧為Python之父。
12.Python4 什麼時候會發布?
」當前,談論Python4的釋出完全是一個笑話「,龜叔詼諧的回答讓大家明白,Python4的釋出將會是一個遙遠的未來。緊接著,龜叔補充道:」我們會在今年的十月份釋出3.10版本,然後再一年之後釋出3.11版本,然後是3.12 ...的版本。
我們會一直更新Python3的版本。我不能確定Python4會在何時出現,但是我們在以後可能會更改垃圾回收機制,全局的直譯器鎖也會被更改。
但如果在C語言的拓展上有完全的不相容,或者是去除掉GIL,那麼或許會將Python更改為Python4版本。「通過龜叔的回答,至少讓我們明確了,在很長的一段時間裡,雖然會有Python版本的不斷更迭,但是都不會有Python4的公佈。
13.個人愛好
龜叔自嘲自己是一個很無趣的人,但是自己喜歡閱讀,喜歡閱讀科幻小說,喜歡騎自行車。聽到龜叔這麼多的愛好,小編覺得自己才是一個最無趣的人。
龜叔也很熱愛家人,提到自己19歲的兒子時,也是一臉的自豪,並滔滔不絕的講起自己和兒子在生活中的一些事情。
看完這個13個問題,發現龜叔也是一個典型的程式設計師,除了寫程式碼也沒有啥特的愛好,貌似菜鳥哥也喜歡看科幻的,修仙的小說,哈哈!原來我跟龜叔也有一樣的愛好。
好了,今天的分享就到這裡,歡迎大家在留言區吱一聲,你對上面的點評有啥看法,你有啥跟龜叔一樣的愛好。
-------------------End -------------------
相關文章
作为<em>Python</em>之父的龟叔,从加入微软到现在,已经有半年的时间了。微软也是在龟叔入职的半年之际,独家采访了龟叔。通过向网友广泛征集13个问题,来回答网友们的一些提问。小伙伴赶紧搬好板凳,听听龟叔怎么说吧。
2021-05-21 10:30:31
来源:<em>Python</em>爬虫与数据挖掘 作者:<em>Python</em>进阶者 一、继承的介绍 继承是一种创建新的类的方式,新创建的叫子类,继承的叫父类、超类、基类。继承的特点就是子类可以使用父类的属性(特征、技能)。继承是类与
2021-05-21 10:30:27
hello,小伙伴们,今天和大家分享5个<em>excel</em>办公技巧,这5个技巧虽然不常见,但关键时刻能帮你解决大的问题!1、按照月份排序为什么排不了?如下图所示,明明是按照日期月份排序,但是结果却排不了,如何解决呢?推荐解决方案:通过
2021-05-21 10:30:01
在10.11之前的 <em>Mac</em> 系统是不支持不同程序在屏幕上进行分屏显示的。用户只能通过下载第三方软件比如:Moom、Magnet等来实现。但是由于并不是系统内置的功能,在美观性和操作逻辑上还是有所欠缺,而且软件也需要付
2021-05-21 10:02:35
传统上,FcBGA(Flip Chip Ball Grid Array /倒装芯片球栅格阵列)封装已在工作站,便携式计算机和台式机应用程序中用作<em>CPU</em>(Central Processing Unit/<em>中央处理器</em>)和服务器<em>CPU</em>(Central Proces
2021-05-21 10:02:31
大致来看看两款芯片的参数,首先是天玑900,从数字上看,天玑900的性能肯定是低于天玑1000+的,更不用说天玑1100和天玑1200了,但是天玑900却更先进,在<em>CPU</em>方面,天玑900是A78核心,但<em>CPU</em>主频只有2.4GHz,
2021-05-21 10:02:27