發(fā)布時(shí)間:2023-11-27 12:07:45 瀏覽量:106次
本文來(lái)自 CSDN 策劃的《2022 年技術(shù)年度盤(pán)點(diǎn)》欄目。本欄目將圍繞編程語(yǔ)言、開(kāi)源、云計(jì)算、人工智能、架構(gòu)服務(wù)、數(shù)據(jù)庫(kù)、芯片、開(kāi)發(fā)工具等核心技術(shù)領(lǐng)域,特邀一線技術(shù)專家親臨分享自身的技術(shù)實(shí)踐,借此希望能夠?yàn)楦嗟男袠I(yè)從業(yè)者帶來(lái)一些借鑒與思考,更好地把握技術(shù)的未來(lái)發(fā)展趨勢(shì)。
在本篇文章中,來(lái)自北京火石鎮(zhèn)網(wǎng)絡(luò)科技 CEO 卞安, 將從應(yīng)用領(lǐng)域和開(kāi)發(fā)工具鏈的維度展開(kāi),分享 Python 語(yǔ)言在軟件工具層面面臨最新現(xiàn)狀與挑戰(zhàn),探討開(kāi)發(fā)者助力 Python 突破自身的機(jī)遇所在。
一轉(zhuǎn)眼,又到年底了。2022 年的 12 月,注定是我們?nèi)松洃涀顬樯羁痰囊粋€(gè)月。
一方面,發(fā)著高燒看世界杯決賽中梅西帶著球隊(duì)一波三折,最終如愿奪冠,我們一邊感慨青春的逝去,一邊鼓勵(lì)自己早日康復(fù),期待更好的自己。
另一方面,TIOBE 2022 年 12月的編程語(yǔ)言排行榜上,Python 終于再一次拿下冠軍,衛(wèi)冕成功,且一直保持著高速的增長(zhǎng),令人矚目。
作為一個(gè) Python 工具軟件的作者,今天,我來(lái)聊一聊 Python 奪冠路上的喜和憂......
我致力于 Python 開(kāi)發(fā)工具的這三年
三年前,當(dāng)我得知 C 語(yǔ)言以微弱優(yōu)勢(shì)擊敗 Python 成為 2019 年度 TIOBE 編程語(yǔ)言排行榜冠軍的新聞時(shí),我正在用 C++ 開(kāi)發(fā)游戲。那則新聞突然讓我有點(diǎn)驚訝,“Python?是那個(gè)十幾年前用過(guò)的腳本語(yǔ)言么?”
“天吶,就是這樣一個(gè)當(dāng)初只是在游戲中作為腳本嵌入語(yǔ)言的東西,竟然這么受歡迎”。也是從這天起,我開(kāi)始學(xué)習(xí) Python,并在這個(gè)過(guò)程中嘗試不斷地建設(shè) Python 開(kāi)發(fā)工具軟件。
三年后的今天,看著 Python 的成長(zhǎng),說(shuō)實(shí)話,我很欣慰。因?yàn)樵谖业难劾铮?strong>它不只是一門(mén)語(yǔ)言,更帶來(lái)了一種鼓舞,讓我看到,作為一名程序員,應(yīng)該怎么堅(jiān)持自己的理想。
畢竟,距離 1991 年 Python 誕生已經(jīng)過(guò)去 31 年了。當(dāng)年的我,還青春年少,戴著紅領(lǐng)巾和同學(xué)們嬉鬧玩耍。而現(xiàn)在的我,踏過(guò)不惑之年的臺(tái)階,兩鬢已經(jīng)生出白發(fā)。
我感慨時(shí)光匆匆,回顧前半生,曾幾何時(shí),我把「約翰.卡馬克」當(dāng)作偶像,立志于做最好的游戲程序員,并十年如一日的學(xué)習(xí)和研究,但終歸,技術(shù)的大潮滾滾而來(lái),又洋洋而去,能在程序員這個(gè)崗位上,做到主程序,甚至是技術(shù)總監(jiān)、業(yè)內(nèi)大拿,終歸是需要點(diǎn)天賦的,但能夠成就大事,就不簡(jiǎn)簡(jiǎn)單單是一個(gè)人的問(wèn)題,更多的是心態(tài)、團(tuán)隊(duì)、環(huán)境、家庭、運(yùn)氣等多方面的因素。
即便我們努力如初。但在時(shí)間的無(wú)情打擊之下,我們,是否守得住這美好的初心?
Python 過(guò)去這一年
2022 年,Python 風(fēng)聲水起。
一定程度上,Python 在這一年里的發(fā)展,得益于 AI 的影響力,使得目前在編程教學(xué)普及方面,Python 成了廣大學(xué)生和科研工作者所最希望掌握的技能之一。而這種熱度也正在一步步的從科研院校擴(kuò)散到各行各業(yè)的開(kāi)發(fā)者領(lǐng)域。
除此之外,10 月份正式發(fā)布的 Python 3.11 運(yùn)行速度比之前 3.10 快了 60%,
在 Python 之父 Guido van Rossum 的帶領(lǐng)下,未來(lái)仍有巨大的效能提升空間。
知名的 Python 發(fā)行版 Anaconda 開(kāi)發(fā)商也發(fā)布了可在瀏覽器中運(yùn)行的 Python——PyScript。
應(yīng)該說(shuō),如果你不能掌握一點(diǎn) Python 技能,在當(dāng)下這個(gè)時(shí)間點(diǎn),是有點(diǎn)不合時(shí)宜的。
但是,冷靜下來(lái),對(duì) Python 這門(mén)語(yǔ)言進(jìn)行評(píng)價(jià),也很難說(shuō)就都是贊美之詞。畢竟,僅僅是表面上的一些問(wèn)題,就困擾了許多人。如果只是一味的相信 AI 的未來(lái)而認(rèn)為掌握 Python 就能夠成就高薪就業(yè),更是不現(xiàn)實(shí)的。
使用 Python 的理想與現(xiàn)實(shí)
首先,Python 目前仍然很少作為主流的前端開(kāi)發(fā)語(yǔ)言。
原因很簡(jiǎn)單,就三個(gè)字:“不靠譜”。比如:
在現(xiàn)實(shí)中創(chuàng)業(yè)者最扎堆的移動(dòng) App 開(kāi)發(fā)領(lǐng)域,主流的開(kāi)發(fā)語(yǔ)言仍然是蘋(píng)果端的 Objective-C、Swift 和安卓端的 Java,暫沒(méi)聽(tīng)說(shuō)過(guò)誰(shuí)用 Python;
在桌面應(yīng)用軟件領(lǐng)域,前有 Microsoft Visual C++、C# 在 Windows 系統(tǒng)上開(kāi)發(fā)的各類工具軟件,后有JavaScript、TypeScript 結(jié)合 Electron 開(kāi)發(fā)的各類跨平臺(tái)應(yīng)用,而 Python 卻經(jīng)常陷入到底能做出多復(fù)雜界面的討論中;
在 Web 端領(lǐng)域,Python 雖然具備在服務(wù)端進(jìn)行大型網(wǎng)站開(kāi)發(fā)的能力,但卻很少參與前端開(kāi)發(fā)。
少了這些開(kāi)發(fā)崗位的加持,Python 自然是難以在企業(yè)應(yīng)用開(kāi)發(fā)市場(chǎng)討得一杯羹。
其次,作為專業(yè)程序員看來(lái),Python 語(yǔ)言雖然簡(jiǎn)單易學(xué),開(kāi)發(fā)效率高,但在現(xiàn)代軟件企業(yè)產(chǎn)品的研發(fā)中,缺乏高效而完整的開(kāi)發(fā)工作流軟件支撐。
比如說(shuō),我們?cè)谟螒蛐袠I(yè)中習(xí)慣于使用 Unity 或 CocosCreator 來(lái)開(kāi)發(fā)一款游戲,從項(xiàng)目的搭建、場(chǎng)景擺放、函數(shù)綁定,再到調(diào)試運(yùn)行、打包多平臺(tái)輸出,都具有所見(jiàn)即所得的科學(xué)良好的工作流程支持。
CocosCreator 的組件化開(kāi)發(fā)工作流
對(duì)于 C 和 C++,微軟公司上世紀(jì)就推出了 VC++ 開(kāi)發(fā)工具;Java 也有 IntelliJIDEA 和 Eclipse IDE,這些優(yōu)秀的 IDE 支持背后,實(shí)際上是巨頭企業(yè)對(duì)于開(kāi)發(fā)者生態(tài)圈流量入口的掌握,更是幫助開(kāi)發(fā)者掌握和使用一門(mén)語(yǔ)言的良好流程理念的踐行。
在上面的排行榜中,我們也可以看到,“Visual Basic”這個(gè)早已經(jīng)遠(yuǎn)離主流開(kāi)發(fā)領(lǐng)域的編程語(yǔ)言,現(xiàn)如今依然能夠排到第 6 名,而眾所周知,“Visual Basic”是可視化編程工具中非常優(yōu)秀的典范。拖拽式的控件創(chuàng)建加上非常簡(jiǎn)單的事件函數(shù)映射,對(duì)開(kāi)發(fā)者掌握如何面向?qū)ο蟮慕缑婢幊涕_(kāi)發(fā)起到了深刻的影響,也成為之后十?dāng)?shù)年大量應(yīng)用開(kāi)發(fā)工具和游戲編輯器借鑒的對(duì)象。
其實(shí),我們現(xiàn)在在開(kāi)發(fā)中所困擾的大部分問(wèn)題,本質(zhì)上是屬于開(kāi)發(fā)集成工具的不夠完善,如果有一套科學(xué)、良好的集成開(kāi)發(fā)工具作為底層支撐,那么我相信,這些問(wèn)題實(shí)際上是不存在的。
但 Python 的問(wèn)題,在于當(dāng)初它誕生時(shí)的開(kāi)發(fā)需求,經(jīng)過(guò)三十年的變化,與現(xiàn)在是完全不同的。作者 Guido van Rossum 最初設(shè)計(jì) Python 是將其當(dāng)作一門(mén)教學(xué)語(yǔ)言??梢哉f(shuō),直到現(xiàn)在,Python 的基本面仍然還更像是一個(gè)教學(xué)語(yǔ)言一樣,通俗易懂、簡(jiǎn)單上手,記事本打開(kāi)就能寫(xiě),寫(xiě)完保存直接就能運(yùn)行。
不過(guò)在這個(gè)理念之下,更多專業(yè)的工程化的東西就省略了,比如良好的項(xiàng)目管理、豐富的調(diào)試功能、實(shí)時(shí)的性能監(jiān)控等。
我們不能責(zé)怪作者,只能說(shuō)時(shí)代在新的階段,賦予了 Python 新的生機(jī),而在新的環(huán)境下,原有的外圍輔助工具已經(jīng)落后了。雖然當(dāng)下我們有了PyCharm、VSCode等優(yōu)秀的開(kāi)發(fā)工具,但這類工具的主體仍然沒(méi)有脫離代碼編程器的層面,并沒(méi)有在開(kāi)發(fā)流程上做到完整的覆蓋。我認(rèn)為這也是目前限制 Python 從小型軟件轉(zhuǎn)向大中型軟件開(kāi)發(fā)中不可缺少的一環(huán)。
筆者目前正在致力于開(kāi)發(fā)基于 Python 語(yǔ)言的全棧式開(kāi)發(fā)工具軟件產(chǎn)品《PyMe》,希望通過(guò)可視化的方式,幫助 Python 開(kāi)發(fā)者快速搭建應(yīng)用軟件項(xiàng)目,并可一鍵打包成桌面和安卓應(yīng)用
最后,在本具備良好支持的 2D 和 3D 跨平臺(tái)圖形渲染領(lǐng)域,Python 未能實(shí)質(zhì)上開(kāi)疆?dāng)U土。
游戲,曾經(jīng)是很多編程語(yǔ)言發(fā)展的重要推手,一旦沾上游戲,基本上這門(mén)編程語(yǔ)言可以穩(wěn)定地占據(jù)一定的開(kāi)發(fā)者市場(chǎng)。比如 C#,因作為 Unity 的主要開(kāi)發(fā)語(yǔ)言,而被大量的游戲開(kāi)發(fā)者們使用;LUA,因?yàn)槟軌蚋咝У膱?zhí)行和簡(jiǎn)潔的設(shè)計(jì),成為游戲中最主要的腳本語(yǔ)言,十多年來(lái),雖然 LUA 仍然只能作為另一門(mén)主要開(kāi)發(fā)語(yǔ)言的腳本補(bǔ)充,但仍然廣受歡迎;C++,更是長(zhǎng)期作為游戲服務(wù)器開(kāi)發(fā)的不二之選。
現(xiàn)實(shí)來(lái)看,用 Python 開(kāi)發(fā)游戲,不見(jiàn)得是個(gè)好的選擇,因?yàn)樗鼒?zhí)行效率太低了,無(wú)法滿足高速渲染和運(yùn)行邏輯的要求,但是有一個(gè)很有趣的現(xiàn)象,就是很多的學(xué)生和非專業(yè)開(kāi)發(fā)者,卻使用 Pygame 或 PyOpenGL 來(lái)嘗試開(kāi)發(fā) RPG 或一些小游戲。
掌握基本的 Python 編程,已經(jīng)成了很多非專業(yè)開(kāi)發(fā)人員的一個(gè)技能,而在這個(gè)世界上,如此眾多的學(xué)生和非專業(yè)開(kāi)發(fā)者,往往在學(xué)習(xí)語(yǔ)言的過(guò)程中,嘗試做一些小游戲,或有意,或無(wú)意地娛樂(lè)自己或他人。
而 Python,是他們唯一的武器。
只是,卻沒(méi)有太多子彈。
Python 開(kāi)發(fā)者經(jīng)常使用一個(gè)基于 SDL 的圖形庫(kù) Pygame 來(lái)開(kāi)發(fā)一些小游戲,但 Pygame 發(fā)展到現(xiàn)在,卻連基本的 Spine 動(dòng)畫(huà)支持庫(kù)也沒(méi)有,以及基本的 UI 庫(kù)也沒(méi)有。做一個(gè)游戲項(xiàng)目,只能手?jǐn)]一切。
B 站上的“使用 Python 和 Pygame 開(kāi)發(fā)《星露谷物語(yǔ)》”教程經(jīng)常在 Python 游戲開(kāi)發(fā)者群被提及,仿佛學(xué)會(huì) Pygame,就能打開(kāi)游戲制作的大門(mén)。
而 PyOpenGL 作為 OpenGL 在 Python 上的展現(xiàn),一樣缺這少那,大多數(shù)人連畫(huà)出個(gè)方塊都覺(jué)得費(fèi)勁。
可能很多開(kāi)發(fā)者會(huì)說(shuō):“Python 又不是為了專門(mén)做游戲用的,這不重要吧?”,但是我想說(shuō),游戲開(kāi)發(fā)的能力用不用和有沒(méi)有是兩碼事,對(duì)于廣大的圖形學(xué)與機(jī)器學(xué)習(xí)交叉學(xué)科,如果 Python 具備完善的開(kāi)發(fā)能力和工具支撐,對(duì)于學(xué)生和科研人員來(lái)說(shuō),則可以更加專注于核心問(wèn)題的探索,而不是浪費(fèi)時(shí)間去學(xué)習(xí) C++ 和繁瑣的各種開(kāi)發(fā)工具和環(huán)境配置,無(wú)疑可以大大加快相關(guān)學(xué)科的發(fā)展。
寫(xiě)在最后
筆者正在開(kāi)發(fā)中的基于 PyOpenGL 的 3D 場(chǎng)景編輯器,目前還比較簡(jiǎn)陋。
不過(guò),羅馬也不是一天建成的,我由衷的相信,在這個(gè)過(guò)程中,不管是 Python 的作者,或者是其背后的微軟公司,以及廣大的開(kāi)發(fā)者群體,都會(huì)不斷的貢獻(xiàn)自己的聰明才智,把 Python 的問(wèn)題一點(diǎn)點(diǎn)解決掉,隨著 Python 各方開(kāi)發(fā)力量的不斷投入,Python 的未來(lái),將不僅僅局限于科研和教學(xué),而在更加廣泛的工程項(xiàng)目中,還會(huì)有更加巨大的可挖掘潛力。
畢竟,人生苦短,我用 Python 嘛!
參與《2022-2023 中國(guó)開(kāi)發(fā)者大調(diào)查》問(wèn)卷,
更有 iPad 等精美大禮等你拿!
熱門(mén)資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計(jì)領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點(diǎn)擊咨詢報(bào)名。
2. 手機(jī)游戲如何開(kāi)發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說(shuō)明時(shí)代在進(jìn)步游戲在更新,更趨于方便化移動(dòng)化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白??靵?lái)試試!
4. Steam值得入手的武俠游戲盤(pán)點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個(gè)抉定都將觸發(fā)更多愛(ài)恨糾葛的精彩奇遇。《天命奇御》具有多線劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動(dòng)
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動(dòng)畫(huà)軟件你知道幾個(gè)?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動(dòng)畫(huà)軟件或動(dòng)畫(huà)工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動(dòng)畫(huà)的軟件程序。但是,在3D動(dòng)畫(huà)軟件中還包含了其他類型的...
7. 3D動(dòng)漫建模全過(guò)程,不是一般人能學(xué)的會(huì)的,會(huì)的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫(huà)的形式。像往常一樣,我從Sphere創(chuàng)建它...
8. 如何自己開(kāi)發(fā)一款游戲(游戲開(kāi)發(fā)入門(mén)必看:五大獨(dú)立游戲開(kāi)發(fā)技巧)
?游戲開(kāi)發(fā)入門(mén)必看:五大獨(dú)立游戲開(kāi)發(fā)技巧無(wú)論您是剛剛起步開(kāi)發(fā)自己的第一款游戲,還是已經(jīng)制作了幾款游戲,本篇文章中的5大獨(dú)立游戲開(kāi)發(fā)技巧都可以幫助您更好地設(shè)計(jì)下一款游戲。無(wú)論你對(duì)游戲有著什么樣的概念,都
9. 開(kāi)發(fā)三昧游戲叫什么(三昧動(dòng)漫)
?三昧動(dòng)漫對(duì)于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會(huì)推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
最新文章
同學(xué)您好!