Thứ Bảy, 30 tháng 1, 2016

Ngôn ngữ lập trình nào nên học để lập trình web


Bài viết được dịch từ Makeuseof
Lời bàn của Vinacode:
Ở bài viết trước thì tác giả đã giới thiệu về một số ngôn ngữ lập trình phổ biến trong lập trình phần mềm desktop. Trong bài viết này sẽ giới thiệu các ngôn ngữ phổ biến trong lập trình web. Mặc nội dung bài viết có vẻ đề cao ngôn ngữ PHP, nhưng đó là theo quan điểm riêng của tác giả. Về ngôn ngữ PHP thì bạn có thể đọc thêm bài viết này.
Hôm nay chúng ta sẽ cùng xem qua một số ngôn ngữ lập trình web đã tạo nên sức mạnh cho thế giới Internet ngày nay. Đây là phần 2 trong loạt bài viết giới thiệu các ngôn ngữ lập trình cho người mới bắt đầu. Trong phần 1, chúng ta đã xem qua một số ngôn ngữ lập trình dùng để phát triển phần mềm. Cũng giống như lần trước, tôi sẽ đưa ra một đoạn code nhỏ để bạn có thể hình dung xem ngôn ngữ đó trông như thế nào, tôi tin rằng với một cái nhìn thoáng qua như vậy cũng sẽ giúp bạn nhận ra rằng liệu mình có phù hợp với ngôn ngữ lập trình đó hay không.
Ngôn ngữ lập trình nào được sử dụng phổ biến trong lập trình web?Ngôn ngữ lập trình nào được sử dụng phổ biến trong lập trình web?

1. PHP

PHP là một ông vua không thể bàn cãi về ngôn ngữ kịch bản máy chủ (server-side) được sử dụng trên Internet ngày nay — nó chạy trên 75% của tất cả các máy chủ Web — và là sức mạnh phía sau của các nền tảng như WordPress, Wikipedia, và thậm chí là một phần của Facebook.
Ngôn ngữ lập trình PHPLà một ngôn ngữ chạy trên máy chủ, mã của nó được xử lý trước khi được trả về trình duyệt của người dùng, vì thế tất cả chúng ta nhìn thấy chỉ là mã HTML và không có chút mã PHP nguyên thủy nào. PHP thường được sử dụng kết hợp với MySQL để truy xuất thông tin từ cơ sở dữ liệu và hiển thị thông tin tới người dùng.
PHP là một ngôn ngữ đa năng và được xem như là chuẩn của hầu hết các máy chủ web — nếu bạn đã từng nghe về các thuật ngữ như MAMP/WAMP/LAMP, thì chữ P trong đó là viết tắt của PHP (phần còn lại là Windows/Mac/Linux, Apache, và MySQL).

2. MySQL

Một thành phần khác được xem như chuẩn cài đặt trên web server đó là MySQL, nó là database server mã nguồn mở miễn phí. MySQL không phải là một ngôn ngữ lập trình, nhưng là một ngôn ngữ mới để học nếu bạn muốn “nói chuyện” với cơ sở dữ liệu, vì thế nó là một thành phần quan trọng của các trang web hiện đại. Mặc dù MySQL thực ra là một ngôn ngữ kiểu dòng lệnh (command-line), nhưng cũng có một công cụ giao diện đồ họa GUI rất phổ biến là PHPMyAdmin giúp bạn quản lý cơ sở dữ liệu này một cách dễ dàng hơn.
Ngôn ngữ lập trình MySQLHơn nữa, MySQL tạo ra sức mạnh cho nền tảng WordPress – vì tất cả các bài viết và nội dung của nó thì thực ra được lưu trữ trong cơ sở dữ liệu MySQL.

3. Javascript

Bạn đừng nhầm lẫn nó với ngôn ngữ Java (là một ngôn ngữ hoàn toàn hướng đối tượng mà chúng ta đã có dịp giới thiệu trong bài viết trước), Javascript là một bậc thầy về tương tác trên các trang web. Nó là một ngôn ngữ kịch bản chạy cục bộ trên trình duyệt của người dùng, cho phép các trang web phản hồi lại các tương tác người dùng như là khi click chuột lên một đối tượng và các sự kiện về thời gian. Để có thể học hết mọi thứ trong JavaScript là một điều hầu như không tưởng — có thể nói rằng nếu có một tương tác nào đó trên một trang web, và nó không phải là Flash — thì nhiều khả năng đó là nhờ Javascript.
Ngôn ngữ lập trình jQueryChúng ta cũng nên đề cập đến JQuery vào lúc này. JQuery là một framework Javascript cho phép bạn viết ít code hơn và mang lại khả năng tương thích trình duyệt tốt hơn, nó nhanh chóng trở thành chuẩn của các trang web hiện đại. JQuery đặc biệt hữu ích để nhắm đến những đối tượng xác định trong một trang web có sử dụng CSS và thực thi một số thứ cùng với chúng, như là ẩn hoặc hiện các thành phần đó chẳng hạn. Mặc dù JQuery được làm từ Javascript, nhưng cũng có những thành phần ngôn ngữ duy nhất của riêng nó, bởi vậy nếu bạn biết Javascript thì không có nghĩa là bạn có thể tự động biết cách sử dụng JQuery (bạn có thể cũng tranh cãi rằng bạn không cần biết nhiều về Javascript để có khả năng sử dụng jQuery). Chúng ta nhất định sẽ xem xét lại quan điểm này vào một lúc thích hợp.

4. Perl

Perl trước đây được xem là một lực lượng chính trong lập trình web, nhưng gần đây hầu như đã chuyển sang các ứng dụng xử lý văn bản (text). Nó thì có tốc độ xử lý văn bản nhanh đến mức kinh ngạc, nhưng không được sử dụng nhiều trong thế giới Internet hiện đại. Tuy nhiên hầu như tất cả các hacker đều có một số thủ thuật được viết bởi Perl, vì thế nó cũng đáng giá để bạn để tâm nghiên cứu vào một lúc nào đó.
Để mang lại cho bạn một sự hình dung về sức mạnh của Perl, đây là một đoạn code hoàn chỉnh đã được tạo ra để phá mã hóa của DVD. Vâng, nội dung khá là khó hiểu:

Ngôn ngữ lập trình Perl5. Ruby

Ruby, và framework phát triển ứng dụng web của nó là Ruby On Rails, là nguồn sức mạnh cho một số trang web lớn như là Groupon, Shopify (một nền tảng thương mại điện tử), và được dùng để xây dựng front-end cho mạng xã hội Twitter. Nó là một ngôn ngữ hoàn toàn hướng đối tượng và được thông dịch bởi server trước khi gửi mã HTML tới trình duyệt của người dùng — cũng giống như PHP (nhưng cũng có nhiều điểm hoàn toàn khác biệt). Tuy nhiên, nó có một số đặc điểm nổi trội đó là phát triển ứng dụng nhanh chóng, viết ít code bị lặp lại, và tốc độ thực thi khá nhanh.
Ngôn ngữ lập trình RubyKhông may là hầu hết các máy chủ web đều không hỗ trợ Ruby ở dạng mặc định, vì thế trừ khi bạn có khả năng cấu hình cho riêng mình một con server như bạn mong muốn, nếu không thì bạn cần sử dụng một nhà cung cấp dịch vụ hosting kiểu như Heroku.

6. Python

Python là một ngôn ngữ lập trình bậc cao, hoàn toàn hướng đối tượng và strongly-type. Các tính từ thường được sử dụng để mô tả về Python điển hình bao gồm: vui, dễ sử dụng, và là một công cụ để học lập trình rất tốt — nhưng cuối cùng lại có rất ít ứng dụng web trong thế giới thực viết bằng Python. Tuy nhiên, nó chắc chắn là một ngôn ngữ rất tốt cho người mới học lập trình, đặc biệt nếu bạn là người đang hướng đến các dự án trên Linux hoặc cộng đồng mã nguồn mở. Chỉ đừng mong chờ dùng nó để tạo ra các ứng dụng web thực sự, và xuất hiện như là một đối thủ cạnh tranh của cộng đồng Ruby.

Ngôn ngữ lập trình Python7. ASP.net

Đây là một sự đóng góp của Microsoft vào đấu trường các ngôn ngữ lập trình web, có thể đoán được nó phổ biến nhất trong môi trường các tổ chức và doanh nghiệp. Nó cũng được tích hợp chặt chẽ vào gia đình .Net, và bạn cần một hosting Windows xác định để có thể chạy một ứng dụng web viết bằng ASP.net, theo kinh nghiệm của tôi thì điều đó cần nhiều nỗ lực hơn là giá trị của nó. Vì thế bạn hãy tránh xa trừ khi bạn có một lý do thực sự tốt để dùng nó.

