اینترنت اشیاتکنولوژی
موضوعات داغ

زبان برنامه نویسی های IOT

پروژه های اینترنت اشیا میتواند برای بسیاری از دانشجویان و کسانی که کار خود را تازه آغاز کرده اند، جذاب باشد. توانایی اتصال اشیای فیزیکی به نوبه خود یک تجربه جالب خواهد بود. برای هر پروژه اینترنت اشیا، انتخاب نرم افزار و سخت افزار مناسب، تصمیم سختی است.در حالیکه مجموعه ای از سخت افزار ها میتوانند یکی از گزینه ها باشند، انتخاب یک زبان برنامه نویسی هم تصمیم ساده ای نخواهد بود. در ادامه این مقاله به برسی ۱۰ مورد از زبانهای برنامه نویسی خواهیم پرداخت که برای شروع کار در حوزه اینترنت اشیا میتوانید با آنها کار کنید.

۱- زبان C : اولین زبان برنامه نویسی هر تازه کار یعنی زبان C همچنان در اولویت است. قابلیت پیاده سازی در پروژه های IOT این زبان از حقیقتی ناشی میشود که این زبان در ابتدا برای برنامه نویسی سوییچ های تلفن، توسعه داده شده بود. این زبان میتواند برای برنامه نویسی بیشتر پلتفرم سیستم های یکپارچه چه بصورت مستقیم و چه از طریق SDK مورد استفاده قرار گیرد. یادگیری این زبان بسیار ساده است و میتوانید آن را فرا بگیرید.البته این زبان نقاط ضعف هایی هم دارد که میتواند در محدوده های توسعه این زبان کمتر قابل پیاده سازی باشد مانند اینکه دستورات این زبان، Compile میشوند نه Interpret. و همینطور اینکه این زبان بهمراه رابط گرافیکی (GUI) خاصی ارائه نمیشود.با تمام این ها، زبان C همچنان بعنوان یکی از زبانهایی است که درتوسعه اینترنت اشیا به کار میرود.

۲- زبان ++C : ظهور زبان برنامه نویسی شی گرا یا بعبارتی (Object Oriented Programming (OOP در یک سو، زبانهایی مثل C , Fortran و COBOL را به تیرگی کشاند. درحالیکه زبانهای COBOL و  FORTRAN جایگاه خود را در بین زبانهای دارای تو رفتگی باز کردند، زبان C  سعی کرد جایگاه خود را در میان زبانهای حوزه شی گرا باز کند، البته به لطف آقای Bjarne Stroustrup. او زبان ++C را با نام شی گرایی برای زبان C، توسعه داد. الحاقاتی هم با شکل کلاس ها، شی ء ها و … به هسته زبان C  اضافه شد که همین امر باعث شد ++C زبان رایجی برای کدهای اینترنت اشیا خصوصاً برای لینوکس باشد. حتی پس از ۳۰ سال که از توسعه آن میگذرد، ++C میتواند گزینه ای برای برنامه نویسی سیستم های یکپارجه نیز باشد.

۳- زبان Python : این زبان به نظر میرسد که یکی از مدعیان پروژه های اینترنت اشیا میباشد اما بعنوان یک زبان کنترل سیستم های یکپارجه مشهور و گسترش یافته است. این زبان همچنان یکی از گزینه های منتخب برای توسعه وب میباشد. انعطاف پذیری بالای این زبان حضور آن در حوزه اینترنت اشیا را نیز در پی داشته است. از نگاه برنامه نویسان، خوانایی کدهای Python است که باعث شده بسیاری از تیم های برنامه نویسی به سراغ آن بروند. از دیگر ویژگی های این زبان، ظرافت دستورات، فشردگی و خوانایی کدهای این زبان است. بعنوان زبان سیستم های یکپارچه، Python نیز مانند سایر زبانهای این حوزه نیاز دارد تا در پلتفرم های مختلف پیاده سازی شود. توسط این زبان هر اپلیکیشن اینترنت اشیا را میتوان داده پذیر کرد، داده ها را در پایگاه داده ها قرار داد و پاسخ داده ها را در جداول کنترل اطلاعاتی برگرداند. شکی نیست که این زبان، در پروژه های اینترنت اشیا بسیار قوی است.

۴- زبان Java : کنترل سخت افزار توسط زبانهای C و C++ بسیار پیچیدگی کمتری دارد. این زبانها برای این سیستم ها بسیار سریع و کارآمد هستند اما به پیاده سازی در سخت افزار خلاصه میشوند.Java  بعنوان یک زبان شی گرا مطرح میشود که قابلیت portable  بودن( استفاده در محیط های مختلف) را داراست. کامپایلر Java پیشنیازهای سخت افزاری کمی را طلب میکند و نیز این زبان بازه کتابخانه های general  تا کتابخانه های کنترل سخت افزار را پوشش میدهد. در صورت ارزیابی اهمیت جاوا در برنامه نویسی اینترنت اشیا از منظر راندمان سیستمی، قادر به درک این خصوصیت نخواهید شد. اگرچه هنگام صحبت از مزایای اقتصادی این زبان ، استفاده از آن، سرمایه گذاری خوبی برای برنامه نویسی پروژه های اینترنت اشیا بر روی بسترهای مختلف خواهد بود. علاوه بر اینها، یافتن برنامه نویس مسط به زبان Java در حال حاضر کار دشواری نیست. تنها وجه التزام استفاده از این زبان در حوزه اینترنت اشیا این است که پلتفرم مورد استفاده، از این زبان و کتابخانه های سخت افزارهای مورد استفاده با داشتن توابع کنترلی با توجه به نیازهای شما پشتیبانی کند.
۵- زبان Javascript : پیش از هر چیز لازم است بدانید اگرچه این زبان و زبان Java یک سری تشابهات اسمی دارند اما در واقعیت هیچ ارتباطی میان آنها وجود ندارد.هیچ نقطه مشترکی میان syntax و semantic  های رایج این دو زبان نیست بجز تعداد کمی از کتابخانه هایی که میتواند در هر دو زبان به کار گرفته شود. بعنوان یک زبان برنامه نویسی، Javascript برای اپلیکیشن های web-fronted  طراحی و توسعه داده شده است. از این رو اگر پروژه اینترنت اشیای شما میخواهد از طریق وب تعاملی داشته باشد مانند جمع آوری داده های سنسور مبتنی بر Raspberry Pi، این زبان میتواند یک نقطه آغاز بسیار خوب باشد. از سوی دیگر بسیار مهم است که بدانید این زبان برای کنترلر های یکپارجه حتی از نوع سبک آن نیز مناسب نمی باشد.
۶- زبان GO : این زبان که توسط کمپانی Google نوسعه داده شده است بسیار شبیه زبان C است و به نوعی بر پایه این زبان توسعه داده شده است. با این حال از خیلی جهات برای برنامه نویسی سیسم های یکپارچه بر زبان C برتری دارد. یک اپلیکیشن موبایل با توانایی های دریافت اطلاعات از سنسورها و انجام رفتارها توسط عملگرها، از زبان GO برای جمع آوری و ارسال داده ها به اجزای مختلف از طریق جداول ایمن شده توسط الگوریتم های Hash استفاده میکند.یکی از ویژگی های این زبان، امکان ارسال، دریافت و پردازش داده های سنسورهایی است که بطور همزمان قادرند به کانال های مختلف، داده های خود را به اشتراک بگذارند. اگرچه این خصوصیت، ریسک برخورد داده ها و از دست رفتن آنها را در پی خواهد داشت اگر برنامه نویس به این موارد توجه نداشته باشد.
۷- زبان Rust : کمپانی Mozilla این زبان که یک زبان متن باز است را توسعه داده است. حتی میتوان از آن باعنوان شریک زبان GO هم نام برد.، اما راهکارهایی را برای اشکالات این زبان ارائه میدهد. در حالیکه کانال ها در زبان GO راهی برای به اشتراک گذاری داده ها بصورت اتوماتیک ندارند این کار منجر به حالت مسابقه ای میان داده ها میشود. این حالتی است که ُسیستم از کنترل خارج میشود و در واقع با پردازش های مختلف و متفاوت در مقابل یکدیگر شروع به کار میکنند.توابع داخلی در زبان Rust وجود دارندکه میتوانند به راحتی این حالت مسابقه ای برای داده ها را برطرف کنند که باعث میشود یکی از زبانهای ایده آل برای برنامه نویسی پروژه های اینترنت اشیا شود.برای برنامه نویسی اپلیکیشن های اینترنت اشیا با دارا بودن پردازش های همزمان، Rust میتواند یک مدعی باشد. در حالیکه برای کار با این زبان، برخی توانهای پردازشی در پلتفرم های اینترنت اشیا مورد نیاز خواهند بود.

۸- زبان Parasail : اگر یکی از اهداف شما اپلیکیشن اینترنت اشیا با پردازش های موازی است، زبان Parasail میتواند انتخاب شما باشد. پیش از آغاز برنامه نویسی یک اپلیکیشن اینترنت اشیا، بسیار مهم است که مفهوم برنامه نویسی همزمان و برنامه نویسی موازی را کاملا بدانید. Syntax زبان برنامه نویسی Parasail بسیار مشابه Java ، #C و Python  است. این زبان، یک زبان قابل کامپایل و شی گرا است. برای اپلیکیشن های اینترنت اشیا که بسیار به کدهای یکپارچه موازی وابسته هستند، Parasail بهترین گزینه است. در زیر برای دانستن بیشتر به مفاهیم برنامه نویسی همزمان و برنامه نویسی موازی خواهیم پرداخت.

– برنامه نویسی همزمان: برنامه های همزمان آنهایی هستند که اجازه میدهند تا چندین عملیات، بصورت همزمان  اجرا و execute شوند. سلسله مراتب عملیات ها بر مبنای سلسله مراتب نرم افزار خواهد بود اگرچه این عملیات ها ممکن است با هم تداخل داشته باشند.

– برنامه نویسی موازی: در برنامه نویسی موازی، عملیات ها بصورت موازی اجرا میشوند و همپوشانی آنها میتواند به پیشرفت خروجی منجر شود. Parent task به زیر دسته های Child task تقسیم بندی میشوند و این child task  ها بصورت موازی اجرا میشوند برای اجرای سریعتر Parent task

۹- زبان #B: بیشتر زبانهای برنامه نویسی برای پروژه های اینترنت اشیا که تا به حال لیست شده اند، برای سیستم های بزرگ توسعه داده شده اند و اختصاصاً برای برنامه های embedded توسعه داده نشده اند.حجم بیشتر این زبانها کاهش پیدا کرده اند تا نیازهای پروژه های اینترنت اشیا را برآورده کنند.

در سوی دیگر زبان #B توسعه داده شده است تا زبانی کارا برای کنترل سیستم های embedded و در وسعت کوچک باشد. شما میتوانید این زبان را روی پلتفرم های مختلف توسط (Embedded Virtual Machine (EVM که از زبان #B پشتیبانی کند، اجرا کنید. EVM تنها ۲۴K از حافظه شما را اشغال میکندکه بسیار برای اپلیکیشن هایی که نیاز به فضای کمی دارند، مناسب است. اگر به فکر توسعه پروژه اینترنت اشیایی هستید که مانند Raspberry Pi پیچیدگی زیادی ندارد، زبان #B گزینه مناسبی خواهد بود.

۱۰- زبان Assembler : این زبان در جایی قابل ارائه میشود که میخواهید اپلیکیشن خود را تا حد ممکن فشرده کنید. برنامه نویسی کد های ماشین که در این زبان به کار میروند تا حد امکان، روند اجرا را ساده و مینیمال میکنند. چیزی که درباره برنامه نویسی پروژه هایی با زبان Assembler مطرح است، این است که شما به خودتان وابسته اید و منابع زیاد و ابزارهایی برای کد نویسی با این زبان در اینترنت نخواهید یافت. این زبان میتواند توسعه پروژه های کارآمد را محقق سازد اما اگر منابع خوبی درباره زبانهای به روزتر داشته باشید، بهتر است اپلیکیشن خود را با آنها توسعه دهید.

منبع
iraniothome
برچسب ها
نمایش بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن