PyTauri สร้างสะพานเชื่อม Python และ Tauri กระตุ้นการถกเถียงเรื่องแอปพลิเคชันเดสก์ท็อปแบบ WebView

ทีมชุมชน BigGo
PyTauri สร้างสะพานเชื่อม Python และ Tauri กระตุ้นการถกเถียงเรื่องแอปพลิเคชันเดสก์ท็อปแบบ WebView

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

Python พบกับ System WebViews

PyTauri เป็นสะพานที่สำคัญระหว่างระบบนิเวศการเขียนโปรแกรมยอดนิยมสองระบบ ผ่าน Pyo3 bindings ซึ่งช่วยให้นักพัฒนา Python สามารถสร้างแอปพลิเคชันเดสก์ท็อปโดยใช้สถาปัตยกรรมของ Tauri ที่ใช้ system webviews แทนที่จะรวมเอาเบราว์เซอร์เอ็นจิ้นเต็มรูปแบบอย่างที่ Electron ทำ แนวทางนี้สัญญาว่าจะได้แอปพลิเคชันที่มีขนาดเล็กกว่าและอาจมีประสิทธิภาพที่ดีกว่า

โครงการนี้มีเป้าหมายที่จะกลายเป็นทางเลือกที่ใช้งานได้จริงแทนโซลูชัน GUI ของ Python ที่มีอยู่ เช่น pywebview และ Pystyle โดยเสนอสิ่งที่ผู้ใช้คนหนึ่งอธิบายไว้ว่า คือความสามารถในการใช้ front-end ด้าน JS กับ backend ด้าน Python สำหรับแอปพลิเคชันท้องถิ่น การผสมผสานนี้ดึงดูดทีมที่ต้องการใช้ประโยชน์จากทักษะการพัฒนาเว็บที่มีอยู่ ในขณะที่ยังคงรักษา Logic ด้าน backend ของ Python

หากคุณมีข้อกำหนดการออกแบบเฉพาะอย่างใดๆ การใช้ QT เป็นเรื่องยาก ความสามารถในการใช้ frontend web stack เป็นชัยชนะครั้งใหญ่ โดยเฉพาะสำหรับทีมที่มีนักพัฒนา frontend อยู่แล้ว

การอภิปรายครั้งใหญ่เรื่อง WebView

การอภิปรายในชุมชนเผยให้เห็นถึงความแตกแยกพื้นฐานในปรัชญาการพัฒนาแอปพลิเคชันเดสก์ท็อป ผู้สนับสนุน system webviews ชื่นชอบการลดความฟุ่มเฟือยและการใช้หน่วยความจำ เมื่อเทียบกับแนวทาง Chromium แบบรวมbundled ของ Electron ตามที่นักพัฒนาคนหนึ่งระบุไว้ว่า มี Chromium สำเนาแยกต่างหากติดอยู่กับ Electron app ทุกตัวที่ฉันติดตั้ง มันบ้าสุดๆ

อย่างไรก็ตาม ผู้ที่ยังสงสัยตั้งคำถามถึงความน่าเชื่อถือของการพึ่งพา system webviews ผู้ใช้คนหนึ่งแสดงความกังวลว่าการใช้เบราว์เซอร์พื้นฐานที่แตกต่างกัน across systems อาจนำไปสู่การเรนเดอร์ที่ไม่สอดคล้องกันและความท้าทายในการดีบักเพิ่มเติม: มันไม่ได้เป็นประโยชน์ต่อผู้ใช้เมื่อคุณได้รับปัญหาเป็นโหลใน Github เพราะ webkit-gtk หรือ WebView2 เปลี่ยนแปลงบางสิ่งบางอย่าง

การประยุกต์ใช้และกรณีใช้จริงในทางปฏิบัติ

ผู้ใช้ยุคแรกเริ่มกำลังค้นพบการใช้งานที่สร้างสรรค์สำหรับ PyTauri แล้ว รายการโครงการกล่าวถึง Digger Solo ซึ่งเป็นตัวจัดการไฟล์ที่ใช้พลัง AI สร้างขึ้นด้วยเฟรมเวิร์กนี้ นักพัฒนาอีกคนแบ่งปันประสบการณ์ของพวกเขา: ฉันได้ร่างแอปพลิเคชันแกลเลอรีภาพถ่ายใน Rust / Tauri ... Backend สามารถอ่านไดเรกทอรีและไฟล์ได้โดยตรง และเนื่องจาก backend และ frontend อยู่ในกระบวนการเดียว backend จึงเพียงส่ง file handle ไปยัง frontend

สถาปัตยกรรมแบบ single-process นี้แสดงให้เห็นถึงหนึ่งในข้อได้เปรียบที่อาจเกิดขึ้นของ PyTauri เหนือโมเดลการสื่อสารระหว่างกระบวนการ (inter-process communication) ของ Electron สำหรับแอปพลิเคชันที่ใช้ข้อมูลอย่างเข้มข้น (data-intensive) การโอเวอร์เฮดที่ลดลงอาจแปลเป็นประสิทธิภาพที่ดีขึ้น โดยเฉพาะเมื่อจัดการกับไฟล์ขนาดใหญ่หรือชุดข้อมูล

การผสานรวมกับระบบนิเวศและทางเลือกอื่นๆ

การอภิปรายยังกล่าวถึงว่า PyTauri เข้ากับภาพรวมของเครื่องมือพัฒนาเดสก์ท็อปที่กว้างขึ้นได้อย่างไร ผู้แสดงความคิดเห็นกล่าวถึงทางเลือกอื่นๆ เช่น Wails สำหรับนักพัฒนา Go และระบุถึงการมีอยู่มายาวนานของ pywebview ในระบบนิเวศของ Python บางคนแนะนำว่า PyTauri อาจได้รับประโยชน์จากการผสานรวมกับเฟรมเวิร์กเว็บยอดนิยมของ Python เช่น Reflex หรือ FastHTML ซึ่งอาจสร้างเส้นทางใหม่ให้นักพัฒนาเว็บเปลี่ยนไปพัฒนาแอปพลิเคชันเดสก์ท็อป

ความเข้ากันได้ของโครงการกับ tauri-cli สำหรับการสร้าง executable แบบสแตนด์อโลน และการสนับสนุนการปกป้องซอร์สโค้ด Python ด้วย Cython ถูกเน้นว่าเป็นประโยชน์ในทางปฏิบัติสำหรับแอปพลิเคชันเชิงพาณิชย์

เปรียบเทียบกับทางเลือกอื่น:

Framework ภาษา Web Engine รองรับมือถือ
PyTauri Python System webview ผ่าน Tauri
Electron JavaScript Bundled Chromium ไม่รองรับ
Wails Go System webview ไม่รองรับ
pywebview Python System webview ไม่รองรับ

มองไปข้างหน้า

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

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

หมายเหตุ: Tauri เป็นเฟรมเวิร์กสำหรับสร้างแอปพลิเคชันเดสก์ท็อปโดยใช้เทคโนโลยีเว็บ พร้อมใช้ประโยชน์จาก system webviews แทนที่จะรวมbundled เบราว์เซอร์เอ็นจิ้นเต็มรูปแบบ หมายเหตุ: Pyo3 เป็นไลบรารี Rust สำหรับสร้างโมดูลส่วนขยาย Python

อ้างอิง: PyTauri