Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Thập đại ngôn ngữ lập trình: Khi nào và cách sử dụng chúng

Ngôn ngữ lập trình là công cụ giúp ta giao tiếp với máy tính theo một cách có cấu trúc. Vì vậy, các nhà phát triển phần mềm chọn ngôn ngữ cũng tương tự như cách công nhân xây dựng chọn một công cụ sao cho phù hợp với task được đặt ra.

Tất cả các ngôn ngữ trong danh sách này đều có một hoặc nhiều thuộc tính:

  • Procedural
  • Object-Oriented
  • Imperative
  • Declarative
  • Functional

Các thuộc tính này, kết hợp với các yêu cầu của task được đặt ra sẽ làm cho một số ngôn ngữ trở nên nổi bật hơn so với các ngôn ngữ khác. Vì vậy, hiểu được sự khác biệt giữa các thuộc tính này sẽ giúp nhà phát triển chọn đúng ngôn ngữ cho công việc họ đang làm.

Danh sách 10 ngôn ngữ lập trình phổ biến nhất hiện nay (không theo thứ tự)

1. Java

Mức độ phổ biến: Rất cao

Mức độ khó: Vừa đến Khó

Trường hợp sử dụng: Sử dụng chung và đặc biệt hiệu quả cho

  • Ứng dụng web
  • Điện thoại di động
  • Những hệ thống nhúng

Java là ngôn ngữ lập trình phát triển ứng dụng đa năng hàng đầu. Nó được Sun Microsystems giới thiệu vào năm 1991 như là một ngôn ngữ cấp cao.

Cú pháp của Java tương tự như C / C ++, với các dấu ngoặc nhọn cho các bao đóng và dấu chấm phẩy để kết thúc câu lệnh. Trong đó, quản lý bộ nhớ tự động – Automatic memory management là một trong những tính năng làm nên thương hiệu của Java. Trước khi Java được giới thiệu, các ngôn ngữ cũ thường yêu cầu quản lý bộ nhớ theo cách thủ công, như C và C ++. Công việc này khá là tẻ nhạt và dễ bị lỗi, vì vậy Java thường được ca ngợi là một bước tiến quan trọng cho các nhà phát triển ứng dụng.

Java còn nổi bật ở khả năng đa nền tảng của nó với châm ngôn “viết một lần, chạy bất cứ nơi nào”. Java Virtual Machine (JVM) chạy Java bytecode, vốn được biên dịch từ ngôn ngữ Java. Các JVM luôn có sẵn cho hầu hết các hệ điều hành chính, bao gồm Linux, Mac và Windows. Nó không phải lúc nào cũng hoạt động hoàn hảo, nhưng khi đã chạy thành công, một chương trình viết bằng Java có thể đáp ứng được bất kỳ nền tảng nào với một JVM tương thích.

Java thường được sử dụng để tạo các ứng dụng dành cho doanh nghiệp, web và di động. Nó là ngôn ngữ mẹ đẻ cho hệ điều hành Android của Google. Ngoài ra, Java cũng hỗ trợ hàng triệu set-top box và các thiết bị nhúng. Do đó mà các kỹ năng lập trình Java cũng rất được ưa chuộng trong thị trường tuyển dụng nhân sự IT.

Nếu bạn đang xem xét một công việc trong phát triển phần mềm thì hãy nên cân nhắc việc học Java.

2. C

Mức độ phổ biến: Trung bình

Mức độ khó: Vừa phải

Trường hợp sử dụng: Sử dụng chung và đặc biệt thích hợp cho

  • Những hệ thống nhúng
  • Hardware driver
  • Ứng dụng cục bộ – Local Application

Trước khi Java được giới thiệu, C đã từng là một ngôn ngữ cấp cao thống trị. Ra đời vào năm 1972, các phiên bản đầu tiên của Unix, được viết bằng ngôn ngữ Assembly ngay lập tức đã chuyển sang C. Ngôn ngữ sau đó còn được sử dụng trong sự phát triển của các hệ điều hành khác, bao gồm cả IBM System / 370.

