Can the Internet of things choose those programming language development?

Source: Internet
Author: User
Tags compact joins

With the intelligent life, the popularization of smart home, the Internet of things more and more attention, but also more and more people into the Internet of things learning embrace. But many internet of things beginners, especially those who are self-learning the internet of things, generally have a question, what does the Internet of things really learn? It was developed in what language.

In fact, the development language of the Internet of Things project does not only include the language of the course syllabus posted by the Internet of things training institutions , but also many other languages can be well used in the development of the Internet of things. The right choice of the Internet of things development language is very important, today's small part to share with you 11 can adapt to the development of the Internet of things language, you can examine yourself to understand which languages can be suitable for which IoT projects.

1. C language

As we all know,C language is a basic general programming language, is the preferred language of embedded development, almost every existing advanced embedded system platform. While some platforms cannot directly support the C language, it is undeniable that they still exist in the underlying form, supporting the specialized languages in the SDK.

Although C is the preferred base language, it is undeniable that there are many too-old factors in C: it belongs to the process language rather than the object-oriented language; it does not have a built-in graphical user interface; it uses a compilation rather than an interpretation mechanism. But all of these negative factors make it one of the strongest and most powerful language candidates in the IoT development project.

2. C + +

C + + is an object-oriented programming language developed through the C language, so C + + retains the features of C, and it also joins the mechanisms of data abstraction, classes, and objects. All this makes C + + a popular option for writing embedded and IoT code in a Linux system environment. The programming language has been around for more than more than 30 years since its inception, but it is still very alive in today's embedded and IoT development areas.

3. Java

Java is an object-oriented language with a strong portability: there is little hardware dependency in the compiler. For special and accurate control of specific hardware, Java needs to invoke common code from the libraries supported by the hardware.

This makes Java an attractive economic proposition: a one-time commitment to Java code development, and the enterprise will be able to get the development results that are sufficient to run on many different platforms. But on the other hand, the problem with choosing Java is that we have to make sure that our chosen platform supports Java (currently there are only a handful of powerful platforms that provide Java support) while at the same time ensuring that the hardware supports the libraries we need to use to implement specific control functions.

4. JavaScript

JavaScript is a scripting language and one of the must-have languages for web front-end development. If you're going to use Apache servers on the Raspberry Pi hardware platform to extract data from a network built by Arduino sensors, JavaScript is definitely a good starting option.

Since being developed by Netscape, JavaScript has evolved rapidly and has become a fully functional language. But don't think of it as a lightweight embedded controller-the explanatory structure it uses means that we need to assume its operating costs. In other words, a system that is at least Raspberry Pi can bear the performance penalty of JavaScript.

5. Python

Python is one of the most dynamic programming languages in web development today, and its scope of application has spread to embedded control and the Internet of things, with great flexibility in many areas. For example, it can be presented as an explanatory language to a single runtime compiler, or through the built-in precompiled compiler to run code to distribute its compact executable code.

The most exciting thing for the programming team is that the Python language has its own focus, which is to emphasize the readability of the code content. The design specification for this language refers to the importance of code readability and the compact and elegant syntax. Any friend who has tried to decipher the C language code and wants to optimize it should be able to feel the key role of code readability in practical work.

Python, like other languages, assumes that the embedded platform in which it operates requires some computational power. If you want to develop an application that takes data, organizes it in a database format, and then aggregates it into a table for information control, Python is definitely a competitive candidate for programming language.

6. Go

Go is developed by Google and is widely used in all types of processors and platforms. Although it is only one of many programming languages originating from the C design concept, it has a large number of features that are far beyond the C language for specific embedded programming types.

The go language adds an explicit hash table type, which has considerable practicality in collecting data from various sensors and actuators and sending data to it. The go language also provides deep support for the ability to use sensors and device networks-and, of course, increases the potential risk.

The go language is capable of supporting parallel input, output, and processing on most different channels. If used correctly, this capability will allow for a good coordination of the entire set of sensors and actuator combinations. The risk of this trait, however, is that the channels may not be aware of each other's existence. If programmers are negligent, the lack of a coordinated system can lead to unpredictable behavior. Technically, this is obviously not a good thing.

7. Rust

The rust language was developed by Mozilla Corporation. Like other Mozilla-owned software, rust is an open source project and has a very rapid evolution. The rust language has many features that originate from go, but it also solves a major problem with go.

Because the go language cannot automatically share information between the different data structure "channels", the program that is finally developed may have a so-called "race condition." Plainly speaking, this is an uncontrollable state in which the system is unable to complete due to the intense conflict of different processes at run time. The rust language contains functions that eliminate race conditions, making it more reliable to build highly concurrent programs.

Similarly, the rust language has certain requirements for running platform performance, but if your development team wants to develop an application that involves a large number of concurrency mechanisms, rust and go are the programming language options that deserve serious consideration.

8, Parasail

If you have a certain requirement for the parallel processing power of your IoT applications, then the Parasail language is a worthwhile option.

Parasail is a compiled object-oriented language that is always evolving so it can be programmed with syntax similar to Java, Python, C #, or even Ada. If you need to use embedded code with high parallelism, then Parasail is the ideal language option.

9, b#

Many of the languages we mention today are large system languages, so we need to make specific adjustments to enable them to run smoothly on embedded platforms. However, b# is different, it is designed to be a kind of small-oriented high-efficiency embedded control language. The embedded virtual machine (EVM) allows the b# language to run on many different platforms, and the memory footprint is only k--far below the other package requirements we mentioned earlier.

The b# language is somewhat similar to C # in some way. However, compared to the c#,b# culling a significant part of the embedded project is not used in the features, and added to the real-time control function Support-this point in the actual use of the environment is obviously very important.

If the development project will run in the future on a lightweight embedded platform with a scale and complexity of less than raspberry Pi, then b# is definitely a programming language option that deserves serious consideration.

10. Assembly language

If you want to follow a more traditional design approach, or if you want to make your project as compact as possible, the assembler is the perfect choice for achieving your goals. assembly language can build and package pure machine code, so that everyone on the processor has the most ideal execution efficiency. And its performance requirements are controlled at the lowest level, and skilled experts can use assembly language to achieve many of the other programming mechanisms do not exist at all optimization techniques.

However, the programming of assembly language is not able to take advantage of the network, there is almost no practical tools on the network to help them to find out the development results of the various types of errors. In addition, assembly language code and related programming skills often do not have any undertaking. We can write code about a processor, but that doesn't mean we can write code that has the same functionality for other processors.

11 languages for the Internet of things development, you know several

With the intelligent life, the popularization of smart home, the Internet of things more and more attention, but also more and more people into the Internet of things learning embrace. But many internet of things beginners, especially those who are self-learning the internet of things, generally have a question, what does the Internet of things really learn? It was developed in what language.

In fact, the development language of the Internet of Things project does not only include the language of the course syllabus posted by the Internet of things training institutions, but also many other languages can be well used in the development of the Internet of things. The right choice of the Internet of things development language is very important, today's small part to share with you 11 can adapt to the development of the Internet of things language, you can examine yourself to understand which languages can be suitable for which IoT projects.

1. C language

As we all know, C language is a basic general programming language, is the preferred language of embedded development, almost every existing advanced embedded system platform. While some platforms cannot directly support the C language, it is undeniable that they still exist in the underlying form, supporting the specialized languages in the SDK.

Although C is the preferred base language, it is undeniable that there are many too-old factors in C: it belongs to the process language rather than the object-oriented language; it does not have a built-in graphical user interface; it uses a compilation rather than an interpretation mechanism. But all of these negative factors make it one of the strongest and most powerful language candidates in the IoT development project.

2. C + +

C + + is an object-oriented programming language developed through the C language, so C + + retains the features of C, and it also joins the mechanisms of data abstraction, classes, and objects. All this makes C + + a popular option for writing embedded and IoT code in a Linux system environment. The programming language has been around for more than more than 30 years since its inception, but it is still very alive in today's embedded and IoT development areas.

3. Java

Java is an object-oriented language with a strong portability: there is little hardware dependency in the compiler. For special and accurate control of specific hardware, Java needs to invoke common code from the libraries supported by the hardware.

This makes Java an attractive economic proposition: a one-time commitment to Java code development, and the enterprise will be able to get the development results that are sufficient to run on many different platforms. But on the other hand, the problem with choosing Java is that we have to make sure that our chosen platform supports Java (currently there are only a handful of powerful platforms that provide Java support) while at the same time ensuring that the hardware supports the libraries we need to use to implement specific control functions.

4. JavaScript

JavaScript is a scripting language and one of the must-have languages for web front-end development. If you're going to use Apache servers on the Raspberry Pi hardware platform to extract data from a network built by Arduino sensors, JavaScript is definitely a good starting option.

Since being developed by Netscape, JavaScript has evolved rapidly and has become a fully functional language. But don't think of it as a lightweight embedded controller-the explanatory structure it uses means that we need to assume its operating costs. In other words, a system that is at least Raspberry Pi can bear the performance penalty of JavaScript.

5. Python

Python is one of the most dynamic programming languages in web development today, and its scope of application has spread to embedded control and the Internet of things, with great flexibility in many areas. For example, it can be presented as an explanatory language to a single runtime compiler, or through the built-in precompiled compiler to run code to distribute its compact executable code.

The most exciting thing for the programming team is that the Python language has its own focus, which is to emphasize the readability of the code content. The design specification for this language refers to the importance of code readability and the compact and elegant syntax. Any friend who has tried to decipher the C language code and wants to optimize it should be able to feel the key role of code readability in practical work.

Python, like other languages, assumes that the embedded platform in which it operates requires some computational power. If you want to develop an application that takes data, organizes it in a database format, and then aggregates it into a table for information control, Python is definitely a competitive candidate for programming language.

