Upload
lekhanh
View
221
Download
1
Embed Size (px)
Citation preview
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 1/13
Privacy settings
Selecting Programming Languages for the IoTBy Promotion Published Date 20 - Mar - 2017 | Last
Updated 20 - Mar - 2017
Tweet
Intel® AI DevCloud
Click to know more
Get access to free cloud computefor AI projects
Intel® AI Academy
Click to know more
Hands-on learning on ArtificialIntelligence for student developers
The Internet of Things Ecosystem
To understand which languages you canapply to your IoT projects, you must firstunderstand the IoT ecosystem. Thisknowledge is important because theprocessor architectures and resourcesavailable to your software or firmware willdiffer greatly at each level. Let’s start by defining a simple taxonomy of
DIGIT APPS SELECTING PROGRAMMING LANGUAGES FOR THE IOT
Like Share 0
advertisements
advertisements
Mobile data traffic in India to grow 11 times by2023: Ericsson Mobility Report
WhatsApp on iOS will soon allow users to playYouTube videos within the chat app
Xiaomi’s upcoming “Desh Ka Smartphone” to beexclusively available on Flipkart
From 3D printed masks to 10year old kids:Everything that managed to fool Apple’s FaceID tech on iPhone X
Reliance Jio quietly extends its triple cashbackoffer till December 15
RECENT NEWS
SECURITY WATCH POWERED BY
OTHER POPULAR DEALS
Buy Now
Redmi 4 (Black, 32 GB)Rs. 8499
Buy Now
Coolpad Note 5 (Royal Gold,32...Rs. 8999
Buy Now
Lenovo Z2 Plus (Black, 32GB)Rs. 9799
Top10 Reviews News & Launches Devworx Forum SKOARIn Depth
Hot Deals
అ A क
Laptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
Mobiles
Buy Digit
Search!
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 2/13
IoT devices for which you’re developingsoftware (see Figure 1).
Figure 1. Taxonomy for Internet of Thingsdevices
At the bottom are the edge devices. Thesedevices interact with the world and representthings like wearables and other connecteddevices. The devices source and create dataand interact with the world throughactuators.
Next are the gateways. These devices can beintermediary devices that move data to othersystems for processing. The gateways canalso aggregate data from many edge-devices and provide a control path to edgedevices.
Advantages, disadvantages, and snags ofrooting your Android device
This is how ExPetr targets businesses
Here is how you can protect yourself fromExPetr ransomware
Petya ransomware found affecting gatewayterminal at Jawaharlal Nehru Port Trust andmajor businesses across Europe, the US andAsia
advertisements
OnePlus 5T receiving OxygenOS 4.7.2 updatewith Facial recognition and cameraimprovements
Samsung rolls out third Android 8.0 Oreo betaupdate to Galaxy S8 and S8 Plus devices
OnePlus 5T early preview sale starts at 12PMtoday on Amazon
Xiaomi India to launch “Desh Ka Smartphone”on November 30, "will change the lives of theentire country" says Manu Jain
New reports reaffirm Apple’s iPhone SE 2 couldlaunch early next year, expected to bemanufactured in India
TRENDING STORIES
advertisements
Best Phone under 10000
Best Phones Under 15000
Best Smartphones Under 20000
Upcoming Mobile Phones in India 2017
Best Android Mobile Phones
BEST MOBILE PHONES
advertisements
Resource Center
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 3/13
Finally, there’s the cloud. The cloud is ascalable set of compute, network, andstorage resources that provide the ability tostore, analyze, and visualize data from edgedevices and gateways.
Examples of these levels include the Intel®Galileo board and the Intel® Curie™Compute Module for edge devices, Intel® IoTGateways for the gateway level, and theWind River* Helix* Lab Cloud for the cloudlevel.
With the IoT ecosystem divided into itslayers, let’s look at which languages you canapply at each level.
Edge Device
Edge devices, such as wearables, are typicallyconstrained-resource, embedded systemsbecause of the space and power constraintsin which they function. Devices like the Intel®Curie™ module are the size of a button, andcan be powered by a small, coin-sizedbattery (see Figure 2). Given the minimalresources of the Intel® Curie™ module, thetypical languages suitable for its use includeAssembly and C. Although C is the linguafranca of embedded firmware development,there are times when you need to squeezeas many instructions as possible into adevice. In such cases, Assembly is your bestchoice. The downside is that development
which are the programming languages of future.....
programming languages compared
sites for practicing computer languages(programming)
Prog languages query
Prog languages query
advertisements
Contests
Forum Discussion
Check out the OPPO F3 -First Look
By OPPO
Game developmentdrives systems anddevelopers hard, withmulticore technolog...
By Intel
PARTICIPATE NOW
IBM Cloud ChallengeContest
Answer 3 Simple MCQs and WinPrizes worth...
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 4/13
time can be longer depending on yourexpertise with the language.
Figure 2. The Intel® Curie™ ComputeModule
Another example of an edge device is theIntel® Edison board (see Figure 3), which youcan use in the wearables space or in generalIoT products. Differing from the Intel®Curie™ module, which incorporates amicrocontroller, the Intel® Edison boardincludes a dual-core Intel® Atom™processor with considerably more computingpower (the size of an SD card). Because theIntel® Edison board runs Linux*, the Clanguage is an ideal choice here, but youcould use other languages, as well, includingPython* and Node.js*. Python* is ideal for
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 5/13
quick prototyping and productiondeployment, but can lag in performancecompared to native compiled C. If you useIntel® XDK, you can also run Node.js*(JavaScript*) with Node-RED*. Node-RED*makes it easy to build and run data flows,offering a graphical approach todevelopment. Knowledge of the JavaScript*language makes this environment even morepowerful.
Figure 3. The Intel® Edison board
Gateway
At the gateway level, the compute capabilityrises greatly because gateways areresponsible for communication and analysisof data from many devices through several
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 6/13
different buses. With this additionalcomputing capability comes the ability to runmore powerful languages or interpretedlanguages with greater performance.
Intel® IoT Gateways provide a variety ofdesigns that scale from a single-core Intel®Quark™ system on a chip to a quad-coreIntel® Atom™ or Intel® Core™ processor(see Figure 4). These platforms supporteither Wind River Linux* 7 or the SnappyUbuntu* Core (Linux*).
Figure 4. An Intel® IoT gateway
In addition to support for C and C++ (which isalso ideal for higher-performance devices),you can use Python*, but at greaterexecution speeds. Node.js* with JavaScript*
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 7/13
is also available, which is ideal for creating orconnecting to web-services as well as tocloud services.
Cloud
When you reach the cloud, the computingcapability increases drastically, as do thelanguage choices. In the cloud, you’ll findservers enabled through power-efficient IntelAtom and Intel Core processors as well ashighest-compute-density Intel® Xeon®processors. Apps written in the cloud serve avariety of needs, and as such, the languagesyou use here can differ greatly. To processthe massive amounts of data that IoT edgedevices create, you can use big-dataframeworks like Apache Hadoop*. On top ofHadoop, query languages such as ApacheHive* enable computation over massive datasets with Structured Query Language (SQL)-like queries. Apache Pig* is also useful forexperimentation with large data sets in thePig Latin scripting language.
Data analytics and visualization are other keyapplications within the cloud that manyprogramming languages enable. A popularlanguage and environment for statisticalcomputing and visualization is the Rlanguage, which has recently grown inpopularity. The Julia language is anotheroption here. Julia is a high-performance,dynamic language designed with cloudcomputing in mind.
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 8/13
You use several languages to build web-services to monetize data in the cloud,including JavaScript*, Node.js*, or server-sideand client-side Java*. Given manyframeworks and supporting languages (suchas Rails and Ruby), the languageopportunities in this space is large andgrowing.
Summary
Choosing a programming language for aproject requires consideration of the targetenvironment (including the processor) as wellas the resources available to it. Developingsoftware in the cloud opens manypossibilities, given the scale of resourcesavailable, but developing embedded firmwarefor smaller microcontrollers requires greatercontrol to minimize instruction count andmaximize execution speed and resourcemanagement.
The following list briefly summarizes thelanguages discussed in this article, andidentifies their key use models: Assembly: Developing firmware in the nativeinstruction set provides the greatest controlin resource-constrained systems such asedge-devices.
C/C++: One step above Assembly, C andC++ enable construction of resource-constrained code but with readability and
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 9/13
maintainability. C’s prominence allows youto find it in every use model.Python*: An interpreted language thatsimplifies prototyping, you can also use itfor production. Python* supports amassive number of libraries and modulesso that you can get more done with lesscode. It’s useful in more powerful edgedevices, gateways, and even the cloud.JavaScript*/Node.js*: A popular languageand runtime, each enables thedevelopment of scalable networkapplications and can be applied across usemodels.Node-RED*: Developing visually withNode-RED* makes it easy to build dataflows that include sensors and actuators. Ifyou know JavaScript*, these flows can beeven more powerful. You can apply thislanguage at gateways and within morepowerful edge devices, such as those thatthe Edison board powers.HiveQL: If you’re using Hive (built onHadoop), you can use HiveQL to processmassive data sets in cloud environments.Pig: Using Pig Latin to process big dataenables quick script development andsimple experimentation of data sets withinthe cloud.R: An increasingly popular statisticalcomputing language for the processing andvisualization of data, you can apply datamining with R in cloud environments. R isalso open source.
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 10/13
Julia: Another high-performance languagefor processing and visualizing data in cloudenvironments, Julia is also open source. Itwas designed with parallelism in mind andincludes key elements for distributedcomputation.Java*: A popular server-side and client-sidelanguage for the Web, making it useful inthe cloud for both web and web servicesdevelopment.
For more such intel IoT resources and toolsfrom Intel, please visit the Intel® DeveloperZone
Source:https://software.intel.com/en-us/articles/selecting-programming-languages-for-the-iot
Asian Paints Royale Atmos
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 11/13
Promotion
Xolo ERA 1X 4G with VoLTE...
Rs. 3999 Buy Now
Swipe Elite 3 4G with...
Rs. 4399 Buy Now
Lenovo Z2 Plus (Black, 32 GB)(3...
Rs. 10520 Buy Now
OTHER POPULAR DEALS
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 12/13
Best Alternative Apps for your...
Interesting Galleries
1 Comment | 1 Reaction
Login
How do you feel about it?
Great(100%)
Good(0%)
Waste(0%)
Sad(0%)
Angry(0%)
Write your opinion..
Sort by Latest
Yulia Ye | 8 Months agoWhat do you think, what is the best
English
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit
11/28/2017 Selecting Programming Languages for the IoT | Digit.in
https://www.digit.in/apps/selecting-programming-languages-for-the-iot-34209.html 13/13
ABOUT US CONTACT US ADVERTISE SUBSCRIBE PRIVACYTERMS SITEMAP HTML
Digit caters to the largest community of tech buyers, usersand enthusiasts in India. The all new Digit.in continues thelegacy of Thinkdigit.com as one of the largest portals inIndia committed to technology users and buyers. Digit isalso one of the most trusted names when it comes totechnology reviews and buying advice and is home to theDigit Test Lab, India's most proficient center for testing andreviewing technology products.
We are about leadership – the 9.9 kind!Building a leading media company out ofIndia. And, grooming new leaders for thispromising industry.
Copyright © 2007-14 Nine Dot NineMediaworx Pvt. Ltd. All Rights Reserved.
IBM Cloud ChallengeContest | Win Prizes WorthRs. 40000
The 10 scariesthorror games onAndroid
Android appstores: 5 bestalternatives toGoogle Play Stor
LOAD PAGE 1
Top10 Reviews News & Launches Devworx Forum SKOARLaptops Auto Tech Internet Photos Entertainment Videos Contests
News Releases Advertise Ask Digit