JSP, ASP hay PHP? So sánh đánh giá chi tiết 3 ngôn ngữ lập trình web phổ biến nhất

Đăng bởi: Admin | Lượt xem: 1177 | Chuyên mục: PHP

JSP, ASP hay PHP là ba ngôn ngữ kịch bản máy chủ đại diện cho 3 công nghệ web [Web Application] phổ biến nhất hiện nay. Đã bao giờ bạn phân vân lựa chọn ngôn ngữ là cho website của mình? Hoặc các bạn lập trình viên sẽ chọn theo học công nghệ nào. Mời các bạn xem bài so sánh JSP, ASP hay PHP dưới đây của VNCoder đễ dễ dàng đưa ra quyết định nhé.


JSP, ASP hay PHP ?

Thực ra đem câu hỏi này đi hỏi các ITers sẽ nhận lại 1 trận war tương tự như hàng của Samsung, Apple hay Nokia cái nào tốt hơn vậy. Mình biết nhiều ITer đang tự hỏi tại sao mình vẫn phải è cổ để học JSP trong khi ngoài kia thiên hạ đang tuyển ASP và PHP ầm ầm ? Câu trả lời là mỗi 1 công nghệ có ưu điểm và nhược điểm riêng, vì thế cũng có những mục tiêu áp dụng riêng, bài viết dưới đây mình tổng hợp từ nhiều nguồn 1 phần cũng dựa trên chút hiểu biết về mảng web development, hy vọng phần nào sẽ giúp các bạn trẻ có chút khái quát về 1 trong những môn học khó nhằn nhất của IT: Web Application Development 

ASP - Active Server Pages

Công nghệ Microsoft Active Server pages (ASP) đi cùng với Microsoft Intemet Information Server (IIS). ASP hỗ trợ nhiều ngôn ngữ kịch bản như PerlScript, JScript và VBScript. PerlScript dựa trên ngôn ngữ Perl, JScript dựa trên ngôn ngữ JavaScript, nhưng ngôn ngữ mặc định của ASP là VBScript, một ngôn ngữ kịch bản dễ học, là tập con của ngôn ngữ Visual Basic - một trong những ngôn ngữ lập trình phổ biến nhất hiện nay. Công nghệ ASP cho phép trộn nội dung HTML tĩnh với mã lệnh kịch bản thực thi ở môi trường server để tạo ra kết quả động.

Microsoft Asp

Ưu điểm nổi bật nhất của ASP là khả năng dùng thành phần COM và ADO (Activex Data Object), nhưng cũng chính khả năng này làm cho chương trình ASP phức tạp và khó viết hơn. Khi cần phát triển, bạn có thể tạo thành phần COM riêng. Microsoft khuyến cáo xây dựng thành phần COM để xử lý mức luận lý. Thành phần COM có thể phát triển bằng Visual Basic, Visual C++ hay Java.
Tuy nhiên, với môi trường máy chủ dùng chung, thường các công ty cung cấp dịch vụ máy chủ giới hạn chỉ cho phép bạn dùng VBScript.

Trở ngại lớn nhất của ASP là chỉ dùng trên IIS chạy trên máy chủ Windows Server, chi phí bản quyền và cấu hình server từ mức trung bình cho đến cao là lý do giá thành cho việc duy trì 1 trang web nền ASP bị đẩy lên so với nhiều nên tảng khác.

Việc cài đặt môi trường máy chủ hỗ trợ ASP rất đơn giản, IIS mặc định hỗ trợ sẵn ASP. Personal Web Server cung cấp môi trường chạy ASP cho Windows. Ngoài ra MS còn có công cụ Visual Studio rất giúp tạo trang ASP đơn giản và nhanh chóng (nhưng đồng thời túi tiền cũng vơi nhanh hơn do chi phí bản quyền VS). Có rất nhiều website, sách và mã nguồn miễn phí cho ASP. Đây là một lợi thế, nhưng cái lớn nhất vẫn là ASP tương thích tốt với MS SQL Server.

ASP.NET (ASP+) là bước phát triển mới của công nghệ ASP dùng với nền tảng NET. Ngôn ngữ chính dùng để phát triển trang ASP.NET (.aspx) là VB.NET, C#. Ngoài ra ASP.NET còn hỗ trợ nhiều ngôn ngữ khác như JScript.NET, Smalltalk.NET, Cobol.NET, Perl.NET...

ASP có nhiều CMS hỗ trợ cho mình như DotNetNuke, Sitefinity, Orchard .v.v.

JSP - Java Server Pages

Không thể phủ nhận rằng đây là cơn ác mộng với hầu hết các sinh viên đã tiếp xúc với nó, nhưng đến thời điểm hiện tại, Java vẫn là 1 trong những ngôn ngữ được sử dụng nhiều nhất thế giới. Lợi thế của JSP là sử dụng được toàn bộ sức mạnh của ngôn ngữ Java với các tính năng khả chuyển, chạy được trên nhiều nền tảng hệ thống và máy chủ web, mã lệnh hướng đối tượng, bảo mật an toàn.v.v. nên ứng dụng của JSP hầu hết vẫn là ở các hệ thống cho doanh nghiệp (enterprise system).

Java JSP

Java Server Pages (JSP) là sự mở rộng của công nghệ JavaServlet, một thành phần trong chuẩn J2EE của Sun. Với JavaServlet, bạn phải xử lý đầu vào HTTP và đầu ra HTML trong lớp Java, bạn cần có kiến thức lập trình để xây dựng các ứng dụng phức tạp. Với JSP bạn có thể tách riêng lớp hiển thị HTML ra khỏi lớp Java xử lý nghiệp vụ phức tạp. Điều này có nghĩa là người phát triển có kinh nghiệm ngôn ngữ kịch bản, hay thậm chí người thiết kế web có thể viết mã lệnh hiển thị đơn giản, trong khi người phát triển có kiến thức về Java tập trung viết JavaServlet hay JavaBean đề giải quyết nghiệp vụ phức tạp.

Tương tự ASP, JSP cũng thực hiện phép trộn nội dung HTML tĩnh với mã lệnh kịch bản thực thi ở môi trường server để tạo ra kết quả động. JSP dùng ngôn ngữ kịch bản mặc định là Java; tuy nhiên theo đặc tả kỹ thuật thì cũng có thể dùng các ngôn ngữ khác. JSP có ưu điểm so với ASP là sau lần thực thi đầu tiên thì mã biên dịch (Servlet) của trang JSP được lưu lại trong bộ nhớ của máy chủ web và sẵn sàng đáp ứng cho các yêu cầu truy cập sau đó (đây gọi là "caching", các trang ASP/VBSCRIPT hay Asp/jscript phải được dịch lại với mỗi yêu cầu). Tuy nhiên caching cũng là trở ngại đối với các JSP developer, sau này nếu học Web Application, sẽ có nhiều lúc các bạn phải tắt trình duyệt rồi mở lại mới thấy thay đổi vì cơ chế này.

Hiện chưa có nhiều dịch vụ đặt web hỗ trợ JSP. Ở VN cũng chỉ có các HP (hosting provider) lớn mới offer dịch vụ hosting Java, các host free cho JSP cũng có nhưng khá ít và tính năng rất hạn chế. Tuy Java miễn phí nhưng các công cụ phát triển Java và phần mềm máy chủ Java khá đắt. Các công cụ phát triển trang JSP tốt là Borland Jbuilder, IBM WebSphere Studio. Một số phần mềm máy chủ Java hỗ trợ JSP miễn phí như Tomcat, JONAS.

Server-side JavaScript (SSJS) là sự mở rộng của JavaScript, ngôn ngữ kịch bản phổ biến chạy ở trình duyệt máy khách có cú pháp giống như C, mặc dù có tên gọi tương tự nhưng nó không phải là Java. SSJS có các tính năng tích hợp hỗ trợ cơ sở dữ liệu và email, quản lý phiên làm việc và khả năng liên tác với các lớp Java dùng công nghệ Livewire của Netscape. SSJS chỉ chạy trên máy chủ web Netscape.

JSP có thể được phát triển bằng nhiều bộ công cụ khá mạnh, như Eclipse hay NetBeans - cả 2 đều miễn phí, đây là lợi thế của JSP so với ASP vì ASP đòi hỏi chi phí phát triển và cả chi phí duy trì. JSP tương thích với cả MySQL lẫn SQL Server nhưng khả năng support cũng không bằng ASP và PHP. Tuy chỉ được các doanh nghiệp ưa chuộng nhưng JSP cũng có những CMS cho mình như Magnolia, InfoBlue... hay mạnh nhất là Liferay.

PHP - Hyper Texprocessor

Nếu bạn đã từng nằm gai nếm mật với JSP thì khi đặt chân sang PHP, bạn có thể thấy đây như thiên đường vậy  PHP có khởi nguồn từ Năm 1995 , Rasmus Lerdorf tạo ra PHP nhằm giải quyết việc viết lặp đi lặp lại cùng đoạn mã khi tạo các trang home (vì vậy PHP được viết tắt từ Personal Home Page). Ban đầu, tác giả chỉ có ý định tạo bộ phân giải đơn giản để thay thế các thẻ lệnh trong file HTML bằng các đoạn mã lệnh viết bằng C. Dự án này đã được phát triển thành ngôn ngữ kịch bản mã nguồn mở PHP - Hypertext Preprocessor được cài đặt cho khoảng 20% máy chủ web trên Internet, theo số liệu khảo sát của công ty Netcraft.

PHP

PHP tương tự JSP và ASP với tập thẻ lệnh dùng cho trang HTML. Điểm đặc biệt là PHP được phát triển hoàn toàn cho nền tảng web, chính vì vậy mà các ứng dụng viết bằng PHP rất ngắn gọn so với VBScript hay JSP. Đây cũng chính là điểm mạnh của PHP so với Perl. Cú pháp của PHP là đơn giản nhất so với ASP hay JSP, do đi từ C lên nên PHP vẫn giữ được phong cách lập trình truyền thống: procedural, có thể hiểu nôm na là viết đến đâu thì viết function đến đó, thậm chí không cần viết function cũng được, đây là điểm làm cho PHP dễ tiếp cận hơn so với các ngôn ngữ còn lại.

Cú pháp PHP mượn từ nhiều ngôn ngữ khác như C, Java, Perl... PHP có thể giao tiếp với nhiều hệ CSDL như Sybase, Oracle, Informix, Postgres và cả SQL Server, nhưng hỗ trợ mạnh nhất vẫn là MySQL. Không chỉ có khả năng thao tác CSDL, PHP còn có nhiều khả năng khác như IMAP, SNMP, LDAP, XML... PHP chạy trên hầu hết các nền tảng hệ thống - bao gồm cả IIS của MS hay các Linux hosting khác. Trình máy chủ phân giải mã lệnh PHP có thể tải về miễn phí từ trang web chính thức của PHP.

Có lẽ yếu tố hấp dẫn nhất của PHP là nó hoàn toàn miễn phí - yup - hoàn toàn. PHP có thể phát triển bằng các công cụ miễn phí như PHP Storm, NetBeans, Eclipse, Aptana, Zend Studio .v.v. MySQL cũng miễn phí, và số lượng free hosting hỗ trợ PHP có thể nói là áp đảo số lượng free hosting cho ASP hay JSP. Ngoài ra vì PHP là mã nguồn mở, nên nó được support từ cộng đồng rất nhiều, kể cả các CMS đều support phần lớn cho PHP như WordPress, Joomla, Drupal .v.v. Bạn không cần phải là kỹ sư IT với kiến thức lập trình dày cộm để có thể tạo 1 trang web riêng cho mình.

Với máy tính cấu hình vừa phải chạy Linux, cài đặt Apache, PHP và MYSQL, bạn sẽ có máy chủ có thể phục vụ được nhiều ứng dụng web tương đối. Toàn bộ chi phí hầu như chỉ là thời gian bạn bỏ ra để cài đặt các phần mềm. PHP được xem là một thay thế cho Perl. PHP không thể làm được nhiều như Perl, thế nhưng chính sự hạn chế này làm cho PHP dễ học và dễ dùng. Nhiều nhà phát triển dùng kết hợp cả hai: Perl dùng cho những tác vụ chạy bên dưới còn PHP dùng cho việc xử lý bề mặt. Komodo của Active State Corp là công cụ miễn phí dùng để phát triển trang PHP.

Vậy ?

Nếu xét về hiệu suất, PHP = ASP, và đây lại là điểm yếu của JSP, chậm chạp vốn là đặc tính cố hữu của Java rồi, nhưng ở mảng bảo mật, JSP và ASP lại bỏ xa PHP, và nếu tính đến thời gian bỏ ra để tiếp cận cách lập trình, PHP vẫn là số 1. Một khi bạn đã làm quen với JSP, việc chuyển sang PHP hay ASP chỉ là vấn đề tốn thời gian để làm quen với Syntax, cộng với việc các bạn đã làm quen với Java, đây là lý do khoa IT vẫn giữ việc dạy JSP cho các bạn ăn hành. Tuy nhiên nhập bình quân của các lập trình viên ASP và JSP cũng cao hơn so với PHP, đơn giản là cái gì càng ít người biết thì càng có giá

Tóm lại việc học ngôn ngữ nào là tùy các bạn muốn đi theo mảng nào, nếu bạn muốn theo ERP (Enterpriese Resource Planning), ASP và JSP là 2 lựa chọn hợp lý, nếu bạn muốn đi theo mảng blog, hay làm website theo các yêu cầu dân dụng, PHP sẽ thích hợp với bạn hơn, và dù là ngôn ngữ nào thì cũng phải có đam mê mới theo được 

Theo: VnCoder
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!



Khóa học liên quan

Khóa học: PHP

Xây dựng Website PHP theo MVC
Số bài học:
Lượt xem: 17321
Đăng bởi: Admin
Chuyên mục: PHP

Học lập trình PHP cơ bản
Số bài học:
Lượt xem: 13480
Đăng bởi: Admin
Chuyên mục: PHP