จาก Python สู่ Golang

ภาษา Python เป็นภาษาที่เขียนง่าย มีโมดูลมากมายและเหมาะสมกับผู้เริ่มเขียนโปรแกรม เป็นข้อดีของภาษานี้ แต่หากต้องการเปลี่ยนจากเขียนภาษา Python ไปเป็น Golang เนื่องด้วยต้องการประสิทธิภาพที่สูงขึ้น หรือ เหตุผลอื่น ๆ ก็ตาม เพราะภาษาไพทอน (Python) เป็นภาษาแบบ interpreter ไม่มีทางสู้ภาษาแบบ compile ในด้านประสิทธิภาพ เช่น C , Golang ได้ เป็นข้อจำกัดโดยธรรมชาติของภาษาแบบ interpreter และไพทอนมีข้อจำกัดหนึ่งที่ชื่อว่า global interpreter lock (GIL)

ดังนั้น เมื่อธุรกิจของคุณพัฒนาด้วยภาษาไพทอนมาถึง ณ จุด ๆ หนึ่ง ที่มีผู้ใช้บริการจำนวนมาก คุณจะมีทางเลือกไม่กี่ทาง เช่น ใช้ไพทอนต่อไปโดยเพิ่มจำนวนเครื่อง แรม ปรับปรุงโค้ด แทน ไปใช้ PyPy หรือ สุดท้าย ย้ายไปใช้ภาษาแบบคอมไพล์อื่น ๆ ที่มีประสิทธิภาพสูงกว่าไพทอน

จากเหตุผลขั้นต้น ทำให้แม้แต่ Google เองที่ใช้ไพทอนรันโค้ดจำนวนมาก แต่มาเจอ ข้อจำกัด global interpreter lock (GIL) ทำให้บริการของกูเกิลไม่สามารถขยายระบบได้ดีนัก

กูเกิลจึงสร้าง Grumpy ขึ้นมา โดยแปลงไพทอน 2.7 มารันใน Golang (เหมือน Jython ที่นำไพทอนมารันในภาษาจาวา)

สามารถอ่านรายละเอียด Grumpy  ได้ที่ https://github.com/google/grumpy

สำหรับผู้ที่ต้องการเขียนโค้ดใหม่โดยย้ายจากไพทอนมา Golang สามารถอ่านเอกสารได้ที่ https://golang-for-python-programmers.readthedocs.io/en/latest/index.html

One thought on “จาก Python สู่ Golang

  1. wannaphong

    หากผู้อ่าน อ่านบล็อกนี้มานาน จะพบว่า ผมไม่เคยเขียนว่า ไพทอนทำงานข้ามแพลตฟอร์มได้ 100 % ถึงแม้โค้ดส่วนใหญ่จะทำได้ 90 % ขึ้นไปที่ใช้ python เขียน 100% แต่ก็มีส่วนที่ทำไม่ได้เช่นกัน เช่น โมดูล python ที่ใช้ c เขียนร่วมด้วย และ python ยังมีไลบรารีเฉพาะทำงานบน Windows หรือ Linux , MacOS X เท่านั้นด้วย เป็นต้น
    และ ผมไม่เคยเขียนว่า Python Write Once Run Anywhere
    ดังนั้น ผู้อ่านอย่าเข้าใจผิดจากการอ่านเอกสารหรือหนังสือที่เขียนถึง Python

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *