اینترنت اشیاء این روزها به واقعیتی فراتر از باور تبدیل شده است و سرعت رشد آن هم بسیار فراتر از تصور ماست. بوجود آمدن زیرساختهای سخت افزاری مانند انواع ماژولها و بردهای امبدد از جمله آردوینو Arduino و رزبری پای Raspberry Pi در کنار افزایش پهنای باند اینترنت و سرعت برق و باد آن، همگی باعث شده تا شرایط برای رشد اینترنت چیزها یا اینترنت اشیاء IOT محیا شود. البته در رشد این نوزاد نوپا IOT مسایل دیگری از جمله زبان های برنامه نویسی سطح بالا مانند Lua و Node Red بسیار سهیم بودهاند.
فهرست مطالب
- Lua چیست؟
- واژه Lua به چه معناست؟
- کاربردهای زبان برنامه نویسی Lua چیست؟
- معرفی ویژگی های زبان برنامه نویسی Lua
- سخن پایانی و سوالات متداول
Lua چیست؟
قبل از هرچیز با فرض اینکه شما میدانید که زبان برنامه نویسی چیست، شروع میکنیم. اگر بخواهیم زبان برنامه نویسی Lua را توصیف کنیم، یک زبان قدرتمند، سبک، کارا و مخصوص امبدد سیستمها Embedded Systems میباشد. البته برای کسب اطلاعات بیشتر میتوانید مقاله نصب تلوبیون روی تلویزیون سونی را بخوانید. چرا امبدد سیستمها؟ به این دلیل که زبان برنامه نویسی Lua از روش برنامه نویسی رویهای یا procedural programming پشتیبانی میکند.
از روش برنامه نویسی شیئ گرا یا object-oriented programming و همچنین از روش برنامه نویسی تابعی یا functional programming و حتی از روش برنامه نویسی مبتنی بر داده یا data-driven programming هم پشتیانی میکند.
واژه Lua به چه معناست؟
شیوه تلفظ این کلمه به صورت لوو آآآ Loo-ah میباشد. در زبان پرتغالی به معنی ماه میشود. از آنجایی که Lua یک اسم تلقی میشود پس همیشه با حرف اول بزرگ نوشته خواهد شد. اسم ماه زمین و اسم زبان برنامه نویسی! تیم محقیقن در دانشگاه PUC-Rio در برزیل که ابداع کننده این زبان برنامه نویسی برای اینترنت اشیاء IOT بودهاند بر این نکته تاکید کرده اند که شیوه نوشتاری آن به صورت Lua باشد نه به صورت LUA چرا که خودشون دوست نداشته اند! پس لطفا شما هم Lua بنویسید. البته برای کسب اطلاعات بیشتر میتوانید مقاله تنظیمات تسکبار ویندوز 10 را بخوانید.
کاربردهای زبان برنامه نویسی Lua چیست؟
لوا در صنعت بازیهای ویدئویی محبوبیت زیادی دارد. در تعدادی از موتورهای بازی از زبان لوا برای توسعه و به عنوان اسکریپت استفاده میشود از جمله
- CryEngine
- Leadwerks Engine
- Corona SDK
از جملهٔ بازیهایی که از افزونبستههای (Plugin) لوا پشتیبانی میکنند میتوان به موارد زیر اشاره کرد:
- Crysis
- BZFlag
- PlayStation Home
- Dawn of War
- World of Warcraft
- DeathStatue Game (بازی تندیس مرگ)
- cs2d
به جز بازیها لوا در کاربردهای بسیاری هم تجاری و هم غیرتجاری استفاده شدهاست از جمله:
- Adobe Photoshop Lightroom
- Apache HTTP Server
- Damn Small Linux
- LuaTex
- nmap
- WireShark
معرفی ویژگی های زبان برنامه نویسی Lua
1- زبان برنامه نویسی Lua پایدار و تنومند است
زبان برنامه نویسی Lua که امروزه در اینترنت اشیاء یا IOT و باز یا اینترنت اشیاء استفاده میشود؛ در بسیاری از رابطهای صنعتی هم استفاده شده است. البته برای کسب اطلاعات بیشتر میتوانید مقاله طراحی ریسپانسیو سایت رابخوانید. البته نه این که صرفا مصرف صنعتی داشته باشد چرا که در برخی از قسمتهای نرم افزار معروف Adobe Photoshop هم استفاده شده است. در کل تاکید زبان برنامه نویس Lua تاکید بر امبدد سیستمها Embedded Systems دارد.
زبان برنامه نویسی Lua از بازیهای رایانهای هم سر در آورده، کدام بازی؟ همون انگری برد معروف از این زبان استفاده کرده است. نکته جالب راجع به Lua اینه که تازه در سال ۱۹۹۳ متولد شده است و تا به امروز بسیار پیشرفت کرده و نسخههای زیادی از آن منتشر شده است. در سال ۲۰۰۱ این زبان برنامه نویسی جایزه Front Line Award 2011 را از مجله توسعه دهندگان بازی دریافت کرد.
2- زبان Lua به اندازه کافی سریع هم هست
مهمترین علت شهرت زبان Lua بخاطر کارایی آن است. آنطور که گفته شده است، سرعت دیگر زبانهای برنامه نویسی را با سرعت Lua میسنجند. بنچ مارکهای بسیاری درباره زبان Lua وجود دارد که معمولا به عنوان سریع ترین در حوزه اسکریپت امبددها ذکر شده است. یک کامپایر سریعتر برای Lua توسعه داده شده است به نام LuaJIT که یک کامپایلر just-in-time میباشد. زبان Lua از سینتکس بسیار ساده و در عین حال ساختار توصیف داده بسیار ساده بهره میبرد که بر اساس آرایههای داینامیک و زبان توصیفی میباشد.
3- Lua قابلیت ترابرد پذیری دارد
از آنجایی که از یک کامپایر استاندارد C استفاده میکند، قابلیت تبدیل و یا ترابرد پذیری به کلیه Unix ها و Windows و حتی موبایلها از جمله اندروید، IOS, BREW, Symbian و Windows Phone را دارد. زبان برنامه نویسی Lua در امبددها Embedded از جمله پردازندههای ARM و یا Rabbit قابل اجراست و اپلیکیشنهای مبتنی بر امبدد سیستمها را میتواند راه اندازی کند. از آنجایی که هسته Lua از کمترین دیتا استاتیک استفاده میکند، برای امبددها و خصوصا اینترنت اشیاء IOT مناسب است. چرا که اینترنت اشیاء IOT بر بستر امبدد سیستمها به سادگی قابل اجراست.
زبان Lua بسیار سریع و دارای حجم کم است و اینها در کنار وجود داشتن API های متنوع و کتابخانههای متنوع برای تبادل کد با دیگر زبانها باعث شده که انتخاب مناسبی در امبدد سیستمها باشد. اینترنت اشیاء IOT همانطور که پیشتر گفتم بر بستر امبدد سیستمها از جمله آردوینو Arduino، رزبری پای Raspberry Pi و دیگر بردها از جمله اورنج پای و اودروید و … به سادگی قابل اجراست.
4- Node MCU راهکاری مدرن و روبه پیشرفت
از جمله ماژولهای پر کاربرد در زمینه اینترنت اشیاء IOT ماژولهای ارسال و دریافت داده است که میتوان به ESP8266 اشاره کرد. به تازگی ماژول Node MCU که بر پایه ESP8266 طراحی شده است بسیار مورد استقبال قرار گرفته است. این ماژول توانایی کامپایل کردن کدهای آردوینو را دارد. همچنین زبان Lua یک انتخاب مناسب برای استفاده در این ماژول است. Node MCU دارای مدلهای مختلفی است که معمولا بر اساس حافظه داخلی متفاوت میباشند. دو مدل با ۴ مگابایت و ۵۱۲ کیلوبایت حافظه داخلی در بازار ایران موجود میباشند و قیمتی بین ۱۸ تا ۲۹ هزار تومان میباشد.
ماژول Node MCU دارای ۳۰ پایه میباشد و به طور کلی از ارتباط UART و SPI و I2C بهره میبرد. از طریق یک کابل USB با همان نرم افزار آردوینو قابل برنامه ریزی و اجرا کردن کدهای آردوینو Arduino میباشد.
سخن پایانی
شما در این مقاله با زبان برنامه نویسی Lua آشنا شدید.همچنین از کاربرد و ویژگی های آن آگاه شدید.اگر سوال یا نظری دارید آن را در کامنت مطرح کنید تا در اسرع وقت توسط ما جواب داده شود.
سوالات متداول
همانطور که ملاحظه میکنید یکی دیگر از سوالات رایج درباره برنامه نویسی این سوال است! زبانهای برنامهنویسی رسانهای هستند که انسانها میتوانند از آن برای «صحبت کردن» با یک ماشین استفاده کنند. رایانهها به صورت دودویی «فکر میکنند»، که اساساً به این معنی است که آنها فقط 1 و 0های با هم را درک میکنند – بدیهی است که انسانها راههای پیچیدهتری برای برقراری ارتباط دارند. زبانهای برنامهنویسی را وارد کنید: انسانها از زبانهای برنامهنویسی برای نوشتن دستورالعملهایی استفاده میکنند که رایانهها میتوانند سپس به 1 و 0 ترجمه کرده و دنبال کنند.
یک دولان استرن، توسعهدهنده برنامه درسی در Codecademy، توضیح میدهد: «برنامهنویسی ایجاد راهحلی است که یک مشکل را حل میکند» و کدنویسی تنها یک مرحله از این فرآیند است. به عنوان مثال، برنامه نویسی یک وبسایت شامل برنامه ریزی برای هدف سایت، تبدیل طرح به کد، تست و اصلاح کد و بررسی محصول نهایی است. نیک میگوید، کدگذاری واقعی فقط در مرحله دوم اجرا میشود.