Like Share Discussion Bookmark Smile

J.J. Huang   2025-01-02   Getting Started Golang 00.簡單介紹   瀏覽次數:次   DMCA.com Protection Status

Go | 為什麼我這麼厲害呢?

📌吉祥物

Go 語言有一隻可愛的吉祥物「Gopher」,這個形象由插畫家 Renee French 設計,並成為 Go 社群的象徵。

圖片來源:圖片連結擷取於(https://go.dev/learn/)

💬簡介

Go(或稱 Golang)是由 Google 開發的程式語言,旨在結合動態語言的開發速度與靜態語言的效能。創立於 2007 年,2009 年正式發佈。設計目的是解決 C++ 在大規模開發中的問題,特別是編譯速度慢、語法複雜等挑戰。

  • 設計目標:結合動態語言(如 Python)快速開發的優勢,以及靜態語言(如 C/C++)的高效能和安全性,提供簡單高效的開發工具。
  • 誕生背景:
    • Google 在開發過程中面臨 C++ 的挑戰,尤其是:
      • 編譯速度慢:C++ 在大規模開發中編譯時間過長,影響開發效率。
      • 複雜性高:C++ 的語法複雜,降低了程式碼的可讀性和維護性。
      • 可讀性差:C++ 程式碼難以理解,增加了開發和維護的難度。
    • 因此,Go 語言的設計者希望解決這些問題,創建一門適合大規模開發的語言

📊特點

  • 簡單語法:語法設計注重簡潔和易學,去除了 C++ 中複雜的語言特性(如繼承、元編程),使得維護和學習更加容易。
  • 交叉編譯:支援跨平台編譯,開發者可以在不同操作系統上編譯和運行應用程式。
  • 天然並行:並行處理由語言本身支援,開發者只需使用 go 關鍵字即可輕鬆開啟一個協程,實現多執行緒處理。
  • 垃圾回收(GC):內建垃圾回收機制,雖然性能不如某些語言的手動記憶體管理,但對大多數應用已經足夠穩定和高效。
  • 靜態連結:支援靜態連結,使得應用程式部署時不需要依賴額外的運行環境或第三方庫,簡化了部署流程。
  • 高效記憶體管理:自動處理記憶體分配,開發者無需過多關注記憶體管理問題,除非為了性能需求使用特殊的對象池或自管理記憶體方式。

📈優勢

  • 快速開發與執行:編譯速度非常快,有效提升開發效率,執行性能接近 C/C++ 水準,實現良好的平衡。
  • 雲端與服務端開發:非常適合用於雲端服務開發和應用服務端開發,出色的並行能力使得處理高併發網路應用時具有優勢。
  • 廣泛應用:儘管只有 13 年的歷史,許多大型開源項目(如 Docker、Kubernetes、Terraform)及企業已選擇並取得顯著成功。

📇創始人與動機

  • 創始人:Go 語言由計算機科學大師 Ken Thompson、Rob Pike 和 Robert Griesemer 設計。
  • 創建動機:設計 Go 的目的是為了解決 C++ 在大規模開發中的種種問題。Rob Pike 在 2012 年的 Google I/O 大會上提到,他們在使用 C++ 開發過程中,對編譯速度慢和複雜度高的問題感到沮喪,因此決定創建一門更簡單且高效的程式語言。

📌適用場景

  • 高效能系統程式:適合開發需要高效能的系統程式,特別是在對速度和效能有高要求的領域。
  • 網路程式:強大並發支持,適合開發高併發的網路程式,具備明顯優勢。
  • 大規模分佈式系統:理想語言選擇,能夠有效處理多任務並行,提升系統的穩定性和可擴展性。

🎯總結

Go 語言的創立,源於對當時 C++ 的反思。當時的編譯速度慢、語法複雜,讓開發者面臨很大挑戰。Go 的設計者希望解決這些問題,創造一門既簡單又高效的語言,以應對大規模開發的需求。學習 Go,不僅是學習語言本身,更是理解如何提升開發效率和解決實際問題。

最後建議回顧一下Go | 菜鳥教學目錄,了解其章節目錄。


註:以上參考了
Go
維基百科 - Go
Golang中文学习文档