ภาษาโปรแกรมทดลองใหม่ที่เรียกว่า W++ ได้ดึงดูดความสนใจในชุมชนนักพัฒนาหลังจากถูกลบออกจาก VSCode Marketplace อย่างลึกลับแม้จะมีการดาวน์โหลดมากกว่า 33,000 ครั้ง ภาษานี้ซึ่งสร้างโดย Ofek Bickel เป็นโครงการเพื่อการศึกษา มีเป้าหมายที่จะผสมผสานความเรียบง่ายแบบ Python กับการรวมเข้ากับ .NET แต่กลับจุดประกายการถกเถียงอย่างเข้มข้นเกี่ยวกับทางเลือกในการออกแบบและแนวทางการตลาด
การลบออกจาก Marketplace อย่างลึกลับทำให้เกิดคำถาม
ส่วนขยาย W++ VSCode ถูกตั้งค่าสถานะและลบออกโดย Microsoft หลังจากสะสมการดาวน์โหลด 33,000 ครั้งในเวลาเพียงไม่ถึงสองชั่วโมง ตามที่ผู้สร้างระบุ Microsoft ติดป้ายว่าเป็นมัลแวร์โดยไม่ให้รายละเอียดเฉพาะเจาะจงหรือตอบกลับคำขอสนับสนุน จำนวนการดาวน์โหลดที่รวดเร็วและการลบออกอย่างกะทันหันทำให้ชุมชนงุนงง โดยบางคนตั้งคำถามว่าจำนวนการดาวน์โหลดที่สูงหรือการลบออกนั้นถูกต้องหรือไม่
ผู้สร้างได้เผยแพร่ซอร์สโค้ดทั้งหมดต่อสาธารณะบน GitHub รวมถึงส่วนขยาย VSCode ทำให้นักพัฒนาสามารถตรวจสอบโค้ดและใช้งานได้อย่างอิสระ การเคลื่อนไหวด้านความโปร่งใสนี้ดูเหมือนจะเป็นความพยายามในการแก้ไขข้อกังวลด้านความปลอดภัยที่อาจนำไปสู่การถอดถอน
ลำดับเหตุการณ์:
- ส่วนขยาย W++ VSCode อัปโหลดไปยัง marketplace
- มียอดดาวน์โหลดถึง 33,000+ ครั้งในเวลาไม่ถึง 2 ชั่วโมง
- ส่วนขยายถูกตั้งค่าสถานะเป็นปัญหาและถูกลบออกโดย Microsoft ในฐานะ "มัลแวร์"
- ไม่ได้รับการตอบกลับจากทีมสนับสนุนของ Microsoft
- เผยแพร่ซอร์สโค้ดทั้งหมดต่อสาธารณะบน GitHub
- เกิดการอพยพในชุมชนเกี่ยวกับการเลือกใช้การออกแบบและการตลาด
การวิพากษ์วิจารณ์จากชุมชนเกี่ยวกับการเปรียบเทียบกับ Python
หนึ่งในแง่มุมที่ถกเถียงกันมากที่สุดของ W++ คือการตลาดว่าคล้าย Python แม้จะมีความแตกต่างทางไวยากรณ์อย่างมีนัยสำคัญ สมาชิกชุมชนได้ชี้ให้เห็นว่าภาษานี้รวมถึงเซมิโคลอน ใช้ let
สำหรับการประกาศตัวแปร และมีไวยากรณ์ lambda ที่แตกต่างกันโดยสิ้นเชิง ซึ่งทั้งหมดนี้ไม่เป็นแบบ Python อย่างชัดเจน
ฉันสับสนเล็กน้อย มันดู 'เหมือน Python' แต่โค้ดตัวอย่างเกือบทุกชิ้นมีองค์ประกอบที่ไม่เหมือน Python
การวิพากษ์วิจารณ์ได้นำไปสู่การถกเถียงว่าภาษานี้ควรยกเลิกการเปรียบเทียบกับ Python ทั้งหมดและมุ่งเน้นไปที่คุณค่าของตัวเองในฐานะภาษาสคริปต์ .NET นักพัฒนาบางคนแนะนำว่าภาษานี้ดูเหมือน JavaScript มากกว่า Python ทำให้เกิดคำถามเกี่ยวกับความถูกต้องของข้อความการตลาด
ทางเลือกในการออกแบบทางเทคนิคแบ่งความคิดเห็น
การตัดสินใจทางเทคนิคของภาษาได้สร้างปฏิกิริยาที่หลากหลายจากชุมชนนักพัฒนา W++ ใช้ช่องว่างที่มีความหมายเหมือน Python แต่ยังคงเซมิโคลอนและวงเล็บปีกกา สร้างสิ่งที่ผู้แสดงความเห็นคนหนึ่งอธิบายว่าเป็นสถานะกึ่งกลางที่อาจไม่ดึงดูดนักพัฒนา Python หรือ C# อย่างเต็มที่
ข้อกังวลเรื่องการจัดการหน่วยความจำก็ถูกยกขึ้นมา โดยเฉพาะจากนักพัฒนาที่มีประสบการณ์ในสถานการณ์ภาษาที่โฮสต์คล้ายกัน ผู้ที่เคยทำงานกับ IronPython บน .NET framework รุ่นเก่าเตือนเกี่ยวกับการรั่วไหลของหน่วยความจำที่อาจเกิดขึ้นและความซับซ้อนของวงจรชีวิตออบเจ็กต์เมื่อสร้างภาษาบน runtime ที่มีอยู่แล้ว
คุณสมบัติหลักของ W++ :
- tokenizer, parser และ interpreter ที่เขียนด้วย C อย่างสมบูรณ์
- รองรับ async/await พร้อมกับ lambda expressions
- การควบคุมการทำงาน: คำสั่ง if, else, while, for, switch
- กลไก try/catch + throw และ return
- การเน้นไวยากรณ์และ snippets แบบกำหนดเองใน VSCode
- การรวมแพ็กเกจ NuGet (ไม่ใช่ pip)
- คอมไพล์เป็น IL และรวมเข้ากับระบบนิเวศ .NET
ความท้าทายด้านประสิทธิภาพและการยอมรับ
ประสิทธิภาพการเริ่มต้นได้กลายเป็นข้อกังวลอีกประการหนึ่ง โดยสมาชิกชุมชนสังเกตว่าความล่าช้าในการคอมไพล์ JIT ในการรันครั้งแรกอาจขัดขวางการยอมรับสำหรับงานสคริปต์ที่รวดเร็ว ปัญหานี้มีความเกี่ยวข้องโดยเฉพาะเนื่องจาก W++ วางตำแหน่งตัวเองเป็นภาษาสคริปต์ ซึ่งเวลาเริ่มต้นที่รวดเร็วมีความสำคัญต่อประสบการณ์ผู้ใช้
การวางตำแหน่งของภาษาระหว่าง Python และ C# ยังทำให้เกิดคำถามเกี่ยวกับกลุ่มเป้าหมาย นักพัฒนาบางคนโต้แย้งว่าแนวทาง internal DSL โดยใช้ fluent interface ของ C# อาจจะปฏิบัติได้มากกว่าสำหรับนักพัฒนา .NET มากกว่าการเรียนรู้ไวยากรณ์ภาษาใหม่ทั้งหมด
แนวโน้มในอนาคตและความสนใจจากชุมชน
แม้จะมีการวิพากษ์วิจารณ์ W++ ได้สร้างความสนใจอย่างแท้จริงจากสมาชิกชุมชนบางคนที่ชื่นชมคุณค่าทางการศึกษาและลักษณะการทดลองของโครงการ นักพัฒนาหลายคนได้แสดงความสนใจในการมีส่วนร่วมในโครงการ โดยเฉพาะในด้านการวิเคราะห์การไหลของข้อมูลและเครื่องมือภาษา
โครงการนี้ทำหน้าที่เป็นกรณีศึกษาที่น่าสนใจในการออกแบบภาษาและการรับรู้จากชุมชน แม้ว่ามุมการตลาดแบบ Python จะเป็นที่ถกเถียง แต่เป้าหมายพื้นฐานในการสร้างชั้นสคริปต์ที่เบาสำหรับ .NET ก็สะท้อนกับนักพัฒนาบางคนที่ต้องการสิ่งที่เข้าถึงได้ง่ายกว่า C# เต็มรูปแบบสำหรับงานอัตโนมัติง่าย ๆ
เรื่องราวของ W++ เน้นย้ำถึงความท้าทายที่ภาษาโปรแกรมใหม่เผชิญในการหาช่องทางของตัวเองและการสื่อสารข้อเสนอคุณค่าอย่างมีประสิทธิภาพ ว่าภาษานี้จะสามารถเอาชนะความขัดแย้งในช่วงแรกและสร้างชุมชนที่ยั่งยืนได้หรือไม่ยังคงต้องติดตาม
อ้างอิง: W++