جاوا اسکریپت اولین زبان برنامه نویسی بود که انتخاب کردم. من در واقع با HTML و CSS شروع به کار کردم. درست مانند بسیاری دیگر از توسعه دهندگان وب، شروع با جاوا اسکریپت کاری بی فایده بود. به این دلیل است که به خوبی با HTML و CSS ترکیب شده و در واقع مهارتهایHTML و CSS شما را نیز افزایش میدهد. من برنامهها و بازیها را به زبانهای برنامه نویسی مختلف دیگری از جمله جاوا، Swift، C ++ و Dart توسعه دادهام. اما انعطاف پذیری جاوا اسکریپت غیرقابل مقایسه است، حتی اگر برای مبتدیان بد تلقی شود. زیرا گزینههای بیشتری از نیاز برای انجام یک کار ساده را در اختیار شما قرار میدهد.
امروزه جاوا اسکریپت به دلیل عملکرد و فراگیر بودن یکی از قدرتمندترین زبانهای روی کره زمین است.
من شخصا احساس میکنم جاوا اسکریپت توانایی استفاده در بسیاری از صنایع معروف مانند یادگیری ماشین و تجزیه و تحلیل داده را دارد، جایی که در حال حاضر پایتون بازی را اداره میکند. این حتی با ابزاری مانند Tensorflow.js میتواند اتفاق بیافتد!
با این حال قبلا این مورد برای جاوا اسکریپت صادق نبود. پیش از این، این زبان ضعیف و غیر عملکردی بود و مورد غفلت واقع شد. جاوا اسکریپت برای بازندگان بود.
اما بیایید ببینیم که چگونه جاوا اسکریپت در 10 سال گذشته آمار را برگردانده است، چرا نسبت به گذشته قویتر شده و چرا اینقدر ماندگار است؟
V8: این به جاوا اسکریپت قدرت میدهد
V8 در واقع یک موتور جاوا اسکریپت است. ممکن است بپرسید موتور جاوااسکریپت چیست؟ موتور جاوااسکریپت مفسری است که کد جاوااسکریپت را اجرا میکند. یک موتور جاوااسکریپت میتواند به عنوان یک مترجم استاندارد یا کامپایلر که به نوعی جاوا اسکریپت را به کد بایت کامپایل میکند، پیاده سازی شود.
V8 یک موتور جاوا اسکریپت و WebAssemble JIT با عملکرد بالا و متنباز گوگل است که به زبان سی پلاس پلاس نوشته شده است. از این موارد در مرورگر کروم و در Node.js استفاده میشود. V8 میتواند به صورت مستقل اجرا شود یا میتواند در هر برنامه سی پلاس پلاس جاسازی شود.
این قطعه نرمافزاری است که کد جاوااسکریپت شما را بسیار بهینه میکند و آن را به کد ماشین برای پردازنده تبدیل میکند. برخی از وظایف V8 عبارتند از:
- جمع آوری زباله
- کامپایل به کد ماشین
- ذخیره سازی درون خطی
- فشرده سازی نشانگر
- بهینه سازی پیشرفته
در حقیقت، فشرده سازی نشانگر یک روش بسیار جدید در V8 است که باعث بهینه سازی حافظه میشود، در حالی که هیچ تاثیری بر عملکرد ندارد. اگر یک گیک هستید، میتوانید اطلاعات بیشتری در مورد نحوه اجرای آن در وبلاگ رسمی V8 بخوانید.
نتیجه این کار این است که شما میتوانید کد جاوا اسکریپت بنویسید و شبها با خیال راحت بخوابید زیرا کد جاوااسکریپت شما بسیار خوب و مطمئن است.
اکوسیستم و جامعه بالغ
جاوا اسکریپت یکی از پختهترین اکوسیستمهایی را دارد که یک زبان برنامه نویسی میتواند داشته باشد. جامعه جاوااسکریپت گسترده است و موانع ورود به آن بسیار کم است.
میتوانید یک مرورگر را خاموش کنید (در 100٪ رایانههای شخصی موجود است)، کنسول را باز کنید و یک موتور جاوا اسکریپت خواهید دید که برای اجرای کد منتظر شماست. هرگز در زبانهای برنامه نویسی دیگر با چنین پیچیدگیای اینگونه نبود.
به نظر میرسد که جامعه گسترده کافی نیست، ما سیستمهای npm و پکیج yarn را داریم. شما آن را نامگذاری کرده و بستهای برای آن در رجیستری npm وجود دارد. از ایجاد رشتههای تصادفی گرفته تا مدیریت جریانها و بافرها در جاوااسکریپت. جمله بسیار مشهوری در بین توسعه دهندگان جاوا اسکریپت وجود دارد:
"هرآنچه که قابلیت پیادهسازی با جاوااسکریپت را داشته باشد؛در نهایت هم توسط خود جاوااسکریپت پیادهسازی خواهد شد"
خندهدار است اما من این را باور دارم.
اگر به عنوان یک مبتدی وارد شوید، احتمال اینکه با مشکلی روبه رو شوید که هیچ کس قبلا با آن روبه رو نشده باشد، بسیار کم است. دلیل این امر آن است که احتمالا قبلا در مورد اشتباهات احتمالی در مورد مسائل ساده جاوا اسکریپت در سایتهایی مانند Stack Overflow سوال و بایگانی شده است.
فریمورکها و کتابخانههایی مانندReact ، Angular و Vue راه را برای چگونگی ساخت برنامههای آینده هموار میکنند. آنها به جای برنامه نویسی ضروری، نگاه را به سمت اظهارات سوق میدهند. این اجازه میدهد تا توسعه دهندگان بدون نگرانی در مورد عملکرد کد، برنامههای با کیفیت را توسعه دهند.
در همه جا حضور دارد
جاوااسکریپت توانایی اجرای موارد زیر را دارد:
- فرانتاند (مرورگرها)
- بکاند (Node, Deno)
- اندروید و iOS (React Native, NativeScript)
- دسکتاپ (Electron)
- هیبرید (Ionic)
چه چیزی این امکان را فراهم میکند؟ موتورهای جاوا اسکریپت مانند V8 با سی و سی پلاس پلاس نوشته شدهاند و حتی میتوانند روی سیستمهای تعبیه شده کامپایل شوند. برای سیستمعاملهای دیگر، از آنجا که مرورگرها همیشه وجود دارند (مانند Andorid / iOS)، آنها با یک موتور جاوا اسکریپت ارسال میشوند که میتواند برای اجرای هر کد جاوااسکریپت حتی برای برنامههای بومی در مورد React Native نیز استفاده شود.
قابلیتهای پیشرفته
استانداردهای جاوا اسکریپت توسط انجمن ECMA-262 TC39 اداره میشود و این افراد خیلی سریع هستند! ECMAScript هر ساله استاندارد جدیدی از جاوا اسکریپت را منتشر میکند (به ویژگیهای جدید ECMAScript2020 مراجعه کنید). شما به عنوان یک توسعه دهنده حتی میتوانید درخواست کنید که چه ویژگیهای جدیدی به زبان اضافه شود.
به عنوان مثال، در اینجا برخی از ویژگیهای منتخب وجود دارد که ممکن است در آینده نزدیک به جاوااسکریپت وارد شود:
شما میتوانید تمام پیشنهادات را در اینجا پیدا کنید: پیشنهادات TC39.
سریع و مقیاسپذیر
البته هیچ چیزی واقعا جای C / C ++ / Rust را نمیگیرد، اما جاوااسکریپت خیلی سریع است. به این معنا که V8 میتواند با نظارت بر نحوه اجرای کد شما، به تأخیر انداختن بیتهای اجرا شده که استفاده نمیشوند و بهینه سازی بخشهای مختلف، کدی بسیار بهینه سازی شده تولید کند که بارها و بارها مورد استفاده قرار بگیرد. به خصوص وقتی با نزدیکترین رقبای خود مانند پایتون مقایسه شود. با پیشرفتهای موجود در V8، عملکرد و حافظه آن نیز بیشتر میشود.
جاوااسکریپت بسیار مقیاسپذیر است (با مجموعههای بزرگ مانند TypeScript). با استفاده از یک معماری تک رشتهای، مردم غالبا Node را به دلیل نداشتن محیط رشتهای مورد انتقاد قرار میدهند، اما واقعیت این است که اهمیت زیادی ندارد.
نحوه مقیاسپذیری برنامههای Node با مقیاسبندی یک برنامه چند رشتهای مشابه نیست. Node در لغت به معنای "گره" است – گرهای واحد در یک درخت فرآیند. گره با اجرای چندین نمونه از آن و مدیریت خوشه مقیاس بندی میشود.
جاوا اسکریپت مدل برنامه نویسی مبتنی بر رویداد ناهمزمان را هدایت میکند و برای مقیاس بندی به رشته نیاز ندارد. در عوض، میتوان فرآیندهای Node منفرد را تولید و از هسته پردازنده استفاده کامل کرد. بعدا در مورد مقیاسگذاری Node اطلاعات بیشتری کسب میکنید.
جمعبندی
من جاوااسکریپت را دوست دارم و اگر شما مایل به یادگیری آن هستید، میتوانید از این لینک استفاده کرده و در دوره یادگیری این زبان شرکت کنید.
جاوا اسکریپت اینجاست تا ماندگار شود و در این دهه بر صنعت حکم رانی کند. قبول دارید؟ نظرات خود را در بخش زیر با ما در میان بگذارید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید