Một câu hỏi mà bất kỳ ai sắp bước chân vào mảng lập trình nhúng IoT (Embedded Internet of Thing) đều thắc mắc là nên học ngôn ngữ lập trình nào và độ phổ biến hiện nay là gì? Bài viết ngắn này sẽ cho bạn một cái nhìn khái quát về những ngôn ngữ lập trình cần học.
Assembly (ASM): Ngôn ngữ cấp thấp, tiếp cận gần ngôn ngữ máy nhất, chương trình được viết bằng ASM quản lý bộ nhớ tốt nhất, giúp tiết kiệm bộ nhớ đáng kể và tăng nhanh tốc độ xử lý. Tuy nhiên rất khó sử dụng (lập trình, kiểm lỗi, nâng cấp…) và không có sẵn framework hỗ trợ.
C / Embedded C: Rất nhiều thứ sẽ không tồn tại nếu thiếu đi ngôn ngữ lập trình quan trọng nhất này. Đây là ngôn ngữ lập trình được sử dụng chủ yếu trong công việc của các kỹ sư lập trình nhúng. Hầu hết các vi điều khiển và vi xử lý đều lập trình bằng C. Mọi thư viện, framework, firmware, OS cũng được viết và tối ưu bằng ngôn ngữ lập trình này.
C++: cũng là một ngôn ngữ phổ biến trong lập trình nhúng, với ưu điểm lập trình hướng đối tượng (OOP) và tự động quản lý bộ nhớ tiện lợi hơn C.
C#: dùng để tạo các app trên Windows với giao diện người dùng (GUI), không quá khó để học và sử dụng thành thạo ngôn ngữ lập trình này.
Python: ngôn ngữ lập trình cấp cao, rất gần với ngôn ngữ người, nên khá dễ học và sử dụng. Xu hướng lập trình bằng ngôn ngữ Python đang tăng một cách đáng kinh ngạc. Python có sẵn nhiều framework hỗ trợ giúp tiết kiệm chi phí phát triển dự án IoT. Ta còn có PyPy và Cython là những trình biên dịch tối ưu bộ nhớ và tăng tốc độ cho các thiết bị nhúng. MicroPython
Java: mặc dù C và C++ tốn ít bộ nhớ và chu kỳ CPU hơn, tuy nhiên Java được xem là một lựa chọn tốt hơn cho các hệ thống nhúng bởi vì nó là một trong những ngôn ngữ có tổ chức nhất thế giới và lý tưởng cho các dự án lớn. Ưu điểm của Java dành cho các hệ thống nhúng là khả năng port, tái sử dụng code, đáng tin cậy, bảo mật, Web và kết nối với các hệ thống nhúng khác. Tuy nhiên bất tiện của Java là code nó khá dài, phức tạp (217 package với 4240 class), và hiệu suất thấp.
Go: Go là một ngôn ngữ nhúng được phát triển bởi Google, Go mạnh hơn C và cho phép thiết bị làm việc cùng nhau để truyền và nhận dữ liệu ở nhiều kênh đồng thời. (Xem thêm)