วันจันทร์ที่ 10 พฤษภาคม พ.ศ. 2553

เปรียบมวย JAVA, ASP.NET, PHP

เปรียบมวย JAVA, ASP.NET, PHP ต่อยกันให้เละไปเลย (อ่าน 105, คอมเมน 10)
เห็นหลายคนสงสัยมาว่าทั้ง 3 ภาษานี้ อันไหนดีกว่ากัน ขอตอบว่า JAVA เพื่อเป็นการเห็นภาพ ผมเลยขอเอานักมวยทั้งสาม มาต่อยกันเวทีให้เห็น โดยผมจะทำตัวเป็นกลางที่สุด เนื่องจากผมเองเขียนทั้ง PHP, JAVA, ASP.NET พร้อม ๆ กันในแต่ละวัน ดังนั้นจึงไม่ได้เอียงไปข้างใดข้างหนึ่ง

ยกแรก เครื่องมือ ที่สะดวก รวดเร็ว ง่ายดาย และใช้สร้างงานได้จริง
PHP = Dream Weaver
ASP.NET = Visual Studio.NET
JAVA = Netbeans, EClipse, Sun One Studio, JBuilder, Oracle JDEV, IBM Web Sphere

นี่แค่ยกแรกก็เห็น ๆ แล้วว่า JAVA เป็นต่อ เพราะเครื่องมือหลากหลาย ฟรี แถมยังรันได้บนทุก ๆ แพลตฟอร์ม ความสามารถในการเขียนโค้ด และสร้างหน้าจอ ยังเหนือกว่าฝั่ง PHP, .NET อีกด้วย

ยกที่สอง : การเขียนโปรแกรมด้านฐานข้อมูล
PHP = MySQL, MSSQL, ORACLE, DB2, Postgresql...
ASP.NET = MSSQL, ORACLE, MySQL, ...
JAVA = MySQL, ORACLE, MSSQL, Postgresql, DB2, ....

ยกสองจะเห็นว่า การรองรับฐานข้อมูลต่าง ๆ สุสีกันมาก แต่ การจะใช้แต่ละฐานนั้น JAVA ไม่ต้องทำอะไรเลย นอกจากเอา .jar มาแปะ ก็ใช้ได้ทันที ส่วนฝั่ง php ต้องไปเปิด php.ini และหา .dll มาลงเอง พร้อมกับ config ด้วย (ถ้าเป็นการเช่าโฮส แทบทำไม่ได้เลย) และสุดท้าย .NET อันนี้รองรับไม่มาก ถ้าอยากได้มากกว่านี้ ต้องไปหา .dll มาลงเอง (ซึ่งส่วนมากก็ต้องซื้อ และหายาก)

ไม่ใช่แค่นี้ครับ ในการเปลี่ยนฐานข้อมูล (ซึ่งในระบบจริง ๆ เจอกันบ่อยครับ) สำหรับ JAVA ไม่ต้องแก้โค้ดเลย แม้แต่บรรทัดเดียว แต่ฝั่ง PHP, .NET ต้องแก้จนเรียกว่า รื้อหมด เลยล่ะ

ยกที่สาม : การนำโค้ดเดิมกลับมาใช้ใหม่
PHP = เขียนเป็น class และทำการ include เข้ามา
ASP.NET = ทำ .dll หรือจะทำไฟล์ class ไว้ใช้งานก็ได้
JAVA = ทำเป็น .jar, .class แล้วนำมาใช้ใหม่ได้เช่นกัน

ยกนี้สูสีอีกแล้ว ทั้งสามอัน สามารถ นำโค้ดเดิมกลับมาใช้ใหม่ได้หมดเลย แต่ PHP จะเสียเปรียบนิดนึงตรงที่ ปกป้องโค้ดไว้ไม่ได้ ถ้าทำโปรแกรมขายก็ซวยหน่อยนึงนะครับ

ยกที่สี่ : การพัฒนาระยะยาว แก้ไข ปรับปรุง โค้ดเดิมที่ทำไว้
PHP = เหนื่อยพอสมควร เพราะต้องไปไล่หา include ไม่รู้ไปไหนมาไหนกันบ้าง ตัวแปรไร้ที่มา
ASP.NET = ถ้าทาง .NET มีการเปลี่ยน Version ก็ซวยหน่อย เพราะโค้ดเดิมจะโดนตัดออก
JAVA = ไม่มีปัญหาใด ๆ

ในยกนี้ JAVA กินขาด ผมไม่ได้เข้าข้างนะ พูดกันตรง ๆ จริง ๆ ถ้ามีการเปลี่ยน Version ของ JAVA โค้ดเดิมก็ไม่เป็นไร ยังทำงานได้ปกติ ไม่ต้องแก้ไข นอกจากนี้ยังไล่หาที่มาที่ไปของตัวแปร คลาส และเมนทอด ต่าง ๆ ได้อย่างง่ายดาย แถมยังทำเอกสาร doc สำหรับโปรเจกได้อีก คงเคยใช้นะครับ javadoc น่ะ

ยกสุดท้าย : การเอาไปติดตั้ง และใช้กันจริง ๆ
PHP = ใช้ apache หรือจะเช่าโฮสก็ได้ ราคาไม่แพง หาง่าย แต่จะมีปัญหานิดนึงกับ version ของ php แล้วก็เรื่องการ config ini สำหรับแต่ละที่ บางลูกค้าอาจจะไม่ได้ตั้งค่า GD, XML, MySQL, MSSQL, PDO, Mod Rewrite, iconv และอื่น ๆ สารพัด ไว้ให้ บางครั้งเราก็ต้องมารื้อโค้ด หรือไม่ก็ต้องขอลูกค้า เพื่อตั้งค่าดังกล่าว (บางรายเค้าไม่ยอมนะครับ ขอเตือน)

ASP.NET = ใช้ IIS ถ้าโชคดีก็รันได้ครับ ถ้าโชคร้ายไปเจอ IIS5, 6, 7 แต่ละตัวก็ต่างกันไป แถมบน Window 2003, 2000, XP, Vista, 7 ก็ต่างกันไปอีก เจอเรื่องต่าง ๆ มากมาย หา path ไม่เจอบ้าง โน่นนี่บ้าง ก็มีนไปเลย และแน่นอนครับ เสียตังค์อีกแล้ว คิดเอาเองนะ ว่ากี่แสน

JAVA = Tomcat, JBoss, ... เยอะแยะจัง เล่าไม่หมด หรือจะหาเช่าโฮสก็ได้ครับ หายากนิดนึง ราคาก็แพงกว่า PHP, ASP.NET แต่การติดตั้งง่ายดายมาก เพราะเราทำ web.xml, และสามารถทำการ config ค่าต่าง ๆ ไว้ในโปรแกรมเราได้เลย ไม่ต้องไปยุ่งกับ server ที่เช่าหรือที่ติดตั้ง และที่ง่ายสุด ๆ คือการเอา .war ไปวางก็ใช้ได้ทันที ไม่ต้องอะไรให้วุ่นวาย

ในยกสุดท้าย JAVA ชนะน็อกเลยล่ะครับ เพราะการติดตั้งเป็นเรื่องสำคัญจริง ๆ ถ้าเขียนมาดีชิบหายเอาไปติดตั้งไม่ได้ ก็อดได้เงินลูกค้าเหมือนกัน ดังนั้นใน PHP, .NET ต้องคุยกับลูกค้าตั้งแต่ต้นเลยว่า server ของเค้าเป็นแบบไหน ตั้งค่าอะไรเอาไว้บ้าง แต่สำหรับ JAVA ไม่สนครับ ติดตั้งได้ทุกที่ ทุกสถานการณ์ ไม่สนใจอะไรทั้งสิ้น ตามคอนเซป write one run any where

ถูกผิดยังไงช่วยเสริมด้วยนะครับ ผมไม่ได้ใช่ผู้เชี่ยวชาญ เพียงแต่เขียนจากประสบการณ์ ที่ผ่านพบมา ในระยะเวลา 5 ปี (ก็ไม่มากเท่าไหร่)


เขียนเมื่อ: 2010-01-23 10:47:05 โดย: first_member
http://www.javathailand.com/frontend/blog/show/211

ไม่มีความคิดเห็น:

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