วันพฤหัสบดีที่ 8 มีนาคม พ.ศ. 2561

ทำไมต้องเขียน JavaScript

ทำไมต้องเขียน JavaScript
ส่วนตัวแล้วผมเพิ่งมีประสบการณ์นการเขียน JavaScript แบบจริงๆจังๆ ได้แค่ 2 ปี แต่ก็ติดใจชนิดที่เรียกว่ามีโปรเจคไหนก็พยาม Convince ทีมหรือลูกค้าให้ใช้ JavaScript ได้ด้วยเถิด เหตุผลหลักในการเลือกภาษาใหม่สำหรับตัวเองจากที่เคยพัฒนาด้วย .NET เป็นหลัก มาใช้ภาษาอื่นผมตัดสินใจด้วยเหตุผล ดังต่อไปนี้

  • Cross platform - รองรับได้ทุกระบบปฏิบัติการ (ที่นิยมใช้)
  • Wide community - มีการใช้อย่างแพร่หลาย ศึกษาหาข้อมูลได้ง่าย
  • Support no-sql - รองรับการใช้งาน No-SQL
  • Free - ไม่มีค่าใช้จ่าย
  • Standard - เป็นมาตรฐานที่สากลยอมรับ
ก่อนเลือกภาษา JavaScript ผมลองมาหลายภาษาอย่าง Java , Scala , Ruby , Python แต่ที่คิดว่าถูกจริตของผมมากที่สุด ก็คือภาษา JavaScript มันมี Library มากมายที่สามารถช่วยงานผมในการนำไปพัฒนาซอฟท์แวร์ได้ทุกอย่างเลยทีเดียว มีเยอะชนิดว่าเป็นปัญหาเลือกไม่ถูกกันเลยทีเดียว
สิ่งหนึ่งที่ผมมักจะได้จากการจัดงานและการทำพรีเซนเทชั่นก็คือ เรามักจะได้ความรู้อะไรใหม่ๆเสมอ อย่างก่อนจัดงาน ก็ทำ Slide แล้วหาข้อมูลเกี่ยวกับ 
Cross Plaform ของ JavaScript ก็พบว่าเจอของใหม่เข้าแล้ว นี่เลยครับ NativeScript เขียน JavaScript แล้วแปลงเป็น IOS , Android , Window Phone (Comming Soon) ไม่ได้เป็น Web View นะครับ ย้ำครับย้ำ โอ้วบระจ้าว มันยอดมาก
Wide Community
หากลองเข้าเว็บ www.githut.info จะพบว่า JavaScript จะมีการ Commit ขึ้น Github มากที่สุด ข้อมูล ณ วันที่ 18 กค 2558 และจากประสบการณ์ตรงของผมเองและสอบถามผู้ฟังในงาน ไม่มีเว็บแอพโปรเจคไหนที่ไม่มี JavaScript ปะปนอยู่ในโค้ดเลย อย่างน้อยก็ต้องมีฟังก์ชั่นบางอย่างที่ทำที่ฝั่ง Client Side
Support NO-SQL
เรื่องของการรองรับ NO-SQL จริงๆแล้วภาษาไหนก็รองรับ แต่จุดที่อยากให้สังเกตสำหรับโลกการเก็บข้อมูลด้วยฐานข้อมูลอีกประเภทอย่าง NO-SQL ก็คือ ไม่ว่า NO SQL จะพัฒนาด้วยภาษา C หรือ Java แต่ Format ที่มันเก็บ คือ JSON = JavaScript Object Notitaion เฮ้ย เขาเอา JavaScript Object แบบนี้ {firstName:"Apaichon", lastName:"Punopas" , getIDCard : function(){return "xxxxx-xxx-xxxx";}} มาเก็บในฐานข้อมูลได้เลยนะเออ  
Free and Standard
JavaScript ฟรี และมีองค์กรอย่าง ECMA คอยกำกับดูแลมาตรฐาน

มุมมองถัดมาก็คือ แล้วตลาดงาน JavaScript ในบ้านเราละ  https://codestar.work/research ดูข้อมูลอัพเดตได้ที่ Codestar นะครับแหล่งข้อมูลไอทีอย่างดี

ทีนี้เรามาดูมุมมองเทคโนโลยีต่างๆกันบ้าง
Web MVC Framework มันมีอะไรบ้าง
  • Angular Framework - มาแรงและค่อนข้างครบเครื่อง ทำ Data Binding Web Component Module Unit Test และค่าย Google ส่งเข้าประกวด
  • Backbone - เป็น JavaScript Framework ที่มีการใช้มานาน มีขนาดเล็ก แต่ยังขาดหลายๆฟังก์ชั่นที่อำนวยความสะดวก เช่น Data Binding , Web Component
  • EmberJS - ตัวนี้ค่อนข้างครบเครื่องเหมือน Angular แต่ดูจากหลายๆเว็บจะ Performance ด้อยกว่า และไม่ได้มาจากค่ายยักษ์ก็เลยใช้น้อยกว่า
  • Knockout ก็เป็นอีกตัวที่นิยมใช้ แต่ขาดเรื่อง Routing
