Ngôn ngữ C
Ngôn ngữ lập trình vốn được thiết kế trong chương trình chuyển mạch điện thoại sẽ là một lựa chọn hợp lý dành cho việc phát triển hệ thống nhúng. C gần như là một ngôn ngữ chung đang tồn tại trong giới lập trình mà gần như ai cũng phải biết. Ngôn ngữ này có sẵn hầu hết trên mọi nền tảng hệ thống nhúng tiên tiến đang có mặt trên thị trường. Đối với một số nền tảng không hỗ trợ trực tiếp thì đây vẫn là ngôn ngữ chuyên dụng được sử dụng trong các bộ công cụ phát triển phần mềm (SDK).
Trong điều kiện hiện nay, ngôn ngữ C cũng có một ít trở ngại khi nó mang tính thủ tục nhiều hơn là hướng đối tượng. Ngôn ngữ này còn không được thiết kế để hướng tới giao diện đồ họa người dùng và được dùng để biên dịch hơn là diễn giải. Tuy nhiên đây vẫn là một ứng cử viên mạnh mẽ cho công ty nào đang nỗ lực phát triển IoT.
Ngôn ngữ C++ là sự lựa chọn trong lập trình IoT trên hệ thống Linux
Ngôn ngữ C++
Khi thế giới lập trình đã bắt đầu chuyển sang ngôn ngữ hướng đối tượng trong đầu những năm 1980 thì ngôn ngữ thủ tục như Fortran, Cobol, C dường như rơi dần vào quên lãng. Trong khi Fortran và Cobol đã trở thành ngôn ngữ hướng đối tượng nhưng C không thay đổi bởi sự liên quan của nó đến công việc của Bjarne Stroustrup, người đã tạo nên ngôn ngữ này. C ngày càng phát triển và có thêm nhiều tính năng hướng đối tượng rồi cuối cùng trở thành C++.
C ++ vẫn giữ nguyên phương thức, cấu trúc của C nhưng được bổ sung thêm khả năng trừu tượng hóa dữ liệu, đối tượng (object), lớp (class). Tất cả những tính năng này làm cho C ++ trở thành sự lụa chọn cho những người viết ứng dụng nhúng, lập trình IoT cho các hệ thống Linux. Ngôn ngữ lập trình này vẫn đang hoạt động mạnh mẽ sau hơn 30 năm xuất hiện.
Ngôn ngữ lập trình của di động
Java
C và C ++ được thiết kế để cho phép lập trình viên kiểm soát trực tiếp thiết bị thông qua ứng dụng, tuy nhiên điều này đòi hỏi các đoạn mã được viết cụ thể cho từng đối tượng. Phương thức này không phù hợp với các thiết bị cầm tay trong xu hướng di động ngày nay.
Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và C++, nhưng sau này nhờ công nghệ “biên dịch tại chỗ” - Just in time compilation, khoảng cách này đã được thu hẹp, và trong một số trường hợp đặc biệt Java có thể chạy nhanh hơn. Điều này cũng khiến Java ít phụ thuộc thuộc trong việc việc tích hợp phần cứng vào trình biên dịch. Để có những thiết lập cụ thể, kiểm soát tốt hơn từng đối tượng phần cứng, Java phụ thuộc vào thư viện mà các loại thiết bị này hỗ trợ
Tất cả điều này làm cho Java trở nên tuyệt vời trong quan điểm kinh tế của các nhà phát triển cũng như công ty công nghệ. Việc đầu tư vào các đoạn mã Java có thể được tái ứng dụng trên nhiều nền tảng. Ngoài ra Java còn được phổ biến khi là một trong ngôn ngữ lập trình chính được đưa vào giảng dạy, vì thế tìm kiếm một chuyên gia lập trình trang bị các kĩ năng Java là điều khá dễ dàng. Khó khăn duy nhất của ngôn ngữ này là phải đảm bảo rằng nền tảng phần cứng được lựa chọn hỗ trợ Java (trên thực tế hiện nay thì có rất ít nền tảng mạnh mẽ không hỗ trợ Java) và các thư viện hỗ trợ phần cứng có sẵn để tạo nên các chức năng điều khiển mà thiết bị cần.
JavaScript là ngôn ngữ lập trình kịch bản dễ dàng thao tác với các hệ thống cảm biến
JavaScript
Ngôn ngữ JavaScript đơn giản là một biến thể của Java. JavaScript được nhận diện bằng cú pháp dễ gần, không bắt lỗi quá chặt, và cung cấp khái niệm cơ bản trong lập trình. Java và JavaScript có thể sử dụng chung một số thư viện, có cú pháp tương tự như C nhưng lại được phát triển riêng biệt.
Giống như tên gọi, Javascript là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu và được sử dụng nhiều cho việc xây dựng các ứng dụng Web-fronted. Ví dụ, nếu muốn sử dụng Web server Apache trên Raspberry Pi để thu thập dữ liệu từ một hệ thống cảm biến dựa trên các bản mạch vi xử lý thì JavaScript là một khởi đầu dễ dàng.
Kể từ khi xuất hiện tại Netscape, JavaScript đã phát triển, hoàn thiện đầy đủ các tính năng. Từ việc dùng rộng rãi cho các trang web cho đến tạo kịch bản sử dụng các đối tượng nằm sẵn trong ứng dụng. Không ai phủ nhận được sức mạnh cũng như sự phổ biến của JavaScript, nhưng những vấn đề rắc rối xung quanh từ hình thức xấu xí, cách trình bày phức tạp, ngôn ngữ kì quặc khiến nhà phát triển gặp khó khăn.
Python có cú pháp chặt chẽ và rõ ràng
Assembly
Ngôn ngữ Assembly vốn được yêu thích bởi các chuyên gia lập trình vi điều khiển. Về bản chất, ẩn trong hợp ngữ Assembly là mối quan hệ giữa ngôn ngữ lập trình và cấu trúc thiết bị. Điểm đặc trưng của mỗi hợp ngữ được thiết kế đặc biệt cho một cấu trúc máy tính khác nhau, ngoài ra mã gọn nhẹ, chiếm ít dung lượng bộ nhớ, hoạt động với tốc độ nhanh…
Tuy nhiên, ngôn ngữ Assembly thiếu các tiện ích để giảm thiểu những rủi ro trong lập trình. Mặc dù hiện nay cũng có khá nhiều trình biên dịch chuyển đổi các ngôn ngữ bậc cao thành hợp ngữ nhằm mục đích gỡ rối và tối ưu nhưng rất khó dịch ngược ra mã ngôn ngữ bậc cao. Trước đây Assembly được sử dụng khá nhiều nhưng ngày nay phạm vi sử dụng khá hẹp, chủ yếu trong việc thao tác trực tiếp với phần cứng hoặc làm các công việc không thường xuyên. Điều này cũng mở ra cơ hội dành cho các dự án IoT bởi việc ứng dụng cho trình điều khiển, hệ nhúng bậc thấp hay được trang bị trong các hệ thống thời gian thực.
Ngôn ngữ thế hệ thứ 4 Forth có cơ hội tỏa sáng với IoT
Mình chỉ biết qua mấy cái, mong các bạn bổ sung thêm.
Ngôn ngữ lập trình vốn được thiết kế trong chương trình chuyển mạch điện thoại sẽ là một lựa chọn hợp lý dành cho việc phát triển hệ thống nhúng. C gần như là một ngôn ngữ chung đang tồn tại trong giới lập trình mà gần như ai cũng phải biết. Ngôn ngữ này có sẵn hầu hết trên mọi nền tảng hệ thống nhúng tiên tiến đang có mặt trên thị trường. Đối với một số nền tảng không hỗ trợ trực tiếp thì đây vẫn là ngôn ngữ chuyên dụng được sử dụng trong các bộ công cụ phát triển phần mềm (SDK).
Trong điều kiện hiện nay, ngôn ngữ C cũng có một ít trở ngại khi nó mang tính thủ tục nhiều hơn là hướng đối tượng. Ngôn ngữ này còn không được thiết kế để hướng tới giao diện đồ họa người dùng và được dùng để biên dịch hơn là diễn giải. Tuy nhiên đây vẫn là một ứng cử viên mạnh mẽ cho công ty nào đang nỗ lực phát triển IoT.
Ngôn ngữ C++ là sự lựa chọn trong lập trình IoT trên hệ thống Linux
Ngôn ngữ C++
Khi thế giới lập trình đã bắt đầu chuyển sang ngôn ngữ hướng đối tượng trong đầu những năm 1980 thì ngôn ngữ thủ tục như Fortran, Cobol, C dường như rơi dần vào quên lãng. Trong khi Fortran và Cobol đã trở thành ngôn ngữ hướng đối tượng nhưng C không thay đổi bởi sự liên quan của nó đến công việc của Bjarne Stroustrup, người đã tạo nên ngôn ngữ này. C ngày càng phát triển và có thêm nhiều tính năng hướng đối tượng rồi cuối cùng trở thành C++.
C ++ vẫn giữ nguyên phương thức, cấu trúc của C nhưng được bổ sung thêm khả năng trừu tượng hóa dữ liệu, đối tượng (object), lớp (class). Tất cả những tính năng này làm cho C ++ trở thành sự lụa chọn cho những người viết ứng dụng nhúng, lập trình IoT cho các hệ thống Linux. Ngôn ngữ lập trình này vẫn đang hoạt động mạnh mẽ sau hơn 30 năm xuất hiện.
Java
C và C ++ được thiết kế để cho phép lập trình viên kiểm soát trực tiếp thiết bị thông qua ứng dụng, tuy nhiên điều này đòi hỏi các đoạn mã được viết cụ thể cho từng đối tượng. Phương thức này không phù hợp với các thiết bị cầm tay trong xu hướng di động ngày nay.
Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và C++, nhưng sau này nhờ công nghệ “biên dịch tại chỗ” - Just in time compilation, khoảng cách này đã được thu hẹp, và trong một số trường hợp đặc biệt Java có thể chạy nhanh hơn. Điều này cũng khiến Java ít phụ thuộc thuộc trong việc việc tích hợp phần cứng vào trình biên dịch. Để có những thiết lập cụ thể, kiểm soát tốt hơn từng đối tượng phần cứng, Java phụ thuộc vào thư viện mà các loại thiết bị này hỗ trợ
Tất cả điều này làm cho Java trở nên tuyệt vời trong quan điểm kinh tế của các nhà phát triển cũng như công ty công nghệ. Việc đầu tư vào các đoạn mã Java có thể được tái ứng dụng trên nhiều nền tảng. Ngoài ra Java còn được phổ biến khi là một trong ngôn ngữ lập trình chính được đưa vào giảng dạy, vì thế tìm kiếm một chuyên gia lập trình trang bị các kĩ năng Java là điều khá dễ dàng. Khó khăn duy nhất của ngôn ngữ này là phải đảm bảo rằng nền tảng phần cứng được lựa chọn hỗ trợ Java (trên thực tế hiện nay thì có rất ít nền tảng mạnh mẽ không hỗ trợ Java) và các thư viện hỗ trợ phần cứng có sẵn để tạo nên các chức năng điều khiển mà thiết bị cần.
JavaScript là ngôn ngữ lập trình kịch bản dễ dàng thao tác với các hệ thống cảm biến
JavaScript
Ngôn ngữ JavaScript đơn giản là một biến thể của Java. JavaScript được nhận diện bằng cú pháp dễ gần, không bắt lỗi quá chặt, và cung cấp khái niệm cơ bản trong lập trình. Java và JavaScript có thể sử dụng chung một số thư viện, có cú pháp tương tự như C nhưng lại được phát triển riêng biệt.
Giống như tên gọi, Javascript là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu và được sử dụng nhiều cho việc xây dựng các ứng dụng Web-fronted. Ví dụ, nếu muốn sử dụng Web server Apache trên Raspberry Pi để thu thập dữ liệu từ một hệ thống cảm biến dựa trên các bản mạch vi xử lý thì JavaScript là một khởi đầu dễ dàng.
Kể từ khi xuất hiện tại Netscape, JavaScript đã phát triển, hoàn thiện đầy đủ các tính năng. Từ việc dùng rộng rãi cho các trang web cho đến tạo kịch bản sử dụng các đối tượng nằm sẵn trong ứng dụng. Không ai phủ nhận được sức mạnh cũng như sự phổ biến của JavaScript, nhưng những vấn đề rắc rối xung quanh từ hình thức xấu xí, cách trình bày phức tạp, ngôn ngữ kì quặc khiến nhà phát triển gặp khó khăn.
Python có cú pháp chặt chẽ và rõ ràng
Assembly
Ngôn ngữ Assembly vốn được yêu thích bởi các chuyên gia lập trình vi điều khiển. Về bản chất, ẩn trong hợp ngữ Assembly là mối quan hệ giữa ngôn ngữ lập trình và cấu trúc thiết bị. Điểm đặc trưng của mỗi hợp ngữ được thiết kế đặc biệt cho một cấu trúc máy tính khác nhau, ngoài ra mã gọn nhẹ, chiếm ít dung lượng bộ nhớ, hoạt động với tốc độ nhanh…
Tuy nhiên, ngôn ngữ Assembly thiếu các tiện ích để giảm thiểu những rủi ro trong lập trình. Mặc dù hiện nay cũng có khá nhiều trình biên dịch chuyển đổi các ngôn ngữ bậc cao thành hợp ngữ nhằm mục đích gỡ rối và tối ưu nhưng rất khó dịch ngược ra mã ngôn ngữ bậc cao. Trước đây Assembly được sử dụng khá nhiều nhưng ngày nay phạm vi sử dụng khá hẹp, chủ yếu trong việc thao tác trực tiếp với phần cứng hoặc làm các công việc không thường xuyên. Điều này cũng mở ra cơ hội dành cho các dự án IoT bởi việc ứng dụng cho trình điều khiển, hệ nhúng bậc thấp hay được trang bị trong các hệ thống thời gian thực.
Ngôn ngữ thế hệ thứ 4 Forth có cơ hội tỏa sáng với IoT
Mình chỉ biết qua mấy cái, mong các bạn bổ sung thêm.
Sửa lần cuối: