1. 程式人生 > >執行效率太低又怎樣? Python 照樣火過 Java、C/ C++

執行效率太低又怎樣? Python 照樣火過 Java、C/ C++

點選上方“CSDN”,選擇“置頂公眾號”

關鍵時刻,第一時間送達!

世界上有成百上千種程式語言,時代更迭下不斷有新的語言產生和消亡,但 Java 的江湖地位始終無人撼動,長期霸佔排行榜榜首。

但是近年來,Python 顯露出越來越猛的進攻趨勢,更似有反超 Java 之意。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

2011 - 2017 年 Python vs Java 搜尋指數逐漸靠攏且不斷趕超,圖片來源於網路

之前的《不止 20K,Python 工程師薪資再飆升》一文中就闡述了目前市場上 Python 崗位的火爆情況。一方面市場需求不斷上漲,據最新的招聘網站資料統計,平均每月招聘人數需求達12331 人,10 月的招聘旺季更高達 20600 人,招聘地區也以北、上、深、杭、廣等一線城市為主。另一方面,Python 工程師的薪資水準也持續攀升,在全國範圍內月薪以 20K - 30 K 居多,當然相應地對工作經驗和學歷也有要求,工作 3- 5 年的本科學歷人員最受歡迎。

顯而易見,大火的 Python 是一個新的時代「風口」。

然而比起 Python,市場上明明還有很多更為高效、易用的程式語言:前有應用率最高、長期霸佔排行榜的常青藤 Java,後有易於上手的 C,還有在遊戲和工具領域佔主流地位的 C++,以及佔據 Windows 桌面應用程式半壁江山的 C# 等等。相較而言,Python 具有執行速度不夠快、GIL 鎖限制併發、版本間不能很好的相容等缺陷。

那麼為什麼近年來 Python 能夠突破重圍、突然火起來了?

其一,簡單易學且生態開放的 Python 很容易上手。

大多數人都相信“最好的程式語言”是取決於具體領域的,因為每種語言都有自身的優缺點,沒有例外,比如 Java 的體型臃腫、語法冗長一直被大量的開發者所詬病,C 語言極大依賴於程式設計師本身的駕馭能力,C++語法複雜對開發者很不友好,C# 缺乏生態支援後續乏力......至少目前,還沒有任何一門語言能完美滿足所有需求特性。

Python 的執行速度慢是不可避免的。作為一門指令碼語言,它自然會比那些需要編譯為可執行程式的語言要慢一些,因為在執行的過程中需要解析器參與,一邊解析一邊執行——這是指令碼語言的通病。但在現代計算機的硬體配置下,Python 的執行速度和一些快速語言已經越來越近了。而且瑕不掩瑜, Python 不僅不需要浪費太多時間做一些定義和強制轉換變數型別的常規工作,還有大量免費的庫供使用,無需“重新發明輪子”,各種 Web 框架、爬蟲框架、資料分析框架、機器學習框架可以拿來即用。此外它與 C / C ++ 等程式碼之間可以進行簡單的繫結,這就意味著複雜程式碼部分的效能可以植入這些語言,能夠避免帶來效能損失。

目前, 越來越多的工程師使用 Python 進行大資料處理,科研工作者開始使用 Python 來進行資料分析,系統管理員使用 Python 管理 Linux 系統,開源的雲端計算平臺 OpenStack 使用 Python 語言開發,很多程式設計愛好者使用 Python 進行爬蟲等......Python 已經逐步在網路爬蟲、資料分析、AI、機器學習、Web開發、金融、運維、測試等多個領域紮根壯大。

0?wx_fmt=jpeg

谷歌搜尋結果顯示的 Python 應用領域佔比,圖片來源於網路

其二,人工智慧的爆發為 Python 的流行大大地添了一把火。

在機器學習領域,Python 是 ROS(機器人作業系統) 的兩大主要程式語言之一。對於機器學習演算法而言,重要的是演算法能夠快速構建、程式碼閱讀性好、維護簡單、上手容易,Python 能夠很好地滿足這些需求。而且作為一門膠水語言,很多演算法都會提供一個 Python 介面,底層仍然用更為快速的語言來實現,所以 Python 的角色主要在資料預處理、資料展示、演算法定義等方面,這些動作所花費的機器執行時間幾乎可以忽略不計。

所以開發者需要把握「風口」,積極進階

簡單易學、語法優美、豐富強大的庫、開發效率高、應用領域廣泛等等,這些特性促使 Python 的入門和學習需求越來越強烈。以下整理了一些入門&應用級別的技術文章,可供學習使用。

入門級

應用級

寫在最後

作為一門開放性語言,Python 維護者眾多,加之近些年出現了好多實用的框架,因此越來越深受廣大開發者的喜歡。但是如果想吃螃蟹,程式語言僅僅只是吃螃蟹的工具而已,能否捉到螃蟹還要依賴於你本身的知識和其它技能。

所以,人生苦短,來用 Python 吧。

————— END —————

0?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg640?wx_fmt=png

0?wx_fmt=gif

相關推薦

執行效率怎樣? Python 照樣 JavaC/ C++

點選上方“CSDN”,選擇“置頂公眾號” 關鍵時刻,第一時間送達! 世界上有成百上千種程式語言,時代更迭下不斷有新的語言產生和消亡,但 Java 的江湖地位始終無人撼動,長期霸佔排行榜榜首。 但是近年來,Python 顯露出越來越猛的進攻趨勢,更似有反超 Java 之意。 2011 - 201

C#中HttpWebRequest的GetRequestStream執行效率,甚至偶爾死掉

C#中HttpWebRequest的GetRequestStream執行的效率太低,甚至偶爾死掉 2014-04-19 15:14 3290人閱讀 評論(0) 收藏 舉報 分類:

C#迴圈post 執行效率,甚至偶爾死掉

為了提高httpwebrequest的執行效率,查到了一些如下設定     request.ServicePoint.Expect100Continue = false;     request.ServicePoint.UseNagleAlgorithm = false

Excel2007設定單元格格式後,並不能立即生效必須挨個雙擊單元格,才能生效。資料行很多,效率

原因:Excel2007設定過單元格格式後,並不能立即生效必須挨個雙擊單元格,才能生效。資料行很多。效率太低。 原因:主要是一些從網上拷貝過來的日期或數字excel預設為文字格式或特殊-中文數字格式大小寫。 手動設定單元格,將格式改成日期格式,但仍不能參與計算。只有挨個單元格雙擊,才能生效;才可以計

業商機轉化效率?AI來破題!

“低效率”、“高成本”無疑已經成為當下傳統聯絡中心的關鍵詞。 許多有大量主動聯絡需求的科技金融、保險、線上教育等行業受制於傳統聯絡中心的弊端,企業的商機轉化效率低下等諸多問題開始逐一顯現。如何提升商機轉化效率也成為了科技金融、保險、線上教育等行業亟待解決的問題。在此大背景下,容聯雲聯絡中心成為提高企業商機轉

企業商機轉化效率?AI來破題!

“低效率”、“高成本”無疑已經成為當下傳統聯絡中心的關鍵詞。   許多有大量主動聯絡需求的科技金融、保險、線上教育等行業受制於傳統聯絡中心的弊端,企業的商機轉化效率低下等諸多問題開始逐一顯現。如何提升商機轉化效率也成為了科技金融、保險、線上教育等行業亟待解決的問題。在此大背景下,容聯雲聯絡中心成

產品:研發效率,很小的需求就開發兩週,程式設計師:要不你來?

在網際網路公司,不論web網站還是app,產品經理與軟體開發的程式設計師是兩個比較重要的角色,(當然平面設計,測試人員等也很重要),產品經理與程式設計師之間的分工也是相當明確,產品負責產品的規劃與業務邏輯設計,而程式設計師負責實施開發,他們之間也是需要有著密切的

MySQL的in查詢效率的解決辦法之一與其它優化示例

