ความหมายของ Contrarian Stack
- ปรัชญาการพัฒนาที่จงใจเลือกใช้เทคโนโลยีทางเลือกแทนเทคโนโลยีกระแสหลัก
- ผู้เขียนเป็นผู้ตั้งชื่อให้ในฐานะแนวคิดตรงข้ามกับสแตกมาตรฐาน
- ตัวเลือกของผู้เขียน:
- Ruby: Rails → Sinatra + DataMapper
- JavaScript: Prototype → MooTools
- Python: Django → Werkzeug + SQLAlchemy
- ปัจจุบัน: React/Next.js → Solid/SolidStart
การเติบโตที่เกิดจากความยากของ Contrarian Stack
- ไม่มีคำตอบใน Stack Overflow จึงต้องวิเคราะห์ซอร์สโค้ดด้วยตัวเอง → ความเข้าใจเทคโนโลยีอย่างลึกซึ้ง
- ฐานผู้ใช้เล็กทำให้การสนับสนุนจากชุมชนมีจำกัด → เติบโตเป็นผู้มีส่วนร่วมโอเพนซอร์ส พร้อมความภูมิใจเมื่อ PR ถูก merge
- ประสบการณ์ของผู้เขียน:
- ระดับ abstraction ที่ต่ำของ Werkzeug → ได้ความสามารถในการสร้างเฟรมเวิร์กภายในองค์กร
- กระบวนการที่ถูกเรียกว่า “ลองผิดลองถูกแบบหนักหน่วง” → กลายเป็นความรู้พื้นฐานที่ใช้ได้กับทุกสแตก
- ข้อดี: ได้มาซึ่งมุมมองเชิงเทคนิคที่ลึกจากกระบวนการแก้ปัญหา
ข้อได้เปรียบของผู้มาทีหลัง
- ได้สัมผัสการออกแบบที่รับรู้ปัญหาของสแตกมาตรฐานและปรับปรุงมัน
- ตัวอย่าง: fine-grained reactivity ของ Solid (หลีกเลี่ยง overhead ของ virtual DOM ใน React)
- ผลลัพธ์ที่คาดไม่ถึง: เข้าใจ “ทำไม” ของเทคโนโลยี และพัฒนาสัญชาตญาณในการออกแบบสถาปัตยกรรมที่ดีกว่า
คุณค่าที่ซ่อนอยู่ของสแตกแบบประกอบเอง
- สแตกมาตรฐาน: ชุดของขวัญแบบครบจบที่ใช้งานสะดวก
- Rails(CoC), Django(Batteries Included), Next.js(ฟูลสแตก)
- Contrarian Stack: เลือกชิ้นส่วนทีละส่วนและประกอบด้วยมือ
- กรณีของผู้เขียน: Sinatra + DataMapper + Haml + Sass
- ความยุ่งยากของการตั้งค่าแต่ละชิ้นส่วนและการเชื่อม middleware
- ข้อดี: เข้าใจกลไกภายในของเทคโนโลยีและปฏิสัมพันธ์ระหว่างแต่ละชั้นได้อย่างครบถ้วน
บทเรียนจากประวัติศาสตร์
- สิ่งที่เป็นมาตรฐานในวันนี้ก็เคยเป็นพวกนอกกระแสในอดีต (Rails → ทางเลือกแทน Java, React → ทางเลือกแทน Backbone.js)
- ข้อดี: ได้อยู่ในตำแหน่งผู้บุกเบิกที่สัมผัสและเข้าใจเทคโนโลยีกระแสหลักแห่งอนาคตก่อนใคร
โอกาสเชิงย้อนแย้งในยุค LLM
- ความได้เปรียบของสแตกมาตรฐานยิ่งแข็งแกร่งขึ้น (ChatGPT เชี่ยวชาญ Next.js แต่ยังไม่ชำนาญ SolidStart)
- ข้อดี: ความเชี่ยวชาญในพื้นที่ที่ LLM ยังทำไม่ได้ กลายเป็นความสามารถในการแข่งขันที่ยิ่งแตกต่าง
- เส้นทางการเติบโตจากผู้ใช้เฟรมเวิร์กไปสู่การเป็นวิศวกรตัวจริง
2 ความคิดเห็น
ไม่เคยคิดเลยว่า SQLAlchemy จะเป็นพวกนอกคอกมาก่อน เลยรู้สึกแปลกดี
ผมคิดว่าน่าจะเป็นคำพูดที่หมายถึง Werkzeug มากกว่า SA นะครับ เพราะปกติก็ใช้ Flask หรือ FastAPI กันอยู่แล้ว จะให้ไปสายแหวกแม้กระทั่ง ORM นี่ไม่ง่ายจริง ๆ