編程框架有哪幾種,編程框架搭建教程

各位老鐵們,大家好,今天由我來為大家分享編程框架有哪幾種,以及編程框架搭建教程的相關問題知識,希望對大家有所幫助。如果可以幫助到大家,還望關注收藏下本站,您的支持是我們...
各位老鐵們,大家好,今天由我來為大家分享編程框架有哪幾種,以及編程框架搭建教程的相關問題知識,希望對大家有所幫助。如果可以幫助到大家,還望關注收藏下本站,您的支持是我們最大的動力,謝謝大家了哈,下面我們開始吧!
Python主要學習那幾個主流框架
一、Django:PythonWeb應用開發框架
Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,
即是CMS(內容管理系統)軟件。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手DjangoReinhardt來命名的。
Django應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理后臺:只需要使用起ORM,做簡單的對象定義,它就能自動生成數據庫結構、以及全功能的管理后臺。
Django提供的方便,也意味著Django內置的ORM跟框架內的其他模塊耦合程度高。應用程序必須使用Django內置的ORM,否則就不能享受到框架內提供的種種基于其ORM的便利;理論上可以切換掉其ORM模塊,
但這就相當于要把裝修完畢的房子拆除重新裝修,倒不如一開始就去毛胚房做全新的裝修。Django的賣點是超高的開發效率,其性能擴展有限;采用Django的項目,在流量達到一定規模后,都需要對其進行重構,才能滿足性能的要求。
二、Diesel:基于Greenlet的事件I/O框架
Diesel提供一個整潔的API來編寫網絡客戶端和服務器。支持TCP和UDP。
你應該使用diesel來編寫你的下一個網絡應用。得益于Python使得diesel語法非常整潔,發展步伐非常迅速。非阻塞I/O使得diesel非常快速并且容易擴展。greenlets使得diesel有了unwind(to(callbacks(no)))。
nose使得測試變得容易。最后,Flask使得你不需要寫一個新的網絡框架來使用diesel。
示例
需要框架項目實戰視頻+Python學習交流643692991
三、Flask:一個用Python編寫的輕量級Web應用框架
Flask是一個使用Python編寫的輕量級Web應用框架。基于WerkzeugWSGI工具箱和Jinja2模板引擎。Flask使用BSD授權。Flask也被稱為“microframework”,因為它使用簡單的核心,用extension增加其他功能。
Flask沒有默認使用的數據庫、窗體驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。
Flask很有趣
配置簡單
特性
1、內置開發用服務器和debugger
2、集成單元測試(unittesting)
3、RESTfulrequestdispatching
4、使用Jinja2模板引擎
5、支持securecookies(clientsidesessions)
6、100%WSGI1.0兼容
7、Unicodebased
8、詳細的文件、教學
9、GoogleAppEngine兼容
10、可用Extensions增加其他功能
四、Cubes:輕量級PythonOLAP框架
Cubes是一個輕量級Python框架,包含OLAP、多維數據分析和瀏覽聚合數據(aggregateddata)等工具
Cubes的主要特性之一是它的邏輯模型,抽象物理數據并提供給終端用戶層。
需要框架項目實戰視頻+Python學習交流643692991
五、Kartograph.py:創造矢量地圖的輕量級Python框架
Kartograph是一個Python庫,用來為ESRI生成SVG地圖。Kartograph.py目前仍處于beta階段,你可以在virtualenv環境下來測試。
六、Pulsar:Python的事件驅動并發框架
Pulsar是一個事件驅動的并發框架,有了pulsar,你可以寫出在不同進程或線程中運行一個或多個活動的異步服務器。
應用
附帶以下功能
1、Socket服務器
2、WSGI服務器
3、JSON-RPC
4、WebSockets
5、任務隊列
6、Shell
7、測試包
8、django集成
示例
對所有請求都返回“HelloWorld!”作為響應
需要框架項目實戰視頻+Python學習交流643692991七、Web2py:全棧式Web框架
Web2py是一個為Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具有快速、安全以及可移植的數據庫驅動的應用,兼容GoogleAppEngine。
Web2py目錄結構
八、Falcon:構建云API和網絡應用后端的高性能Python框架
Falcon是一個構建云API的高性能Python框架,它鼓勵使用REST架構風格,盡可能以最少的力氣做最多的事情。
特性
1、通過URI模板和資源類的路由
2、通過請求和響應類訪問headers和bodies
3、通過異常基類響應HTTP錯誤等等
基準測試
需要框架項目實戰視頻+Python學習交流643692991
九、Dpark:Python版的Spark
DPark是一個基于Mesos的集群計算框架(clustercomputingframework),是Spark的Python實現版本,類似于MapReduce,但是比其更靈活,可以用Python非常方便地進行分布式計算,并且提供了更多的功能以便更好
的進行迭代式計算。DPark的計算模型是基于兩個中心思想的:對分布式數據集的并行計算以及一些有限的可以在計算過程中、從不同機器訪問的共享變量類型。這個的目標是為了提供一種類似于globaladdressspace
programmingmodel的工具,例如OpenMP,但是我們要求共享變量的類型必須是那些很容易在分布式系統當中實現的,當前支持的共享變量類型有只讀的數據和支持一種數據修改方式的累加器(accumulators)。
DPark具有的一個很重要的特性:分布式的數據集可以在多個不同的并行循環當中被重復利用。這個特性將其與其他數據流形式的框架例如Hadoop和Dryad區分開來。
示例
一個wordcounting程序
上面的腳本可以無修改的在Mesos集群上運行,只需稍微修改一下命令行參數:
十、Buildbot:基于Python的持續集成測試框架
Buildbot是一個開源框架,可以自動化軟件構建、測試和發布等過程。每當代碼有改變,服務器要求不同平臺上的客戶端立即進行代碼構建和測試,收集并報告不同平臺的構建和測試結果。
需要框架項目實戰視頻+Python學習交流643692991
十一、Zerorpc:基于ZeroMQ的高性能分布式RPC框架
Zerorpc是一個基于ZeroMQ和MessagePack開發的遠程過程調用協議(RPC)實現。和Zerorpc一起使用的ServiceAPI被稱為zeroservice。Zerorpc可以通過編程或命令行方式調用。
它允許你:
1、不用修改代碼即可顯露python模塊
2、通過命令行遠程調用這些模塊
如何把你代碼中的對象暴露為一個zeroservice?
運行以上代碼,在另一個終端,嘗試連接這個zeroservice
十二、Bottle:微型PythonWeb框架
Bottle是一個簡單高效的遵循WSGI的微型pythonWeb框架。說微型,是因為它只有一個文件,除Python標準庫外,它不依賴于任何第三方模塊。
特性
1、Routing:把請求映射到函數,建立簡潔動態的URLs
2、Templates:采用內置模板引擎,同時還支持mako,jinja2,cheetah等第三方模板
3、Utilities:便捷地讀取表單數據、上傳文件、cookies、HTTP頭信息和其它HTTP相關的元數據
4、Server:內置HTTP開發服務器,并且支持paste,fapws3,bjoern,GoogleAppEngine,Cherrypy或者其它任何WSGIHTTP服務器
示例
運行上面的代碼,訪問http://localhost:8080/hello/bottle試試。
下載和安裝
通過
或者
安裝最新穩定版,或者下載bottle.py(不穩定)到你的工程目錄。Bottle運行于Python2.5+and3.x環境下。需要框架項目實戰視頻+Python學習交流643692991
十三、Tornado:異步非阻塞IO的PythonWeb框架
Tornado的全稱是ToradoWebServer,從名字上看就可知道它可以用作Web服務器,但同時它也是一個PythonWeb的開發框架。最初是在FriendFeed公司的網站上使用,FaceBook收購了之后便開源了出來。
作為Web框架,是一個輕量級的Web框架,類似于另一個Pythonweb框架Web.py,其擁有異步非阻塞IO的處理方式。
作為Web服務器,Tornado有較為出色的抗負載能力,官方用nginx反向代理的方式部署Tornado和其它Pythonweb應用框架進行對比,結果最大瀏覽量超過第二名近40%。
此外,它的源代碼也是Python開發者學習與研究的絕佳材料。
以下是Tornado的HelloWorld示例程序。
十四、webpy:輕量級的PythonWeb框架
webpy的設計理念力求精簡(Keepitsimpleandpowerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有數據庫的訪問。這樣的優點是,
框架給開發帶來的限制少,可以根據自己的需求進行定制。缺點就是,很多東西都需要自己親自動手開發。
雖然webpy的作者AaronH.Swartz,一位偉大的程序員在2013年1月11日自殺身亡,結束了短暫的26年生命。但是,作為一個開源項目,目前還是有很多開發者在持續更新。
webpy非常的簡單,語法幾乎跟Python一樣,以下是一個簡單的示例:
需要框架項目實戰視頻+Python學習交流643692991
十五、Scrapy:Python的爬蟲框架
網絡爬蟲,是在網上進行數據抓取的程序,使用它能夠抓取特定網頁的HTML數據。雖然我們利用一些庫開發一個爬蟲程序,但是使用框架可以大大提高效率,縮短開發時間。Scrapy是一個使用Python編寫的,
輕量級的,簡單輕巧,并且使用起來非常的方便。
Scrapy使用了Twisted異步網絡庫來處理網絡通訊。整體架構大致如下(注:圖片來自互聯網):
Scrapy主要包括了以下組件:
1、引擎,用來處理整個系統的數據流處理,觸發事務。
2、調度器,用來接受引擎發過來的請求,壓入隊列中,并在引擎再次請求的時候返回。
3、下載器,用于下載網頁內容,并將網頁內容返回給蜘蛛。
4、蜘蛛,蜘蛛是主要干活的,用它來制訂特定域名或網頁的解析規則。
5、項目管道,負責處理有蜘蛛從網頁中抽取的項目,他的主要任務是清晰、驗證和存儲數據。當頁面被蜘蛛解析后,將被發送到項目管道,并經過幾個特定的次序處理數據。
6、下載器中間件,位于Scrapy引擎和下載器之間的鉤子框架,主要是處理Scrapy引擎與下載器之間的請求及響應。
7、蜘蛛中間件,介于Scrapy引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛的響應輸入和請求輸出。
8、調度中間件,介于Scrapy引擎和調度之間的中間件,從Scrapy引擎發送到調度的請求和響應。
使用Scrapy可以很方便的完成網上數據的采集工作,它為我們完成了大量的工作,而不需要自己費大力氣去開發。
python框架是什么
框架就是一個基本架構,別人已經替你搭建好了基本結構,你只需要按自己需求,添加內容就行,不需要反復的造輪子,可以明顯提高開發效率,節約時間,python的框架很多,目前來說有web框架,爬蟲框架,機器學習框架等,下面我簡單介紹一下這3種基本框架,主要內容如下:
1.web框架,這個就很多了,目前來說,比較流行的有3種,分別是Django,Tornado和Flask,下面簡單介紹一下這3個框架:
Django:這是一個成熟、穩重的python框架,基于MVC模式(又說MTV,本質一樣),最初是作為一個內容管理系統來開發的,后期隨著不斷的完善、改進,就成了一個功能強大web框架,提供數據庫功能、后臺功能、網址匹配、系統緩存等功能,易擴展的模版系統,幾行代碼就可使你的網站擁有強大的后臺,管理你的內容。
Tornado:這是一個非阻塞式的服務器,運行速度非常開,每秒可以處理數以千計的連接,相比較Django來說,比較小、靈活,許多東西都可能都需要自己構建。
Flask:這是python的一個輕量級web框架,靈活、可擴展性強,其WSGI工具箱采用Werkzeug,模板引擎則使用JinJa2,社區插件比較多,如果想開發一個中小型web網站的話,可以考慮一下這個框架。
2.爬蟲框架,這個也很多,目前來說,比較流行的是scarpy,當然還有pyspider,newspaper等,下面我簡單介紹一下:
scrapy:這是一個比較流行的python爬蟲框架,定制型比較高,也比較靈活,可以根據自己需求快速的構建爬蟲,爬取數據,可以應用在數據挖掘、監測等方面。
pyspider:這是一個功能強大的網絡爬蟲框架,能在瀏覽器界面上進行腳本的編寫,實時查看爬取的結果,后端使用數據庫存儲數據。
newspaper:這是一個專門用于新聞、文章提取和內容分析的框架。
3.機器學習框架,這個也有很多,最著名的就是tensorflow了,其次還有theano,keras,scikit-learn等,下面我簡單介紹一下:
tesorflow:這是一個開源的機器學習框架,采用數據流圖用于數據計算,可以在多種平臺上展開計算,包括CPU,GPU等,由谷歌研發、開源,主要用于機器學習和神經網絡的研究。
scikit-learn:這是python的一個機器學習包,包括常用的機器學習算法,像分類、回歸、聚類、降維等,對于機器學習感興趣的讀者,可以研究一下。
theano,keras基于tensorflow構建,在神經網絡、深度學習方面應用的比較多,感興趣的可以搜一下相關資料,網上的資料很多。
目前就介紹這幾種框架吧,后面還有測試框架什么的,感興趣的可以自己搜一下,希望以上分享的內容能對你有所幫助吧。
為什么Qt框架不是很流行
Qt框架非常強大,但是,代碼書寫太麻煩,不適合新手。
目前有Pyqt5和pyside2是用python的代碼書寫制作GUI,雖然很強大,但是也只是適合老程序員,新手也還是覺得太麻煩,流行不起來。
如果只是制作簡單的GUI目前有很多其他簡單的工具,就python就有很多種方法制作小工具的GUI
程序框圖主要由哪幾類對象構成,分別起什么作用
1、文件名App.h(cpp)應用程序類CMyApp的基類是CWinApp,而CWinApp的基類又是CWinThread,CWinThread類是用來完成對線程(見后面的名詞解釋)的控制,包括對線程的創建、運行、終止和掛起等。它實際上是Windows首先運行的內容,當這個程序開始時,它將會把主窗口放在屏幕上。C或C++是從main()主函數開始執行,而VC++是從WinMain()函數開始執行,且WinMain()函數就是隱含在此應用程序中2、CMainFrm.h(cpp)主框架類CMainFrm的基類是CFrameWnd,該類是顯示主窗口,是我們找到菜單欄、窗口的標題欄以及工具欄的地方,主窗口對象負責窗口中出現的、圍繞操作領域的一切,如:圖畫、文本和其它圖形,這個區域稱為窗口中的客戶區。它用于管理應用程序窗口顯示如:標題欄、菜單欄、工具欄、狀態欄、控制菜單、控制按鈕等,它是所有MDI(多文檔)和SDI(單文檔)子窗口的包容器。3、文件名View.h(cpp)視圖類CMyView的基類是CView,處理客戶區,是我們在程序中設置數據格式及顯示數據的位置,如我們在創建一個字處理程序時正在編輯的文本,事實上,視圖對象是出現在客戶區頂部的窗口本身,用于讓用戶通過窗口來訪問文檔、視圖類。4、CMyDoc.h(cpp)文檔類CMyDoc.h(cpp)的基類是CDocument,為程序存儲數據,將所有數據存在文檔中,而在視圖對象中處理并顯示。它包含了應用程序在運行期間所用到的數據文檔。
編程語言有哪些
一場編程語言之戰
@Author:Runsen
本人懂一點Python,Java,根據自己想法而來,純屬虛構。
現狀
進入2020年3月,新的編程語言排行榜新鮮出爐,TIOBE最新發布了3月編程語言排行榜。
從榜單中我們可以看到,前三名分別為Java、C、Python。相較于上個月,Python繼續以1.85%上升至10.11%,以10.11%的份額穩居第三。
我們先了解下比較常見的編程語言的,如Java,Python,JavaScript,C/C++,Go,C#各編程語言的用途。
“眾口難調”,面對多種多樣的編程語言,大家眾說紛紜,每種編程語言都有其存在的意義,編程之戰從未停止,“戰火”一觸即發。
家庭內戰
最近,編程語言家族開了一場“家庭聚會”,都是在討論自己的排名。
下面是家庭成員的對話。
老三Py:最近,我可厲害了。從2015年,人工智能的開始,人人學我,基本上我成為最無敵的大佬。
老四C++:可不是嘛,老三,你的爬蟲,數據分析,機器學習,深度學習,自然語言處理再加上你的Django,flask等Web開發等,就連你的PyQt也想占領我的QT圖形界面市場,都是你這個流氓,害得我從老三變成老四。
老三Py:那都是你太難寫了,學我就是幾分鐘就能入門的,誰叫你這么難懂,什么面向對象,你的一百行代碼,我十幾行就搞定了,誰還會學你,很快,我就是老大,你就是我的小弟。
老四C++對老大Java說:大哥,有人想謀權篡位。
老大Java:現在,確實是老三的時代,現在個個數據分析師只會Python,都喊出了:人生苦短,我用Python。要怪就怪數據分析人員編程水平太低了,寫來寫去就是py代碼,完全學不會其他語言。
老二C鄙視的說:就算寫Python太厲害,也最多就是一個導包俠,沒有什么了不起的。老三,話說你有什么本事當老大,我都不敢謀權篡位。
老三Py:不如我們比一比,看看現在開發者需要我多些還是老大多先。
老大Java:好,比就比。誰怕誰,我到底看看你有什么本事。
老三Py:我代碼簡單,寫起來輕松易懂,比如我打印一句HelloWorld,就是一個,就是這么簡單。就問你們服不服?
老大Java:打印一個HelloWorld,我確實需要好幾行代碼,還要聲明一個HelloWorld對象。
老二C:我還要定義一個main的主函數,打印一個HelloWorld確實有點多。
老四C++:我是抄老二的,寫個HelloWorld比老二還要多。
老三Py:看見沒有,這就是差距,誰會寫那么多代碼,直接簡單粗暴我就是一個打印HelloWorld。
老大Java:老三,你這樣不行啊,萬物都是對象,寫一行代碼,我覺得都要聲明一個對象。
老三Py:什么對象,我能打印出來就Ok了。
其他人:確實老三寫的代碼太簡單了,連小學生基本都能學會,我們自愧不如,老三,你還要什么本事嗎?
老三Py:要說我牛逼莫過我的第三方庫,超過上萬個,安裝也簡單,一個就輕松搞定,還給人看到安裝進度條,你們說我牛不牛逼。
老大Java:這我可不服,你去的maven倉庫看看
我的jar包任何一種場景都有,我的生態系早就完善,怎么不如你老三?
老三Py:你在pom.xml安裝什么任何信息告訴別人,而且你的dependency鬼死那么長,人家愿意寫嗎?
老二C和老四C++:我們gcc和cmake添加第三方庫還要編譯才可以。
老三Py:我的requests,selenium,beautifulsoup,pyquery,lxml,Scrapy,Crawley,Pyspider等一系列爬蟲庫和爬蟲框架厲害到爆,幾乎所有爬蟲都是我來編寫的,你們的爬蟲市場早沒有你們的份了。
老大Java:我的WebMagic,Nutch,Heritrix,Jsoup,SeimiCrawler,JLiteSpider爬蟲編寫的代碼確實比你多了好幾倍,以前爬蟲的市場都是基本用我,現在給你占去,悲哀。
老二C老四C++:爬蟲,小心爬進監獄,現在首例爬蟲禁令,禁止爬取微信公眾號,都是老三你的爬蟲造成多少假流量,造成多少網站奔潰,就說12306有盡20%以上都是爬蟲訪問流量,有多少人搶票,再提價出售,官方發票,又被他們搶了,你以前讓多少人搶不票,這背后引發了一系列的骯臟的資產鏈。
老三Py:這關我毛事,現在的百度蜘蛛爬取,多少網站雙手叫好,這都是他們的問題。
其他人:你除了爬蟲,還有什么?
老三Py:我的數據分析三劍客numpy,pandas,matplotlib,在加上Seaborn,Scipy,StatModels,Pyecharts,Bokeh,Blaze,Plotly,NetWorkX,Biopython,SymPy和gwpy等數據科學庫簡直無敵,都喊出了,從excel學Python了。
老大Java:數據分析我雖然也有jar提供,但是我派了我的兒子scala去幫我完善。
老二C老四C++:這東西不是SPSS,stata,tableau,powerbi,excel,Echart,FineReport等強大的數據分析工具就可以解決了,都是用我們和老大開發的,干嘛還要寫代碼。
老三Py:我一把屠龍劍Pycharm,一把倚天劍anaconda,一個開發,一個數據分析,雙劍合并,威力無敵。
老大Java:比IDE開發工具,我可不怕,我有Eclipse,MyEclipse,IntellijIDEA,NetBeans功能厲害到爆。
老二C老四C++:Dev-C++,C-free,CLion,Code::Blocks,CodeLite,C++Builder,我們覺得同樣沒問題。
老三Py:我的Web開發Django社區非常龐大,江湖上,Python有兩條腿跑,一腿就是我的django,因為兩萬個包,一萬以上都是我的Django,再加上了其他兒子flask,tornado,我開發了國內的豆瓣、知乎,國外:Instagram、Disqus、NationalGeographic、NASA
老大Java:Web開發,你還敢比,我就拿出一個Spring家族就夠了,SpringMVC,SpringBoot,SpringCloud,再說了我還有自己的Tomcat,Jetty應用服務器,微服務的架構早就深化人心。如果以前的網站不是用php開發,那基本就是我以前的Servlet,jsp開發的(雖然落后了,但基本都在維護),現在網站開發首選我的Spring家族。
老二C老四C++:雖然在網站開發我們幾乎沒有市場,但是軟件開發都是采用我們的,比如早期的QQ,微信,支付寶等大部分軟件都是我們開發的。
老三Py:有本事比一比現在最火的人工智能,我的機器學習sklearn,深度學習keras,Pytorch,tensorflow,Caffe,PaddlePaddle,哪個不知道,哪個不用?就是因為這個,我才算最近的王者。
老大Java:你是不是想王者榮耀想多了,王者榮耀的客戶端應該是C#(Unity3D)開發的,核心后端服務是C++開發,可沒有你的份。人工智能,我怎么實現不了,我的深度學習庫——DL4J、ND4J以及Deeplearning4j,深度學習框架就是因為數據分析者只會用Python,才讓你火到現在。
老四C++:CPP-Call-Tensorflow,Caffe2C++API,PyTorch-CPP,我的性能比你的好不知道多少倍。對了,說說性能,老三,你這不怎么行。
老大Java補刀:連數據都沒有,老三你做什么人工智能,看看得我的apache社區的大數據框架ApacheHadoop,ApacheHive,ApacheHbase,ApacheSqoop,ApacheFlume,ApacheSpark,ApacheBeam,ApacheFlink,ApacheStorm,SparkStreaming,ApacheOozie還有CloudersManager(CDH)都是我開發出來,大數據平臺都是我干的,沒有了數據,你做什么Ai,你是不是猴子請來的逗逼?
老三Py:游戲方面,我可以有我的Pygame,性能方面,我承認比較低效,大數據不是還有我的pyspark?
老五C#:你的Pygame就是小孩子過家家的,游戲市場我已經占領,老三你可不要來。
老大Java笑道:spark是我的兒子scala開發的,spark就是為了你們這些數據分析的人不會我(Java)和我兒子(scala),你們的壓力下,不好意思的開發了pyspark,對Python提供了APi,再說了我們也給R提供了Rspark。話說,老R從前十掉下到了十一。
老R:就是你老三一直打擊我,害得現在數據分析的人員不學習R了,都以為學你,就天下無敵了。
老四C++:就是明明每個人占領一種市場就夠了,現在提出了”人生苦短,我學Python“口號。
老三Py:就是要”人生苦短,我學Python“。
老大Java:就是因為你,害得所有人的編程水平只降下來。Java開發人員學習Python,就是分分鐘的事情。
老二C:不要說,大學我敢保證所有人都必須學習我開始。
老四C++:有本事你讓學Python的來學我或者老大,我不信他能學得了。學我的人基本被我折磨死了,學你py就是分分鐘的事情,有本事繼續聊性能,我好像記得知乎得推薦系統用go重寫了,還不是因為你的效率。
老十go:今天我難得上了前十,什么”人生苦短,我學Python“,明明就是”2020年,我們一起學go“。
老三Py:我去你的,你老十有什么資格說話?再說了我有cpython,Numba提高運行速度不就可以了嗎?
老大Java:那你老三有什么資格在我面前說話,你連多線程和并發都處理不好,還不如提出我的口號”OnceWrite,RunAnywhere“,一次編寫,到處運行,我的強大的JVM,你老三有嗎?
老三Py:我可以用Pyinstall打成exe,到處運行,不就是”一次編寫,到處運行“,
老大Java:我的強大,你不知道,你還是在mac和liunx運行你的exe吧。我還有一個兒子Kotlin和我占領APP市場,你有APP市場嗎,還想當大佬,這日子是不是有點早了。
老三Py:我有kivy開發APP。
老二C老四C++:老三,你怎么不說用flutter開發APP?
老三Py:那是Google開源的UI工具包,關我毛事。
老二C老四C++:flutter的底層是基于我們的開發的。
老三Py:我不管,反正現在人人學Py,我的市場就是慢慢變大,我就是當老大。
老二C:我從1972年誕生,可以說我是老三你的長輩。Java可是運行在全球的三十億設備上的,我都沒有把握當老大,你哪里來的勇氣?
老三Py:我是從1991年出生,Java可是1995年出生,這樣我不就是老大的長輩嗎?
老大Java:老三說得沒錯,老三要當老大,他膨脹了,要先超越老二你了。
老二C:什么?老三,他連編譯器都沒有,一個解釋器基于我的編譯器,竟然敢叫囂超越我,用我編譯器,底層封裝我的代碼,沒有我,哪里來你,腳本就是腳本,動態語言就是動態語言,老大,老四和我哪個不是靜態語言,哪個沒有自己的編譯器?信不信我不給你用我的編譯器,讓你從前十消失。
老三Py:臥槽,爸爸,我錯了,別讓我從前十消失啊。
一聲不吭的老八php叫道:php才是最好的語言。
我想說的
Python這語言,只適合作為加分項,不適合作為技術支撐。因為它寫不了復雜邏輯。只適合寫一個爬蟲,計算器,記事本,Qt之類的小程序。Python超越了Java和C,那是不可能的。Python從老四超越了C++,已經是一個很震驚的大事了。
說這個也許有人不服,憑什么Python就寫不了復雜邏輯?豆瓣和知乎不是用Python寫的嗎?
先聲明,豆瓣的后端,已經廢棄了絕大部分的Python代碼,重新寫過了。youtube也正在重寫中。目前以Python為主的網站,就只有知乎這么個獨苗,而且知乎的推薦算法已經用go重寫了。
為什么?不是因為Python的性能慢,而是因為Python的語法太悲劇了。也許Python的語法簡潔,在初學者看來是優點。因為初學者一般練手,都只寫1000行以下的小玩意,Python的語法簡直爽翻了,真沒任何缺點。
但如果你真的嘗試用Python封裝幾十個類,去寫個一萬行以上的東西,自然就明白它的語法問題有多嚴重了。不只是難受,而是根本寫不下,去維護成本太大了。沒有靜態類型檢查是主要原因。能解決么?也能,好的模塊設計還有codereview能回避掉一些,不過這樣一來也就抵消掉一些Python能帶來的快速開發的優勢了。
還是江湖那句話,動態一時爽,重構火葬場。并不適合大項目,Python還是適合原型,前期項目。
搞it要想混得好,如果哪能只會一樣東西呢,除非你不想混好,拼得就是綜合素質,除非你Python登峰造極的程度,python五分鐘都能入門,Python的語法和英語完全一樣。學Python的人,去學Java,真的覺得很難。
如果按難度評分0-5的話,Python沒有難度指數0,php難度指數1,go難度指數2,Java難度指數3,C++/C難度指數4。靜態語言的難度是比動態腳本難的,如果你是編程零基礎,建議從學習Python,再深入到Java。一手Python,一手Java基本在市場屬于比較靠前的水平。
阿里基本Java的天下,騰訊的前世是靠C/C++出生,華為主要業務是在硬件方面,也需要C/C++的編程基礎。百度,字節相反用的Python,go,ruby比較多。
不過如果自己想要有更長遠的發展,只學python肯定是不夠的,個人覺得Java、Python這二門語言都熟練掌握最好。如果想成為大神,那就補充一個C++,你就是無敵的存在。
@Author:Runsen公眾號:潤森筆記
關于編程框架有哪幾種到此分享完畢,希望能幫助到您。
本文鏈接:http://xinin56.com/ruanjian/26554.html