Thứ Sáu, 24 tháng 11, 2017

PH vs ASP.NET? Những điều thực sự bạn nên nhìn nhận thay vì so sánh


PHP vs ASP.NET

Tôi đã và đang đối mặt với các so sánh PHP vs ASP.NET trong vài năm qua và đã trở nên thất vọng nhiều hơn một lần với khách hàng hoặc các kỹ sư phần mềm khác đang tranh luận về một mặt mà không biết một số sự kiện cơ bản. Đây là ý kiến của tôi về cuộc tranh luận này.


Jeremy Frederick
Acting CTO/Architect for PureFlix.com at Element 84

Trước hết, tôi nghĩ rằng bạn là một người đọc thì nên hiểu biết về nền tảng của tôi. 8 năm trong sự nghiệp của tôi đã được dành riêng để phát triển trò chơi cho Xbox và PS3. Các Game consoles được lập trình C + + và sử dụng Visual Studio. Điều này rất quan trọng bởi vì bất kỳ ai đó có nền tảng như vậy sẽ bị lôi cuốn vào ASP.NET trước PHP.

Trong 3 năm qua tôi đã làm việc trên một số dự án web và ứng dụng khác nhau. Điều này bao gồm hầu hết trong số chúng được xây dựng với ASP.NET. Tuy nhiên, tôi đã làm việc cho một dự án PHP lớn, nơi tôi là kỹ sư chính và một số trang web WordPress với chủ đề tùy chỉnh. Trong thời gian đó, tôi đã xây dựng một RESTful API hoàn toàn bằng cách sử dụng Laravel mà tôi tiếp tục hỗ trợ đến hôm nay.

Tôi hoàn toàn nhận thức được những gì bạn đang nghĩ ngay bây giờ. Chỉ vì tôi đã thực hiện một dự án PHP lớn, không có nghĩa tôi là một chuyên gia. Bạn nói đúng, tôi không phải là một chuyên gia PHP. Tuy nhiên, những lập luận tôi đưa ra trong bài đăng này sẽ không thay đổi với kinh nghiệm mà tôi có.

Đối với kinh nghiệm của tôi, tôi KHÔNG pro ASP.NET hoặc pro PHP. Có một số trường hợp mà PHP là công cụ tốt nhất cho công việc, và có những trường hợp khác mà ASP.NET là tốt nhất. Tôi đã thực sự chiến đấu cho việc sử dụng PHP trong rất nhiều dự án.


Bạn có thể đọc rất nhiều bài viết để nâng bi PHP hay hạ thấp ASP.NET. Bài đăng này không có nghĩa là để làm điều đó. Bài đăng này là để chỉ ra những gì làm người ta hâm mộ PHP và để lại trong bài viết của họ về lý do tại sao PHP là tốt hơn. Theo tôi đây là điều khá là quan trọng!

So sánh Táo với Cam


Để so sánh 2 điều họ cần phải giống nhau. Hầu hết mọi người (thậm chí còn được gọi là các chuyên gia) không hiểu rằng so sánh PHP với ASP.NET không phải là Apple với Apple. PHP là một ngôn ngữ lập trình. ASP.NET không phải là một ngôn ngữ lập trình. Ngôn ngữ sử dụng cho ASP.NET thường là C # (VB.NET cũng có thể được sử dụng, nhưng hiếm khi bao giờ).

Hãy chắc chắn rằng bạn hiểu rằng đoạn trước đó! Hãy để nó giải quyết và được xử lý. Nếu bạn đọc bất kỳ bài viết nào khác so sánh PHP với ASP.NET hoặc WebAPI, nó có thể được viết bởi một người không hiểu cả hai công nghệ. PHP là một ngôn ngữ lập trình, ASP.NET là một web framework.

PHP vs C #


Vì vậy, chúng ta hãy so sánh một quả táo với một quả táo, PHP vs C #. Đây là những gì Google đưa ra như một định nghĩa cho mỗi loại:

