از زبانی تقریبا مرده به زبانی پر رونق و همه جا حاضر، JavaScript مسیری طولانی را طی کرده است. به لطف رشد شبکه جهانی وب (www) و بسیاری از ویژگیهای جدیدی که اضافه شد، JS در حال حاضر یکی از محبوبترین و پرطرفدارترین زبانهای برنامهنویسی است.
با این اوصاف، موفقیت آن بدون گسترش در مناطق جدید امکانپذیر نخواهد بود. احتمالا بسیاری از توسعهدهندگان وب میدانند که دیگر JS به قاب مرورگر محدود نمیشود.
با این حال، ممکن است که برای برنامهنویسان مبتدی خیلی واضح نباشد. بنابراین، من میخواهم که این مقاله، یک ویترین دوستانه و مبتدی برای استفاده از موارد و امکانات JS باشد.
Server-side (سمت سرور)
در حال حاضر، مطمئنا توسعهیافتهترین گستره JavaScript در خارج از مرورگر سمت سرور است. و این امر به لطف زمان اجرا JavaScript توسط Node.js است که از همان موتور بسیار سریع V8 مانند هر مرورگر مبتنی بر Chromium استفاده میکند (به عنوان مثال Chrome و آخرین نسخه از Edge و Opera). نه تنها به ما امکان استفاده از JS برای کارهای ساده سرور مانند دسترسی به پایگاه داده و میزبانی وب را میدهد، بلکه در کارهای بسیار پیچیدهتر نیز مناسب است، به همین دلیل است که در حال حاضر توسط شرکتهای بزرگی مانند Netflix، Uber یا PayPal استفاده میشود.
همچنین Node.js نقشی اساسی در ایجاد و گسترش سریع Node Package Manager یا همان NPM داشته است.
برنامههای دسکتاپ
در حالی که Node.js در درجه اول در سمت سرور مورد استفاده قرار میگیرد، قابلیتهای آن بسیار بیشتر است. موفقیت آن باعث الهام بخشیدن به دیگران برای استفاده از JS در زمینههای مختلف صنعت برنامهنویسی شد. بنابراین، فریمورک Electron ابزاری است که از Node.js و Chromium استفاده میکند و به شما این امکان را میدهد تا برنامههای دسکتاپ را با ابزارهایی مانند HTML، JS و CSS ایجاد کنید.
ایجاد برنامههای Electron کاملا آسان و سرگرمکننده است. تقریبا میتوانید از یک وبسایت معمولی استفاده کرده و آن را به یک برنامه Electron تبدیل کنید. به زبان ساده، این فقط یک مرورگر وب Chromium با برخی از ویژگیهای اضافی برای سیستم عامل (OS) است. حتی ممکن است بدون اینکه متوجه شوید از یک برنامه Electron استفاده کنید. به عنوان مثال برنامههای بسیار مشهوری مانند Skype، Discord و Slack از این قابلیت استفاده میکنند.
برنامههای موبایل
از آنجا که Electron فقط برای سیستم عاملهای دسکتاپ (ویندوز، مک، لینوکس) است، برنامههای موبایل به دستهبندی خاص خود نیاز دارند.
برنامههای ترکیبی موبایل
روشهای مختلفی برای ایجاد برنامههای موبایل در JS وجود دارد. اولین مورد را برنامههای ترکیبی موبایل مینامند. به زبان ساده، اینها فقط برنامههای بومی معمولی با یک WebView در داخل آنها هستند و کدهای HTML، CSS و JS ارائه شده را اجرا میکنند. در واقع خیلی شبیه به Electron است، اما نام آن فریمورک Apache Cordova است. با این که ایجاد برنامههای ترکیبی موبایل آسان است، اما هیچ مزایای عملکردی نسبت به یک وبسایت معمولی ندارند. بنابراین، در یک دستگاه موبایل، جایی که منابع رایانشی محدود است، چنین برنامههایی اغلب عملکرد خوبی ندارند. احتمالا به همین دلیل است که در حال حاضر آنها به نفع فناوری جدیدی به نام PWA کنار گذاشته میشوند.
PWA
برنامههای وب پیشرونده یا به طور خلاصه PWA چیزی بیشتر از وبسایتهای معمول نبوده و شامل برخی از عملکردها و حالتهای آفلاین هستند. اگر مرورگر کاربر چنین عملکردی را فراهم کند، میتواند آنها را به صفحه اصلی سنجاق کرده و بدون نوار جستجو باز کند و به آنها احساس برنامههای معمول بومی را میدهد. همانطور که همین فناوری بر روی دسکتاپ نیز کار میکند، توسعهدهندگان میتوانند به سادگی برنامههای وب سازگاری ایجاد کنند و بدون کار اضافی از تمام مزایای PWA بهرهمند شوند.
اما، اگر میخواهید برنامه شما با افزایش کارایی و در دسترس بودن در فروشگاه برنامه محلی، "احساس بومی" بیشتری داشته باشد یک گزینه دیگر وجود دارد.
Nativity واقعی
فریمورکهایی مانند React Native و NativeScript به توسعهدهندگان این اجازه را میدهند تا برنامههای موبایل را با فناوریهای وب، اما با احساس و عملکرد برنامههای بومی بنویسند. آنها با تبدیل کد شما به یک نسخه بهینه شدهتر و در عین حال حفظ سهولت استفاده از JS و فناوریهای مربوطه به این هدف دست پیدا میکنند. این روش برای ایجاد برنامه های تلفن همراه بسیار گستردهتر استفاده می شود، برخی از برنامههای واقعا مشهور مانند Facebook، Messenger، Instagram، Pinterest، Skype، Tesla و بسیاری دیگر از این فناوری استفاده میکنند.
دستگاههای نهفته (Embedded)
ممکن است به نظر برسد که JS به عنوان یک زبان برنامهنویسی تفسیر شده، برای دستگاههای نهفته با آگاهی از منابع کوچک مناسب نیست. با کمال تعجب باید بگویم که در آنجا هم موفق شد. پروژههایی مانند جانی فایو با استفاده از موتور V8 و Node.js جاوااسکریپت را وارد زمینههای رباتیک و IoT کردند، یعنی در همه جا. حتی میتوانید از آن در دستگاههایی مانند Arduino، Rasberry Pi یا Intel Edison استفاده کنید.
سایر برنامهها
بنابراین، ما تقریبا بیشتر زمینههای برنامهنویسی را پوشش دادیم، اما JS بیشتر از این هم ادامه میدهد. ما نمیتوانیم با استفاده از این زبان سیستم عامل کاملی ایجاد کنیم، اما اگر نگاهی دقیقتر بیندازیم، میتوانیم ببینیم قسمتهایی که JS در آن دخیل نیست بسیار کم است.
به عنوان مثال نرم افزار Adobe Creative Cloud را در نظر بگیرید. حتی اگر فتوشاپ به طور کامل در JS نوشته نشده باشد، شما همچنان میتوانید از این زبان برای نوشتن عبارات و پلاگینهایی استفاده کنید که میتوانند بهرهوری و راحتی استفاده از ابزار را تسریع کنند!
حرفهای آخر...
به نظر میرسد که JS تقریبا در همه جا وجود دارد. مطمئنا این درست نیست، اما در قسمتهایی که گسترش پیدا کرده بسیار چشمگیر بوده است. و با گسترش اکوسیستم ابزارها، کتابخانهها، فریمورکها و جامعه رو به رشد، به نظر نمیرسد که JS به این زودیها منسوخ شود!
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید