پیش‌بینی دنیای برنامه‌نویسی
 اینترنت اشیا، پلتفرمی به ‌وسعت یک سیاره
حال که درباره عناوین مهم دنیای برنامه‌نویسی صحبت کردیم، اکنون زمان «همه چیز» است. می‌خواهیم به دنیای اینترنت اشیا یا به قول سیسکو اینترنت همه چیز وارد شویم. پروژه‌های توسعه اینترنت اشیا را می‌توان بهاری برای کسب‌وکارها در سراسر جهان بر شمرد. هر چند اینترنت اشیا اکنون در میان ما حضور دارد، اما این به آن معنا نیست که در سال رؤیاها (2020) دستگا‌ه‌های اینترنت اشیا را به همان شکلی ببینیم که امروزه با آن‌ها آشنا هستیم. به ‌عبارت دقیق‌تر، دستگاه‌های اینترنت اشیا در چند سال آینده کاملاً نقش محوری را در زندگی ما ایفا خواهند کرد. بدون شک این دستگاه‌ها زمانی با اقبال عمومی و فراگیر مواجه خواهند شد که برنامه‌نویسان از توانایی‌های آن‌ها به‌خوبی استفاده کرده باشند.

1606683296_1_0.gif

این مطلب یکی از مجموعه مقالات پرونده ویژه «آینده برنامه‌نویسی» است. برای دانلود کل پرونده ویژه اینجا کلیک کنید. 

هوشمندی دستگاه‌ها یا دستگاه‌های هوشمند؟
هر چند امروزه دستگاه‌هایی را که در آن‌ها حس‌گرهای هوشمند تعبیه شده است، دستگاه‌های اینترنت ‌اشیا می‌نامیم، اما با کمی تفکر خواهیم دید این دستگاه‌ها آن‌گونه که ما تعریفی از هوشمندی را در ذهن خود داریم، هوشمند نیستند. دستگا‌ه‌های امروزی این توانایی را دارند تا با محیط اطراف خود به ‌‌تعامل بپردازند، داده‌هایی را بر مبنای شرایط محیطی و داده‌هایی را از محیط پیرامون خود دریافت کنند. یک دستگاه زمانی هوشمند خواهد بود که بتواند تصمیم‌های مورد نیاز را بدون نیاز به واسطی خارجی اتخاذ کند و تنها به ارائه گزارش از فعالیتی بپردازد که انجام داده است.

کابوسی دوست‌داشتنی؛ اینترنت اشیا در برابر جهان!
اینترنت اشیا شبکه‌ای از اشیا فیزیکی است که شامل فناوری‌‌های جاسازی شده‌ای هستند که برای برقراری ارتباط و حس کردن وضعیت داخلی خود یا محیط خارج خود از این حس‌گرها استفاده می‌کنند. واقعیت این است که امروزه بسیاری از دستگاه‌ها آن‌گونه که در سال 2020 قابلیت اتصال را خواهند داشت، هنوز وجود ندارند. طراحان محصولات در رؤیای این حقیقت هستند تا راهی پیدا کنند که امکان بهره‌برداری و اتصال ذاتی در محصولات به‌صورت هوشمند وجود داشته باشد. ما انتظار داریم تا انفجاری در زمینه این نوع دستگاه‌ها شاهد باشیم. اینترنت اشیا شامل سخت‌افزار (خود اشیا)، نرم‌افزارهای جاسازی شده، سرویس‌های ارتباطی و سرویس‌های اطلاعاتی وابسته به اشیا است. شرکت‌ها در رؤیای ساخت سخت‌افزارها، نرم‌افزارها و سرویس‌هایی هستند که مورد استفاده اینترنت اشیا قرار گیرد. افزایش کارپردازانی که این خدمات را برای اینترنت اشیا ارائه می‌دهند، در مجموع 309 میلیارد دلار درآمد را عاید این‌ گونه شرکت‌ها خواهد کرد. 