C có một lịch sử phát triển lâu dài trên các hệ thống cũ hơn với bộ vi xử lý chậm và ít bộ nhớ. Các chương trình viết bằng C phải rất hiệu quả, vì vậy ngôn ngữ này luôn có uy tín về hiệu suất cao trong trường hợp chú trọng về tốc độ.

Tuy đã qua thời vàng son nhưng C vẫn còn rất phổ biến trong việc phát triển hệ thống, bao gồm hệ điều hành, thiết bị nhúng và phần mềm. Thư viện chuẩn C cũng đã được port đến nhiều nền tảng, vì vậy nó có thể dùng được trong nhiều trường hợp khác nhau. Tuy nhiên, các hệ thống cấp thấp lập trình chạy C thường được sử dụng cho một mục đích chuyên môn hơn là để lập trình ứng dụng chung. Điều này giải thích tại sao ngôn ngữ phổ biến thứ hai trên chỉ mục TIOBE nhưng lại có số lượng nhu cầu tuyển dụng tương đối ít so với các ngôn ngữ khác trong top 10.

Ngoài ra, nó còn có thể có sự trùng lặp trong thị trường việc làm với C ++

3. Python

Mức độ phổ biến: Rất cao

Mức độ khó: Từ dễ tới trung bình

Trường hợp sử dụng: Sử dụng chung và đặc biệt

  • Ứng dụng web
  • Trí tuệ nhân tạo

Python là một ngôn ngữ lập trình tương đối mới, được giới thiệu lần đầu tiên vào năm 1989. Nó là một ngôn ngữ thông dịch (interpreted language) hỗ trợ quản lý bộ nhớ tự động và lập trình hướng đối tượng.

Python rất phổ biến cho lập trình đa mục đích, bao gồm cả các ứng dụng web. Nó gần đây còn trở nên nổi tiếng với các ứng dụng đặc biệt liên quan tới lĩnh vực trí tuệ nhân tạo.

Các công việc về Python luôn rất phong phú, vì vậy thật dễ dàng để tìm việc nếu bạn biết Python.

4. C++

Mức độ phổ biến: Cao

Mức độ khó: Khó

Trường hợp sử dụng: Sử dụng chung và đặc biệt hiệu quả cho

  • Ứng dụng cục bộ
  • Dịch vụ web
  • Dịch vụ độc quyền

C ++ mở rộng C với các tính năng hướng đối tượng. “Double-plus” xuất phát từ increment operator của C. C ++ được phát triển để mang các tính năng từ nhữnh ngôn ngữ cũ sang các nền tảng nhanh và mạnh mẽ hơn.

C ++ chiếm một phần thị trường tương tự như C, bao gồm lập trình hệ thống và phát triển phần cứng cấp thấp. Trong những năm qua, các thư viện và specification của C ++ đã được mở rộng đáng kể, dẫn đến những lời chỉ trích rằng nó đã trở nên quá phức tạp và khó học.

5. Visual Basic .NET

Mức độ phổ biến: Thấp

Mức độ khó: Vừa phải

Các trường hợp sử dụng: Sử dụng chung và đặc biệt là

  • Ứng dụng web
  • Ứng dụng cục bộ

Visual Basic.NET (VB.NET) là kết quả của Microsoft khi compile ngôn ngữ Visual Basic sang ngôn ngữ trung gian .NET. Điều này cho phép các nhà phát triển viết các ứng dụng .NET bằng Visual Basic.

Các ứng dụng được viết bằng VB.NET, nhiều hay ít, cũng giống như các ứng dụng khác. Tuy nhiên, VB.NET không bao giờ phổ biến cho các ứng dụng kinh doanh vì các nhà phát triển ứng dụng ưa thích C, C ++ và C # hơn. Hầu hết các ứng dụng được viết bằng VB.NET có xu hướng cũ và có thể được coi là các ứng dụng “kế thừa” dành cho việc ngừng hoạt động hoặc tái phát triển.

6. C#

Mức độ phổ biến: Cao

Mức độ khó: Vừa phải

Các trường hợp sử dụng: Sử dụng chung và thường cho

  • Ứng dụng web
  • Ứng dụng cục bộ
  • Dịch vụ / Microservices

