
เลือก “ภาษา” ให้เหมาะกับโปรเจกต์ต้องคิดอะไรบ้าง
ภาษาคอมพิวเตอร์ในแต่ละประเภทโปรเจกต์ ต้องเลือกอย่างไร ? การเริ่มต้นโปรเจกต์ใหม่หรือการพัฒนาซอฟแวร์ให้เป็นไปตามแผนที่วางไว้อย่างสมบูรณ์นั้นดูเหมือนจะเป็นสิ่งที่พูดง่ายมากกว่าทำเสียมากกว่า เนื่องจากอาจต้องเริ่มด้วยการพิจารณาด้านเทคนิคมากมาย ไม่ว่าจะเป็น วิธีเลือก Developer ที่ต้องพิจารณาทั้งประสบการณ์ทำงานของโปรแกรมเมอร์ ระดับความสามารถในการโค้ด รวมถึงภาษาที่ใช้ในการโค้ดก็เป็นส่วนสำคัญอย่างมาก ซึ่งหากเราต้องการพัฒนาซอฟแวร์โดยมีตัวเลือกหลายภาษาสำหรับการพัฒนาโปรเจกต์แล้วนั้นยิ่งเป็นเรื่องที่จะต้องตัดสินใจให้เด็ดขาดเป็นอย่างยิ่ง
เกิดอะไรหากเลือกภาษาคอมพิวเตอร์ผิด
อาจถึงเวลาที่คุณต้องตระหนักว่าโปรเจกต์หลายโปรเจกต์จำเป็นต้องเขียนด้วยภาษาที่เหมาะสมที่สุด แม้ว่าส่วนใหญ่จะไม่เกิดข้อผิดพลาดมากนัก แต่การเลือกภาษาให้เหมาะสมที่สุดนั้นก็ต่างมีข้อดีและข้อเสียแตกต่างกันออกไป ซึ่งบางครั้งการเลือกภาษาคอมพิวเตอร์ผิดอาจส่งผลให้ข้อเสียมีจำนวนมากและเกิดผลกระทบอันร้ายแรง
ผลกระทบต่อองค์กร
แน่นอนภาพลักษณ์และความน่าเชื่อถือขององค์กรนั้นย่อมลดน้อยลง ซึ่งหากเป็น software house หรือ tech company นั่นคือความไว้ใจของลุกค้าที่ลดน้อยลงและอาจส่งผลกระทบแบบกลุ่มต่อลูกจ้างในบริษัทที่ได้ปริมาณงานต่อเดือนลดลงและอาจถึงขั้นเลิกจ้างพนักงานบางรายเพื่อความอยู่รอดของบริษัท
เกิดปัญหาใหญ่
แม้กระทั่งผลกระทบต่อลูกค้าที่อาจส่งผลให้ความเร็ว ฟีเจอร์ และความสามารถในการ maintain ในอนาคตไม่เป็นไปตามที่ตกลงกันไว้ตั้งแต่เริ่มต้น ซึ่งจะทำให้เกิดการฟ้องร้องกันในภายหลังได้
เลือกภาษาอย่างไรไม่ให้ผิดพลาด
ปัจจุบันไม่มีภาษาคอมพิวเตอร์ที่ทำให้ระบบหรือเครือข่ายนั้นดีที่สุดแต่หากเลือกภาษาคอมพิวเตอร์ได้ถูกต้องตามความต้องการของลูกค้าหรือตรงวัตถุประสงค์ที่จะทำแล้วนั้น ย่อมเกิดผลลัพธ์และประสิทธิภาพที่ดีที่สุด แต่จะทำอย่างไรให้การเลือกภาษาคอมพิวเตอร์นั้นมีประสิทธิภาพและเกิดข้อผิดพลาดน้อยที่สุด
อย่าจมอยู่กับอดีต
หลายครั้งโปรแกรมเมอร์มักใช้ความสำเร็จหรือประสบการณ์ในอดีตในการตัดสินใจเพื่อพัฒนาโปรเจกต์อยู่เสมอซึ่งนั่นก็ดูเหมือนจะเป็นสิ่งที่ดีอย่างมากตามที่ใครหลายคนเคยว่าไว้ว่า “ประสบการณ์ยิ่งสูง ยิ่งเกิดข้อผิดพลาดน้อย”
อย่างไรก็ตามการจมอยู่กับภาษาคอมพิวเตอร์ แนวความคิด หรืออัลกอลิธึมในอดีตนั้นก็อาจะเป็นสิ่งที่ทำให้เกิดข้อผิดพลาดได้ เนื่องจากปัจจุบันเทคโนโลยีต่าง ๆ รวมถึงแนวคิดในการเขียนโค้ดนั้นเริ่มเปลี่ยนแปลงไปเรื่อย ๆ อย่างรวดเร็ว
ควรใช้ เทคนิค มากกว่า สัญชาตญาณ
การเลือก ภาษาคอมพิวเตอร์ในแต่ละประเภทโปรเจกต์ นั้นดูเหมือนจะมาจาก “สัญชาตญาณ” หรือ “ประสบการณ์” ของ Project Manager หรือ Senior Developer มากกว่าการเข้าใจความต้องการและพิจารณาด้านเทคนิคมากมาย ซึ่งด้วยสัญชาตญาณที่พ่วงมาด้วยประสบการณ์ทำงานที่ผ่านมาในหลาย ๆ โปรเจกต์นั้นทำให้หากเป็นการสร้างโปรเจกต์ใหม่ก็อาจทำให้เกิดข้อผิดพลาดเกิดขึ้นได้เช่นเดียวกัน
ปัจจุบันมีการใช้ภาษาอะไรบ้าง?
ภาษาคอมพิวเตอร์นั้นมีอยู่มากมายแต่สำหรับการพัฒนาโปรเจกต์หรือระบบให้ตรงวัตถุประสงค์นั้น ในแต่ละภาษากลับมีหน้าที่ อัลกอลิธึม โมดูล และการใช้งานที่แตกต่างกันออกไป ดังนั้นการเลือกภาษาคอมพิวเตอร์ให้ตรงกับโปรเจกต์นั้นในปัจจุบันมีการใช้ภาษาโปรแกรมดังต่อไปนี้
- Web Applications : JavaScript, PHP, Ruby, HTML/CSS, TypeScript
- Mobile Applications: Swift, Java, JavaScript, Object-C
- Operating Systems: C, C++
- Distributed Systems: Go
- Enterprise Applications: Java, C#, C++, ErLang
- Analytics & Machine Learning: Python, R, Clojure, Julia
- Math & Scientific Computing: Matlab, FORTRAN, ALGOL, APL, Julia, R, C++
- Data Visualization: Python, R, Java, C#
- Big Data: Java, Python, R, Scala, Clojure
- Data Storage: SQL, C#, Java, Python
โดยภาษาดังต่อไปนี้เป็นภาษาที่ได้รับความนิยมทั้งในอดีตและปัจจุบัน แต่ตามการเก็บข้อมูลจาก stackoverflow ล่าสุดในปี 2019 พบเห็นได้ว่าในแต่ละภาษานั้นถูกใช้งานและมีค่านิยมที่แตกต่างกันออกไปอย่างเห็นได้ชัดเจน
ภาพจาก : stackoverflow
ปัจจัยอะไรบ้างที่ต้องคำนึงในการเลือก ภาษาคอมพิวเตอร์ในแต่ละประเภทโปรเจกต์
ดังนั้นในการพัฒนาซอฟแวร์ หากเราต้องเลือกภาษาคอมพิวเตอร์สำหรับโปรเจกต์แล้วนั้น เราต้องกลับมาถามกับตัวเองสักประมาณ 5-6 ข้อ ก่อนที่เราจะตัดสินใจลงไป เช่น
ความต้องการของลูกค้า
ปัจจัยที่สำคัญที่สุดนั่นก็คือความต้องการของลูกค้า โดยอาจเป็นเพียงการกล่าว scope of work ของโปรเจกต์มาเพื่อให้คุณคิดต่อว่าต้องใช้ภาษาอะไรเพื่อสามารถพัฒนาได้ตามงบประมาณ ความต้องการ และเวลาการพัฒนาโปรเจกต์อย่างเหมาะสม
เป็นโปรเจกต์ประเภทใด
พิจารณาว่าเป็น Web App, Mobile App หรืออื่น ๆ ซึ่งประเภทของโปรเจกต์ที่คุณกำลังพัฒนามีอิทธิพลอย่างมากต่อภาษาที่สามารถเลือกได้ ภาษาโปรแกรมทั่วไป เช่น Java, JavaScript, Python และ C# สามารถสร้างแอปพลิเคชันประเภทต่าง ๆ บนแพลตฟอร์มต่างๆ ได้ นอกจากนี้ยังมีกรณีที่บางภาษาทำงานได้ดีกว่า ตัวอย่างเช่น การสร้างแอพ Android นั้นต้องใช้ความรู้เกี่ยวกับ Java และการสร้างแอพ iOS นั้นต้องใช้ชุดทักษะ Swift หรือ Objective-C ในขณะที่ความรู้เกี่ยวกับ C หรือ C++ นั้นมีความสำคัญหากคุณทำงานกับฝั่ง Back-end Developer
มีแผนจะ maintain ในอนาคตหรือไม่
ไม่ว่าจะเลือกภาษาคอมพิวเตอร์อะไรก็ตามสิ่งที่ต้องคำนึงมากที่สุดหากยังคงต้องการพัฒนาระบบอยู่นั่นก็คือการ “maintain” โดยเราจำเป็นต้องใส่ใจกับความสามารถในการบำรุงรักษาของแอปพลิเคชัน และนี่คือเหตุผลที่เราควรดูภาษาหรือเทคโนโลยีรุ่นล่าสุดเสมอ ตรวจสอบให้แน่ใจว่าสิ่งที่เราเลือกนั้นเป็นปัจจุบันและสามารถใช้งานได้อย่างยาวนาน
งบประมาณในการพัฒนาโปรเจกต์
ทั้งนี้ค่าใช้จ่ายส่วนใหญ่นั้นมักเป็นการใช้จ่ายเกี่ยวกับการ maintain ในอนาคตที่จะต้องจ่ายโดยอาจคัดเลือกจากทรัพยากรที่มีอยู่รอบตัว ตัวอย่างเช่น ในต่างประเทศการจ้าง C# Developer และ Java Developer ทำได้ง่ายกว่า Ruby, Python และ PHP Developer แต่ที่จะกล่าวทั้งหมดนั่นคือคุณต้องนึกถึงความง่ายในการ maintain และความอยู่รอดในระยะยาวของโปรเจกต์คุณ
ระยะเวลาในการพัฒนาโปรเจกต์
ทุกองค์กรต้องการปล่อยแอปพลิเคชันโดยเร็วที่สุด และนี่คือเหตุผลที่คุณควรใส่ใจกับปัจจัยนี้ โดยหากคุณควรเลือกภาษาที่สามารถช่วยคุณจบโปรเจกต์ได้โดยเร็วที่สุด โดยมีการสนับสนุนไลบรารี แพ็คเกจ หรือโมดูลเพียงพอสำหรับภาษาหนึ่ งๆ คุณจะไม่ต้องสร้างทุกอย่างตั้งแต่เริ่มต้น และจะช่วยประหยัดเวลาในการพัฒนาแอปพลิเคชันของคุณ
ทั้งนี้ยังต้องใส่ใจกับประสบการณ์ในภาษาที่คุณเลือก ยิ่งคุณคุ้นเคยกับภาษามากเท่าไหร่ คุณก็จะใช้เวลาในการพัฒนาน้อยลงเท่านั้น
ความปลอดภัยของภาษาคอมพิวเตอร์
แน่นอนว่าความปลอดภัยของแอปพลิเคชันถือเป็นหนึ่งสิ่งที่ต้องคำนึงในระหว่างเลือกภาษาโปรแกรมสำหรับโปรเจกต์ ทุกแอปพลิเคชันมีข้อกำหนดด้านความปลอดภัยที่แตกต่างกัน ตัวอย่างเช่น แอปพลิเคชันที่เกี่ยวข้องกับการดูแลสุขภาพต้องปฏิบัติตาม HIPAA และแอปพลิเคชันทางการเงินต้องการการปฏิบัติตาม PCI
อย่างไรก็ตามการปกป้องแอปพลิเคชันของคุณจากภัยคุกคามทางไซเบอร์และการแฮ็ก เป็นสิ่งที่ควรปฏิบัติตามหลักเกณฑ์ด้านความปลอดภัยก่อนที่จะเลือกภาษาการเขียนโปรแกรมสำหรับโปรเจกต์ของคุณ
ทรัพยากรบุคคล (จำนวนคนและประสบการณ์)
ทรัพยากรบุคคลอาจเป็นสิ่งที่เกี่ยวข้องกับภาษา หรือ tech stack ที่ใช้โดยตรงเนื่องจากเราจำเป็นต้องใช้ “คน” ในการพัฒนาโปรเจกต์ขึ้นมา โดยเราต้องพิจารณาถึงประสบการณ์และจำนวนคนที่เข้าร่วมโปรเจกต์ด้วย ซึ่งทั้งสองจะต้องสัมพันธ์กันอย่างพอดี และจะทำให้โปรเจกต์ลุล่วงไปได้ด้วยดีอย่างแน่นอน
Talance เราหวังว่าบทความนี้จะสามารถช่วยให้องค์กรที่กำลังตามหา Developer ทราบถึง วิธีเลือก Developer และสามารถเลือก ภาษาคอมพิวเตอร์ในแต่ละประเภทโปรเจกต์ ได้อย่างเหมาะสม หากสนใจจ้าง Freelance Developer ไปร่วมงานด้วยสามารถจ้างทาเลนต์ได้ที่นี่