ขายเมาส์ ขายคีย์บอร์ด ขายหูฟัง ขายเกมส์มิ่งเกียร์ (ติดต่อ Line ID: pairach.aud)

วันจันทร์ที่ 20 มกราคม พ.ศ. 2563

เปรียบเทียบ ข้อดี-ข้อเสีย การเขียนโปรแกรมด้วยภาษาต่างๆ

เปรียบเทียบ ข้อดีข้อเสีย การเขียนโปรแกรมด้วยภาษาต่างๆ 



ภาษา JAVA
ข้อดี
- โปรแกรมจาวาที่เขียนขึ้นสามารถทำงานได้หลาย platform โดยไม่จำเป็นต้องแก้ไขหรือ compile ใหม่ ทำให้ช่วยลดค่าใช้จ่ายและเวลาที่ต้องเสียไปในการ port หรือทำให้โปรแกรมใช้งานได้หลาย platform
- ภาษา JAVA เป็นภาษาเชิงวัตถุ ซึ่งเหมาะสำหรับพัฒนาระบบที่มีความซับซ้อน การพัฒนาโปรแกรมแบบวัตถุจะช่วยให้เราสามารถใช้คำหรือชื่อ ต่าง ๆ ที่มีอยู่ในระบบงานนั้นมาใช้ในการออกแบบโปรแกรมได้ ทำให้เข้าใจได้ง่ายขึ้น
- ภาษา  JAVA มีความซับซ้อนน้อยกว่าภาษา C++ ทำให้ใช้งานได้ง่ายกว่าและลดความผิดพลาดได้มากขึ้น
- ภาษา  JAVA มีการตรวจสอบข้อผิดพลาดทั้งตอน compile time และ runtime ทำให้ลดข้อผิดพลาดที่อาจเกิดขึ้นในโปรแกรม และช่วยให้ debug โปรแกรมได้ง่าย
- ภาษาจาวาถูกออก แบบมาให้มีความปลอดภัยสูงตั้งแต่แรก ทำให้โปรแกรมที่เขียนขึ้นด้วยจาวามีความปลอดภัยมากกว่าโปรแกรมที่เขียนขึ้นด้วยภาษาอื่น
- มี IDE (Integrated Development Environment) , application server, และ library ต่าง ๆ มากมายสำหรับ JAVA ที่เราสามารถใช้งานได้โดยไม่ต้องเสียค่าใช้จ่าย ทำให้เราสามารถลดค่าใช้จ่ายที่ต้องเสียไปกับการซื้อ tool และ s/w ต่าง ๆ
ข้อเสีย
- ทำงาน ได้ช้ากว่า native code (โปรแกรมที่ compile ให้อยู่ในรูปของภาษาเครื่อง) หรือโปรแกรมที่เขียนขึ้นด้วยภาษาอื่น อย่างเช่น C หรือ C++ ทั้งนี้ก็เพราะว่าโปรแกรมที่เขียนขึ้นด้วยภาษาJAVA จะถูกแปลงเป็นภาษากลางก่อน แล้วเมื่อโปรแกรมทำงานคำสั่งของภาษากลางนี้จะถูกเปลี่ยนเป็นภาษาเครื่องอีกที หนึ่ง ทีล่ะคำสั่ง (หรือกลุ่มของคำสั่ง) ณ runtime ทำให้ทำงานช้ากว่า native code ซึ่งอยู่ในรูปของภาษาเครื่องแล้วตั้งแต่ compile โปรแกรมที่ต้องการความเร็วในการทำงานจึงไม่นิยมเขียนด้วยJAVA
- tool ที่มีในการใช้พัฒนาโปรแกรม JAVA มักไม่ค่อยเก่ง ทำให้หลายอย่าง โปรแกรมเมอร์ จะต้องเป็นคนทำเอง ทำให้ต้องเสียเวลาทำงานในส่วนที่ tool ทำไม่ได้ ถ้าเราดู tool ของ MS จะใช้งานได้ง่ายกว่า และพัฒนาได้เร็วกว่า (แต่เราต้องซื้อ tool ของ MS และก็ต้องรันบน platform ของ MS)


ภาษา C
ข้อดี
- สั้น กะทัดรัด
- การรองรับ pointer ซึ่ง pointer คือ ความสามารถที่ภาษาอนุญาตให้เราสามารถอ่านเขียนหน่วยความจำได้โดยตรง ซึ่งประสิทธิภาพสูงมาก (สูสีกับภาษา Assembly)

