مقدمه: جاوا اسکریپت یه زبان برنامه نویسی متن بازه. در این مطلب اون رو بررسی میکنیم
در دسته بندی جاوا اسکریپت مطالعه در 5 دقیقه منتشر شده در ۱۳۹۹/۰۸/۲۰زبانهای برنامهنویسی بسیار زیاد هستند. پس چرا باید جاوا اسکریپت یاد بگیریم؟ در این مطلب شش جنبهای رو که هنگام انتخاب یه زبان برنامهنویسی مهم هستند رو بررسی میکنیم و در انتها با یک استدلال کلی به این نتیجه میرسیم که جاوا اسکریپت بهطور کلی عملکرد بهتری نسبت به سایر زبانهای برنامه نویسی داره!
بدون شک جاوا اسکریپت بازترین زبان برنامهنویسیه! اِکمااسکریپت (ECMAScript) و مشخصات اون تحت استانداردهای ISO هستند. جاوااسکریپت یه زبانبرنامه نویسی متنباز (Open Source) هستش و همیشه رایگان خواهد بود. در آینده بیشتر در مورد متنباز بودن خدمتتون عرض خواهم کرد. اما در همین حد تو این مطلب میگم که متنباز بودن دلیل محکمیه بر تکامل روزافزون یه زبانبرنامه نویسی یا یه نرمافزار یا... . ما میدونیم که تمام مرورگرها دارن با هم رقابت میکنند که حتی کروم (Chrome) و موزیلافایرفاکس (MozillaFireFox) از جمله رقبای سرسخت همیدیگه هستند. اما چیزی که جالبه اینه که همه مرورگرها به نفع زبان جاوااسکریپت کنار کشیدن و باهم متعهد شدن که از جاوااسکریپت پشتیبانی کنن
هم آره و هم نه! دلیلش اینه که اگر یه قطعه کد ساده (بعنوان برنامه یه ماشین حساب) رو در نظر بگیریم، به این نتیجه میرسیم که جاوا اسکریپت اوج ظرافت نیست؛ اما با این حال یه زبانبرنامه نویسی بسیار انعطاف پذیره که دارای هسته منطقی بسیار زیبا و ظریفه. (منظور از ظرافت، اصولی بودن و کاملا قابل فهم بودن هسته جاوا اسکریپت هستش).
در یک جمله میگم. زیباترین و بهترین زبان برنامهنویسی دنیا هم بی فایدست! مگر اینکه به شما اجازه بده هر برنامهای رو بخواید بنویسید و روی هر پلتفرمی با هر کِرنلی اجرا کنید.
به هر زبانی برنامهنویسی که این ویژگی رو در اختیار شما قرار بده اصطلاحا کراس.پلتفرم (Cross Platform) گفته میشه. در گذشتهای نه چندان دور، کراس.پلتفرم بودن فقط به برنامهای اطلاق میشد که قابل اجرا روی سیستم عاملهای ویندوز، مکینتاش و لینوکس میبود. اما حالا دو سیستم تعاملی اضافهتر هم داریم: وب و تلفنهای همراه (Android, iOS و بلکبری).
خوشبختانه با جاوا اسکریپت میتونید هر برنامهای رو روی هر پلتفرمی با هر سیستم عاملی بهخوبی اجرا کنید. میتونید از طریق Chrome Apps، PhoneGap، ReactNative، TideSDK و... تمام سیستم عاملهایی که همین الان از ذهن شما خطور کرد رو مورد هدف قرار بدید و با جاوا اسکریپت برای اونها برنامه بنویسید. در زمینه رابطهای گرافیکی کاربر میتونید از HTML5 بهرمند بشید. HTML5 با جاوااسکریپت ترکیب میشه تا شما بتونید برنامههای تحت وب ایجاد کنید.
جاوا اسکریپت کتابخانهها و پلتفرمهایی داره که شما میتونید در هر زمینهای که مایلید از یکی از اونها استفاده کنید. شما میتونید از TensorFlow.js استفاده کنید تا در زمینه هوش مصنوعی، پردازش تصویر، شبکههای عصبی، یادگیری عمیق و... برنامهنویسی کنید.
میتونید از ReactNative استفاده کنید تا همزمان هم برنامه Andoird بنویسید و هم iOS.
میتونید از Node.js و فایلهای JSON استفاده کنید تا با سرور ارتباط بر قرار کنید و عملا نیازی به زبانهایی مثل PHP یا ASP برای بحث برنامهنویسی سرورساید (Server-Side - Back-End) نداشته باشید.
و صدها کتابخانه و فریم ورکهایی که معرفی کردنشون تو این مطلب مفید فایده نیست.
موتورهای جاوا اسکریپت پیشرفت فوق العادهای داشتهاند و از مترجمهای کُند به کامپایلرهای سریع و بهموقع تبدیل شدند. هم اکنون جاوا اسکریپت برای اکثر برنامهها به اندازه کافی سریعه و البته ایدههای جدید در خال توسعه هستش تا جاوا اسکریپت رو برای تمام برنامههای باقی مونده به اندازه کافی سریع کنه.
زیر مجموعه asm.js یک زیر مجموعه از جاوا اسکریپته که با سرعتی بسیار بالا روی موتورهای فعلی کار میکنه. asm.js تقریبا 70% سریعتر از ++C کامپایل میشه! بعنوان مثال میشه از asm.js برای پیادهسازی قسمتهای الگوریتمی حیاتی در عملکرد برنامههای تحت وب استفاده کرد. همچنین برای انتقال بازیهای مبتنی بر ++C به سیستم عامل وب هم میشه از asm.js استفاده کرد
زبانی که بطور گستره استفاده میشه دو مزیت بسیار کلیدی داره. اولا، چنین زبانی به بهترین شکل مستندسازی و به خوبی پشتیبانی میشه. دوما، برنامه نویسهای بسیار زیادی از اون استفاده میکنند که همین امر باعث میشه شما هیچ وقت به مشکل بر نخورید و برای هر سوالی حداقل یک جواب صحیح داشته باشید.
این روزهای مستندات، آموزشها و پشتیبانیها از جاوا اسکریپت بصورتهای مختلفی ارائه میشه. مانند کتابها، پاکستها، پستهای وبلاگی، خبرنامههای ایمیلی، انجمنها و..
چندین دلیل است که نشون میده جاوا اسکریپت آینده خوبی داره.
اول: این زبان بطور مداوم در حال تکامل با سرعت بالاییه
دوم: نوآوریهای زیادی در رابطه با جاوا اسکریپت وجود داره. بعنوان مثال asm.js، TypeScript، ParallelJS یا...) که در مورد کتابخونهها، فریمورکها و زیر مجموعههای جاوا اسکریپت در آینده بیشتر صحبت خواهم کرد.
سوم: بستر وب که JavaScript بخشی جدایی ناپذیر از اونه، به سرعت در حال تکامل، بلوغ و نبوغه.
چهارم: و از همه مهمتر جاوا اسکریپت توسط بسیاری از شرکتها پشتیبانی میشه و هیچ شخص، تشکل یا شرکت واحدی پشتیبان اون نیست.
با توجه به این موارد، جاوا اسکریپت عملکرد بسیار بسیار بهتری نسبت به خیلی زبانهای برنامه نویسی داشته و خواهد داشت. اما با این حال مطمئننا عالی نیست ولی در حال حاضر کار بسیار سختیه که دیگر زبانهای برنامه نویسی اون رو شکست بدن.
speakingjs.com
برنامه نویس
در این مطلب تابعی توضیح داده خواهد شد که توسط آن و در محیط جاوااسکریپت بتوانید استانهای همجوار و غیر همجوار را پیدا کنید