最近在做一個MySQL資料庫的查詢(查詢出指定時間之後凡是上傳過圖片的使用者所在的鎮和鎮的管理員名),查詢語句如下:  SELECT DISTINCT user_name,town_name FROM t_farmers WHERE id IN  (SELECT DIST

【Latex】編輯公式效率?來看一些MathType的重要技巧

在科研的過程中,最讓人開心的環節是什麼?當然是收到論文被Top期刊接收郵件的時候,還有就是程式設計和實驗過程中看到正確結果時,瞬間湧現出的快感。那麼最痛苦的環節呢?好像每個環節都很痛苦…好吧,那最最痛苦的時候呢?莫不過把結果整理成論文。這個環節需要左右半腦同時開動,一方面要把

老闆說,Vim巨集都不會用,你的工作效率啦~

工作中,對於文字檔案的編輯我們經常有這樣的需求: - 多次重複輸入一段相同文字; - 生成一段序列化的文字; - 每行文字插入一句相同的文字。 除此之外,還有很多需要重複操作的動作。對於這些需求,如果我們人工去操作的話,肯定是非常枯燥乏味,並且要浪費很多時間精力。 這時, Vim 巨集就派上用場了,它可以

為什麼同樣的Python程式碼執行在高配的電腦上效率配電腦的效率

為什麼同樣的Python程式碼執行在高配的電腦上效率比低配電腦的效率低 可能是測試方式不合理 方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.d

Mysql 定位執行效率的sql 語句

optimize 用處 pen 啟用 很快 空間 復制 man pac 一、通過MySQL慢查詢日誌定位執行效率低的SQL語句。 MySQL通過慢查詢日誌定位那些執行效率較低的SQL 語句,用--log-slow-queries[=file_name]選項啟動時,mysql

提升Python執行效率的小竅門

說起Python,作為一門大熱的程式語言,它簡單易學、語法優美,自身擁有豐富強大的庫,而且應用範圍也是十分廣泛。毫無疑問,Python 確實有用很多的優點,每一個優點看起來都非常吸引人。 但是,Python 並不是沒有缺點的,最主要的缺點之一就是Python 的執行速度不夠快。針對這個問題,下面為大

"你們不要學pythonpython執行效率慢,去學XX吧"

當我們終於下定決心想要學習python的時候,身邊的人(學長,同行,所謂的大牛)可能會跟我們這樣講。"你們不要學python,python執行效率慢,去學GoC++C吧",又讓我們好不容易下定的決心又面臨一次猶豫抉擇。事實真的是這樣嗎? 是真的,也不是真的。為什麼這樣說呢?下面慢慢講

C++C#python執行效率對比

std::chrono::system_clock::time_point start = std::chrono::system_clock::now();     int jj = 0;     for (int i = 0; i < 100000000; i++

javascript後臺執行效率是否比較

nodejs這個伺服器端javascript框架出現後,很多人質疑其效率是否比較低。這也很正常,因為javascript本來就是是用C編寫的前端指令碼語言,本身依賴直譯器執行,執行效率當然沒有編譯執行的C高??但是不要忘記,php, ruby, python,大家都是解釋

比較Python 2 和 Python 3 在對list進行迴圈的執行效率

本文對Python 2 和 Python 3 對集合-list進行迴圈時的執行效率進行比較 首先我定義了一個for_test函式,然後利用ipython的魔法函式 %timeit進行執行速度的測試

C++/Python/Matlab執行效率分析

以前一直覺得C++效率最高,速度最快,但是今天做的一個實驗結果大大出乎我的意料—Python使用向量處理效率一點都不慢,甚至高於C++在O2優化後的效率。 Matlab效率更高。 這為以後選取語言提供了一個很好的參考。 問題起源與對場內期權MC定價時,一

C#監控代碼執行效率

light 運行時 測量 pan 獲取 min mes csharp stopwatch System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 開始監視代碼運行時間

五十個小技巧提高PHP執行效率(一)

雙引號 超時 而不是 也會 per 遠程 設置 作用 我們 在項目開發過程中,經常遇到了一些PHP處理程序性能底下的情況,程序運行在centos+nginx環境,雖然這個有很多的原因如:服務器本身配置,運行環境nginx服務,php-fpm配置等等,更多有一點仍然是PHPe