اینترنت اشیا تا سال 2020 به میلیون‌ها طراح نیاز دارد
امروزه تعداد زیادی ویدجت (Widget) به ‌فروش می‌رسد، اما در مقایسه با اینترنت اشیا که تعداد حس‌گرها و دستگاه‌های آن به میلیاردها می‌رسد، ویدجت‌ها موضوع چندان مهمی نیستند. ثروت واقعی به‌جای آن‌که در سرویس‌‌هایی قرار داشته باشد که دستگاه‌ها را به اینترنت متصل می‌کند، در اینترنت اشیا قرار دارد. اندازه بازار اینترنت اشیا به تعداد طراحانی بستگی دارد که در توسعه آن به ایفای نقش می‌پردازند. ‌که امروزه تنها سیصد هزار طراح در توسعه اینترنت اشیا مشارکت دارند، اما گزارش منتشر شده از سوی Vision Mobile نشان می‌دهد، تا سال 2020 به 4.5 میلیون طراح نیاز است که منعکس‌کننده نرخ رشد مرکب 57 درصدی از فرصت‌های سالانه و بازار عظیم اینترنت اشیا است. Vision Mobile پیش‌بینی کرده است تقاضا برای طراحان اینترنت اشیا در سال‌های آینده رشد قابل توجهی را تجربه خواهد کرد (شکل 1).

 شکل 1: روند تصاعدی تقاضا برای طراحان اینترنت اشیا

در سی سال گذشته، ما حجم زیادی از داده‌ها را تولید کرده‌ایم، اما در مقایسه با دو سال گذشته واقعاً حجم ناچیزی بوده‌اند. 90 درصد از داده‌های جهان تنها در دو سال گذشته توسط ماشین‌ها تولید شده‌اند. داده‌های تولید شده انسانی در مقابل داده‌های تولید شده ماشینی همانند یک انسان کوتاه‌قامت در مقابل یک انسان بلند قامت هستند. در دنیای اینترنت اشیا وجود چنین دستگاه‌هایی موضوع مهمی نیست. تحلیل‌های پیترمیدلتون، مدیر تحقیقات گارتنر، نشان می‌دهد، رشد اینترنت اشیا به‌مراتب بیش‌تر از دیگر دستگاه‌های متصل خواهد بود. به‌ طوری که تا سال 2020، تعداد گوشی‌های هوشمند، تبلت‌ها و کامپیوترهای شخصی مورد استفاده در سراسر جهان به 7.3 میلیارد خواهد رسید، اما در مقابل اینترنت اشیا از نرخ گسترش سریع‌تری بهره برده و تا سال 2020 به مرز 26 میلیارد دستگاه خواهد رسید که بازاری 1.9 تریلیون دلاری را به وجود خواهد آورد. آقای میدلتون در ادامه می‌افزاید: «تا سال 2020 هزینه مؤلفه‌هایی که برای اتصال دستگاه‌ها به آن‌ها نیاز داریم، به‌شدت کاهش پیدا خواهند کرد و حتی هزینه پردازش‌گرهای آن‌ها به کم‌تر از یک دلار خواهد رسید. این کاهش هزینه‌ها باعث باز شدن درهای جدیدی خواهد شد، به ‌طوری ‌که امکان اتصال ساده‌ترین تا پیچیده‌ترین وسایل را همراه با ویژگی‌هایی همچون کنترل از راه دور، نظارت و سنجش در اختیار ما قرار می‌دهد.» آن‌چنان که گزارش Vision Mobile ما را آگاه می‌سازد، در سال‌های آینده «درک این داده‌ها» چالش بعدی ما خواهد بود.
 
API، اینترنت اشیا، هم‌گام‌سازی بی‌درنگ؛ چگونه API آینده اینترنت اشیا را تغییر می‌دهد؟
API هیجان خاصی برای توسعه‌دهندگان پرشور در یک آینده متصل ‌همراه خواهد آورد. در فهرست منتشر شده از سوی Programmable.com نزدیک به یازده هزار رابط برنامه‌نویسی در این زمینه ثبت شده است و با افزایش تقاضا و چیز‌هایی که برنامه‌های اینترنت اشیا به آن نیاز دارند، این تعداد رابط برنامه‌نویسی بیش‌تر و بیش‌تر نیز خواهد شد، به‌ طوری که در سه شاخه زیر رشدی بسیار سریع را تجربه خواهند کرد.
 