Ngôn ngữ lập trình ASP.netVậy, bạn nên học ngôn ngữ lập trình nào?

Nếu bạn muốn tạo ra một trang web hiện đại và có tương tác tốt, thì tôi đề xuất nên chọn sự kết hợp giữa PHP, MySQL và có thể JQuery/Javascript cho việc tương tác. Điều này không có nghĩa là các ngôn ngữ như Ruby và Python là không có giá trị để đầu tư nghiên cứu như là các bài tập trong khi học — chúng ta chắc chắn sẽ làm điều này vào một lúc nào đó — nhưng nếu quỹ thời gian của bạn bị eo hẹp và bạn nghiêm túc muốn bắt đầu học các kỹ năng có ích trong thế giới thực thì sự kết hợp giữa PHP/MySQL là sự lựa chọn tốt nhất để bắt đầu.
Nếu bạn nghĩ rằng tôi đã bỏ sót một điều gì đó, thì những phản hồi và đóng góp của bạn luôn được chào đón trong phần bình luận phía dưới.
Sau đây là một bình luận rất có chất lượng của bạn Alan:
Bài này hơi sơ sài, tác giả James Bruce chỉ nói rất sơ lược về những ngôn ngữ và công nghệ đã khá cũ, chủ yếu là server-side. Ngày nay cũng ít ai chỉ nói đơn giản học ngôn ngữ gì mà thường phải nói cụ thể học Framework nào, phù hợp công việc gì, lĩnh vực gì… Không có sự phân biệt nào giữa ngôn ngữ, công cụ dành cho người mới bắt đầu hay người có kinh nghiệm. Chỉ cần search thấy Framework phù hợp công việc, lập tức phải theo đuổi đến cùng và nghiên cứu thật nghiêm túc, cẩn trọng, lâu dài thì mới thành chuyên gia và làm ra sản phẩm thật sự có giá trị. Nếu chỉ học PHP/MySQL nhập môn cho vui rồi sau đó nghe người khác nói .NET hay hơn lại nhảy qua thì sẽ không đi đến đâu.
Bài viết hoàn toàn vắng bóng Java. Những vũ khí hạng nặng như GWT, Vaadin, ZK… chẳng lẽ không đáng được nhắc đến? Mặc dù trên client, Java Runtime đã gần như bị tất cả các hãng trình duyệt mặc định disable sau vụ lùm xùm lỗ hổng bảo mật hồi năm ngoái, bị người dùng tẩy chay từ lâu vì sự nặng nề, nhưng Java vẫn là ngôn ngữ back-end cực kỳ quan trọng trên Web. Với phong trào cross-compiling (kiểu GWT) Java sẽ còn được nhiều Framework dùng làm ngôn ngữ viết mã rồi dịch ra Javascript để chạy, tức là học Java có thể lập trình được cả server-side, client-side, Desktop, Web, Mobile…
Python không phù hợp cho “ứng dụng Web thực sự”? Chắc tác giả quên OpenERP là giải pháp quản trị doanh nghiệp khổng lồ phổ biến nhất thế giới viết bằng Python. Hầu hết các dịch vụ của Google đều có API Python port chứng tỏ Python rất phổ biến. Python cũng cực mạnh trên Desktop, ai từng dùng GIMP 2 thậm chí không muốn quay lại dùng Photoshop vì quá ngưỡng mộ sự gọn nhẹ, khả năng xử lý ảnh nhanh tuyệt vời, lại rất đơn giản trong việc viết và thêm chức năng chỉ thông qua Extension Script, nhúng là chạy. Nghĩa là ngang hàng Java, .NET, học Python có thể lập trình nhiều môi trường, nhiều nền tảng.
JQuery, thực ra đây chỉ là một Library (not true Framework) thích hợp cho các Website và các ứng dụng Web rất đơn giản để “query” dữ liệu ra, không phù hợp cho các “ứng dụng Web thực sự” (các Webapp đòi hỏi sự tương tác mạnh, giao diện cao cấp, input phức tạp). Nó phổ biến có lẽ phần nhiều nhờ thương hiệu Microsoft. Có nhiều thứ mạnh hơn (YUI3, Dojo)…

0 nhận xét: