ทำไมต้อง Compile ด้วย ?
หลาย ๆ คนอาจจะมีคำถามว่า
"แต่ถ้าเราจะ run project go ของเรา เราก็แค่ใช้ go run <ชื่อไฟล์> ก็ได้นิ ไม่เห็นต้อง compile เลย... เอ๋หรือว่า go run จะมีปัญหา !!?"
ไม่อ่ะครับ.
ไม่มีปัญหาอะไรนะ.
อ่าว... แล้วทำไมต้อง Compile ด้วย ?
คือในการ run มันโปรแกรมของเรามันก็ไม่มีปัญหาอะไรหรอกครับ go run ก็ทำหน้าที่ในการ compile ไฟล์และ run มันเหมือนกับ go build เลย แปลว่าในเชิงการ execute มันก็เหมือนกันนั่นแหละครับ
แต่ปัญหาของ go run ก็คือมันไม่สร้าง executable file นั่นแหละครับ เพราะการที่เราไม่ได้ไฟล์ที่เป็น executable file ออกมานั่นแปลว่าเราก็ต้องมี go เพื่อ run ไฟล์นั้นทุกครั้ง "ซึ่งปัญหาหลัก ๆ เลยก็คือเรื่องขนาด" ของไฟล์ที่เราต้องใช้ในการ run โปรแกรมของเราขึ้นมาได้
เพื่อจะให้เห็นภาพมาขึ้น ผมลองทำ project เดียวกันแต่เปลี่ยนการ run จาก go run เป็น go build แทน
ทุกคนจะสังเกตุถึงขนาดที่เปลี่ยนไปมหาศาล..... ว่าแต่ทำไมล่ะ ?
เพราะว่าการที่เราจะ run project เราจำเป็นต้อง download go compiler รวมถึง module อื่น ๆ ที่ไม่จำเป็นในการ compile แต่ไม่จำเป็นในการ run ก่อน ทำให้ขนาดขอไฟล์ project เราใหญ่กว่าที่ควรจะเป็น