1- ادغام رو به جلو و توسعه در باطن
رابط‌های برنامه‌نویسی به توسعه‌دهندگان اجازه می‌دهد، برنامه‌های تولیدی خود را بدون هیچ‌گونه دانشی درباره آن ایجاد کنند. اگر شما جاوا اسکریپت را به‌خوبی یاد گرفته باشید، اما مطمئن نباشید چگونه اشیایی همچون Subscription notifications را ایجاد کنید، یک رابط برنامه‌نویسی موجود در یک کتاب‌خانه کلاینت (به‌طور مثال Syncano) پلی بین این شکاف خواهد بود و بدون آن‌که یک متخصص ویژه این ‌کار باشید، شما را قادر خواهند ساخت به توسعه برنامه‌های خود بپردازید. APIs اساساً برای توانمندسازی توسعه‌دهندگان برای ساخت برنامه‌ها طراحی شده‌اند، به ‌طوری که موانع و حصارهای موجود را در جهت آن‌ها برطرف کنند. 

2- توسعه سریع‌تر
برای رشد سریع اینترنت اشیا، برنامه‌ها نیاز دارند تا روی همه پلتفرم‌ها اجرا شوند. نرم‌افزارهای ما، صفحه‌نمایش‌ها و پلتفرم‌ها همگی احتیاج دارند تا بیش از گذشته با یکدیگر یک‌پارچه شوند. همچنین، زمان توسعه نیز باید به حداقل زمان ممکن برسد. رابط‌های برنامه‌نویسی باید ترکیب نحوی را برای هر زبان برنامه‌نویسی فراهم کنند که به شما اجازه ساخت برنامه‌های چندپلتفرمی را با حداقل تلاش ممکن بدهند. ویژگی‌هایی همچون هم‌گام‌سازی بی‌درنگ که پیاده‌سازی آن به‌طور معمول سال‌ها به ‌طول می‌انجامد، باید در نوک انگشتان شما قرار گیرد، به این معنا که به‌سادگی با استفاده از فرآیندهای توسعه چابک و تکرارشونده این ‌کار را به‌سرعت انجام دهید. 

3- تجربیات پیچیده‌تر کاربر
بنابر تحقیقات مؤسسه فورستر، برنامه‌های مدرن باید از رابط‌های برنامه‌نویسی یا سرویس‌های جانبی برای حذف موانع و تمرکز روی مشتری و بخش‌های خرید و فروش یک محصول استفاده کنند. این برنامه‌ها بسیار پیچیده‌تر، شخصی‌تر و به اندازه کافی انعطاف‌پذیرتر هستند تا بتوانند یک رشد انفجاری را در انطباق با تغییرات مورد درخواست مشتری و هم‌گام با فناوری‌های جدید به وجود آورند. با استفاده از رابط‌های برنامه‌نویسی متعدد، توانایی ساخت برنامه‌‌های ترکیبی را مطابق با انواع مختلفی از وظایف برای ساخت یک تجربه کاربری مدرن که هر جنبه‌ای از هم‌گام‌سازی را در زندگی یک فرد بازی کنند، خواهید داشت. به‌طور مثال، ترموستات خانه شما چگونه باید با پنجره خانه شما صحبت کند؟ پنجره خانه شما چگونه با لامپ‌های روشنایی باید به تعامل بپردازد؟ رابط‌های برنامه‌نویسی این نیازمندی‌ها را به یکدیگر پیوند می‌دهند و تجربه ادغام‌سازی کامل را ارائه می‌کنند که هسته اینترنت اشیا را شکل می‌دهد. 

زبان‌های برنامه‌نویسی اینترنت اشیا
همچون مقاله‌های قبلی باز هم به پرسش اصلی این پرونده می‌رسیم. چه زبان‌های برنامه‌نویسی امروزه در دنیای اینترنت اشیا مورد استفاده قرار می‌گیرند و این زبان‌ها چه توانایی‌هایی دارند؟ در پاسخ باید گفت امروزه طیف زبان‌های برنامه‌نویسی ویژه اینترنت اشیا بسیار گسترده‌تر شده است. به ‌عبارت دیگر، زبان‌های برنامه‌نویسی امروزی همچون ابزارهای کاربردی بیش از یک نقش اصلی را بر عهده دارند. شاید در گذشته اگر دو واژه جاوا اسکریپت را می‌شنیدید به یاد وب می‌افتادید، اما امروزه جاوا اسکریپت شبیه به مرورگرهای اینترنتی نقش‌های مختلفی را بازی می‌کند. همین موضوع باعث می‌شود تا اصلی‌ترین چالش پیش رو انتخاب زبان برنامه‌نویسی باشد. در این بخش، به معرفی تعدادی از زبان‌های برنامه‌نویسی بنیادین که در دنیای اینترنت اشیا مورد استفاده قرار می‌گیرند، خواهیم پرداخت (بنیادین به این ‌معنا که تعداد زبان‌هایی که برنامه‌نویسی اینترنت اشیا را برای طراحان ساده می‌سازند، بسیار زیاد هستند). 

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

سی پلاس‌پلاس
زمانی ‌که در دهه 1980 میلادی دنیای برنامه‌نویسی به سمت زبان‌های شی‌ء‌گرایی حرکت کرد، پیش‌بینی شد که زبان‌هایی همچون کوبول، فرترن و سی آینده تیره و مبهمی داشته باشند، اما بر خلاف پیش‌بینی‌ها سی ارتباط خود را با دنیای خارج حفظ کرد. بیارنه استراستروپ، دانشمند علوم کامپیوتر، فردی است که به توسعه سی پلاس‌پلاس اقدام کرد. سی پلاس‌پلاس طبیعت زبان سی را حفظ و اما مفاهیم شی‌‌ءگرایی را به آن وارد کرده است. اکنون بعد از گذشت سی سال هنوز هم به‌عنوان یکی از زبان‌های قدرتمند شناخته می‌شود و مورد استفاده قرار می‌گیرد.     

جاوا
سی و سی پلاس‌‌پلاس به‌ گونه‌ای طراحی شده‌اند که دسترسی مستقیم به سخت‌افزار را در اختیار برنامه‌نویسان قرار دهند. این عامل خوبی است، به‌ویژه زمانی‌ که در تلاش برای نظارت و کنترل بر سخت‌افزار هستید. البته این ویژگی وابستگی به سخت‌افزار را نیز همراه می‌آورد. به‌ عبارت دیگر، کدهای شما قابلیت حمل نخواهند داشت. جاوا زبان شی‌ء‌گرای دیگری است که قابلیت حمل دارد. این زبان به ‌گونه‌‌ای طراحی شده است که کامپایلر آن کم‌ترین وابستگی به‌ سخت‌افزار را داشته باشد. جاوا بر کتاب‌خانه‌های پشتیبانی‌کننده از سخت‌افزار متکی است. همه این عوامل باعث می‌شود تا جاوا از نظر اقتصادی مقرون به‌صرفه باشد. 

جاوا اسکریپت
جاوا اسکریپت همان‌ گونه که از نامش پیدا است، به‌شدت برای ساخت برنامه‌های تحت وب مورد استفاده قرار می‌گیرد. اگر در نظر دارید از یک سرور آپاچی روی یک رزبری‌پای برای جمع‌آوری داده‌ها از یک شبکه از حس‌گرهای مبتنی بر آردونیو استفاده کنید، جاوا اسکریپت بهترین نقطه شروع برای این‌ کار است. 