ข้อเสีย
- ซับซ้อน อ่านยาก เวลาอ่านก็เหมือนกับการแก้สมการ
- ภาษา C  มองทุกอย่างเป็น Case Sensitive ทำให้เขียนโปรแกรมแล้วหลงเรื่อง Case เป็นประจำ 3.ภาษา C ไม่มีตัวจัดการจองหน่วยความจำในตัวเอง เมื่อเวลาเราต้องการจองหน่วยความจำแบบ Dynamic ภาษา C ทำ wrapper เพื่อติดต่อกับ OS เพื่อขอจองหน่วยความจำโดยตรง ปัญหาก็คือ การติดต่อกันระหว่างโปรแกรมของเรากับ OS เป็นไปอย่างหลวมๆ ถ้าโปรแกรมลืมบอก OS ว่าเลิกจองหน่วยความจำดังกล่าว หน่วยความจำนั้นก็จะถูกจองไปเรื่อยๆ เราจะเห็นเครื่องคอมพิวเตอร์ทำงานได้เร็วในตอนเช้า แต่พอตกบ่ายก็ช้าลงจนทำงานไม่ไหว จนสุดท้ายต้อง boot ใหม่ สาเหตุหลักของปัญหานี้คือ สิ่งที่เรียกว่าหน่วยความจำรั่ว หรือ Memory Leak นั่นแหละ

ภาษา C++
ข้อดี
-สามารถเขียนโปรแกรมภาษา C ได้ทั้งหมด
-ใช้ง่ายกว่าภาษา C
-มี Pointer(*) กับ Reference(&) ให้ใช้งานได้ตามต้องการ

ข้อเสีย
-C++ เวลาสร้าง function แล้วต้องสร้างไว้ตรงข้างบนไม่อย่างนั้นก็จะมองไม่เห็น


