Việc đánh giá ngôn ngữ lập trình nào phổ biến phụ thuộc vào nhiều yếu tố và thay đổi hàng năm. Các tín đồ trung thành của các ngôn ngữ tham gia khảo sát là một trong những nguyên nhân tạo ra các kết quả đánh giá khác nhau. Bên cạnh đó, các ngôn ngữ lập trình mới có nhiều tính năng hấp dẫn cũng có tác động ít nhiều. Bài viết này dựa trên kết quả khảo sát từ nhiều nguồn, trong đó có khảo sát và xếp hạng của StackOverFlow, PYPL, Octoverse, TIOBE, Towardsdatascience … Hy vọng đây là nguồn tham khảo hữu ích cho những ai muốn tìm hiểu thông tin hoặc muốn học ngôn ngữ lập trình mới trong năm 2020 mà chưa biết phải chọn ngôn ngữ nào.
Các tiêu chí được sử dụng để đánh giá các ngôn ngữ lập trình phổ biến trong bài này:
- Ngôn ngữ lập đã hình thành được xu thế và có tiếng tăm trong ngành công nghệ phát triển phần mềm.
- Được xếp hạng cao trên những trang web về ngôn ngữ lập trình phổ biến.
- Mức độ thông dụng tăng hoặc ổn định và nếu có giảm cũng không đáng kể.
- Có số lượng lớn thư viện, frameworks, công cụ hỗ trợ và cộng đồng lập trình viên.
- Những người nắm vững các ngôn ngữ này được các nhà tuyển dụng săn lùng và có mức lương tương xứng qua các kết quả khảo sát. Lưu ý số liệu về lương trong bài viết là ở Mỹ và có một số thông tin hạn chế về thị trường Việt Nam.
Ngoài những thông tin về mức độ phổ biến và xếp hạng, bài viết này còn đề cập đến một số thông tin khác như ưu nhược điểm, lịch sử phát triển, ứng dụng phổ biến và nhiều thông tin liên quan.
Vị trí của các ngôn ngữ lập trình trong bài này có thể khác với các bài đánh giá bạn đã xem, ví dụ Python xếp trên JS thay vì ngược lại. Điều này là do số liệu, quan điểm, thông tin có được và những lý do đã đề cập bên trên.
1.Python
Lịch sử phát triển ngôn ngữ lập trình Python
Khi Guido van Rossum phát triển Python vào những năm 1990, chẳng ai nghĩ một ngày nào đó Python sẽ là một ngôn ngữ lập trình phổ biến nhất hiện nay. Với mức độ phổ biến và thông dụng, Python xứng đáng đứng số 1 trong danh sách này. Python không phải là ngôn ngữ lập trình được phổ biến một cách nhanh chóng như C/C++ hay Java. Tuy nhiên ngay từ đầu Python đã được xây dựng hướng đến sự thân thiện của người dùng, cú pháp rõ ràng trực quan. Ngay cả trẻ em và những người mới có thể dễ dàng làm quen với Python. Python là ngôn ngữ có tốc độ xử lý nhanh, mượt mà và nổi tiếng về sự chặc chẽ.
Năm 2008, Python đã trải qua một sự lột xác với sự ra đời của Python 3. Ngày nay, Python được sử dụng rộng rãi và trong nhiều lĩnh vực. Machine learing là một trong số đó.
Ưu điểm của ngôn ngữ lập trình Python
- Python có cấu trúc đơn giản, thân thiện với người sử dụng, thanh lịch nhưng cũng rất mạnh mẽ và đầy hiệu quả. Python đã tạo ra được một tiêu chuẩn về sự hiệu quả và đơn giản trong của các ngôn ngữ lập trình. Để có thể hình dung, dể giải quyết cùng một vấn đề code của Python có thể ngắn hơn C++ và Java nhiều lần.
- Có tốc độ xử lý nhanh, tương thích mạnh mẽ với các phần cứng và có thể chạy trên nhiều hệ điều hành khác nhau. Vì vậy là lựa chọn hàng đầu trong các lĩnh vực Machine Learning, Deep Learning và Data Science.
- Với việc xử lý cực nhanh, Python có thể coi là ngôn ngữ mặc định trong lĩnh vực Cloud Computing (Điện toán đám mây) và Server Computing
- Pyhon có cộng đồng phát triển rất lớn và mạnh mẽ, sẵn sàng hỗ trợ bạn khi cần. Bạn có thể dễ dàng tìm thấy các thư viện mình cần dù bạn làm việc trên các ứng dụng doanh nghiệp, khoa học dữ liệu hay trí thông minh nhân tạo
- Trải qua hơn 30 năm tồn tại và phát triển, ngày nay Python có mặt trong nhiều lĩnh vực công nghệ và học thuật. Pyhon cũng có các công cụ hỗ trợ rất mạnh mẽ
Nhược điểm của Python
Không có bất cứ ngôn ngữ lập trình nào mà không có điểm yếu và Python cũng vậy:
- Không phù hợp với việc phát triển các ứng dụng mobile và đó là lý do bạn hiếm khi thấy ứng dụng mobile nào được xây dựng dùng Python.
- Không khả thi khi dùng Python để xây dựng các ứng dụng game 3D
- Nếu so sánh với các công nghệ khác như JDBC và ODBC, việc truy cập database của Python còn khá sơ khai. Vì vậy việc truy cập dữ liệu các ứng dụng doanh nghiệp với dữ liệu phức tạp có thể gặp khó khăn
- Python là chương trình interpreted language, nghĩa là chạy từng câu lệnh hay đoạn code sử dụng Python interpreter chứ không biên dịch trước như compiled language như C, C++, Golang… Vì vậy các ứng dụng Python có thể bị chậm.
Mức độ phổ biến của Python
Trong vài năm trở lại đây, Python có được sự phát triển vô cùng mạnh mẽ và không có dấu hiệu dừng lại. Trên website xếp hạng các ngôn ngữ lập trình phổ biến PYPL, Python được xếp hạng số 1
Theo Octoverse, Python đã vượt qua Java và đứng thứ 2 trong số các ngôn ngữ lập trình có nhiều repositories nhất trên GitHub
StackOverFlow cũng xếp Python thứ 2 trong bảng xếp hạng các ngôn ngữ lập trình được yêu thích nhất
Xu hướng tìm kiếm Python theo Google Trends
Trong vòng 5 qua, lượt tìm kiếm thông tin về ngôn ngữ lập trình Python có xu hướng tăng rõ rệt theo Google Trends
Các lĩnh vực ứng dụng phổ biến của Python
Python được ứng dụng phổ biến trong các lĩnh vực:
- Khoa học dữ liệu – Data science
- Phân tích dữ liệu – Data Analytics
- Trí tuệ nhân tạo – Artificial Intelligence
- Deep Learning
- Ứng dụng doanh nghiệp
- Phát triển web
Thị trường và lương lập trình viên Python
Số liệu của tháng 01 năm 2020 từ website tuyển dụng Indeed cho thấy, các lập trình viên Python được săn lùng hàng đầu tại Mỹ với 74 nghìn việc đăng tuyển. Mức lương cũng cho các nhà phát triển Python cũng xếp hạng 3 với mức trung bình 120 nghìn USD một năm. Tại Việt Nam, số liệu từ các website tuyển dụng IT cho thấy mức lương của các lập trình viên Python lên tới 2,500 USD mỗi tháng cho những người có kinh nghiệm trên 5 năm. Với những người có kinh nghiệm từ 1,5 – 3 năm, lương trung bình là 1,134 USD theo khảo sát mới nhất 2020 của Topdev.
2. JavaScript
Lịch sử phát triển ngôn ngữ lập trình JavaScript
Khi cuộc chiến tranh giữa các trình duyệt bắt đầu, Netscape yêu cầu Brendan Eich phát triển một ngôn ngữ lập trình mới cho trình duyệt này. Trong vòng chỉ có 10 ngày Brendan Eich đã cho ra được prototype khởi thủy của ngôn ngữ này và phần còn lại đã đi vào lịch sử. Những ngày đầu các lập trình viên thường hay nhạo bán JavaScipt vì thiết kế nghèo nàn và thiếu nhiều tính năng.
Qua thời gian, JavaScript đã được phát triển thêm thành một ngôn ngữ đa dụng (multi-paradigm) và linh hoạt. Thời điểm quan trọng của JavaScript là vào năm 2009 khi Ryan Dahl cho ra đời Node.js, một nền tảng được xây dựng trên JavaScript Runtime và cho chạy được trên Server side. Năm 2010, Google cho ra đời framework dựa trên JavaScript có tên gọi là AngularJS. Ngày nay, JavaScript là một trong những ngôn ngữ lập trình được sử dụng rộng rãi nhất trên thế giới. JavaScript có thể chạy trên trình duyệt, server, thiết bị di động, điện toán đám mây, Containers, Micro-controllers.
Ưu điểm của JavaScript
- JavaScript là ngôn ngữ lập trình web phổ biến nhất hiện nay không phải bàn cãi. Cho đến thời điểm hiện tại, các SPA (Single-page application) framwork được phát triển dựa trên JavaScript như React, Vue.js, Angular được sử dụng để phát triển web là rất nhiều
- Với Node.js, JavaScript cung cấp mô hình lập trình hướng sự kiện (event-driven prgramming) phù hợp cho các tác vụ I/O cao. Ngày nay JavaScript và Node.js chạy trên hầu hết các nền tảng, bao gồm server và thiết bị di động.
- Từ 2015 trở lại đây, JavaScript đã có sự phát triển vượt bậc. Các phiên bản ES5, ES6 có rất nhiều tính năng vượt trội. JavaScript ở thời điểm này là khác hoàn toàn JavaScript của thập niên trước.
- Cộng đồng sử dụng và phát triển JavaScript là rất lớn. Mỗi ngày có đến hơn 500 npm (Node Package Manager) được cho ra đời đã chứng tỏ điều đó
- Với kích thước nhỏ và chạy mượt mà, Javascrit được sử dụng rộng rãi và là chọn lựa số 1 cho các tác vụ thực thi trên Serverless Computing
Nhược điểm của JavaScript
- Bảo mật: Vì JavaScript thực thi trên máy người sử dụng nên có thể bị khai thác bởi các loại mã độc. Đó là lý do một số người tắt JavaScript trên máy của họ
- Hỗ trợ trình duyệt: JavaScript đôi lúc được dịch (interpreted) khác nhau trên các trình duyệt. Điều đó gây khó khăn cho các nhà phát triển khi xây dựng các ứng dụng chạy cross-platform.
- Debugging: Mặc dù một số HTML deditor hỗ trợ debugging nhưng xét về hiệu quả thì không thể bằng các editors khác như của C/C++. Mặc khác, vì các trình duyệt không chỉ ra các lỗi nên cũng gây khó khăn cho các lập trình viên
- JavaScript chỉ hỗ trợ Kế thừa đơn (Single Inheritance) và không hỗ trợ Kế thừa đa cấp (Multiple Inheritance). Điều đó có thể gây khó khăn cho một số chương trình cần có đặc tính này (xem thêm về sự khác nhau giữa Single và Multiple Inheritance )
- Các chức năng xử lý toán tử (Bitwise) thực hiện chậm. JavaScript lưu các số dưới dạng Số thực dấu phẩy động (Floating-point Number) 64-bit và chuyển qua số nguyên 32-bit để thực hiện các thao tác toán tử và lại chuyển ngược lại số 64-bit của JavaScript. Điều này làm tăng thời gian chạy các script và làm giảm tốc độ của chương trình.
Mức độ phổ biến của JavaScipt
Trong bảng kết quả khảo sát năm 2019 của StackOverFlow, JavaScript được xếp hạng đầu trong danh sách các ngôn ngữ lập trình phổ biến nhất
Còn trên Octoverse, JavaScript cũng đang nằm ở vị trí đầu tiên trong các ngôn ngữ có Resopsitory nhiều nhất
Trên PYPL, Java Script được xếp hạng 3
Xu hướng tìm kiếm về JavaScript theo Google Trends
Khi xem trên Google Trend bạn sẽ thấy xu hướng tìm kiếm trên Google là tương đối ổn định trong vòng 5 năm
Các lĩnh vực phát triển phổ biến của JavaScript
- Phát triển Web
- Phát triển Backend
- Các ứng dụng trên thiết bị di động
- Serverless Computing
- Phát triển game trên trình duyệt
Thị trường và lương lập trình viên JavaScript
Tại thị trường lao động Mỹ, JavaScript là ngôn ngữ lập trình được xếp thứ 3 trong các ngôn ngữ có nhu cầu tuyển dụng theo Indeed. Có đến 57 nghìn việc làm JavaScript được tuyển trong tháng 01 2020 với mức lương trung bình năm khoản 114 nghìn USD. Tại Việt Nam, lương trung bình của một JavaScript Developer có kinh nghiệm từ 5-7 năm là ở mức 1490 USD theo khảo sát của trang web tuyển dụng Vietnamworks ở thời điểm đầu năm 2019.
3. Java
Lịch sử phát triển ngôn ngữ lập trình Java
Những năm 1990, hầu hết các ứng dụng doanh nghiệp được viết bằng C++, vốn khá phức tạp và phụ thuộc vào các nền tảng. James Gosling và các cộng sự tại hãng Sun đã làm đơn giản việc này đi rất nhiều với việc cho ra đời một ngôn ngữ lập trình đơn giản hơn, hướng đối tượng (object-oriented) và là interpreted languae (xem thêm về định nghĩa trong phần Python bên trên). Java cũng là ngôn ngữ hỗ trợ đa luồng (multi-threading).
Java đã loại bỏ việc phụ thuộc nền tảng với Java Virtual Machine (JVM), cho phép “Write Once, Run Anywhere” (Viết một lần, chạy khắp mọi nơi). Bên cạnh đó JVM có Quá trình thu gom rác (Garbage Collection) để quản lý các object life cycle. Garbage collection theo dõi toàn bộ các Object trong bộ nhớ và tìm ra những Object nào không được dùng nữa để xóa.
Trong những năm gần đây Java đã bị mất thị phần vào một số ngôn ngữ lập mới và thân thiện hơn như Python, JavaScript. JVM cũng không là lựa chọn của xu hướng ảo hóa vì kích thước của nó. Oracle, hãng đã mua lại Sun, gần đây thu phí bản quyền sử dụng JDK cũng góp phần làm giảm việc phổ biến của Java.
Tin tốt là Java đang cố gắng trở lại đường đua ảo hóa bằng việc ra đời Máy ảo hiệu xuất cao GraalVM. Bên cạnh đó, bạn cũng có thể sử dụng miễn phí OpenJDK thay vì JDK của Oracle.
Ưu điểm của Java
- Java là ngôn ngữ lập trình mạnh mẽ, nhiều tính năng, đa dụng (multi-paradigm) và là interpreted language (xem phần Python). Java cũng là ngôn ngữ dễ học và hiệu quả, dễ tìm lỗi khi phát triển ứng dụng.
- Trong suốt nhiều năm phát triển, Java không có sự thay đổi một cách toàn diện như Python hay Scala. Vì vậy Java là ngôn ngữ backward compatible và là điều quan trọng với các ứng dụng doanh nghiệp. Java là lựa chọn số một trong lĩnh vực này
- JVM của Java có thể coi là một kiệt tác và là máy ảo tốt nhất của ngành công nghệ phần mềm. Với 25 năm phát triển, JVM có hiệu xuất đáng kinh ngạc và nhiều tính năng hữu ích. Garbage collection (đề cập bên trên) cũng là một đặc điểm nổi bật nữa của JVM
- Java là ngôn ngữ không phụ thuộc vào nền tảng (Platform-independent). Java code có thể chạy trên bất kỳ máy nào và không cần bất kỳ chương trình nào cài đặt trên máy tính ngoại trừ JVM. Java cũng hỗ trợ điện toán phân tán (distributed computing).
- Tính bảo mật trong Java là khá cao. Java không sử dụng pointer (no explicit pointer), sử dụng garbage collection, cryptographic, sử dụng trình trình xác minh bytecode… là những lý do giúp cho các chương trình chạy Java khá an toàn. Xem thêm 10 lý do tại sao Java là ngôn ngữ lập trình bảo mật.
Nhược điểm của Java
- Nếu so với những ngôn ngữ lập trình như C, C++ thì Java chạy chậm và tốn bộ nhớ hơn.
- Garbage collection là điểm cộng cũng là điểm trừ của Java. Trong Java, bộ nhớ được quản lý thông qua quá trình này và khi chạy sẽ ảnh hưởng đến hiệu suất của ứng dụng. Lý do đơn giản là các tác vụ khác phải ngưng khi thực hiện tác vụ này.
Mức độ phổ biến của Java
Chỉ sau 5 năm từ ngày ra mắt, Java đã trở nên ngôn ngữ lập trình phổ biến thứ 3 và giữ vững phong độ trong 2 thập kỷ tiếp theo. Bạn có thể thấy rõ điều này qua bảng xếp hạng uy tín của TIOBE
Trong bảng xếp hạng của PYPL, Java đứng ở vị trí thứ 2
Trên Octoverse, Java xếp hạng một trong thời gian 2014-2018 và chỉ rơi xuống hạng 3 năm ngoái. Còn trên StackOverFlow, Java cũng được xếp hạng cao và chỉ bị JavaScript và Python vượt mặt (Xem các diagram bên trên)
Xu hướng tìm kiếm Java theo Google Trends
Theo Google Trends, mức độ hấp dẫn của Java đã giảm trong vòng 5 năm trở lại đây
Các lĩnh vực phát triển phổ biến của JavaScript
- Các ứng dụng doanh nghiệp
- Phát triển các ứng dụng doanh nghiệp
- Dữ liệu lớn (big data)
- Phát triển web
Thị trường và lương lập trình viên Java
Các lập trình viên Java được tìm kiếm nhiều thứ hai tại thị trường Mỹ với 69,000 job được đăng vào tháng 01 2020 (theo Indeed). Mức lương trung bình ở Mỹ là 104 nghìn USD một năm.
Tại Việt Nam, theo khảo sát của các website tuyển dụng IT, mức lương của các senior Java developer có thể lên đến 3000 USD và trung bình là 1457 USD cho các lập trình viên có kinh nghiệm 7 năm trở lên theo khảo sát của Vietnamworks vào tháng 03/2019. Trong báo cáo của Adecco, lương cho lập trình viên Java là vào khoảng 40-100 triệu VNĐ.
4. C# (C-Sharp)
Lịch sử phát triển ngôn ngữ lập trình C#
Tháng 7 năm 2000, Microsoft đã giới thiệu một ngôn ngữ lập trình hướng đối tượng mới có tên là C#. Đồng thời cũng hé lộ một nền tảng mới của họ, .NET framwork. Kiến trúc sư phần mềm nổi tiếng Anders Hejlsberg, tác giả của các ngôn ngữ lập trình Turbo Pascal, Delphi đã thiết kế C# như là một phần của nền tảng CLI (Common Language Initiative) nơi các ngôn ngữ lập trình (chủ yếu của Microsoft ) được biên dịch thành định dạng mã trung gian, chạy trên Bộ thực thi (Runtime) có tên gọi là Bộ thực thi ngôn ngữ chung (Common Language Runtime – CLR).
Trong những ngày đầu, C# bị chỉ trích là bắt chước Java. Tuy nhiên sau đó cả hai ngôn ngữ đều rẽ sang con đường phát triển khác nhau. Ngày nay, C# là ngôn ngữ đa dụng (multi-paradigm) không chỉ được sử dụng trên nền tảng Windows mà còn chạy trên iOS, Android và cả Linux.
Ưu điểm của ngôn ngữ lập trình C#
- Anders Hejlsberg đã làm một việc quá thành công khi phát triển C# ra khỏi cái bóng của Java. Theo kinh nghiệm của các developer, C# thậm chí còn vượt qua cả Java.
- Được Microsoft chống lưng và hiện diện trong ngành công nghiệp phần mềm đã hơn 20 năm, C# có một hệ sinh thái các thư viện và framworks lớn. ASP.NET được dùng trong việc phát triển Web, đặc biệt trên Windows.
- Cũng giống như Java, C# không phụ thuộc vào nền tảng và có thể chạy trên Windows, Linux, thiết bị mobile.
- Những ưu điểm nổi bật khác của C#: ngôn ngữ lập trình hướng đối tượng, có quy trình dọn rác tự động (Automatic Garbage Collection), dễ học dễ sử dụng, có thể có sử dụng sử hỗ trợ của Microsoft (trả phí)…
Nhược điểm của ngôn ngữ lập trình C#
- Vì phụ thuộc vào .NET framework, sự linh động của C# là khá thấp.
- Mỗi lần có sự thay đổi trong chương trình dù là lớn hay nhỏ đều phải biên dịch lại.
- C# chạy chậm dù sau khi Microsoft cho ra đời WPF (Windows Presentation Foundation) việc này đã được cải thiện hơn.
Mức độ phổ biến của C#
Website xếp hạng các ngôn ngữ lập trình TIOBE đã xếp C# hạng 5 trong tháng 01 năm 2020.
Kết quả thăm dò của StackOverFlow xếp C# hạng 4 và trang web Octoverse xếp C# hạng 5 dựa trên số lượng repository trên GitHub (Xem các biểu đồ bên trên)
Xu hướng tìm kiếm C# theo Google Trends
Mức dộ phổ biến của C# theo Google Trend là giảm trong vài năm trở lại đây
Các lĩnh vực phát triển phổ biến của C#
- Phát triển các ứng dụng chạy trên server (server-side)
- Các ứng dụng mobile
- Phát triển web
- Phát triển game
- Các phần mềm cho nền tảng Windows
Thị trường và lương lập trình viên C#
Mức lương trung bình năm của các lập trình viên C# là 96,000 USD, xếp hạng 8 theo trang web tuyển dụng Indeed. Cũng theo trang web này có 32 nghìn job được đăng tuyển tại Mỹ, đứng thứ 5 trong các ngôn ngữ lập trình có job tuyển dụng. Tại Việt Nam, theo bảng khảo sát của Vietnamworks trong công bố tháng 03/2019, lương trung bình của lập trình viên C# với hơn 5 năm kinh nghiệm là vào khoảng 1133 USD/tháng.
5. C
Lịch sử phát triển ngôn ngữ lập trình C
Trong khoảng thời gian những năm 1960-1970, giá CPU, bộ nhớ là vô cùng đắt đỏ. Dennis Ritchie, một kỹ sư tại Bell lab thuộc tập đoàn viễn thông AT&T đã phát triển ngôn ngữ C với khả năng can thiệp sâu vào bộ nhớ và điều khiển phần cứng. Ban đầu, sự phát triển của C liên kết chặt chẽ với sự phát triển của hệ điều hành Unix.
Sau nhiều năm phát triển C đã trở thành một trong những ngôn ngữ lập trình được sử dụng nhiều nhất. Có thể cho rằng C là ngôn ngữ có sức ảnh hưởng lớn đến sự phát triển của nhiều ngôn ngữ trong danh sách này.
C thường bị phê phán là phức tạp và thiếu nhiều tính năng. Tuy nhiên nếu bạn muốn tận dụng tối đa tài nguyên phần cứng thì C/C++ là lựa chọn tối ưu.
Ưu điểm của ngôn ngữ lập trình C
- C cho phép can thiệp sâu vào bộ nhớ và biên dịch với mã lệnh máy tính. Vì vậy C là một trong những ngôn ngữ lập trình nhanh và mạnh mẽ nhất
- C cho phép điều khiển phần cứng. Các chương trình C có thể chạy trên bất kỳ nền tảng nào và tận dụng tối đa tài nguyên phần cứng mà nó chạy trên đó. Cho dù đó là GPU (Graphics Processing Unit – bộ xử lý đồ họa), TPU (Tensor Processing Unit), Container, điện toán đám mây, thiết bị di động hay Vi điều khiển(Microcontroller).
- C là một “ngôn ngữ lập trình của các ngôn ngữ lập trình”. Các trình biên dịch của các ngôn ngữ khá như Ruby, PHP, Python được viết dựa trên C.
Nhược điểm của ngôn ngữ lập trình C
- Trong C không có khái niệm hướng đối tượng (OOP). C đơn giản là ngôn ngữ lập trình cấu trúc và đó là lý do C++ ra đời
- C không có runtime checking và như vậy các lỗi hay bug không được phát hiện ra trong mỗi dòng code. Thay vào đó trình biên dịch hiển thị tất cả các lỗi trong chương trình và vì vậy làm cho việc kiểm tra code rất phức tạp trong các chương trình lớn.
- Trong C không có khái niệm namespace. Điều đó khiến cho bạn không thể dùng 2 biến cùng tên được.
- C cũng không có Xử lý ngoại lệ (Exception Handling) dù đây là tính năng cực kỳ quan trọng của các ngôn ngữ lập trình.
Mức độ phổ biến của C
C là ngôn ngữ lập trình cổ xưa nhất trong danh sách các ngôn ngữ lập trình phổ biến nhất trong danh sách này với tuổi đời gần 50 năm. Trong danh sách của TIOBE, C luôn là ngôn ngữ thông dụng hàng đầu qua nhiều thập kỷ:
Trang web Octoverse xếp C hạng 9 trong những ngôn ngữ lập trình phổ biến trong khi StackOverFlow xếp C ở hạng 8
Xu hướng tìm kiếm C theo Google Trends
Trong 5 năm qua, mức độ quan tâm về ngôn ngữ lập trình C trên Google Trends là khá ổn định:
Các lĩnh vực phát triển phổ biến của C
- Lập trình hệ thống
- Phát triển game
- Internet vạn vật (IoT- Internet of Things) và các hệ thống Real-time
- Machine Leaning (máy học) , Deep Learning
- Các hệ thống nhúng (Embedded Systems)
Thị trường và lương lập trình viên C
Có 28 nghìn job về ngôn ngữ lập trình C được đăng tại Mỹ trong tháng đầu năm 2020 với mức lương trung bình năm là 104,000 USD, xếp hạng 6 theo Indeed. Tại Việt Nam, lương trung bình theo báo cáo của Vietnamworks tháng 03 2019 là 1767 USD cho người từ 5-7 năm kinh nghiệm.
6. C++
Lịch sử phát triển ngôn ngữ lập trình C++
Bjarne Stroustrup là người đã từng làm việc cùng với người tạo ra ngôn ngữ C, Dennis Ritchie tại Bell lab trong những năm 1970. Chịu sự ảnh hưởng lớn của ngôn ngữ C, Bjarne Stroustrup đã tạo ra C++ như phần mở rộng của C với các chức năng hướng đối tượng (Object-Oriented features). Qua thời gian, C++ phát triển thành ngôn ngữ đa dụng (multi-paradigm), phục vụ nhiều mục đích khác nhau. Cũng giống như C, C++ có thể can thiệp sâu vào bộ nhớ và biên dịch trực tiếp bà mã lệnh của máy tính.
C++ cũng cho phép điều khiển phần cứng như C. C++ có rất nhiều tính năng và là ngôn ngữ rất phức tạp và không đơn giản để trở nên chuyên gia về ngôn ngữ này.
Vì sự phức tạp và nhiều yếu tố khác nên C++ đã mất vị trí ngôn ngữ lập trình thông dụng vào tay Java, đặc biệt trong lĩnh vực phần mềm doanh nghiệp và Dữ liệu lớn (Big data) vào những năm 2000. Tuy nhiên, C++ đã có sự trở lại với sự phát triển của GPU (Graphics Processing Unit – bộ xử lý đồ họa), Containerization, ảo hóa.. vì những ưu điểm về can thiệp vào phần cứng và các hệ sinh thái.
Ngày nay, C++ là một trong những ngôn ngữ lập trình quan trọng và được sử dụng rộng rãi trong ngành công nghệ phần mềm.
Ưu điểm của ngôn ngữ lập trình C++
- Cũng giống như Java, C++ đã có sự thay đổi và phát triển phù hợp với thay đổi nhanh chóng của phần cứng và cá hệ sinh thái (Ecosystem). Phiên bản C++ hiện đại bảo mật hơn, hiệu quả hơn các phiên bản C++ trước kia.
- Tương tự nhừ C, C++ cho phép can thiệp và điều khiển phần cứng và có thể chạy trên bất kỳ nền tảng nào đồng thời tận dụng tối đa tài nguyên phần cứng mà nó chạy trên đó.
- C++ chạy rất nhanh và mượt mà ngay cả những hệ thống đòi hỏi hiệu suất cao. Nhiều phần mềm như Java Virtual Machine, Chrome V8 Engine, nhiều cơ sở dữ liệu được phát triển dùng C++
Nhược điểm của ngôn ngữ lập trình C++
- Sử dụng Pointers: pointer trong C/C++ là khái niệm khá phức tạp và tốn nhiều tài nguyên bộ nhớ. Sử dụng sai sẽ khiến chương trình bị lỗi hoặc thực thi không đúng.
- Vấn đề về bảo mật: mặc dù lập trình hướng đối tượng bảo mật tốt hơn những ngôn ngữ không hướng đối tượng như C, một số vấn đề bảo mật vẫn còn tồn tại do các điểm yếu của pointers, hàm Friend, biến toàn cục.
- Do C++ cho phép người dùng quyền điều khiển bộ nhớ máy tính sử dụng DMA (Dynamic Memory Allocation), C++ không có tính năng Thu gom rác (Garbage Collection) để tự động loại bỏ các dữ liệu không cần thiết.
Mức độ phổ biến của C++
C++ là ngôn ngữ có tuổi đời cao thứ hai trong các ngôn ngữ xếp hạng trong danh sách này (chỉ sau C). Trong bảng xếp hạng của TIOBE, C++ phổ biến thứ 2 trong lần đánh giá gần nhất, tháng 02 năm 2020.
Octoverse xếp C++ hạng 6 dựa trên số lượng repository trên GitHub trong khi StackOverFlow xếp C++ hạng 9 trong danh sách các công nghệ được yêu thích nhất năm 2019.
Xu hướng tìm kiếm C++ theo Google Trends
Mặc dù C++ chịu sự cạnh tranh gay gắt từ các ngôn ngữ hiện đại như Rust hay Go, theo Google Trends, sự quan tâm vê C++ trên Google Trends là khá ổn định trong vòng 5 năm qua
Các lĩnh vực phát triển phổ biến của C++
- Lập trình hệ thống
- Phát triển game
- Ứng dụng trong IoT và Real-time systems
- Machine learning, deep learning
- Hệ thống nhúng, hệ thống phân tán
Thị trường và lương lập trình viên C++
Theo Indeed, C++ đứng thứ tư trong số các ngôn ngữ cần người tại Mỹ trong các tháng đầu năm 2020. Về lương, các lập trình viên C++ thu nhập trung bình 108,000 USD mỗi năm, xếp hạng 5.
Tại Việt Nam, lương trung bình của lập trình viên C++ là hơn 1000 USD mỗi tháng theo một khảo sát vào tháng 03/2019. Số liệu này cũng khá trùng khớp với số liệu mới nhất của Topdev khảo sát đầu năm 2020 với mức trung bình là 1,192 USD cho người có kinh nghiệm từ 1,5 -3 năm.
7. PHP
Lịch sử phát triển ngôn ngữ lập trình PHP
Cũng giống như Python, PHP cũng là một ngôn ngữ được phát triển bởi một người duy nhất trong một dự án cá nhân. Kỹ sư phần mềm Rasmus Lerdorf ban đầu tạo ra PHP như là một tập đơn giản các Chuẩn giao tiếp client – server CGI (Common Gateway Interface) và được viết bằng C để tạo ra các ứng dụng web động (dynamic Web Applications). Về sau nhiều tính năng phong phú được thêm vào và PHP trở nên một ngôn ngữ lập trình đầy đủ và mạnh mẽ.
Hiện nay, PHP là ngôn ngữ động, đa mục đích và được dùng chủ yếu để phát triển các ứng dụng web với các logic được sử lý trên server (server-side). Với sự nổi lên của JavaScript cho phép phát triển web dựa trên cơ chế client-site (xử lý trên client), PHP đang mất dần sức hấp dẫn và tầm ảnh hưởng nó. Tuy vậy, PHP vẫn rất phổ biến cho tới thời điểm này.
Ưu điểm của ngôn ngữ lập trình PHP
- PHP là một trong những ngôn ngữ hiệu quả và được sử dụng rất nhiều trong các dự án phát triển web. Facebook là một trong số đó.
- Với hơn 35 năm tồn tại, đã có rất nhiều PHP Frameworks được phát triển và sử dụng rộng khắp. Bạn dễ dàng nhận được sự hỗ trợ từ cộng đồng PHP.
- PHP là ngôn ngữ đa nền tảng, có thể chạy trên hầu hết cá hệ điều hành từ Solaris, UNIX, Windows và Linux. PHP cũng dễ dàng kết nối với các cơ sở dữ liệu như mySQL, Apache và nhiều CSDL khác.
- Tốc độ cũng là một ưu thế của PHP. So sánh với các ngôn ngữ khác PHP nằm trong tốp đầu.
- PHP là ngôn ngữ lập trình mã nguồn mở và vì vậy hoàn toàn miễn phí.
Nhược điểm của ngôn ngữ lập trình PHP
- Bảo mật: vì là mã nguồn mở, sẽ có những bugs mà hacker biết và khai thác.
- Dù được Facebook, WordPress sử dụng, PHP vẫn được xem là ngôn ngữ không phù hợp với các ứng dụng lớn.
- Quy trình quản lý lỗi (Error Handling Method) nghèo nàn.
Mức độ phổ biến của PHP
Theo TIOBE, tháng đầu 2020 PHP xếp hạng 8 trong các ngôn ngữ lập trình phổ biến nhất
Octoverse xếp PHP hạng 4 và StackOverflow là hạng 5 các ngôn ngữ lập trình thông dụng
Xu hướng tìm kiếm PHP theo Google Trends
Có xu hướng giảm trong việc tìm kiếm thông tin về PHP theo Google Trends
Các lĩnh vực phát triển phổ biến của PHP
- Phát triển các ứng dụng web theo cơ chế server-side
- Phát triển các hệ thống quản lý nội dung (CMS)
- Các ứng dụng web độc lập
Thị trường và lương lập trình viên PHP
Tại thị trường Mỹ, nhu cầu tuyển dụng lập trình viên PHP đứng thứ 7 trong tháng đầu năm 2020 với 18 vị trí đăng tuyển. Mức lương trung bình năm là 90,000 USD, xếp thứ 10. Thông tin tham khảo từ website tuyển dụng Indeed.
Tại Việt Nam, lương trung bình của PHP developer có kinh nghiệm từ 5-7 năm là khoảng 1,100 USD theo khảo sát của các website tuyển dụng. Với kinh nghiệm từ 1,5 – 3 năm bạn có thể có thu nhập trung bình là 836 USD theo Topdev.
8. Swift
Lịch sử phát triển ngôn ngữ lập trình Swift
Các kỹ sư của hãng Apple, dẫn dắt bởi kiến trúc sư trưởng Chris Lattner đã phát triển ngôn ngữ lập trình Swift với mục đích chính là khắc phục những điểm yếu của Objective – C, vốn là ngôn ngữ truyền thống trong lập trình iOS. Swift được giới thiệu vào năm 2014 sau 4 năm phát triển.
Swift là ngôn ngữ đa dụng (multi-paradigm), đa mục đích và là ngôn ngữ biên dịch (compiled programing language) nên sử dụng rất hiệu quả. Swift hỗ trợ trình biên dịch LLVM (Low-Level Virtual Machine) tương tự như C/C++, Rust.
Ngày nay, Swift là ngôn ngữ chính để phát triển các ứng dụng trên iOS. Là một ngôn ngữ biên dịch và mạnh mẽ, Swift ngày càng thông dụng.
Ưu điểm của ngôn ngữ lập trình Swift
- Một trong những điểm mạnh của Swift là thiết kế ngôn ngữ. Có cú pháp đơn giản, ngắn gọn, hiệu quả, code của Swift tương đồng với tiếng Anh tự nhiên. Swift là một lựa chọn thay thế xứng đáng cho ngôn ngữ Objective-C trong hệ sinh thái của Apple vốn có cú pháp khá phức tạp và khó hiểu như ngôn ngữ C. Swift có thể giảm code viết bằng Objective-C cho cùng một ứng dụng đến 70%
- Swift có tốc độ xử lý nhanh, mượt mà, dễ dàng mở rộng. So với Objective-C, tốc độ và hiệu suất của chương trình chạy Swift có thể tăng tới 40%
- Việc phát triển ứng dụng sử dụng Swift nhanh hơn so với việc sử dụng Objective-C. Swift sử dụng Automatic Reference Counting (ARC) để quản lý việc sử dụng bộ nhớ của ứng dụng nên người lập trình không cần phải thực hiện việc này một cách thủ công.
- Có thể sử dụng Swift để phát triển Back-end lẫn Front-end của các ứng dụng.
- Swift được cả Apple lẫn IBM support và đó là một lợi thế không nhỏ. Gần đây IBM còn hỗ trợ việc Swift chạy trên nền tảng đám mây.
Nhược điểm của ngôn ngữ lập trình Swift
- Cho dù Swift phát triển nhanh nhưng vẫn còn quá mới. Vì vậy còn khá nhiều vấn đề cần phải điều chỉnh trong tương lai. Swift cũng còn khá ít thư viện và công cụ nếu so với các ngôn ngữ khác. Và cũng vì mới nên người thành thạo ngôn ngữ này chưa phải là nhiều dù nhu cầu tuyển dụng ngày càng tăng.
- Swift không tươn thích với các thiết bị iOS quá cũ sử dụng iOS 6 trở về trước. Tuy vậy điều này có lẽ cũng không quá quan trọng trong tương lai.
Mức độ phổ biến của Swift
Mặc dù chỉ mới ra đời hơn 5 năm, Swift đã lọt vào top 10 ngôn ngữ lập trình phổ dụng theo TIOBE theo bảng xếp hạng tháng 02/2020. Cách đây 1 năm Swift còn nằm ở hạng 20
PYPL cũng xếp Swift ở vị trí thứ 9 trong khi StackOverFlow xếp Swift ở vị trí 12 trong bảng khảo sát ngôn ngữ lập trình phổ biến nhất năm 2019
Xu hướng tìm kiếm Swift theo Google Trends
Theo Google Trends, sự quan tâm đối với Swift ngày càng tăng trong vòng 5 năm qua
Các lĩnh vực phát triển phổ biến của Swift
- Phát triển các ứng dụng chạy trên nền tảng iOS
- Phát triển hệ thống
- Phát triển các ứng dụng client-side (thông qua WebAssembly)
- Deep Learning
- Internet of Things
Thị trường và lương lập trình viên Swift
Theo Indeed, lương lập trình viên Swift vào khoảng 125,000 USD/năm, đứng thứ 2 trong danh sách các ngôn ngữ lập trình có mức lương cao. Nhu cầu tuyển dụng cũng khá cao, đứng thứ 9 trong danh sách với 6,000 job tuyển trong tháng 01/2020. Không có thống kê cụ thể tại Việt Nam nhưng các tin tuyển dụng đăng tuyển có mức lương từ 1,000 – 1,500 USD là khá phổ biến.
9. Go
Lịch sử phát triển ngôn ngữ lập trình Go
Cũng giống như Swift, Go (hay còn gọi là Golang) là một trong những ngôn ngữ lập trình khá mới. Go được phát triển bởi ông lớn công nghệ Google, do Robert Griesemer, Rob Pike và Ken Thompson thiết kế. Bắt đầu vào 2007, sau hai năm mã nguồn mở của Go được giới thiệu ra giới công nghệ vào năm 2009. Năm 2012 Go chính thức ra mắt phiên bảng đầu tiên.
Go thừa hưởng hầu hết các tính năng của ngôn ngữ Oberon và cú pháp từ C. OOP của Go khá giống của Smalltalk. Go là ngôn ngữ biên dịch, dễ học, dễ sử dụng và mở rộng.
Có thể nói tương lai của Golang chỉ mới bắt đầu và còn nhiều điều còn phải thay đổi và cải thiện. Tuy nhiên trong thời điểm này Go đã là một ngôn ngữ khá phổ biến.
Ưu điểm của ngôn ngữ lập trình Go
- Go là ngôn ngữ hỗ trợ mạnh việc xử lý đồng thời (Concurrency, khác với xử lý song song Parallelism mà một số người nhầm lẫn). Go có 2 tính năng hỗ trợ Concurrency rất mạnh là Goroutine (hàm có thể chạy đồng thời với các hàm khác) và Channel (cho phép 2 Goroutine có thể giao tiếp trao đổi dữ liệu với nhau).
- Go là ngôn ngữ biên dịch như Java. Tuy nhiên, thay vì biên dịch ra bytecode và cần có Java Virtual Machine để thực thi như Java thì code của Go được dịch ra mã máy (Machine Code) và có thể chạy ngay mà không cần Virtual machine. Từ máy tính của mình có thể biên dịch thành các chương trình chạy trên các nền tảng khác nhau mà mình muốn (Mac, Windows, Linux..) và chỉ cần copy một file duy nhất đến nơi mình cần chạy là xong.
- Một điểm mạnh nữa của Go là sự đơn giản. Go là sự kết hợp giữa sự đơn giản và hiệu quả của Python và sự mạnh mẽ của ngôn ngữ C.
- Go cũng có trình dọn file rác (Garbage Collector) giúp cho việc quản lý bộ nhớ hiệu quả.
Nhược điểm của ngôn ngữ lập trình Go
- Không có nhiều Golang frameworks cho các developer.
- Go là ngôn ngữ mới và vì vậy có thể thiếu các thư viện mà các lập trình viên cần.
- Sự đơn giản của ngôn ngữ Go là điểm mạnh nhưng cũng là điểm yếu vì thiếu sự linh hoạt.
Mức độ phổ biến của Go
Cũng giống như Swift, ngôn ngữ Go cũng đang phổ biến rất nhanh. Trong bảng xếp hạng của TIEBE, Go xếp thứ 11 vào tháng 02 năm 2020. StackOverFlow xếp Go hạng 10 trong các ngôn ngữ lập trình phổ biến nhất năm 2019. Trong khi đó GitHub Octoverse xếp Go thứ 10 trong số các ngôn ngữ phát triển nhanh nhất.
Xu hướng tìm kiếm Go theo Google Trends
Sự quan tâm đến ngôn ngữ lập trình Go cũng phản ánh trên Google Trends với xu hướng tăng trong vòng 5 năm qua
Các lĩnh vực phát triển phổ biến của Go
- Lập trình hệ thống
- Serverless Computing
- Ứng dụng doanh nghiệp
- Phát triển các ứng dụng Cloud-Native
- Internet of Things (IoT)
Thị trường và lương lập trình viên Go
Theo Indeed, lương trung bình của các lập trình viên Go là 93,000 USD mỗi năm, xếp hạng 9 trong các ngôn ngữ lập trình mức lương cao. Lượng job đăng tuyển là 4,000 trong tháng 01 2020. Kết quả khảo sát của StackOverFlow cũng cho thấy kết quả khá gần với số của Indeed về mức lương.
Tại Việt Nam, lương trung bình của lập trình viên Go là khá cao với mức trung bình 1,220 USD cho người có kinh nghiệm từ 1,5 – 3 năm kinh nghiệm
10. Ruby
Lịch sử phát triển ngôn ngữ lập trình Ruby
Ruby là ngôn ngữ thứ 3 trong danh sách này bên cạnh Python và PHP được xây dựng bởi một người duy nhất bởi nhà khoa học máy tính người Nhật Yukihiro Matsumoto. Ra đời năm 1995, Ruby là ngôn ngữ kịch bản hướng đối tượng (Object-Oriented Scripting language).
Ruby là một interpreted language (xem thêm chi tiết về Python), đa dụng (multi-paradigm) và là ngôn ngữ đa năng. Ruby cũng quản lý bộ nhớ tự động với Trình dọn rác Garbage Collection.
Cũng giống như Python, Ruby tập trung vào sự hiệu quả và sự yêu thích của các lập trình viên. Mặc dù Ruby không phải là ngôn ngữ phổ biến hàng đầu nhưng là ngôn ngữ rất đáng quan tâm và tìm hiểu do sự phát triển không ngừng của nó.
Ưu điểm của ngôn ngữ lập trình Ruby
- Ruby là tập hợp những tính năng tốt nhất của các ngôn ngữ lập trình như hướng đối tượng, là ngôn ngữ động, quản lý bộ nhớ động, đơn giản.
- Mặc dù bản thân Ruby không phải là một ngôn ngữ đột phá nhưng framework viết trên ngôn ngữ này Ruby on Rails là một trong những frameworks hiệu quả nhất cho việc phát triển các ứng dụng Web chạy trên server.
- Ruby được sử dụng trong các dự án lớn như Twitter, GitHub, Airbnb.
Nhược điểm của ngôn ngữ lập trình Ruby
- Có lẽ nhược điểm lớn nhất của Ruby là tốc độ xử lý chậm so với các ngôn ngữ lập trình khác.
- Code viết trên Ruby khó debug để tìm lỗi
- So sánh với các ngôn ngữ khác, Ruby có ít tài liệu và cộng đồng hỗ trợ hơn
Mức độ phổ biến của Ruby
TIOBE xếp Ruby hạng 15 trong bảng xếp hạng tháng 02 2019. Octoverse xếp Ruby hạng 10 và Ruby đứng hạng 9 trong bảng xếp hạng các ngôn ngữ thông dụng nhất của StackOverFlow
Xu hướng tìm kiếm Ruby theo Google Trends
Lượng tìm kiếm trên Google về Ruby có xu hướng giảm trong những năm gần đây theo Google Trends
Các lĩnh vực phát triển phổ biến của Ruby
- Các ứng dụng web, fullstack Web development
- Phát triển Games (gosu / Ruby2D)
- Data science
- Machine Learning & AI
Thị trường và lương lập trình viên Ruby
Một điều đáng ngạc nhiên là lương của lập trình viên Ruby tại Mỹ thuộc hàng cao nhất theo thống kê của Indeed. Họ có thể nhận trung bình đến 134,000 USD mỗi năm theo số liệu tháng 01/2020. Còn theo thống kê của StackOverflow lương trung bình là 75,000 USD/năm. Có sự chênh lệch có lễ là do cách và đối tượng khảo sát khác nhau
Lập trình viên Ryby có mức lương trung bình là 1,172 USD cho người có kinh nghiệm chưa đến 3 năm.
Xem thêm: Ngôn ngữ lập trình phổ biến nhất qua thời gian từ 1965 – 2019
Bạn có biết?
tham gia cộng đồng ITguru trên Linkedin, Facebook và các kênh mạng xã hội khác có thể giúp bạn nhanh chóng tìm được những chủ đề phát triển nghề nghiệp và cập nhật thông tin về việc làm IT mới nhất
Linkedin Page:
Facebook Group:
cơ hội việc làm IT : ITguru.vn
Comments 1