24 ธ.ค. 2019 เวลา 03:23 • วิทยาศาสตร์ & เทคโนโลยี
JS Framework / Library ที่นิยม?
ตัวที่ได้รับความนิยมและได้ยินกันบ่อย ๆ ที่สุดจะมี 3 ตัว คือ Angular, React, VueJS มาดูกันเลยว่าแต่ละตัวแตกต่างกันอย่างไรบ้าง
1.Angular
Angular สร้างขึ้นมาเพื่อใช้แบบตัวเดียวจบสำหรับทั้งโปรเจค มีของมาให้ครบทั้งหมด บางคนเลยเรียก Angular ว่าเป็น JS Framework ครับ ซึ่งแตกต่างกับ React หรือ VueJS ที่เป็น JS Library คือ ใช้เป็นส่วนแสดงผลเท่านั้น สำหรับองค์ประกอบอื่น ๆ ของ Library เช่น การจัดการ flow / state ของข้อมูล อันนี้เราต้องเอา Library อื่นมาเชื่อมอีกทีครับ เช่น Redux
ในการใช้ Angular เวอร์ชั่น 5 เราต้องเรียนวิธีเขียน Typescript ซึ่งเป็น JavaScript ที่มี static typing = การเช็คประเภทตัวแปรตอน compile ทำให้เราเจอบั๊กได้เร็วกว่าปกติ ประหยัดเวลาในการพัฒนาไปพอสมควร เรียกได้ว่ามีทั้งข้อดี แต่ก็มีข้อเสียที่ต้องเรียนรู้ภาษาใหม่ ทำให้มี Learning Curve สำหรับทีมสูงขึ้น
ด้วยความที่ Angular มีส่วนประกอบต่าง ๆ มาให้เยอะมาก เวลาที่ใช้ในการเรียนรู้ก็สูงกว่าตัวอื่น ๆ ไปด้วยเช่นกัน แต่ถ้าเทียบว่าตัวอื่นก็ต้องเรียนรู้ library เสริมด้วย แอดคิดว่าก็ใช้เวลาไม่น้อยไปกว่ากันเท่าไหร่
Angular พัฒนาโดย Google ทำให้มีความน่าเชื่อถือว่าใช้ ๆ ไปแล้วจะไม่ปิดตัวหนีไป บบดื้อ ๆ แน่นอน เพราะหลาย ๆ โปรเจคใน Google ก็ใช้อยู่เช่นกัน
บริษัทใหญ่หลาย ๆ เจ้าใช้ Angular กันอยู่ เช่น Youtube, Paypal, Google ฯลฯ ทำให้งานด้าน Angular มักพบได้บ่อย ๆ ในทีมของบริษัทใหญ่ (หรือบริษัทเล็กที่เป็น outsource ของบริษัทใหญ่อีกที)
เว็บไซต์ Angular: https://angular.io/
2.VueJS
VueJS เป็น JS Library ที่ใหม่กว่าพี่ ๆ Angular ,React หน้าตาการใช้งานก็จะคล้าย ๆ กับเอา Angular กับ React มารวมกัน
ข้อดีของ VueJS คือ เรียนรู้ได้ง่าย และใช้งานได้สะดวก จับโยนใส่โปรเจคไหนก็ใช้งานได้เลย ไม่ต้องขึ้นโปรเจคใหม่ก็ได้
เวลาเขียน VueJs เราไม่ต้องใช้ภาษาใหม่เลย ใช้ HTML + CSS + JS ธรรมดาก็เพียงพอแล้วครับ ซึ่งน่าจะทำให้คนที่เริ่มต้นใหม่ ๆ ใช้งานได้ง่ายขึ้นด้วย
ผู้พัฒนา VueJS เป็นอดีตพนักงานของ Google ซึ่งเป็นชาวจีน ทำให้บริษัทใหญ่ ๆ ในจีนใช้ VueJS กันเยอะครับ ตัวอย่างเช่น Alibaba, Baidu ส่วนในไทยเราเองก็มีงาน Vue.js Meetup ที่จัดกันอยู่บ่อย ๆ เช่นกัน
ด้วยความที่ VueJS ไม่มีบริษัทใหญ่อยู่เบื้องหลัง อาจจะทำให้ผู้ใช้รู้สึกว่าอนาคตไม่มั่นคงอยู่บ้าง แต่ไม่ต้องกลัวเพราะ community VueJS ตอนนี้ค่อนข้างใหญ่มาก ๆ เทียบเท่า React เลยครับ ต่อให้ผู้พัฒนาหลักออกไปก็ยังมีคนช่วยดูแลแน่นอน
เว็บไซต์ VueJS: https://vuejs.org/
3.ReactJS
ReactJS มีข้อดีตรงที่เรียนรู้ง่าย เพราะเป็นแค่ส่วนการแสดงผล (view) และมีความยืดหยุ่นสูง สามารถเขียนด้วย JavaScript เวอร์ชั่นเก่า (ES5) หรือเวอร์ชั่นใหม่ (ES6 ES7 …) ก็ได้ ไม่ต้องเรียน TypeScript แบบ Angular
อย่างไรก็ตาม คนใช้ React ต้องเรียน JSX ซึ่งเป็นภาษา HTML + JS นั่นเอง แต่ใช้เวลาไม่เยอะมากเพราะ syntax ค่อนข้างเหมือนเดิมเลยครับ
พัฒนาและใช้งานโดยเว็บไซต์ Facebook ทำให้ React มีฐานผู้ใช้เยอะมาก โดยเฉพาะในไทยเราที่คนติด FB เป็นอันดับต้น ๆ ของโลก เรามีงาน React Bangkok ที่จัดขึ้นมาหลายปีแล้วและมีผู้เข้าร่วมเยอะมาก แต่แอดได้ข่าวมาว่าปีหน้าจะกลายเป็นงาน JavaScript Bangkok แทนเพื่อรองรับ library อื่น ๆ ด้วยครับ
ข้อเสียเล็กน้อยที่แอดเจอเอง คือ เว็บไซต์หลักของ React สอนใช้แบบเข้าใจยากไปหน่อย ถ้าสนใจศึกษาเอง อ่านได้ใน บทความสอนใช้ React แบบเรียนรู้เอง ได้เลยฮะ
มีบริษัทใหญ่ ๆ ใช้ React เยอะเหมือนกัน เช่น Facebook, Netflix, Dropbox, Airbnb ฯลฯ และงานในสายนี้ก็หาได้ไม่ยากครับ เพราะเป็น Library ที่ได้รับความนิยมสูง
เว็บไซต์ ReactJS: https://reactjs.org/
เลือกใช้ JS Framework / Library ตัวไหนดี
หลังจากเรารู้จักกับ 3 ตัวหลัก ๆ ที่คนใช้กันแล้ว มาถึงคำถามโลกแตกของยุคนี้ว่าใช้ตัวไหนดีครับ
จริง ๆ คำตอบแรกจากแอดก็คงเป็น “ถนัดตัวไหนก็ใช้ตัวนั้น” ครับ เพราะถ้าเรามีความรู้ตัวไหนอยู่แล้ว นำไปต่อยอดจะง่ายกว่ามาเรียนรู้ตัวอื่นใหม่ ยกเว้นว่าเราต้องการเรียนตัวใหม่จริง ๆ หรือสถานการณ์บังคับ
ทีนี้สำหรับคนที่ยังไม่เคยเรียนตัวไหนมาก่อนเลย และอยากเรียนเพื่อให้เข้าใจพื้นฐานของ JS Framework / Library เหล่านี้ – แอดแนะนำให้เริ่มจาก VueJS ก่อนเลยครับ เพราะเรียนรู้ได้ง่ายที่สุด และมีฟีเจอร์ที่คล้ายกับตัวอื่น ๆ
สำหรับคนที่อยากเรียนเพื่อนำไปหางาน – แอดแนะนำ React เพราะมีบริษัทใช้เยอะ และมีความยืดหยุ่นกว่า Angular (ทำให้เราต้องเรียนเยอะขึ้นด้วย เพราะต้องไปเชื่อมกับ Library อื่นอีก)
ส่วนใครที่มีเวลา และอยากเข้าใจว่าควรเลือกตัวไหนดี แนะนำให้ลองนำทั้ง 3 ตัวนี้มาสร้างแอพแบบเดียวกัน หรือลองเข้าเว็บ TodoMVC (http://todomvc.com/) เค้ามีการเอาแต่ละตัวมาทำเป็นแอพจดตารางงาน + มี source code ให้เราเปรียบเทียบกันได้ง่าย ๆ เลยครับ
#designil
โฆษณา