هر روز دستگاههای بیشتری به اینترنت متصل میشوند و در انتظار دستورات ما جهت اجرای عملکرد مطلوب هستند اما این دستگاهها واقعاً با چه زبانی صحبت میکنند؟ پاسخ ساده این است که اشیا هوشمند از پلتفرمهای کامپیوتری مشابه با رایانههای رومیزی استفاده میکنند. ایان اسکرت معاون بازاریابی بنیاد Eclipse میگوید: "Raspberry Pi اکنون یک کامپیوتر واقعی به شمار میرود."
جای تعجب نیست که آنچه او کامپیوتر واقعی مینامد از بسیاری زبانهای پلتفرمهای مختلف استفاده میکند. در نظرسنجی که از توسعهدهندگان کدها برای پروژههای اینترنت اشیاء (IoT) در آوریل 2016 از سوی بنیاد Eclipseصورت گرفته مشخص شد،زبانهای جاوا، سی، جاوا اسکریپت و پایتون چهار زبان برتر برای توسعهدهندگان راهکارهای IoT هستند. این زبانها تفاوت چندانی با زبانهای برتر که برای نوشتن اپلیکیشنها و سرورهای قدیمی استفاده میشوند، ندارند.
Skerrett محیط معماری IoT را به سه بخش عمده تقسیم میکند: سنسورهایی که داده را ایجاد میکنند، هابها یا دروازههای محلی که آن را سازماندهی میکنند و سرورهای متمرکز جغرافیایی از راه دور که دادهها را جمع میکنند.
Skerrett میگوید: "اگر شما بخواهید برای یک سنسور فشار کد بنویسید، احتمالاً از زبان C استفاده میکنید. زیرا این زبان امکان کار مستقیم با رم تراشهها و سنسورها را فراهم میکند و این زبان را به یکی از اولین انتخابهای توسعهدهندگان سختافزار تبدیل میکند.
هابها ممکن است یک تلفن هوشمند یا یک کنسول کوچک باشند که فقط داخل دستگاههای عمومی قرار دارند. یک سیستمعامل استاندارد را اجرا میکنند و معمولاً هنگام برقراری ارتباط از طریق خط فرمان، هیچ تفاوتی با سیستمعاملها یا سرورهای بزرگ ندارند.
انتخاب یک زبان برنامهنویسی برای پروژه IoT
هیچ دلیلی وجود ندارد که نتوان زبان برنامهنویسی پلتفرمهای اینترنت اشیا را همانند برنامهها و پلتفرمهای نرمافزاری دسکتاپ انتخاب کرد در واقع مثلاً یک Raspberry Pi تحت لینوکس باشد، میتواند درست مانند یک دسکتاپ با سیستمعامل لینوکس عمل کند.
تا زمانی که بحث در مورد زبانها روی سرورها باشد هیچ تفاوتی بین آنها وجود نخواهد داشت. آنها با هابها و سنسورها که معمولاً با نوعی معماری میکرو سرویس است صحبت میکنند، سپس دادهها به پایگاه دادههای استاندارد منتقل میشوند.
در بررسیهای انجام شده توسط Eclipse حداقل 14 زبان مختلف پیدا شده که توسط 5 درصد توسعهدهندگان مورد استفاده قرار میگیرد. در اینجا به بررسی برخی زبانهای برنامهنویسی منبعباز برتر که زبان پایه و اساس نسلهای بعدی اینترنت اشیا هستند، پرداخته میشود.
جاوا
انتخاب برتر نظرسنجی Eclipse و نظرسنجی دیگری که توسط embedded-computing.com انجام شده است، زبان برنامهنویسی جاوا است. این زبان قابلیت اجرا بر هر سیستم و در هر کاربردی را دارد. مزایای جاوا به خوبی شناخته شده است و توسعهدهندگان میتوانند کد را روی دسکتاپ خود ایجاد و اشکالزدایی کنند و سپس با یک ماشین مجازی جاوا آن را به هر تراشهای منتقل کنند. این بدان معناست که کد نه تنها در مکانهایی که JVM ها معمول هستند (سرورها و تلفنهای هوشمند) بلکه در کوچکترین دستگاهها نیز کار میکنند.
Java ME از زمان تأیید مشخصات در سال 2000، روی گوشیهای ک بسیار وچک تلفن و سایر دستگاههای تعبیهشده در دسترس قرار گرفته است. این مجموعه با مجموعهای محدود از کتابخانههای کلاس و سایر ابزارها موجب صرفهجویی در فضای مصرفی میشود. امروزه بیشترین تمرکز روی Java SE Embedded است که از نظر قابلیت بسیار نزدیک به نسخه استاندارد است. توسعهدهندگان میتوانند از آخرین ویژگیهای پلتفرم جاوا 8 استفاده کرده و سپس کد خود را به دستگاه کوچکتر و جاسازی شده منتقل کنند.
بیشتر صرفهجویی در منابع محاسباتی با Java SE Embedded ناشی از بین بردن کلاسهای مورد نیاز برای نمایش اطلاعات در هنگام تنظیم ماشینها، بدون مانیتور یا صفحهکلید است. تمام ارتباطات از طریق شبکه انجام میشود.
چندین پروژه منبعباز مانند Pi4J و BlueJ وجود دارد که نشان میدهد چگونه نسخه جاسازیشده جاوا به خوبی اجرا میشود، حتی روی تراشههایی که به نظر محدود هستند.
زبان C
این زبان هنوز انتخاب اول برای بسیاری از برنامه نویسان است که برای پایینترین لایهها نرمافزار مینویسند و یکی از نزدیکترینها به سختافزار. این زبان چیزی را از شما پنهان نمیکند و این بدان معناست که میتوانید با هر قسمت از کد همراه شوید تا بهترین عملکرد را از یک دستگاه داشته باشید. هر بیت قابل جابجایی است. هر مقدار در دیتا بیس موجود است.
ویکتور بریوس مدیر ارشد فنی در Zigbee Alliance است که از استاندارد ZigBee پشتیبانی میکند و دستگاههای کوچک را به هم پیوند میدهد. وی گفت: "زبان C برای وسایل محدودی قابل اجرا است و معمولاً یک سیستمعامل تجاری را شامل نمیشود."
وی افزود دستگاههای پیشرفتهتر یا بزرگتر با سیستمعاملهای کامل هنوز از کد C استفاده میکنند اما وی گفت که زبانهای دیگر مانند جاوا نیز به همین سادگی میتوانند جای این زبان را پر کنند. در تلفن هوشمند اپل بخش اعظم برنامهنویسی هنوز در Objective C انجام میشود اما احتمالاً به تدریج توسط Swift جایگزین میشود.
ادامه در بخش دوم