การเปิดตัวของ BlackSheep ซึ่งเป็น web framework แบบ asynchronous ตัวใหม่สำหรับ Python ได้จุดประเด็นการถกเถียงอย่างดุเดือดในชุมชนนักพัฒนา เกี่ยวกับความจำเป็นและตำแหน่งของ framework ใหม่ในระบบนิเวศที่มีความหนาแน่นอยู่แล้ว แม้ว่า BlackSheep จะนำเสนอฟีเจอร์ทันสมัยอย่าง dependency injection และความเข้ากันได้กับ ASGI แต่การตอบสนองของชุมชนเผยให้เห็นคำถามที่ลึกซึ้งเกี่ยวกับการเพิ่มขึ้นของ framework และทางเลือกในการนำไปใช้งานจริงในการพัฒนาเว็บด้วย Python
คุณสมบัติหลักของเฟรมเวิร์ค:
- รองรับ ASGI
- มีระบบ Dependency Injection ในตัว
- รองรับการยืนยันตัวตนแบบ OpenID Connect
- รองรับการยืนยันตัวตนแบบ JWT Bearer
- สามารถทำงานร่วมกับ Jinja2
- สร้างเอกสาร OpenAPI โดยอัตโนมัติ
- รองรับ Python เวอร์ชัน: 3.8 | 3.9 | 3.10 | 3.11 | 3.12
ความกังวลเรื่องความอิ่มตัวของ Framework
ภูมิทัศน์การพัฒนาเว็บด้วย Python นั้นมี framework ที่มั่นคงอยู่แล้ว เช่น Django, FastAPI และ Flask ที่รองรับการใช้งานที่แตกต่างกัน การสนทนาในชุมชนแสดงให้เห็นความสงสัยเกี่ยวกับการแนะนำ framework ใหม่ โดยนักพัฒนาตั้งคำถามถึงคุณค่าที่เป็นเอกลักษณ์ของ BlackSheep บางคนโต้แย้งว่าฟีเจอร์ของ framework แม้จะทันสมัย แต่ส่วนใหญ่ซ้ำซ้อนกับโซลูชันที่มีอยู่แล้ว โดยเฉพาะอย่างยิ่ง FastAPI ที่มีความสามารถคล้ายกันรวมถึง dependency injection และการรองรับ ASGI
เฟรมเวิร์กที่แข่งขันกัน:
- FastAPI
- Django
- Flask
- Quart
- Django-ninja
สถาปัตยกรรมสมัยใหม่ vs. แนวทางแบบดั้งเดิม
ประเด็นขัดแย้งที่สำคัญเกิดขึ้นรอบเรื่องการทำ templating และการผสานกับ frontend นักพัฒนาที่มีประสบการณ์มากกว่าสนับสนุนให้ห่างจากการทำ server-side templating แบบดั้งเดิม โดยแนะนำว่าการพัฒนาเว็บสมัยใหม่ควรใช้แนวทาง API-first พร้อมกับ frontend framework แยกต่างหาก เช่น React และ TypeScript ดังที่นักพัฒนาคนหนึ่งกล่าวว่า:
การทำ templating แบบ HTML เป็นพิษต่อโค้ดเบส โดยเฉพาะ django templating มันไม่มีการกำหนดประเภทข้อมูล ไม่สามารถคอมไพล์และเชื่อถือได้ และยากต่อการบำรุงรักษา
ความเข้าใจด้านเทคนิคและ ASGI
การอภิปรายได้ช่วยให้เกิดความกระจ่างเกี่ยวกับความเข้าใจผิดเกี่ยวกับ ASGI (Asynchronous Server Gateway Interface) ใน Python ในขณะที่นักพัฒนาบางคนตั้งคำถามเกี่ยวกับความสามารถของ HTTP server ของ Python สมาชิกในชุมชนได้อธิบายว่า ASGI server อย่าง Uvicorn และ Hypercorn เป็นโซลูชันที่พัฒนาด้วย Python โดยตรง ไม่ใช่การพึ่งพาภายนอก สิ่งนี้ชี้ให้เห็นโอกาสทางการศึกษาที่กว้างขึ้นเกี่ยวกับความสามารถของเว็บสมัยใหม่ของ Python
ความท้าทายในการนำไปใช้จริง
ชุมชนได้ยกประเด็นที่น่ากังวลเกี่ยวกับการบำรุงรักษาระยะยาวและการสนับสนุนสำหรับ framework ใหม่ๆ ปัญหาเกี่ยวกับเอกสาร เวลาตอบสนองต่อรายงานข้อบกพร่อง และความยั่งยืนโดยรวมของโครงการที่ไม่มีการสนับสนุนจากบริษัท ได้กลายเป็นอุปสรรคที่อาจเกิดขึ้นในการนำไปใช้ ข้อพิจารณาในทางปฏิบัติเหล่านี้มักมีอิทธิพลต่อการตัดสินใจขององค์กรในการเลือก framework สำหรับแอปพลิเคชันที่ใช้งานจริง
สรุปได้ว่า แม้ BlackSheep จะแนะนำฟีเจอร์ที่น่าสนใจและแนวทางสมัยใหม่สำหรับการพัฒนาเว็บด้วย Python แต่การตอบสนองของชุมชนชี้ให้เห็นว่าความสำเร็จในการนำไปใช้จะไม่ขึ้นอยู่กับความสามารถทางเทคนิคเท่านั้น แต่ยังรวมถึงการจัดการกับความกังวลเกี่ยวกับความยั่งยืนในระยะยาวและการแสดงให้เห็นถึงข้อได้เปรียบที่ชัดเจนเหนือทางเลือกที่มีอยู่