เลือกภาษาให้เหมาะกับโปรเจกต์

เลือก “ภาษา” ให้เหมาะกับโปรเจกต์ต้องคิดอะไรบ้าง

admin

17 Apr 2022 | 1 นาทีอ่าน

ภาษาคอมพิวเตอร์ในแต่ละประเภทโปรเจกต์ ต้องเลือกอย่างไร ? การเริ่มต้นโปรเจกต์ใหม่หรือการพัฒนาซอฟแวร์ให้เป็นไปตามแผนที่วางไว้อย่างสมบูรณ์นั้นดูเหมือนจะเป็นสิ่งที่พูดง่ายมากกว่าทำเสียมากกว่า เนื่องจากอาจต้องเริ่มด้วยการพิจารณาด้านเทคนิคมากมาย ไม่ว่าจะเป็น วิธีเลือก 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 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 ไปร่วมงานด้วยสามารถจ้างทาเลนต์ได้ที่นี่

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

บทความที่เกี่ยวข้อง

การคิดค่าตอบแทนรายชั่วโมง ฉบับ Talance

การคิดค่าตอบแทนรายชั่วโมง ของชาวฟรีแลนซ์ต้องทำยังไง ? เหนื่อยไหมกับปัญหาเดิม ๆ ที่คุณต้องเจอในฐานะฟรีแลนซ์? ในการทำงานฟร

admin

21 Mar 2022 | 1 นาทีอ่าน