การถกเถียงเครื่องมือพัฒนา Python ทวีความรุนแรงขณะที่นักพัฒนายอมรับ Modern Stack

ทีมชุมชน BigGo
การถกเถียงเครื่องมือพัฒนา Python ทวีความรุนแรงขณะที่นักพัฒนายอมรับ Modern Stack

ความนิยมที่เพิ่มขึ้นของ Python ในด้าน AI และ machine learning ได้จุดประกายการอภิปรายอย่างเข้มข้นในชุมชนเกี่ยวกับเครื่องมือพัฒนาและการเลือกใช้สถาปัตยกรรมของภาษานี้ แม้ว่านักพัฒนาจำนวนมากจะยอมรับ Python เนื่องจากความสามารถด้าน AI แต่ชุมชนยังคงแบ่งแยกในหลายประเด็นพื้นฐานของภาษาและระบบนิเวศของมัน

การถกเถียงเรื่อง Syntax ครั้งใหญ่: ความงามเทียบกับการทำงาน

หนึ่งในการอภิปรายที่รุนแรงที่สุดมุ่งเน้นไปที่ dunder methods ของ Python - วิธีการพิเศษเหล่านั้นที่ล้อมรอบด้วย double underscores เช่น __init__ และ __new__ ผู้วิพากษ์วิจารณ์โต้แย้งว่าวิธีการเหล่านี้แสดงถึงความน่าเกลียดแบบเก่าที่ทำให้โค้ด Python ดูไม่น่าดึงดูดเมื่อเปรียบเทียบกับภาษาอื่น พวกเขาชี้ไปที่ทางเลือกที่สะอาดกว่าในภาษาอย่าง Kotlin , Ruby และ JavaScript ที่ constructors ใช้ keywords ที่อ่านง่ายกว่า

อย่างไรก็ตาม ผู้ปกป้องแนวทางของ Python โต้แย้งว่าการใช้ double underscore convention มีจุดประสงค์สำคัญ มันระบุ magic methods ที่ไม่ได้มีจุดประสงค์ให้เรียกใช้โดยตรงอย่างชัดเจน ทำให้เจตนาของโค้ดชัดเจนกว่าสำหรับนักพัฒนาคนอื่น ความแตกต่างทางภาพช่วยแยกวิธีการพิเศษออกจาก public APIs ทั่วไป

การจัดการ Package: ยังคงเป็นจุดปวดหัวแม้จะมีความก้าวหน้า

การจัดการ package ของ Python ยังคงทำให้นักพัฒนาหงุดหงิด แม้จะมีการปรับปรุงล่าสุด ชุมชนยอมรับว่าเครื่องมืออย่าง uv ได้ปรับปรุงประสบการณ์อย่างมีนัยสำคัญ แต่หลายคนชี้ให้เห็นว่าโปรเจกต์เก่าหลายทศวรรษยังคงใช้แนวทางเก่าที่มีปัญหามากกว่า ความท้าทายจะรุนแรงขึ้นเป็นพิเศษเมื่อต้องจัดการกับ native code dependencies และความเข้ากันได้ข้ามแพลตฟอร์ม

ยังมีโปรเจกต์ 20 ปีที่ใช้ทุกอย่างที่เกิดขึ้นก่อน uv พวกเขาไม่ได้อัปเกรดในขณะที่ uv เกิดขึ้น

สถานการณ์ซับซ้อนขึ้นเนื่องจากระบบนิเวศที่แยกส่วนของ Python ที่โปรเจกต์ต่างๆ ใช้ package managers ต่างกัน เครื่องมือ virtual environment ต่างกัน และแนวทางการจัดการ dependency ต่างกัน สิ่งนี้สร้างปัญหาปวดหัวสำหรับนักพัฒนาที่ต้องทำงานข้ามหลายโปรเจกต์หรือดูแล legacy codebases

การเปรียบเทียบ Modern Python Development Stack

หมวดหมู่เครื่องมือ แนวทางแบบดั้งเดิม ทางเลือกสมัยใหม่
การจัดการ Package pip + requirements.txt uv
การจัดรูปแบบโค้ด จัดรูปแบบด้วยตนเอง ruff
การตรวจสอบ Type Runtime errors pyright + typing
การทดสอบ unittest pytest
เอกสารประกอบ สร้างเอกสารด้วยตนเอง mkDocs
การพัฒนา API Flask/Django FastAPI
โครงสร้างโปรเจกต์ การจัดระเบียบแบบไม่เป็นระบบ Mono-repo พร้อมการแยก frontend/backend

การตรวจสอบความเป็นจริงของการรวม Platform

แม้ว่าผู้สนับสนุน Python มักจะอ้างว่าภาษานี้รวมเข้ากับระบบ Unix โดยธรรมชาติ ความเป็นจริงนั้นซับซ้อนกว่า ระบบ BSD หลายระบบไม่รวม Python ในการติดตั้งพื้นฐาน และ macOS ได้ลบ Python 2 ในการอัปเดตกลางรอบที่ทำให้นักพัฒนาหลายคนตกใจ แม้แต่ลิงุกซ์ดิสทริบิวชันต่างๆ ก็แตกต่างกันอย่างมีนัยสำคัญในเรื่องของ Python เวอร์ชันไหนที่พวกเขารวมไว้และการกำหนดค่าอย่างไร

ความไม่สอดคล้องนี้บังคับให้นักพัฒนาต้องพึ่งพา containerization , version managers หรือเครื่องมืออย่าง uv เพื่อให้แน่ใจว่ามีสภาพแวดล้อมที่สอดคล้องกันข้ามแพลตฟอร์มต่างๆ คำสัญญาของความพร้อมใช้งาน Python ที่เป็นสากลไม่ตรงกับความเป็นจริงที่ยุ่งเหยิงของการบริหารระบบสมัยใหม่

สถานะการติดตั้ง Python แยกตามแพลตฟอร์ม

  • Linux: รวมอยู่ในดิสทริบิวชันเดสก์ท็อป/เซิร์ฟเวอร์ส่วนใหญ่ (มีข้อยกเว้นบางกรณี)
  • macOS: Python 2 ถูกลบออกใน Monterey 12.3; Python 3 สามารถใช้งานได้ผ่าน Xcode Developer Tools
  • ระบบ BSD: โดยทั่วไปไม่รวมอยู่ในระบบฐาน
  • Windows: ไม่รวมอยู่ตามค่าเริ่มต้น; ต้องติดตั้งแยกต่างหาก

หมายเหตุ: เวอร์ชัน Python ของระบบมักจะล้าสมัยและไม่แนะนำสำหรับงานพัฒนา

ภาวะกลืนไม่เข้าคายไม่ออกของการเลือกภาษาที่ขับเคลื่อนด้วย AI

การเพิ่มขึ้นอย่างรวดเร็วในการยอมรับ Python ที่ขับเคลื่อนโดยโอกาสด้าน AI และ machine learning ได้สร้างปรากฏการณ์ที่น่าสนใจ นักพัฒนาบางคนแสดงความกังวลว่าแนวโน้มนี้กำลังผลักดันผู้คนไปสู่ความสอดคล้องมากกว่าการสำรวจแนวทางการเขียนโปรแกรมที่หลากหลาย การรวมตัวของเครื่องมือ AI รอบ Python หมายความว่านักพัฒนามักรู้สึกถูกบังคับให้ใช้มันโดยไม่คำนึงว่ามันจะเป็นตัวเลือกที่ดีที่สุดสำหรับกรณีการใช้งานเฉพาะของพวกเขาหรือไม่

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

การถกเถียงอย่างต่อเนื่องของชุมชน Python สะท้อนถึงการเติบโตและการยอมรับอย่างแพร่หลายของภาษา เมื่อนักพัฒนาจำนวนมากขึ้นยอมรับ Python สำหรับแอปพลิเคชันการผลิต การอภิปรายเหล่านี้เกี่ยวกับเครื่องมือ syntax และการจัดการระบบนิเวศจะยังคงกำหนดทิศทางอนาคตของภาษา

อ้างอิง: I'm Switching to Python and Actually Liking It