解決了Day5 老打鐵的武器鋪-我要學什麼程式語言?中的第一個問題--程式語言,接下來我們介紹一下IDE是什麼。
整合式開發環境(IDE)
就是把所有在編寫程式會用的的東西都集合起來,讓使用者可以更方便的編寫程式碼!
在編寫程式碼的過程中,我們會用到那些工具?
- 程式語言編輯器:編寫程式碼。
- 編譯器/直譯器:把高階語言轉化成機器讀得懂的語言。
- 除錯器:抓出程式碼中的錯誤。
以上的這些工具是分開的,所以要先寫完,拿去翻譯,如果錯了的話要再拿去除錯,這個過程不僅麻煩也花時間。
有人想到,如果把他們全部都放在一起,可以一起運行,不是很方便嗎?
於是IDE就誕生了。
除了以上三點,在IDE中是使用「圖形使用者介面(GUI)」,跟原本的「命令行介面(CLI)」相比,會更易懂且方便編寫,從下面兩張圖片就可以很清楚的看出來差別。
- GUI介面:
圖片來源https://docs.f5ezcode.in/cs-basic/di-ba-zhang-gong-cheng-de-gong-ju/8.1-zheng-he-jing-ide
- 命令行介面:透過鍵盤輸入指令,通常不支持鼠標。比如Linux系統的Bash或是Windows系統的cmd、PowerShell。你可以在左下的搜尋欄打上cmd,打開看看!
圖片來源https://www.wikiwand.com/zh-tw/%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%95%8C%E9%9D%A2
IDE還有許多優點,比如
- 語法凸顯:某些關鍵字詞、表示,使用顏色凸顯,讓可讀性更高。
- 智慧程式碼填寫:就像在google搜尋打字時,會自己跳出一些常被搜尋的訊息,IDE也一樣,能幫你更快找到像用的單字。
IDE的類型
在選擇IDE的時候,要注意各種IDE是用的作業系統、語言,當然也能使用跨平台的、包含多語言的、甚至雲端的,這就取決於你的需求囉!
以作業系統分
如Visual Studio就是專屬windows使用的,但他支援C、C++、VB、Python、JAVA、SQL……等多種語言。
以程式語言分
像PyCharm,專屬於Python,但Microsoft Windows、macO和Linux都可以使用。
因為我們之後主要會專注在Python,這篇會主要著重在Python使用的IDE上,其他部分就不多作著墨,有興趣的可以參考一下兩個網站,都講得蠻詳細的。
2022 最優秀的10款Python IDE 該如何選擇?
程式設計界十大頂級IDE
python常用的開發環境
以下資料主要取自https://zhuanlan.zhihu.com/p/395107411
著名軟體開發公司JetBrains開發。
優點:
- 合併了多個程式庫(如Matplotlib和NumPy)
- 支援web開發框架,如Pyramid、Flask和Django。
- 許在遠端主機上進行程式開發。
有時會與Visual Studio IDE混淆,後者並非Python使用者常用的工具。
優點:
- 內建git
- 可自訂工具擴充插件
- 互動式控制台
- 其Electron框架允許開發者在幾乎所有平台上使用VS Code。
- 在編輯器中直接debug(但缺點是debug功能有限)
- 支援多個鍵盤快速鍵,加速編程。
Github開發的開源編輯器
- 幾乎可以與所有程式語言相容,如PHP、Java。
- 定期更新、可信賴。
- 包括多個插件,如SQL queries包、Markdown Preview Plus包,以及編輯、視覺化和渲染LaTeX公式的包。
Spyder是為數據科學而開發的。它是開源工具,能夠與大量平台相容,因而成為新手用戶好選擇。
- 科學計算和數據分析庫:預裝了許多常用的科學計算和數據分析庫,例如NumPy、Pandas、Matplotlib等,方便用戶直接使用。
- 調試器支持:提供強大的調試功能,包括斷點、變數監視、單步執行等,方便用戶追蹤和解決程式碼中的問題。
- 可視化工具:包含了一個豐富的可視化工具集,可以用於繪製圖表和圖形,對數據進行可視化分析。
Jupyter是基於web的編輯器,它允許開發者建立和運行腳本或notebook。它相對簡單,對使用者也更加友善。
- 交互性強:允許用戶分塊編寫和運行程式碼,可以逐步調試和測試程式碼。
- 便于分享和展示:允許用戶將程式碼、文本和圖表整合在一個文檔中,方便分享和展示分析過程和結果。
- 支持多種語言:除了Python,還支持其他編程語言,例如R、Julia等。
- 數據分析可視化:可以方便地進行數據分析、可視化和實驗,非常適合於數據科學領域
- 大型項目支持:可以作為交互式文檔嵌入到大型專案中,方便記錄和分享程式碼和分析過程。
結語
看完這篇文章,應該對於IDE,特別是Python的比較有概念了吧?
記住重要的兩點就好了:集合了編輯、翻譯、除錯的功能 & 有圖型化介面。
明天我們來講一下容易混淆的框架、函式庫的不同,接著就要真正脫離基礎概念,開始接觸實作啦~