پایتون
هر چند به ‌نظر می‌رسد پایتون برای توسعه پروژه‌های جدی مناسب نیست، با وجود این، از جمله زبان‌هایی است که به‌طور گسترده در دنیای اینترنت اشیا مورد استفاده قرار می‌گیرد. پایتون بسیار انعطاف‌پذیر است، اما موضوعی که باعث می‌شود پایتون برای گروه‌های برنامه‌نویسی خوب باشد، به خوانا بودن آن بازمی‌گردد. Wypi یک بورد ویژه اینترنت اشیا بوده است که از ویژگی‌هایی همچون ارزان، کم‌مصرف و کوچک بودن بهره می‌برد. این بورد قابلیت برنامه‌پذیری توسط MicroPython را دارد. پایتون 3 به‌طور خاص از نظر سرعت و حافظه بهینه‌سازی شده است تا اجرای مؤثری را روی میکروکنترل‌ها داشته باشد. نمونه‌ای از بورد Wypi را در شکل 2 مشاهده می‌کنید.

 شکل 2: یک بورد Wypi

Go
Go و Go دو مقوله جدا از هم هستند. Go  زبان طراحی شده توسط گوگل است که روی طیف گسترده‌ای از پردازنده‌ها و پلتفرم‌ها مورد استفاده قرار می‌گیرد. در حالی‌ که اولی زبانی است که مدیون سی بوده و برای برنامه‌نویسی توکار مورد استفاده قرار می‌گیرد. Go یک جدول هش صریح و روشن را که برای جمع‌آوری داده‌ها و ارسال داده‌ها به حس‌گرها و محرک‌های جداگانه اضافه می‌کند، مورد استفاده قرار می‌دهد. توانایی استفاده از شبکه‌ای از حس‌گرها و دستگاه‌‌ها از ویژگی‌های کلیدی Go به‌ شمار می‌روند.

Rust
Rust توسط موزیلا طراحی شده است. شبیه دیگر نرم‌افزارهای موزیلا، Rust هم یک پروژه منبع باز است که به‌سرعت گسترش پیدا کرده است. Rust بیش‌تر ویژگی‌های Go را به ‌اشتراک گذاشته و مشکلات عمده‌‌ای را که در زبان Go وجود داشته، بر طرف کرده است. به ‌دلیل این‌که Go به‌طور خودکار اقدام به‌ اشتراک‌گذاری اطلاعات بین ساختارهای داده‌ای مختلف (کانال‌ها) نمی‌کند، یک برنامه می‌تواند چیزی به‌نام Race Condition تولید کند. اساساً این یک وضعیت گریز بوده است که در آن سیستم در یک کنترل مارپیچی به‌ دلیل وجود فرآیندهای مختلف که در حال کار بوده و هر یک متفاوت از دیگری عمل می‌کنند، گرفتار می‌شود. Rust نشان‌دهنده توابعی است که این شرایط گریز را حذف می‌کند و همین موضوع باعث می‌شود مخاطرات برنامه‌های هم‌زمان ساخته شده توسط Rust نسبت به Go به حداقل برسد. 

Parasail
هر زمان که نیازمند فرآیندهای موازی در اینترنت اشیا هستید، Parasail به کمک شما می‌آید. ما به مفهوم هم‌زمانی در قالب یک مفهوم برنامه‌نویسی در زبان‌هایی همچون Go و Rust  اشاره کردیم. اگر اطلاعی درباره هم‌زمانی و برنامه‌نویسی موازی ندارید، بهتر است قبل از آغاز برنامه‌نویسی تحقیقات بیش‌تری درباره این دو مفهوم داشته باشید. Parasail یک زبان شی‌ء‌گرا است و تکامل آن به‌نحوی است که ترکیب نحوی آن شبیه به جاوا، سی پلاس‌پلاس، سی‌شارپ و حتی آدا (Ada) به‌ نظر می‌رسد. اگر باید پروژه اینترنت اشیا را آغاز کنید و به‌طور خاص نیازمند کدنویسی موازی جاسازی شده هستید، Parasail گزینه خوبی است.

B#
جایی که بیش‌تر زبان‌های برنامه‌‌نویسی به سیستم‌های بزرگ اشاره می‌کنند و مناسب با پلتفرم‌های جاسازی شده هستند، بی‌شارپ برای مقیاس‌های کوچک طراحی شده است. یک ماشین مجازی جاسازی شده (EVM) به بی‌‌شارپ اجازه می‌‌دهد روی پلتفرم‌های مختلفی که تنها 24 کیلوبایت حافظه دارند، اجرا شود. به ‌نظر می‌رسد بی‌شارپ کمی شبیه به سی‌شارپ است. از ویژگی‌های بزرگ این زبان می‌توان به توابع بی‌درنگ اشاره کرد. زمانی ‌که قرار است اتفاقاتی در دنیای واقعی رخ دهد، به چنین توابعی نیاز خواهید داشت. اگر پروژه شما قصد دارد در پلتفرم‌های جاسازی شده زنده وارد شود که همچون رزبری پیچیده و بزرگ نیستند، بی‌شارپ زبانی است که شما به آن نیاز دارید. 

Assembler
زمانی ‌که به مدرسه‌های قدیمی بروید یا نیاز داشته باشید پروژه شما تا حد امکان فشرده باشد، در نتیجه اسمبلرها مسیر پیش روی شما خواهند بود. اسمبلر روشی را برای بسته‌بندی و ساخت کدهای خالص ماشین تولید می‌کنند که در نهایت توسط پردازنده اجرا می‌شوند. خبر خوب این است که سرباری کدها در آن‌ها به حداقل ممکن می‌رسد و یک متخصص می‌تواند با ترفندهایی به‌ بهینه‌سازی کدهای شما اقدام کند، روشی که در دیگر زبان‌ها در دسترس نیست. 
اما خبر بد این است که در برنامه‌نویسی اسمبلی شما هیچ ابزار مفیدی که بتواند اشتباهات جزیی را به شما اطلاع دهد، در اختیار نخواهید داشت. نکته دیگر این‌که کدنویسی اسمبلی و مهارت‌هایی که در کدنویسی اسمبلی به ‌دست می‌آید قابل انتقال نیست. فقط به ‌خاطر این‌که شما می‌توانید کدی را برای یک پردازنده بنویسید، اما نمی‌توانید همان کد را برای پردازنده دیگری نیز بنویسید. البته کدهای تولید شده توسط اسمبلی کدهای بسیار کوچکی هستند و با بهینه‌سازی‌‌هایی که روی آن‌ها انجام می‌شود، به فضای کمی احتیاج دارند. زمانی ‌که فضا و نیروی کافی در برنامه‌نویسی سطح بالا در اختیار دارید، بهتر است از مزایای دنیای برنامه‌نویسی مدرن استفاده کنید.

Forth
Forth زبان دیگری برای طراحی و بهینه‌سازی برنامه‌نویسی ویژه سیستم‌های توکار است. در حالی ‌که Forth عمدتاً برای برنامه‌نویسی سیستمی مورد استفاده قرار می‌گیرد، ویژگی دیگری نیز دارد که یک زبان پشته‌محور است. 

#C
چطور امکان دارد از زبان‌های برنامه‌نویسی مختلف صحبت کنیم، اما سی‌شارپ محبوب را فراموش کنیم!؟ البته در مقایسه با دیگر زبان‌های این گروه سی‌شارپ ممکن است هنوز توسط سازندگان مختلف پشتیبانی نشود. به‌طور مثال، هنوز هیچ راهی برای استفاده از سی‌شارپ روی بورد آردوینو وجود ندارد. البته می‌توانید از دات‌نت و سی‌شارپ روی بوردهایی همچون Netduino Plus 2 همراه با .Net Micro Framework استفاده یا از رزبری‌پای 2 همراه با سی‌شارپ استفاده کنید. بورد رزبری‌پای 2 به خروجی HDMI مجهز است، در نتیجه می‌توانید آن‌ را به پروژکتورها، تلویزیون‌ها و... متصل کنید. همچنین، اگر کنجکاو شده‌اید بدانید چگونه با استفاده از سی‌شارپ می‌توانید به دنیای اینترنت اشیا وارد شوید، مقاله Internet of Things: What about C# there در اینجا در اختیار شما قرار دارد. در پایان، اگر دوست دارید با 49 ابزار ویژه اینترنت اشیا و ویژگی‌های هر یک از آن‌ها آشنا شوید، مقالهTop 49 Tools For The Internet of Things که در این نشانی قرار دارد، به شما پیشنهاد می‌کنیم.

نگاهی به آما‌رها
همچون بخش‌های قبلی بهتر است نگاهی به آما‌رها داشته باشیم. زمانی‌ که به ‌آمارها نگاه می‌کنیم، میزان دستمزد طراحان اینترنت اشیا در مقایسه با دیگر گروه‌ها چندان بالا نیست و در مجموع در محدود 48 تا 50 هزار دلار است. این موضوع به ‌دلیل فراگیر نبودن اینترنت اشیا به در حال حاضر باز می‌گردد. اینترنت اشیا هنوز هم جای کار زیادی دارد تا قدرتمند شود. با ورود نسل پنجم شبکه‌های ارتباطی که سرعت انتقال اطلاعات در آن‌ها واقعاً خیرکننده است، اوضاع تغییر پیدا خواهد کرد. اگر نگاهی به وضعیت اینترنت اشیا و مشاغل پیرامون آن در کشوری همچون انگلستان داشته باشیم، آمارهای خوبی را در این زمینه می‌توانیم به دست آوریم. میزان تقاضا برای اینترنت اشیا در خلال سال‌های 2010 تا 2014 تقریباً پایین بود. از سال 2011 نوسان رو به افزایشی در این زمینه پدید آمد و تا ژانویه 2015 این نوسان به اوج خود رسید (شکل 3).

 شکل 3: میزان تقاضا برای اینترنت اشیا

نمودار دستمزد پرداخت شده در مشاغل آی‌تی که بر مبنای اینترنت اشیا قرار داشتند، به‌طور میانگین در محدوده 48 هزار پوند قرار داشته‌اند (شکل4).

 شکل 4: نوسان دستمزدها در محدوده 48 هزار پوند 

در شکل شماره 5 هیستوگرام دستمزدها را تا تاریخ 31 ژوئن 2015 مشاهده می‌کنید. در مقیاس جهانی روند درخواست شغل‌ها و به طبع آن دستمزدهای مرتبط با اینترنت اشیا بعد از یک دوره اوج که در سال 2013 به ‌وقوع پیوست، کمی کاهش پیدا کرده است، اما در عوض روند نسبتاً ثابت و پایداری را تجربه می‌کند (شکل 6).

 شکل 5: شاخص‌ دستمزدها

 شکل 6: اکنون شاخص دستمزدها در یک روند ثابت قرار گرفته‌اند.

امروزه شرکت‌های بزرگ درصدد استخدام کارشناسانی مرتبط با اینترنت همه چیز (اینترنت اشیا) هستند. در شکل‌های 7 و 8 دو نمونه از مهارت‌های برنامه‌نویسی را که اینتل و سیسکو در زمینه اینترنت اشیا به آن نیاز دارند، مشاهده خواهیم کرد. مایکروسافت هم به‌تازگی برای یک معمار سازمانی اینترنت اشیا اعلام نیازمندی کرده است. طبیعی است متخصصی با چنین مهارت‌هایی دستمزد بالایی را نیز دریافت خواهد کرد ( شکل 9).

 شکل 7: مهارت در اسکریپت‌نویسی و برنامه‌نویسی با سی، سی پلاس‌پلاس، جاوا، سی‌شارپ، پایتون و تجربه توسعه وب مبتنی بر جاوا اسکریپت، ASP.Net و Node.JS را در این آگهی مشاهده می‌کنید.

 شکل 8: تجربه اسکریپت‌نویسی با پایتون، رابی یا جاوا، زبان‌های برنامه‌نویسی مبتنی بر جاوا همچون Scala، آشنایی با مفاهیم داده‌های حجیم وغیره از جمله ملزمات مورد نیاز سیسکو هستند.

 شکل 9: مهارت‌های مورد نیاز مایکروسافت همگی بنیادی و زیرساختی هستند.

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

 

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