พอดีว่ากำลังศึกษาเกี่ยวกับ framework พวกนี้อยู่ครับ
สมมุติว่าอยากสร้าง Web App สักตัวนะครับ (เช่น ระบบจัดการห้องพัก จัดของสต็อก)
อยากถามความเห็นพี่ๆ โปรแกรมเมอร์ที่ทำงานอยู่ในสายงานแบบนี้หน่อยครับว่า
-Angular กับ React มันมีข้อดีข้อเสียจากการใช้งานจริงยังไง
-framework ตัวไหนเหมาะกับงานประเภทไหนมากกว่ากัน
-ในประเทศไทย มีการใช้งาน framework เหล่านี้ในงานแบบไหนบ้าง และเป็นที่แพร่หลายขนาดไหน
-ถ้าเริ่มจากโปรเจคเล็กๆ แบบไหนจะสเกลไปหาโปรเจคใหญ่ๆได้มากกว่ากันครับ
-แล้วถ้าหากว่ามองไปถึง Native Cross-Platform App ฝั่ง Xamarin เป็นอย่างไรบ้างครับ
ขอบคุณครับ
ผมทำแบบทีมกำลังน้อยครับ (น้อยมาก) เลือกขอใช้เทคโนโลยีน้อยๆ + ดูแลง่ายไว้ก่อนผมเลยเลือก Angular ครับ ตัวเดียวจบ ลง Angular-cli แล้วลุยได้เลย ทำแอปมือถือด้วยแต่ทำเป็น PWA ทีเดียวพอเลยยังไม่ต้องยุ่งกับ NativeScript
เข้าใจว่า React เป็นแค่ view ครับ ส่วน angular มีครบเลย
แนะนำอีกตัวคือ Vue.js ครับ เหมือนรวม React กับ Angular เข้าด้วยกัน ส่วนตัวคิดว่าง่ายกว่า React เยอะครับ doc ดีกว่าด้วย แต่ชุมชนเล็กกว่า React เยอะครับ
Jusci - Google Plus - Twitter
เสริมให้อีกนิดว่า Performance Vue.js ดีมากๆด้วยครับ แต่ส่วนตัวถ้าศึกษาสายนี้ใหม่ๆ Angular ตอบโจทย์ที่สุดเพราะตัวเดียวครบ
ผมเริ่มศึกษาจาก Angular นะ ตอนแรกเลย bias ไปทาง ng แต่พอค่อยๆ ศึกษาไป จากผลสำรวจเหมือนเดฟจะพอใจในแนวทาง React ซะมากกว่า อ่านคำถามแบบเดียวกันนี้ใน quora (Angular vs React) กระแสก็ยังไปทาง React เลยตัดใจไม่ศึกษา React ไม่ลงจริงๆ Angular ก่อนหน้านี้ growth ดีจริง กระแสก็ไปทาง ng ซะมาก แต่พอมี Vue มาให้เป็นตัวเลือกเพิ่มในแนวทางคล้ายๆ กันอีกก็เลยไม่รู้เอาไงดี เพราะช่วงหลังมา Vue ก็ growth ดีมาก และพอนึกถึงความพอใจของเดฟที่มีต่อ React มันก็คาใจ ดูไปดูมาสรุปสุดท้ายเลยว่าจะตกลงปลงใจกับ Mithril ที่ใช้แนวทางเดียวกับ React เพราะ lightweight สุด และจะได้เข้าใจแนวทาง React เพื่อจะได้นำมาเทียบดูความแตกต่างกับแนวทาง ng/v ด้วย
ระบบจัดการห้องพัก, จัดของสต็อก
ถ้าเป็นผม front Angular, back asp.net หรือ c# app, database azure (ตัวฟรี)
ผมใช้มาทั้ง Angular และ React ทำโปรเจคใหญ่ทั้งคู่ครับ (โปรแกรมรายรับรายจ่าย กับโปรแกรมร้านอาหาร)
ส่วนตัวชอบ Angular มากกว่าเพราะชอบคอนเซปต์ custom html elements/attributes (directive) และก็ครบกว่า React (เช่น พวก Route, Ajax, etc. ซึ่งมีอยู่แล้วใน Angular แต่ใน React ต้องตัดสินใจเองว่าจะใช้ร่วมกัน lib อื่นตัวไหนดี)
แต่ก็ยอมรับว่า React นั้นคอนเซปต์ดูจะทันสมัยกว่า และจัดการข้อมูล การออกแบบ flow ของข้อมูลง่ายกว่า เพราะเป็น one-way data flow
เรื่อง learning curve ผมว่าพอๆกัน แต่ React จะมีความมึนงงหน่อยในช่วงแรก เพราะต้องใช้ร่วมกัน lib อื่นหลายตัว และถ้าเขียน HTML คล่องๆอยู่แล้ว ไปทาง Angular น่าจะง่ายกว่า แต่ถ้าชอบแนว JS มากกว่าเป็นทุน React ก็อาจจะคุ้นชินกว่าครับ
เดี๋ยวคิดว่าโปรเจคหน้าจะไปลอง Vue.js ดูบ้าง น่าสนใจดีครับ
ส่วน cross platform ผมเคยใช้แค่ Cordova (phonegap) ทำมาหลายโปรเจค ส่วนตัวไม่ค่อยพอใจเท่าไหร่ เพราะยังไง performance ก็สู้ native ไม่ได้ งานหลังๆเลยรับแต่ native(swift/java) เลย อันนี้คนเขียนชอบ แต่ลูกค้าไม่ชอบเพราะแพง 555
ถ้าไม่อยากปวดหัวกับเรื่องไม่เป็นเรื่อง อย่าใช้ React ครับ ... Learning curve สูง แถมต้อง stimulate + treat มันเยอะมาก
react นั้นง่ายมาก เหมือนเขียน html แล้วเอาฟังก์ชันมาครอบไว้เฉยๆ ตอนแรกมีแต่คนเขียนว่ายากๆ ทำให้กลัวการเข้าไปศึกษา แต่พอได้จับจริงๆแล้วพบว่า เห้ย มันไม่ยากเลย เหมือนเราเขียน html เลยนี่หว่า
แนะนำว่าถ้าอยากศึกษา react ให้เริ่มจาก next.js เพราะมีของครบทุกอย่าง อีกทั้งยังเป็น ssr ในตัว พอทำเป็นแล้วก็จะง่ายเลย ไปต่อ react native ก็ได้ ส่วนการจัดการ state แนะนำให้ใช้ mobx(โมเบ็ก) เพราะมันทั้งง่ายและทรงประสิทธิภาพ