ถ้าอยากจะทำ Mobile JavaScript ก็เอาไปใช้ได้นะ
แล้วจะเอาอะไรเป็น Server ละ
รู้จักอยู่ตัวเดียวครับ ก็เป็นข้อดีอย่างหนึ่งที่มีแค่ตัวเดียว เพราะไม่ต้องปวดหัวไปเปรียบเทียบหลายตัว ปัญหาใหญ่ของ JavaScript คือมีเครื่องมือมากเกินไป จนทำให้ไม่รู้ว่า โปรแกรมเมอร์จะลงทุนกับตัวไหนดี ฝั่ง Server ก็ต้อง Node JS เลย https://nodejs.org/

ในการเขียนโปรแกรมเราต้องเจอการจัดการกับ Array มากมาย เช่น ต้องการหา Array หนึ่งตัว เพื่อนำไปแก้ไขข้อมูล ต้องการกรองข้อมูลเอาเฉพาบางอย่างเพื่อไปทำบางอย่าง ต้องการ merge array และอื่นๆอีกมากมาย ก็ลองใช้นี่เลย
เมื่อทำซอฟท์แวร์ไประยะหนึ่ง เราควรพัฒนา User ให้กลายเป็น Super User ด้วยการใช้เครื่อมืออย่าง Diagram หรือ Workflow มีอะไรบ้างละ


ทำแอพไประยะหนึ่งก็ต้องการนำข้อมูลมาวิเคราะห์ ต่างๆนาๆ การนำข้อมูลนำเสนอในรูปแบบกราฟฟิคก็จะช่วยให้สื่อสารกับคนทุกระดับได้ง่ายขึ้น ก็ต้องทำกราฟ


ทำแต่งานน่าเบื่อ แล้วถ้าอยากทำเกมส์ละ
ถ้าอยากจะทำ MEDIA ละ
ใน HTML5 จะรองรับ video และ audio อยู่แล้วหลายท่านอาจจะไม่สนใจ Library อื่นๆเท่าไร แต่ลองดูครับอาจจะมีอะไรน่าสนใจกว่า


อยากจะทำ AI , Machine Learning ภาษา JavaScript ก็ทำได้นะเออ

MAP API หลายท่านก็น่าจะรู้จักกันดีอยู่แล้ว

  • google map
  • here map
  • ArcGIS
  • leafletjs
  • openlayers
  • mapbox

Internet Of Things and Robotics สาย Hardware ก็ทำได้นะครับ
  • Johnny-five
  • intel-iot-devkit
  • Cylon.js
  • webiopi
  • autobahn.ws/js
AR Augmented Reality มีกับเขาด้วย

  • oculus-bridge
  • js-aruco
  • tree.js
สรุปสั้นๆเลยว่า JavaScript ทำได้ทุกอย่าง เป็นการลงทุนที่คุ้มค่าในการศึกษาภาษาเดียวแล้วทำได้หลายๆอย่าง แล้วทำไมเราจะไม่เลือกมันเป็นภาษาแรกๆในการศึกษาละ JavaScript ยังสามารถเขียนได้ทั้งแบบ OOP และ Funtional ซึ่งหลายๆภาษาใหม่ๆก็ปรับตัวเป็นลูกครึ่งกันหมด แต่ข้อเสียของมันก็มีนะ ไว้มาแชร์ให้ฟัง แต่มีเทคโนโลยีหนึ่งที่เพิ่งค้นตอนทำ Slide คือ NativeScript.org ซึ่งสามารถนำ JavaScript ไปเขียน IOS , Android ได้โดยที่แปลงเป็น Native ให้เลย ซึ่งน่าสนใจมาก ผมคงเข้าไปศึกษามันเร็วๆนี้ ดาวโหลด Slide ในงานได้ที่ http://www.slideshare.net/ApaichonPunopas/javascript-day-session-1 
ไว้มาแชร์ของท่านอื่นๆในตอนต่อๆไป เรียกได้ว่าทุกคนมีของดีทั้งนั้น แค่นั่งฟังผมก็เก่งขึ้นมานิดนึงเลย
 
ที่มา:http://khadevmag.blogspot.com/2015/07/javascript-day-1.html

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...