C # - Một ngôn ngữ lập trình hướng đối tượng trong phát triển từ Microsoft, nhằm kết hợp sức mạnh tính toán của C ++ với sự dễ dàng lập trình của Visual Basic.

PHP - PHP là một ngôn ngữ kịch bản phía máy chủ được thiết kế để phát triển web nhưng cũng được sử dụng như là một ngôn ngữ lập trình đa năng.

Google đã làm sai lệch thực tế. C # được sử dụng rộng rãi hơn trong các ứng dụng NON-web hơn là PHP được sử dụng như là một ngôn ngữ lập trình mục đích chung. Có bao nhiêu người có thể nói họ đã sử dụng PHP cho một ứng dụng không phải là web? C # được sử dụng cho các ứng dụng điện thoại Windows, các công cụ, và thậm chí cross platform mobile frameworks (MONO).

Một điều mà Google nhận được đúng là nói rằng C # là một ngôn ngữ lập trình hướng đối tượng, nơi PHP là KHÔNG. Không, nó không chỉ thiếu sót trong định nghĩa. PHP không phải là một ngôn ngữ lập trình hướng đối tượng. Bạn có thể sử dụng nó để bắt chước thực tiễn hướng đối tượng nhưng nó không phải là ăn sâu vào chính nó như là C #.

Hiệu suất Ngôn ngữ


Là người đã làm việc trong mảng Game, tôi hiểu tầm quan trọng của việc thực hiện. Rất nhiều so sánh được kết luận rằng PHP là nhanh hơn ở cấp độ cốt lõi. Tôi cũng sẽ cho rằng là PHP. Tuy nhiên, bất kỳ kỹ sư nào cũng sẽ cho bạn biết rằng phần cứng hiện đại thì nhanh đến nỗi tốc độ ngôn ngữ cốt lõi thật sự không còn phù hợp nữa. Nếu nó có liên quan, tất cả mọi người sẽ được lập trình trong ASSEMBLY mà là một ngôn ngữ cấp thấp có thể giao tiếp trực tiếp với phần cứng. Lý do không ai làm là bởi vì phải mất nhiều dòng mã để thực hiện các thao tác cơ bản nhất và xây dựng một ứng dụng với ASSEMBLY sẽ mất nhiều năm để hoàn thành.

Vì phần cứng nhanh hơn mới được phát triển nên ngôn ngữ mới đã được phát triển để tận dụng chúng, bao gồm C #. C # được xây dựng để làm cho các kỹ sư dễ dàng hơn trong việc xây dựng các ứng dụng nhanh hơn với chi phí tổn thất về hiệu suất tổng thể (một lần nữa, phần cứng hiện đại là không đáng kể).

Tôi nói tất cả điều đó để nói rằng hiệu suất của ngôn ngữ chính nó thực sự không phải là điều làm cho một chương trình chạy nhanh hơn hoặc chậm hơn. Thay vào đó, nó là cách viết mã và kiến ​​trúc xác định nó sẽ hoạt động tốt như thế nào.

Theo kinh nghiệm của tôi, rất nhiều hiệu suất có thể đạt được bằng cách sử dụng xử lý song song (đa luồng). Xử lý song song cho phép nhiều đoạn mã chạy đồng thời song song. PHP không hỗ trợ luồng. C # không chỉ hỗ trợ nó nhưng làm cho nó đơn giản đến nỗi trong hầu hết các trường hợp nó chỉ yêu cầu bạn thêm từ khoá async / chờ đợi một function (** nếu bạn đang sử dụng SDK hoặc code hiện có được xây dựng đồng bộ).

Có một số lý do khác tại sao C # là tốt hơn so với PHP, nhưng theo tôi, thiếu sự hỗ trợ luồng là đối số duy nhất cần thiết.

Sự so sánh thực


