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

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.

Các bài viết liên quan:

Về tác giả bài viết:

JamesJames là một lập trình viên có nhiều năm kinh nghiệm trong lĩnh vực phát triển phần mềm, đồng thời anh cũng là một tín đồ của game và các kỷ lục trên Technophilia. Bạn có thể liên hệ với anh qua email jamesbruce@makeuseof.com

Advertisements

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

  1. 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)…

  2. Mình thích học lập trình, nhưng có một rào cản khiến mình hơi tự ti đó là mình không giỏi môn toán lắm, liệu theo con đường này với trường hợp của mình thì có khả quan, có thể theo hướng tích cực đc ko nhỉ ?

      • Như mình đây, chỉ thích mỗi Python. Làm gì cũng ngon. Xử lý ảnh, Thị Giác Máy, làm web, small tool trên Win/Linux, hầu hết mình đều sử dụng Python. 🙂 Còn lý do vì sao mà Java, C# cũng làm được vậy thì có lẽ là… Python là ngôn ngữ đầu tiên mình học, và sau đó thì mình chả buồn đụng đến C# nữa. 😀

  3. Bình luận đôi chút về bài viết của tác giả.
    Có lẽ tác giả biết không quá nhiều ngôn ngữ lập trình hoặc chỉ biết đến tên nó mà không biết ứng dụng nó.
    Nhận xét về PHP chiếm 75% ứng dụng web là quá phiếm diện. Đúng là PHP chiếm tỷ lệ cao trong các website hiện nay nhưng nó thường chỉ phù hợp cho các website nhỏ, nhỏ đến mức nhỏ tẹo mà bạn có thể bỏ ra 2tr VNĐ đã có 1 website hoàn chỉnh build từ các nền tảng mã nguồn mở. Lý do khác là hosting của nó rẻ, phù hợp cho các doanh nghiệp bé, chỉ mang tính quảng bá sản phẩm chứ ko có xử lý nghiệp vụ phức tạp.

    Python. Ông này cổ điển, ít xuất hiện ở VN vì chúng ta không có các dự án phù hợp. Nhưng nếu làm cho các công ty nước ngoài, các giải pháp nhúng, ERP… bạn sẽ thấy nó khiếp thế nào.

    ASP.Net, một chuyên gia về web ứng dụng, bạn có biết phần lớn ứng dụng web trong ngân hàng đều sử dụng Asp.Net vì nó tốt, dễ làm và an toàn cao. Tư duy của Microsft cho ngôn ngữ này rất chính xác. Những thứ quá cơ bản rồi thì để Framework làm, developer hãy tập chung vào nghiệp vụ cho khách hàng là đủ. Phải nói 100% máy tính của nhân viên văn phòng đều cài Office. Sử dụng ngôn ngữ của MS thật tuyệt vời để tương tác với ứng dụng này.

    JSP. Tại sao bạn lại quên ngôn ngữ này nhỉ. Cú pháp của nó chẳng kém cạnh gì PHP, chỉ có điều chi phí triển khai cho nó đắt, nhưng nó là anh em cùng nhà với Oracle. Nhắc đến Oracle chắc bạn biết hiện giờ không ai ăn được nó về khái niệm BigData.

    Chính xác thì đến thời điểm này, khi mà ông Google sinh ra ArgularJS thì các ngôn ngữ server side coi như bị san bằng. Bạn nên tìm hiểu qua xem nó là cái gì. Web site sử dụng ArgularJS chẳng có gì tốt ngoài nhanh, nhanh đến kinh ngạc.

    Thế thôi, tản mạn trên web tự dưng gặp post này. Mạn phép góp ý linh tinh 🙂

  4. Mình đang bắt đầu học về web. Các cao nhân cho mình hỏi như java thì viết code trên netbean, eclipse. Vậy giờ mình muốn hk web thì viết code trên phần mềm gì ạ?

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s