Turbo 8 ยุติการรองรับ TypeScript
(world.hey.com)Daniel Heinemeier Hansson ผู้ร่วมก่อตั้งและ CTO ของ 37signals ซึ่งเป็นที่รู้จักจาก Ruby on Rails และ Basecamp เปิดเผยว่าจะถอดการรองรับ TypeScript ออกจากเว็บเฟรมเวิร์ก Turbo ที่กำลังพัฒนาอยู่ในขณะนี้
เหตุผลหลักที่ยกมาคือการประกาศ type ทำให้โค้ดรก และกระบวนการตั้งแต่การประกาศ type ไปจนถึงการที่คอมไพเลอร์ TS เข้ามาเกี่ยวข้องนั้นไม่ใช่สิ่งที่สนุกนัก
การเปลี่ยนจาก TypeScript กลับไปเป็น JavaScript เป็นเรื่องที่แทบไม่เคยเกิดขึ้นมาก่อน และกำลังก่อให้เกิดแรงกระเพื่อมครั้งใหญ่ในชุมชนโปรแกรมเมอร์
อีกประเด็นที่เป็นข้อถกเถียงคือ แม้จะเป็นผลิตภัณฑ์ของ 37signals แต่ก็เป็นโครงการโอเพนซอร์สที่รับการมีส่วนร่วมจากภายนอกด้วย ทว่ากลับมีการส่ง PR เพื่อลบ TypeScript โดยไม่มีการสื่อสารกับผู้ร่วมพัฒนาภายนอก และถูก merge แบบสายฟ้าแลบภายในเวลาเพียง 2 ชั่วโมง
7 ความคิดเห็น
เนื่องจาก
javascriptเป็นภาษาที่มีพื้นฐานแบบ prototype จึงอดคิดไม่ได้ว่านี่อาจเป็นการเพิกเฉยต่อปรัชญานี้ และพยายามกีดกัน TypeScript ที่กำลังก้าวไปข้างหน้าหรือไม่....https://medium.com/@limsungmook/…
เมื่อวานยังไม่พอ วันนี้ก็มีโพสต์แนวเรียกกระแสขึ้นมาอีกเล็กน้อยนะครับ
https://world.hey.com/dhh/…
ก่อนหน้านี้ไม่รู้ว่าเป็นใคร แต่พอรู้ว่าเป็นคนสร้าง RoR ก็เลยพอคิดได้ว่าอาจจะไม่ชอบ TypeScript ก็เป็นได้
ผมไม่ได้ศึกษา RoR ลึกมากนัก แต่พอนึกถึงแนวคิดเรื่อง Open Class ก็รู้สึกว่ามันไม่น่าเข้ากับระบบ type เท่าไร
จากประสบการณ์ส่วนตัวที่ TypeScript เป็นตัวหลัก ผมเคยรู้สึกอึดอัดมากกับการที่ต้องสร้าง type class ทีละอันใน Java(Kotlin) ดังนั้นสำหรับเขา TypeScript ก็คงให้ความรู้สึกแบบนั้นเหมือนกันประมาณนั้น..
ถึงอย่างนั้น กระบวนการทั้งหมดที่เกิดขึ้นต่อเนื่องกันนี้ก็ยังเป็นอะไรที่ผมยอมรับไม่ได้จริง ๆ
อืม... พอดูจาก PR 2 อันแล้ว ก็เป็นการตัดสินใจที่แทบจะมองว่าเป็นโปรเจกต์โอเพนซอร์สได้ยากเลยนะครับ
เจ้าของรีโปตัดสินใจเองโดยไม่มีการพูดคุย แถมยังข้ามขั้นตอน PR ที่ทำกันอยู่ในรีโปเดิมแล้ว merge เข้าไปทันที...
ดูไม่ค่อยดีเท่าไรเลยครับ
ถ้ามีกระบวนการอธิบายและสร้างความเข้าใจอย่างเพียงพอก็ว่าไปอย่าง แต่ผมมองว่านี่เป็นการกระทำที่ทิ้งความน่าเชื่อถือในฐานะโปรเจกต์โอเพนซอร์สไปเลย
สำหรับโปรเจกต์อื่นที่พึ่งพา type ของ Turbo พออัปเดตขึ้นมา ก็จะเจอปัญหาที่ type ทั้งหมดพังในชั่วข้ามคืนกันพอดีครับ
https://devclass.com/2023/05/…
เมื่อไม่นานมานี้ Svelte ก็ได้ย้ายจาก TypeScript ไปเป็น JavaScript(+JSDoc) เช่นกัน
svelte ใช้ความสามารถในการตรวจสอบชนิดข้อมูลของ jsdoc ซึ่งสิ่งนั้นพึ่งพา ts อยู่ ดังนั้นไม่ได้หมายความว่ายอมทิ้งเรื่องความปลอดภัยของชนิดข้อมูลไปเสียทีเดียว และก็ยังมีการให้คำจำกัดความชนิดข้อมูลอยู่ด้วยครับ/ค่ะ อีกทั้งดูเหมือนว่าสถานการณ์จะแตกต่างจากกรณีอย่าง turbo ที่โยนทุกอย่างทิ้งไปหมดทั้ง jsdoc และ d.ts โดยไม่มีอะไรเหลือเลย
อ๋อ ครับ ๆ เห็นในลิงก์ PR ตรงนั้นก็มีการพูดถึงประเด็นนี้อยู่เยอะเหมือนกันนะ