Như tôi đã nói ở đầu bài viết này, chúng ta cần phải so sánh táo với táo. Vì vậy, táo của ASP.NET MVC và WebAPI là gì? Vâng, có rất nhiều táo ở đó. Chúng thường được gọi là các framework và bạn có thể nhìn thấy rất nhiều chúng bằng các PHP framework của Googling.

Tôi chỉ có kinh nghiệm với Laravel framework, vì vậy tôi chỉ có thể cung cấp ý kiến ​​về cái đó. Tôi sẽ nói rằng các Laravel framework là một framework tuyệt vời và làm rất nhiều điều mà các framework ASP.NET không làm được. Các kỹ sư xây dựng Laravel có rất nhiều kinh nghiệm và đặt rất nhiều ý tưởng đằng sau freamwork của họ, kết hợp tốt nhất của tốt nhất từ ​​các PHP frameworks khác và thậm chí ASP.NET freamworks.

Nếu bạn là một người ủng hộ lớn của PHP, hãy quay lại và đọc lại đoạn đó hơn để bạn cảm thấy tốt hơn về bài đăng này. Chỉ cần lặp lại, Laravel framework (được xây dựng bằng PHP) có nhiều tính năng ngoài hơn  ASP.NET MVC hoặc WebAPI. Tôi là một fan hâm mộ to lớn của Laravel. Điều duy nhất tôi không thích về Laravel là tôi bị giới hạn bởi những gì PHP có thể làm.

Laravel (và PHP) là rất tốt cho các kịch bản cụ thể. Nhưng khi nói đến các dự án lớn và phần mềm cấp doanh nghiệp, bạn sẽ đạt đến giới hạn của mình với Laravel nhanh hơn nhiều so với ASP.NET. Các giới hạn bao gồm khả năng mở rộng, khả năng bảo trì và hỗ trợ nền tảng trong tương lai.

Dưới đây là tính năng so sánh táo với táo: Lavarel vs ASP.NET MVC

Thông tin đã lỗi thời


Khi đọc bài báo hoặc bài viết về chủ đề này, bạn hãy kiểm tra ngày. Hầu hết thời gian bạn đang đọc một bài báo cũ với thông tin lỗi thời. Công cụ của Microsoft (Visual Studio) hiện đã có dịch vụ miễn phí (MIỄN PHÍ!). Các máy chủ Windows giờ đây tốn kém gần như các máy chủ Linux (mặc dù vẫn còn đắt hơn một chút). Và bây giờ họ đang nắm bắt cộng đồng open source/cross platform community.


Sự đóng góp cho cộng đồng


Một đối số cuối cùng mà tôi muốn giải quyết là tuyên bố đi đến tất cả các kỹ sư lập trình PHP: "Cộng đồng các nhà phát triển PHP lớn hơn ASP.NET"

Có, có nhiều nhà phát triển PHP hơn các nhà phát triển ASP.NET. Tôi đồng ý. Tuy nhiên, như tôi đã nói trong bài này, PHP là so sánh với C #, chứ không phải ASP.NET. Cộng đồng PHP có rất nhiều người đằng sau nó nhưng chúng được lan rộng ra trong tất cả các PHP web frameworks. Tôi không biết số chính xác, nhưng tôi sẵn sàng đặt cược số lượng các nhà phát triển C # là rất tương đương với các nhà phát triển PHP (thậm chí không bao gồm cả nhà phát triển C và C + + có thể dễ dàng chuyển sang C #).

Vì vậy, để làm cho việc so sánh chính xác hơn, có bất kỳ PHP frameworks ngoài kia có thể nói rằng họ có nhiều nhà phát triển hỗ trợ họ hơn các ASP.NET framework để làm gì? Không. Các nhà phát triển ASP.NET đều ủng hộ MVC và WebAPI thay vì tất cả mọi người đi ra ngoài cố gắng xây dựng web frameworks riêng của họ như cộng đồng PHP đang làm.


Share:

0 nhận xét:

Đăng nhận xét

Fanpage

Tổng số lượt xem trang