Các ngôn ngữ lập trình mới nổi như Rust, Go, Kotlin, Swift, TypeScript hoàn toàn có thể thúc đẩy sự nghiệp phát triển phần mềm của bạn!

Học một ngôn ngữ lập trình mới là một sự đầu tư lớn về thời gian, năng lượng và trí tuệ nhưng lại mang đến nhiều lợi ích cho lập trình viên. Bài viết này không hề phủ nhận tầm quan trọng của các ngôn ngữ lập trình chính thống mà chỉ đơn giản là cung cấp cho bạn một danh sách các ngôn ngữ lập trình hiện đại có thể cải thiện năng suất làm việc và thúc đẩy sự nghiệp của bạn. Danh sách dưới đây bao gồm nhiều lĩnh vực: lập trình hệ thống, phát triển ứng dụng, phát triển web, tính toán khoa học, v.v.

Vậy ngôn ngữ nào mới là “ngôn ngữ lập trình hiện đại”?

 

Thuật ngữ “ngôn ngữ lập trình hiện đại” khá mơ hồ. Nhiều người cho rằng Python, JavaScript là các ngôn ngữ lập trình hiện đại, và đồng thời xem Java là ngôn ngữ lập trình cũ. Thực tế là cả 3 ngôn ngữ này đều xuất hiện vào khoảng năm 1995. 

Hầu hết các ngôn ngữ lập trình chính thống đã được phát triển trong thế kỷ trước, chủ yếu vào những năm 1970 (ví dụ: C), 1980 (ví dụ: C ++), 1990 (ví dụ: Java, Python, JavaScript). Vì thế các ngôn ngữ này không được thiết kế để tận dụng các hệ sinh thái phát triển phần mềm hiện đại như: CPU đa lõi, GPU, mạng nhanh, thiết bị di động, container và cloud. Dù đa số chúng có các tính năng trang bị thêm nhưng vẫn có tính tương thích ngược và không thể loại bỏ các tính năng cũ, lỗi thời. Danh sách này sẽ xem xét các ngôn ngữ lập trình ra đời sau 2007.

Tại sao bạn nên học ngôn ngữ lập trình hiện đại?

 

Đầu tiên, các ngôn ngữ lập trình hiện đại được phát triển để tận dụng tối đa lợi thế của phần cứng máy tính hiện đại (đã được liệt kê ở trên). Ngoài ra, hầu hết các ngôn ngữ lập trình hiện đại có tính Công thái học (Ergonomics) cao hơn nhiều, như các tính năng dưới đây:

  • Mã ngắn gọn (mã hóa ít hơn)
  • Hỗ trợ tích hợp cho Concurrency (tính đồng thời) 
  • Null Safety
  • Type Inference 
  • Bộ tính năng đơn giản hơn nhiều
  • Cognitive load thấp hơn
  • Pha trộn các tính năng tốt nhất của tất cả các mô hình lập trình

Thứ hai, các ngôn ngữ lập trình trong danh sách này hoặc là đã trở thành ngôn ngữ chính thống, hoặc là sẵn sàng tạo ra bước đột phá cho ngành công nghiệp phần mềm trong thập kỷ tới. Bắt đầu điểm qua từng "cái tên trẻ triển vọng" nào!

Rust

 

Toàn cảnh ngôn ngữ lập trình hệ thống bị chi phối bởi các ngôn ngữ lập trình meta như C, C ++. Mặc dù chúng cung cấp toàn quyền kiểm soát các chương trình và phần cứng nhưng lại thiếu độ an toàn bộ nhớ. Các ngôn ngữ lập trình phổ biến khác như Java, Python, Haskell cung cấp được sự an toàn nhưng cần rất nhiều Thời gian chạy (Runtime) hoặc Máy ảo (Virtual machine), do đó không phù hợp với lập trình hệ thống. Đã có nhiều nỗ lực để kết hợp sức mạnh của C / C ++ và sự an toàn của Haskell, Java. Và Rust chính là ngôn ngữ lập trình cấp sản xuất đầu tiên làm được điều đó. Rust được phát hành lần đầu tiên vào năm 2015 và đã sớm lọt vào mắt xanh của cộng đồng.

Các tính năng chính:

  • Cung cấp An toàn bộ nhớ (Memory Safety) và An toàn đồng thời (Concurrency Safety) theo kiểu Quyền sở hữu và Vay (Ownership and Borrowing) 
  • Biên dịch đảm bảo thời gian an toàn bộ nhớ và an toàn đồng thời, đây là tính năng hấp dẫn nhất của Rust
  • Cung cấp Expressiveness (mức độ diễn đạt) của ML, Haskell. Với cấu trúc dữ liệu bất biến và các tính năng lập trình chức năng, Rust cung cấp cả Functional Concurrency và Data Concurrency
  • Rust rất nhanh
  • Vì không có runtime nên Rust cung cấp toàn quyền kiểm soát phần cứng hiện đại (TPU, GPU, CPU đa lõi)
  • Rust hỗ trợ LLVM do đó cung cấp khả năng tương tác tuyệt vời với WebAssembly và hỗ trợ web code nhanh chóng

Độ phổ biến:

Kể từ khi ra mắt vào năm 2015, Rust được cộng đồng phát triển phần mềm chấp nhận và được bình chọn là ngôn ngữ được yêu thích nhất trong bốn năm liên tiếp (2016, 2017, 2018, 2019) trong khảo sát của StackOverflow.

Với bộ tính năng này, không có gì lạ khi các công ty công nghệ khổng lồ như Microsoft, Amazon, Google cuối cùng đã tuyên bố đầu tư vào Rust như một ngôn ngữ lập trình hệ thống dài hạn. Theo Google trends, Rust tăng trưởng dần đều trong 5 năm qua. 

Các ứng dụng chính:

  • Lập trình hệ thống
  • Serverless computing
  • Các ứng dụng kinh doanh

Các ngôn ngữ cạnh tranh:

C; C ++; Go; Swift.

Go

 

Năm 2012, Google đã phát hành phiên bản chính thức đầu tiên của ngôn ngữ lập trình Go. Go cũng là ngôn ngữ lập trình hệ thống nhưng khác với Rust, nó có trình thu thập runtime và garbage (một vài megabyte). Và cũng không giống như Java hay Python, runtime này được đóng gói với mã được tạo. Cuối cùng, Go tạo ra một mã nhị phân riêng có thể chạy trong máy mà không cần phụ thuộc vào runtime hay bất cứ thứ gì khác.

Các tính năng chính: 

  • Là ngôn ngữ lập trình hệ thống đơn giản nhất
  • Được hỗ trợ Concurrency rất tốt
  • Có trình thu thập Garbage (dọn rác), các nhà phát triển phần mềm không cần phải lo lắng về việc quản lý bộ nhớ như với C / C ++
  • Google đã đầu tư mạnh tay cho Go nên ngôn ngữ này có bộ công cụ hỗ trợ phong phú
  • Vượt trội trong mảng bảo trì và được sử dụng nhiều trong các ứng dụng của doanh nghiệp

Độ phổ biến: 

Vào năm 2009 (ngay sau khi ra mắt) và năm 2018, Go đã lọt vào danh sách Programming Language Hall of Fame của TIOBE index. Thành công của Go đã mở đường cho một thế hệ ngôn ngữ lập trình mới như Rust. Hiện Go đã là một ngôn ngữ lập trình chính thống. Mới đây, nhóm phát triển Go đã công bố họ đang phát triển Go 2, khiến vị trí của Go thêm vững chắc.

Các ứng dụng chính:

  • Lập trình hệ thống
  • Serverless computing
  • Các ứng dụng kinh doanh
  • Phát triển Cloud-Native

Các ngôn ngữ cạnh tranh:

C; C ++; Rust; Python; Java.

Swift

 

Swift được phát triển như một ngôn ngữ lập trình đa mục đích. Phiên bản ổn định đầu tiên của Swift được phát hành vào năm 2014. Ngoài khả năng hỗ trợ trình biên dịch LLVM Toolchain, Swift còn có thể tương tác  với cơ sở mã Objective-C và đã trở thành ngôn ngữ lập trình chính trong phát triển Ứng dụng iOS.

Các tính năng chính: 

  • Có cú pháp đơn giản và ngắn gọn 
  • Cung cấp tính năng null safety và syntactic sugar (cú pháp đặc biệt)
  • Là một ngôn ngữ thông dịch nên Swift cũng nhanh như C ++
  • Hỗ trợ trình biên dịch Toolchain, có thể được dùng lập trình server-side và cả lập trình trình duyệt (sử dụng WebAssembly)
  • Cung cấp hỗ trợ Automatic Reference Counting (ARC) giúp hạn chế việc quản lý sai bộ nhớ

Độ phổ biến: 

Các nhà phát triển yêu thích ngôn ngữ lập trình Swift như nhiều ngôn ngữ hiện đại khác. Theo khảo sát của StackOverflow, Swift xếp thứ 6 trong danh sách các ngôn ngữ lập trình được yêu thích nhất. Theo thứ hạng từ TIOBE, Swift leo hạng lên vị trí thứ 10 vào năm 2019 (khi mới chỉ 5 năm “tuổi đời”). Chỉ số phát triển của Google trends cũng cho thấy sự tăng trưởng của ngôn ngữ này dù có một sự sụt giảm nhẹ trong giai đoạn bão hòa.

Các ứng dụng chính: 

  • Phát triển ứng dụng iOS
  • Lập trình hệ thống
  • Phát triển Client-side (qua WebAssembly)

Các ngôn ngữ cạnh tranh:

Objective-C; Rust; Go. 

Kotlin

 

JetBrains (công ty đứng sau IDE IntelliJ) đã phát triển Kotlin, một ngôn ngữ lập trình chạy trên JVM, bù đắp những thiếu sót của Java và cung cấp nhiều tính năng hiện đại. Google đã tuyên bố Kotlin là ngôn ngữ hạng nhất để phát triển Android và thúc đẩy cộng đồng CNTT kết nạp Kotlin. Ngoài ra, framework Spring đã bắt đầu hỗ trợ Kotlin trong hệ sinh thái Spring từ năm 2017. 

Các tính năng chính: 

  • Code gọn gàng, rõ ràng
  • Năng suất cao
  • Giống như nhiều ngôn ngữ hiện đại khác, Kotlin cung cấp các tính năng như Null Safety, Type Inference
  • Vì Kotlin chạy trong môi trường JVM, bạn có thể sử dụng hệ thống thư viện Java khổng lồ hiện có
  • Ngôn ngữ hạng nhất để phát triển ứng dụng Android 
  • Được “chống lưng” bởi JetBrains và Open Source nên Kotlin có bộ công cụ hỗ trợ tuyệt vời
  • Nếu hai dự án Kotlin Native (để biên dịch Kotlin thành mã gốc) và kotlin.js (Kotlin thành JavaScript) thành công, thì bạn có thể sử dụng Kotlin bên ngoài JVM
  • Có thể viết DSL (Domain Specific Language) một cách đơn giản

Độ phổ biến:

Từ khi được phát hành lần đầu tiên vào năm 2015, mức độ phổ biến của Kotlin đang tăng vọt. Theo Stack Overflow, Kotlin là ngôn ngữ lập trình được yêu thích thứ tư trong năm 2019. Bên cạnh đó, Kotlin cũng giữ những vị trí cao trong các bảng xếp hạng ngôn ngữ lập trình đáng tin cậy khác. 

Các ứng dụng chính: 

  • Ứng dụng doanh nghiệp
  • Phát triển Android App

Các ngôn ngữ cạnh tranh:

Java; Scala; Python; Go. 

 

TypeScript

 

JavaScript là một ngôn ngữ lập trình xuất sắc nhưng trước năm 2015, nó vẫn có nhiều thiếu sót. Google và nhiều công ty lớn khác đã cố gắng hoàn thiện JavaScript và cho ra đời những kết quả như: CoffeeScript, Flow, ClojureScript, v.v. Nhưng chỉ có TypeScript từ Microsoft được cho là đã trúng “giải độc đắc”. Một nhóm các kỹ sư của Microsoft, được dẫn dắt bởi Anders Hejlsberg (người tạo ra Delphi, Turbo Pascal, C #), đã tạo ra TypeScript như một siêu mô-đun statically-typed của JavaScript.

Google ấn tượng với TypeScript đến mức thay vì phát triển một ngôn ngữ mới, họ đã hợp tác với Microsoft để cải thiện TypeScript và cũng sử dụng TypeScript làm ngôn ngữ lập trình chính cho framework SPA Angular2 +. Ngoài ra, framework Vue.js đã tuyên bố rằng họ sẽ sử dụng TypeScript để phát triển Vue.js 3 mới.

Các tính năng chính: 

  • Giống như Go hoặc Kotlin, với kiểu mã gãy gọn và chắc chắn, TypeScript là một trong những ngôn ngữ lập trình thanh lịch nhất hiện tại
  • Về năng suất, có thể xem TypeScript “ngang kèo” với Kotlin trên JVM hoặc Go/Python 
  • TypeScript là trình thay thế JavaScript hiệu quả nhất và đặc biệt phù hợp với các dự án lớn 
  • “Bộ ba đại ca” framework gồm Angular, React và Vue.js hỗ trợ mạnh mẽ cho TypeScript. Trong Angular, TypeScript là ngôn ngữ lập trình ưa thích. Trong React và Vue.js, TypeScript đang ngày càng phổ biến.
  • TypeScript có bộ công cụ hỗ trợ tuyệt vời 
  • Vì TypeScript là siêu mô-đun của JavaScript, nó có thể chạy ở những nơi tương tự như JavaScript: mọi nơi. Từ trình duyệt, máy chủ, thiết bị di động, thiết bị IoT cho đến cả đám mây.

Độ phổ biến:

Được phát hành lần đầu tiên vào năm 2014, TypeScript nhanh chóng thu hút sự chú ý của cộng đồng và được các nhà phát triển phần mềm yêu thích bởi thiết kế thanh lịch và các tính năng tiện dụng. Trong khảo sát Developer của Stackoverflow, TypeScript xếp thứ hai cùng với Python trong danh mục Ngôn ngữ được yêu thích nhất. Ngoài ra, TypeScript được GitHub Octoverse xếp thứ 5 trong danh sách những ngôn ngữ lập trình Web phát triển nhanh nhất. Theo Google trends, TypeScript đang giữ đà tăng trưởng ổn định trong 5 năm qua.

Các ứng dụng chính:

  • Phát triển giao diện người dùng web (Web UI)
  • Phát triển phía máy chủ (Server-side)

Các ngôn ngữ cạnh tranh:

JavaScript; Dart.

 

 

Theo Towards Data Science