เลือกภาษาเขียนโปรแกรมสำหรับงานเฉพาะอาจยาก ภาษาบางตัวเหมาะงานบางอย่างกว่า แตาบางครั้ง 2 ภาษาเสนอ approach ต่างกัน แต่น่าสนใจเท่าเทียม แต่เพราะเหตุผลต่างกัน
หาเว็บจะเจอ reports หลายๆ ปีก่อน: คน switch จาก Python ไป Go อาจทำให้สงสัย: ทั้งสองภาษา stack up กันอย่างไร ไม่ได้เหมือนกัน แต่ง่ายเห็นว่าทั้งคู่ appealing
Golang vs Python: บทนำ
Python = high-level programming language สร้างโดย Guido van Rossum release 1991 dynamically typed แต่ strongly typed: ไม่ต้อง declare variable เป็น integer Python รู้จากการ assign number พยายาม concatenate string กับ number -> error เพราะ strong typing
Go สร้างที่ Google โดย Robert Griesemer, Rob Pike, Ken Thompson ภาษาใหม่กว่า public debut 2012 เนื่องจาก "Go" ค้นหายาก เรียกว่า Golang statically typed: ต้อง declare type ก่อน assign
Golang vs Python: Language Features
Python เรียนง่าย ใช้สอน programming concepts beginners ส่วนหนึ่ง: syntax ง่าย ไม่พึ่ง symbols เช่น semicolons แต่เป็นปัญหา: ยากจับ syntactical errors
Python ship libraries มาก ทำ basic language tasks ง่าย แต่ web development ต้อง third-party libraries เช่น Django มิฉะนั้น implement เองทั้งหมด
Golang มุ่ง simplicity แต่ไม่ได้หมายถึง easy สำหรับ beginners แทนจะ simple ในความหมาย Unix: features และ tools หลายอย่างทำ one thing well
Go ship libraries หลายตัว อาจชนะ Python บางกรณี ตัวอย่าง: Go ship web programming features ใน standard libraries เหมาะสมเพราะภาษามาจาก Google
Golang vs Python: Performance
เปรียบเทียบ performance: ต้องเข้าใจ Python version ไหน CPython (standard) ช้ากว่า Go มาก แต่ PyPy (alternative implementation) เร็วกว่า JIT compiler speed เหมือน Go
แต่ static typing ของ Golang ให้ speed advantage Significantly บางกรณี Focus concurrency ของภาษา ให้ advantage บางกรณี situation-dependent แต่หลายกรณีอยาก speed -> Go
Golang vs Python: Community
Python นานมาก -> community support เยอะ Third-party libraries, tools, extensions ทุกที่ รวม SciPy (scientific computing), game engines เช่น Pygame
Go ใหม่กว่า แต adoption เร็ว ไม่มี libraries เยอะเท่า Python แต่คนใช้เยอะ เจอปัญหา มีคนแก้และ document ไว้แล้ว
สรุป
ดู Golang และ Python ยากบอกว่าอันไหนดีกว่า basic scripting ไม่จัดการง่ายด้วย Bash -> Python ดี web-related work แต่ไม่อยาก framework อย่าง Django -> Go อาจดีกว่า ขึ้นอยู่กับความต้องการ
ด้านที่ Golang ชนะชัด: toolset Go มาพร้อม tools 多: write, debug, format code Python อาจอยาก IDE ช่วยทั้งหมด หากไม่แน่ใจอ่าน list best Python IDEs ของเรา