ภาษา Visual Basic .Net
ข้อดี
- รองรับ Optional argument ซึ่งสำคัญมากที่คุณต้องการใช้งานร่วมกับ ActiveX component หรือการเขียนโค้ดชนกับพวก Office
- ทำตัวไม่ซีเรียสได้ คือยอมรับการทำ late-binding ได้ ถ้าไม่กำหนด Option Strict On การเขียนโค้ดพวกนี้ใช้กับพวก ActiveX อีกนั่นเอง (ผมแนะนำให้หลีกเลี่ยงการเขียนโค้ดแบบ late-binding ใน .Net)
- รองรับการทำ named indexer (การสร้าง property ที่มี argument)
- มีคำสั่ง VB แบบเดิมๆ เช่น Left, Mid, UCase, ... ให้ใช้ง่ายๆ สำหรับผู้ใช้ VB6 มาก่อน (การเรียกใช้ฟังก์ชันแบบเดิมๆ นี้จะมีผลต่อประสิทธิภาพของโปรแกรม)
- มีประโยค With..End With ให้ใช้
- ความเรียบง่าย เช่นการสร้างประโยค Event
- สามารถกำหนดชื่อเมธอดของการ implements interface ที่ต่างจากที่กำหนดไว้ใน interface ได้ (ผมว่าไม่ค่อยได้ประโยชน์เลย ทำให้ยุ่งยากในการค้นหาเสียมากกว่า)
- มีประโยค Catch...When... ทำให้สามารถทำการ filter exception ด้วยเงื่อนไขได้ นอกเหนือจากการ filter ด้วยชนิดของ exception เท่านั้น
Visual Studio .Net จะทำการ compile โค้ดในลักษณะ background ซึ่งช่วยเป็นข้อดีในโปรเจ็กต์ขนาดเล็ก แต่ถ้าโปรเจ็กต์ขนาดใหญ่มหึมา จะกลับเป็นข้อเสียอย่างมาก (มีฝรั่งหลายคนบ่นว่าต้องถึงกับต้องยอมเปลี่ยนจาก VB.Net มาเป็น C# เลย ในโปรเจ็กต์ที่มีไฟล์มีคลาสเป็นพันๆ)
ข้อเสีย
- ไม่สามารถใช้ตัวแปรชนิดที่เป็นตัวอักษร มาเก็บค่าที่เป็นตัวเลข หรือใช้ตัวแปรที่เก็บตัวเลขจำนวนเต็ม มาเก็บเลขทศนิยม หรือว่าบวกตัวแปรที่เป็นตัวเลข กับค่าคงที่ที่เป็นข้อมูลตัวอักษรได้
ภาษา C#
ข้อดี
- รองรับ XML documentation คล้ายๆ javadoc คือเอาคอมเม้นต์ในโค้ดมาแปลงเป็นเอกสาร technical manual ได้เลย แต่ใน VB.Net เวอร์ชั่น 2005 (Whidbey) ก็จะรองรับในคุณสมบัตินี้ด้วย
- สามารถทำ operator overloading ได้ (VB.Net 2005 ก็จะทำได้เช่นกัน)
- รองรับ unsigned datatype (VB.Net 2005 ก็จะทำได้เช่นกัน)
- มีประโยค using เพื่อใช้จัดการกับ resource ที่เป็นแบบ unmanaged5.รองรับ unsafe code
ข้อเสีย
ไม่มีการแจ้งเตือน เกี่ยวกับช่องว่าง ที่อยู่ใน Code ไม่ว่าคุณจะใส่ช่องว่าง จำนวนมาก อักขระ Carriage return หรือ Tap เป็นอักขระที่รู้จักกันในชื่อว่า White space นั่นหมายความว่า เรามีอิสระในการ ที่จะจัดรูปแบบ Source Code ของเราได้ ถึงแม้ว่าการทำตามกฏที่แน่นอน

ภาษา VB
ข้อดี
- ใช้งานง่ายเพราะเป็นการเขียนแบบ visual programming มีโครงสร้างภาษามาจากภาษา basic เรียนรู้ได้ง่าย สามารถติดต่อกับ API ของวินโดว์ได้
ข้อเสีย
- ไม่รองรับการทำงานสถาปัตยกรรม .net framework เขียนโปรแกรมเชิงวัตถุไม่ได้ ทำให้จะพัฒนาแอฟต่อไปจะต้องเขียนใหม่หมด ไม่สามารถใช้หลักการ reuse และอีกหลายอย่างใน ทฤษฎีเชิงวัตถุได้


ภาษา AS2
ข้อดี
- ภาพชัด
- ขนาดเล็ก
- โหลดได้เร็ว
- ทำงานแทน CGI ได้ในระดับหนึ่ง
- ทำภาพเคลื่อนไหวได้โดยไม่ต้องพึ่ง Java Script
- สร้างฟอร์มสำหรับกรอกข้อมูลได้
ข้อเสีย
- ผู้ใช้ที่มี Browser รุ่นเก่าๆจะไม่สามารถดู Flash ได้ จำเป็นต้องไปโหลดปลั้กอินเพิ่มเติมเอาเอง (บางที Browser รุ่นไหม่ที่ไม่มีปลั๊กอินก็ดูไม่ได้เหมือนกัน)

ภาษา PHP

ข้อดี
- ความปลอดภัยอยู่ในระดับดี ถึงสูง พวกธนาคาร หลายๆที่จึงเลือกใช้ สำหรับงานระดับลึกๆ หมายถึงข้อผิดพลาดของ bug ต่างๆ นะ- เมื่ออยู่บน linux,unix,solaris มันทำทำงานได้เร็วกว่า windows ประมาณเท่าตัว 
- รูปแบบการเขียน ยืดหยุ่นมาก เขียนได้ทั้ง แบบ เก่า ตือ HTML +code หน้าเดียว หรือแบบใหม่ HTML แยกกันกับ Code ,OOP- สามารถเขียนได้ ทั้ง win app (ยากฉิบหาย),batch script ,web app ,ล่าสุดมีคนพยายามทำให้มันเป็นเหมือน java นั่นคือ เอา php code ไปรันบน platform ไหนก็ได้ - มี framework ช่วยพัฒนาเยอะมาก- อะไรที่ .net หรือ java มี เดี๋ยว php ก็มี ตาม (บางอย่าง .net ,java ก็มาลอก php ไป) เจ๊ากัน
- เป็นที่นิยมในสถาบันการศึกษา เพราะฟรี
ข้อเสีย
- ขาด IDE ที่เป็นมาตรฐานกลางทำให้คนเขียน ต้องไป ขุดหาโปรแกรมที่ใช้ในการพัฒนาเอาเอง 
- บางทีออก version ใหม่บ่อยเกินไป
- การเขียนบางที ต้อง include เยอะแยะไปหมด
- ไม่มี บ. software ใหญ่ๆ เป็นป๋าดันให้ เลยไม่ดังเปรี้ยง แต่ค่อยๆดังเพราะทำความดี สะสม
- การเขียนติดต่อระดับ component หรือ COM+ ของ windows อาจต้อง config ยุ่งยากหน่อย (ไม่เคยเขียน)
- ใช้ IE เปิด web แล้ว download php ยากมาก

*****
IDE (Integrated Development Environment) คือ เครื่องมือที่ช่วยในการพัฒนาโปรแกรมโดยมีสิ่งอำนวยความสะดวกต่างๆ เช่น คำสั่ง Compile, Run ...

By Aud HappyComThailand


Share:

0 comments:

แสดงความคิดเห็น

Blog Archive

Total Pageviews

Facebook FANPAGE