C # được phát triển và giới thiệu bởi Microsoft vào năm 2000, cùng với .NET Framework. Về mặt cú pháp, C # rất giống với Java và C / C ++. Nó là một ngôn ngữ hướng đối tượng để biên dịch sang ngôn ngữ trung gian .NET.

Ban đầu, C # được sử dụng để phát triển tập trung vào Windows của Windows Forms và phát triển web với ASP.NET. Tuy vậy, hệ sinh thái .NET đã phát triển gần đây với sự ra đời của .NET Standard và .NET Core. Các framework và tiêu chuẩn mới này đều là đa nền tảng, khi có thể chạy trên Windows, Linux và Mac.

C # cũng khá phổ biến cho lập trình ứng dụng web, thường được dùng (nhưng không nhất thiết) cho các hệ thống được phát triển chủ yếu dựa trên công nghệ của Microsoft. Xamarin framework cho phép các nhà phát triển viết những ứng dụng Android và iOS trong C #. Ngoài ra, ngôn ngữ còn phù hợp cho systems programming trong một số trường hợp và cũng có các thư viện cho hệ thống nhúng.

7. PHP

Mức độ phổ biến: Cao

Mức độ khó: Dễ dàng

Các trường hợp sử dụng: Sử dụng chung và thường được dùng cho

  • Ứng dụng web

PHP ban đầu là viết tắt của “Personal Home Page” như là một phần của tên nó, PHP / FI (Forms Interpreter). Từ viết tắt chính thức bây giờ là PHP: Hypertext Processor. Vai trò chính của nó là một hệ thống web application server-side scripting system. Ban đầu nó được phát triển để mở rộng một chương trình CGI nhằm hỗ trợ các biểu mẫu HTML và truy cập cơ sở dữ liệu. Mã của một chương trình PHP sẽ được trộn lẫn với HTML, làm cho nó tương tự như các trang Active Server cổ điển (pre-.NET) của Microsoft. Trình thông dịch sẽ có thể đọc HTML và code cũng như thực hiện các phần code đó trong trang.

PHP là phổ biến là vì nó dễ học. Ngoài ra, ngôn ngữ cũng là cơ sở của các ứng dụng dựa trên web phổ biến như WordPress và Joomla. Tuy nhiên, PHP cũng được biết đến với việc chất lượng phần mềm khá không đồng đều với việc các phiên bản đầu tiên bị thiếu security control khiến việc phát triển các ứng dụng có độ bảo mật cao trở nên khó khăn. May mắn là những bản cập nhật gần đây trong PHP frameworks and library đã có những cải thiện về bảo mật.

Hiện thị trường đang có rất nhiều công việc yêu cầu PHP, thường là để cho các ứng dụng web tập trung vào nội dung như WordPress và các hệ thống độc quyền được phát triển bằng PHP

8. JavaScript

Mức độ phổ biến: Rất cao

Mức độ khó: Vừa phải

Các trường hợp sử dụng: Sử dụng chung và đặc biệt là

  • Ứng dụng cục bộ
  • Ứng dụng web

JavaScript là ngôn ngữ thông dịch, dynamically typed, cấp cao. Nó sử dụng cú pháp giống như Java, do đó mà có cái tên là JavaScript. JavaScript được giới thiệu lần đầu tiên trong những ngày còn sơ khai của Internet, 1995.

JavaScript được sử dụng để viết code chạy trong trình duyệt web, client side. Nếu bạn đã sử dụng Web đủ lâu để nhớ sự ra đời của Google Maps, bạn hẳn cũng đã chứng kiến ​​tính năng đầy màu nhiệm: “scroll xuống vô hạn” vốn được thực hiện bằng cách sử dụng JavaScript.

Kể từ lần giới thiệu đầu tiên, việc hỗ trợ cho JavaScript đã được thêm vào tất cả các trình duyệt web chính. Các framework của JavaScript bao gồm React, Angular và Vue cung cấp một mô hình phát triển ứng dụng Model-View-Controller, chạy hoàn toàn trong trình duyệt. JavaScript hiện hỗ trợ các yếu tố liên quan tới visual của hầu hết các ứng dụng web hiện đại, đó là lý do tại sao hầu hết các công cụ giám sát người thường được tạo ra để sử dụng trên JavaScript.

JavaScript cũng có thể được kết hợp với HTML để tạo các ứng dụng di động đa nền tảng.

NodeJS là một web server chạy JavaScript ở server side. Do đó, các ứng dụng NodeJS cũng được viết hoàn toàn bằng JavaScript.

Với tất cả các trường hợp sử dụng và hỗ trợ này, JavaScript vừa phổ biến vừa có nhu cầu cao. Nó không phải là rất khó khăn để tìm hiểu, mặc dù có những kỹ thuật lập trình tiên tiến mà bạn sẽ cần có thời gian để làm chủ. Nếu bạn muốn cảm thấy thoải mái hơn với các ngôn ngữ hướng đối tượng, hãy cân nhắc xem xét TypeScript.

9. SQL

Mức độ phổ biến: Rất cao

Mức độ khó: Dễ tới vừa

Trường hợp sử dụng: dành chuyên về

  • Truy vấn cơ sở dữ liệu

SQL là viết tắt của Structured Query Language. SQL được sử dụng để truy vấn và sửa đổi dữ liệu trong một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS.) như như PL / SQL (Oracle) và T-SQL (Microsoft)

SQL không phải là một ngôn ngữ có thể sử dụng để viết các ứng dụng. Tuy nhiên, nó ít nhất là một kỹ năng hữu ích, nếu không nói là luôn được yêu cầu của hầu hết các nhà phát triển. Thuật ngữ “full-stack developer” đề cập đến việc nhà phát triển có bộ kỹ năng toàn diện bao gồm tất cả các khía cạnh của một ứng dụng. Điều này hầu như luôn bao gồm việc truy cập và lưu dữ liệu vào cơ sở dữ liệu. SQL không khó để học, mặc dù có các trường hợp sử dụng nâng cao trong Big Data và phân tích dữ liệu yêu cầu bạn phải có kinh nghiệm đáng kể.

SQL hiện rất phổ biến với cả các nhà phát triển và quản trị cơ sở dữ liệu, do đó, công việc đòi hỏi kỹ năng SQL luôn rất phong phú và đa dạng. Tuy nhiên, nó không phải là một kỹ năng hoàn chỉnh vì vậy nếu bạn biết về SQL thì nó sẽ là một điểm cộng lớn trong bản lý lịch, nhưng hiếm khi nó là kỹ năng chính cần thiết cho bất kỳ công việc nào.

10. Objective-C

Objective-C là một ngôn ngữ lập trình phổ biến

Mức độ phổ biến: Cao

Mức độ khó: Khó

Trường hợp sử dụng: Ứng dụng trên thiết bị di động

  • Thiết bị iOS của Apple: iPhone, iPad

Objective-C là một ngôn ngữ biên dịch, hướng đối tượng. Cú pháp của nó bắt nguồn từ Smalltalk. Cho đến năm 2014, khi Apple giới thiệu về Swift, nó vẫn là ngôn ngữ chính được Apple sử dụng để phát triển các ứng dụng cho MacOS và iOS.

Objective-C vẫn còn tương đối phổ biến, do một số lượng lớn các ứng dụng có sẵn được viết bằng nó. Giờ đây, việc phát triển hệ điều hành MacOS và iOS được thực hiện chủ yếu trong Swift, nên có khả năng mức độ thông dụng của Objective-C cuối cùng sẽ giảm xuống khi số lượng ứng dụng được hỗ trợ bởi Swift tăng theo thời gian. Mặt khác, Objective-C không dễ học vì sử dụng các quy ước cú pháp và ngôn ngữ không phổ biến với các ngôn ngữ khác, vì vậy nên dù bạn đã kinh nghiệm với các ngôn ngữ khác thì vẫn không áp dụng tốt cho Objective-C.

Nếu bạn muốn tập trung vào phát triển phần mềm cho hệ sinh thái của Apple, bạn nên chọn cả Objective-C và Swift. Điều này sẽ cho bạn khả năng làm việc trên các ứng dụng cũ được viết trong Objective-C và viết ra các ứng dụng mới trong Swift. Nhờ đó mà bạn có thể ứng tuyển vào nhiều vị trí và công việc khác nhau.

Via Techtalk