Why I love Python so much

Yothin Muangsommuk
3 min readJul 31, 2018

--

ภาพนี้ใช้เวลาวาด 5 นาทีถ้วนบนแอพ Paper ครับ

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

Beautiful is better than ugly 💄

hello world แบบ Python นะครับ

ส่วนแรกที่ผมชอบเกี่ยวกับภาษานี้คือ Semantic มันครับ เรื่องนี้ต้องย้อนไปถึง Design Philosophy ของตัวภาษาเลยว่ามันถูกออกแบบมาให้เป็นภาษาที่อ่านได้ง่ายมากๆ โดยใช้ keyword ภาษาอังกฤษ แทนที่จะใช้เครื่องหมายต่างๆ รวมไปถึงใช้ Indentation แทนที่จะใช้ curry bracket ในการกำหนด scope เป็นต้น

ด้วยตัวภาษาเองยังเป็นภาษา Multi-paradigm ทำให้รองรับรูปแบบการเขียนโปรแกรมหลายรูปแบบมากตั้งแต่ Imperative, Object Oriented, Functional, Procedural และ Reflective ทำให้เราไม่ถูกจำกัดแนวคิดในการแก้ปัญหาต่างๆ ด้วยภาษานี้ถึงแม้มันจะขัดกับ Zen of Python ข้อ There should be one — and preferably only one — obvious way to do it. ก็เถอะ

นอกจากนี้แล้วตัวภาษาเองยังมี Coding Style (PEP8), Zen of Python (PEP20), Linter (Flake8, PyLint) รวมไปถึง Formatter (yapf, Black) ฯลฯ อีกหลายอย่างที่ช่วยเราในเรื่อง Code Convention ถึงแม้ว่าภาษาสมัยใหม่หลายภาษาจะมีของพวกนี้มาให้ในตัว แต่อย่างน้อย Python ก็มีเครื่องมือพวกนี้ให้เลือกใช้หลากหลาย และทำให้โค้ดเราเป็นไปในทางเดียวกันครับ

CheeseShop 🧀

ถ้าใครไม่รู้จัก CheeseShop นะครับ มันคือ codename ของ PyPI หรือ Python Package Index เอง ส่วนนี้สำคัญยังไง สิ่งที่สำคัญอย่างนึงของทุกภาษาคือ Package repository ครับ ทำให้เราทำงานแบบ Modular programming ได้ครับ

Modular Programming คือ concept ที่ว่าเราไม่ต้องเขียนทุกอย่างขึ้นมาเองใหม่ทั้งหมด ปัญหาบางปัญหามีคนแก้ไปแล้ว เราก็ไปเอาโค้ดเค้ามาใช้ ซึ่ง ณ ตอนที่เขียนอยู่นี่ PyPI มี Package ให้เราเลือกใช้อยู่ทั้งสิ้น 147,551 projects ครับ ไม่น้อยเลยทีเดียว ตั้งแต่ Library เล็กๆ ที่ใช้แก้ปัญหาดึงค่าของจาก Dictionary ออกมา ไปจนถึง Library ในการทำ Machine Learning คำนวณกลศาสตร์ระหว่างดาวเคราะห์เลยทีเดียว

จริงๆ PyPI เคยเป็นหนึ่งในจุดอ่อนของ Python เหมือนกันนะครับ ด้วยหน้าตาที่โบราณมาก จนผมไม่เคยคิดจะไปหา Project ในนั้นเลย แต่เมื่อไม่กี่เดือนก่อน PyPI เพิ่ง Rewrite ใหม่ทั้งหมดบน Pyramid Framework แล้วกลายเป็น PyPI อย่างที่เราเห็นทุกวันนี้ครับ น่าใช้ขึ้นมากเลยทีเดียว

หน้าตาปัจจุบันของ https://pypi.org/ ครับ

Community 🙋‍♂️🙋‍♀️

ความเจ๋งของ Python Community อย่างนึงคือ มันไม่ค่อยมีดราม่าครับ นานๆ ทีจะมี อย่างเช่นกรณี PEP 572 — Assignment Expressions และ Guido ประกาศลาพักไม่มีกำหนดจากตำแหน่ง BDFL ตลอดมาก็แทบไม่มีดราม่าเลยครับ นอกจากนั้นแล้วทั่วโลกยังมีงาน PyCon จัดตั้งแต่ United State มาจนถึง Australia และล่าสุดในไทยเราก็เพิ่งมีจัด PyCon Thailand ครับ

ในส่วนของการเติบโตนั้น Python เป็นภาษาที่มีอัตราการเติบโตเร็วที่สุดในปีนี้เลยครับ จาก Stack Overflow Trends ซึ่งมามองในอีกมุมนึง มันดีรึเปล่าหว่า เป็นเพราะมีคนไปถามเยอะ หรือตัวภาษามันมีปัญหาบางอย่าง เรื่องนี้ก็มองได้หลายมุมเหมือนกัน

Django 🎸

Django Reinhardt นักกีตาร์ (ชื่อ Framework เอามาจากคนนี้แหละ)

อันนี้เพราะว่างานผมอาจจะเกี่ยวข้องกับทาง Web Application เลยมีเรื่องนี้เข้ามาเกี่ยวข้องครับ คือ Django เนี่ยเป็น Web Framework ที่เป็นหนึ่งใน Goto ถ้าใช้ Python ครับอีกตัวก็ Flask แต่ก็แล้วแต่ลักษณะงานด้วย ตัว Django เองเนี่ย สามารถสร้าง Databases แล้วทำเป็น REST API และมีหน้า Admin สวยๆ ไว้จัดการภายในไม่กี่นาที ต้องขอบคุณพลังของ Django REST Framework ด้วยอีกตัวนึงที่ทำให้การสร้าง REST API มันไวขนาดนี้

นอกจากนั้นแล้วตัว Django เองยัง Extends ได้อีกเยอะมาก ซึ่งมากแค่ไหนก็ลองดูได้ที่เว็บนี้เลยครับ

ส่วนเรื่อง Maturity ก็ไม่ต้องกังวลครับเพราะยังมีบริษัทระดับโลกยังใช้งาน Django อยู่คือ Instagram และตัว Framework เองก็ยังพัฒนาอยู่เรื่อยๆ ทำให้ไม่ต้องห่วงว่าวันนี้ พรุ่งนี้ Django ที่เราใช้มันจะตกยุคนะครับ

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

ปล.ตอนนี้ทางเพจมีกิจกรรมให้ร่วมสนุกกันนะครับ เพียงแค่เขียนบทความเกี่ยวกับภาษา Python อะไรก็ได้ แล้วแปะไว้ใน comment ของโพสนี้ https://bit.ly/2M7Jqvb ภายในวันที่ 6 สิงหาคมนี้ ทางผมจะสุ่มแจก Key ของ PyCharm Profession Edition: 6 month นะครับ มาร่วมสนุกกันได้ครับ

--

--

Yothin Muangsommuk

Pythonista @ProntoTools ♥ Python, Django, Vim and Star Trek 🖖