6. Go

Go is developed by Google and is widely used in all types of processors and platforms. Although it is only one of many programming languages originating from the C design concept, it has a large number of features that are far beyond the C language for specific embedded programming types.

The go language adds an explicit hash table type, which has considerable practicality in collecting data from various sensors and actuators and sending data to it. The go language also provides deep support for the ability to use sensors and device networks-and, of course, increases the potential risk.

The go language is capable of supporting parallel input, output, and processing on most different channels. If used correctly, this capability will allow for a good coordination of the entire set of sensors and actuator combinations. The risk of this trait, however, is that the channels may not be aware of each other's existence. If programmers are negligent, the lack of a coordinated system can lead to unpredictable behavior. Technically, this is obviously not a good thing.

7. Rust

The rust language was developed by Mozilla Corporation. Like other Mozilla-owned software, rust is an open source project and has a very rapid evolution. The rust language has many features that originate from go, but it also solves a major problem with go.

Because the go language cannot automatically share information between the different data structure "channels", the program that is finally developed may have a so-called "race condition." Plainly speaking, this is an uncontrollable state in which the system is unable to complete due to the intense conflict of different processes at run time. The rust language contains functions that eliminate race conditions, making it more reliable to build highly concurrent programs.

Similarly, the rust language has certain requirements for running platform performance, but if your development team wants to develop an application that involves a large number of concurrency mechanisms, rust and go are the programming language options that deserve serious consideration.

8, Parasail

If you have a certain requirement for the parallel processing power of your IoT applications, then the Parasail language is a worthwhile option.

Parasail is a compiled object-oriented language that is always evolving so it can be programmed with syntax similar to Java, Python, C #, or even Ada. If you need to use embedded code with high parallelism, then Parasail is the ideal language option.

9, b#

Many of the languages we mention today are large system languages, so we need to make specific adjustments to enable them to run smoothly on embedded platforms. However, b# is different, it is designed to be a kind of small-oriented high-efficiency embedded control language. The embedded virtual machine (EVM) allows the b# language to run on many different platforms, and the memory footprint is only k--far below the other package requirements we mentioned earlier.

The b# language is somewhat similar to C # in some way. However, compared to the c#,b# culling a significant part of the embedded project is not used in the features, and added to the real-time control function Support-this point in the actual use of the environment is obviously very important.

If the development project will run in the future on a lightweight embedded platform with a scale and complexity of less than raspberry Pi, then b# is definitely a programming language option that deserves serious consideration.

10. Assembly language

If you want to follow a more traditional design approach, or if you want to make your project as compact as possible, the assembler is the perfect choice for achieving your goals. assembly language can build and package pure machine code, so that everyone on the processor has the most ideal execution efficiency. And its performance requirements are controlled at the lowest level, and skilled experts can use assembly language to achieve many of the other programming mechanisms do not exist at all optimization techniques.

However, the programming of assembly language is not able to take advantage of the network, there is almost no practical tools on the network to help them to find out the development results of the various types of errors. In addition, assembly language code and related programming skills often do not have any undertaking. We can write code about a processor, but that doesn't mean we can write code that has the same functionality for other processors.

For programmers looking for products with the ultimate in optimization, assembly language is able to control its volume at the lowest level and ensure that it does not contain any other environmental factors. But certainly, assembly language is definitely not the best way to build a prototype-if you have more space and processing performance, then it is recommended to use high-level languages, and many of the advantages of modern languages can be helpful.

11, Forth

The Forth language belongs to the stack language. If you often use that old-fashioned hp calculator, then you will certainly have a certain degree of understanding of Forth. As a language born in the 70 's, forth is able to achieve significant productivity and efficiency gains in the hands of programmers with the ability to do it-and others simply cannot use or even read the results they have written.

The above is a number of programming languages, relatively good to complete the embedded system programming task of the more excellent 11 languages, we can refer to the advantages and limitations of each language, select the corresponding development language. If you still do not know the specific language, you can try to choose the most commonly used in the programming of the popular language.

For programmers looking for products with the ultimate in optimization, assembly language is able to control its volume at the lowest level and ensure that it does not contain any other environmental factors. But certainly, assembly language is definitely not the best way to build a prototype-if you have more space and processing performance, then it is recommended to use high-level languages, and many of the advantages of modern languages can be helpful.

11, Forth

The Forth language belongs to the stack language. If you often use that old-fashioned hp calculator, then you will certainly have a certain degree of understanding of Forth. As a language born in the 70 's, forth is able to achieve significant productivity and efficiency gains in the hands of programmers with the ability to do it-and others simply cannot use or even read the results they have written.

The above is a number of programming languages, relatively good to complete the embedded system programming task of the more excellent 11 languages, we can refer to the advantages and limitations of each language, select the corresponding development language. If you still do not know the specific language, you can try to choose the most commonly used in the programming of the popular language.

Can the Internet of things choose those programming language development?

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.