جاوا اسکریپت در بین زبان های برنامه نویسی رشد بی سابقه ای داشته و امروزه در اکثر صنعت ها, از طراحی وب و اپلیکیشن های موبایلی گرفته تا بازی سازی و حتی هوش مصنوعی مورد استفاده قرار میگیره. یادگیری این زبان تقریبا یکی از الزامات تبدیل شدن به یک برنامه نویس فول استک هست….
ولی چرا این زبان این همه رشد کرد؟ و چی شد که انقد محبوب شد؟ برای جواب دادن به این سوال باید یک سری از معایب و مزایاشو بررسی کنیم تا بتونیم با سایر زبان ها مقایسش کنیم و دلیل رشد بی سابقش رو نسبت به سایرین متوجه بشیم… تیم تحقیقاتی اکادمی تیزهوشان مزایا و معایب این زبان رو با تحقیقاتی که روی نظرات برنامه نویس ها انجام داده, گردآوری رده و تو این مقاله ارائه داده, پس با ما همراه باشید ; )
"برای هر نقطه ضعف، یک مزیت مربوطه وجود دارد."
– W. Clement Stone
خب, پس بزارید اول از خوبی هاش براتون بگم :
از اونجایی که جاوا اسکریپت یک زبان مفسری (Interpreted Language) محسوب میشه، در مقایسه با زبان های کامپایلری مثل جاوا یا سی شارپ به مدت زمان کمتری برای تفسیر شدن نیاز داره. جاوا اسکریپت در واقع, یک اسکریپت سمت کلاینت به حساب میاد و چون نیازی به سروری برای کامپایل شدن نداره به شدت سرعتش بالاست.
جاوا اسکریپت یک زبان بسیار ساده و قابل درکه, که به راحتی میتونید یادش بگیرید. اگه دنبال دوره مناسبی برای یادگیری هستید ما دوره مبانی جاوا اسکریپت برای مبتدیان رو بهتون معرفی میکنیم که فقط در 6 ساعت با کل مفاهیم این زبان پرکاربرد آشنا بشید. همچنین جاوا اسکریپت چون محتوای صفحات وبسایتتون رو داینامیک میکنه, یادگیری و استفاده ازش باعث میشه تو خیلی هزینه ها صرفه جویی بشه…
از اونجای که امروزه دیگه اکثر کسب و کارهای قدیم و جدید دارن داخل دنیای وب فعالیت هاشو انجام میدن, بازار توسعه وب اپلیکیشن ها توی جامعه برنامه نویسان به شدت داغه و همین موضوع باعث شده اکثر دولوپرها اکثر فعالیت هاشونو به سمت حوزه دنیای وب شیفت بدن. خب از اونجای که جاوا اسکریپت برای داینامیک سازی وب سایت ها مورد استفاده قرار میگیره و یکی از سه عنصر اصلی سازنده اکثر وب سایت های دنیا به حساب میاد, همین موضوع باعث شد اکثر برنامه نویس ها شروع به یادگیری جاوا اسکریپت کنندو به همین دلیل محبوبیت زیادی رو بین برنامه نویس ها بدست اورد.
در دنیای وب جاوا اسکریپت با سایر زبان ها به شکل فوق العاده ای تعامل برقرار میکنه, طوری که میتونیم توی اسکریپت های زبان های مثل php و C# ازش استفاده کنیم.
بیشترین کاربرد جاوا اسکریپت در سمت کلاینت هست ولی با اومدن node کارایش به سمت سرور هم کشیده شد. یعنی با یادگیری جاوا اسکریپت هم فرانت اند و هم بک اند رو میتونیم توسعه بدیم و به همین دلیل میتونیم به سادگی میتونیم به یک برنامه نویس فول استک تبدیل بشیم.
همینطور از آنجایی که جاوا اسکریپت در سمت کلاینت کار می کنه، اعتبارسنجی داده ها به جای ارسال آن به سرور، در خود مرورگر امکان پذیر میشه. در صورت وجود هرگونه خطا، کل وب سایت نیازی به بارگذاری مجدد نداره و مرورگر فقط بخش انتخاب شده از صفحه را به روز میکنه.
جاوا اسکریپت چون جامعه برنامه نویس خیلی زیادی رو داره, شما تقریبا برای هرکاری با این زبان بخواید بکنید, میتونید از کدهای فوق العاده ای که توسط خفن ترین برنامه نویس ها در قالب کتابخونه یا فریمورک ارائه شده استفاده کنید. که به شدت روی بالا بردن سرعت توسعه و کمتر کردن هزینه ها بهتون کمک میکنه. مثل react و angular و سایر کتابخانه های محبوب که احتمالا راجعبشون شنیدید.
ولی حالا که انقد از خوبی هاش گفتیم, اجازه بدید نقص ها و عیب هاشم به روش بیاریم:
از اونجای که کاربران میتونن کدهای جی اس فرانت اند سایت رو ببیند, همین موضوع باعث شده بعضیا دنبال سوء استفاده باشن و از همین کدها برای آسیب زدن و نفوذ کردن به سایت استفاده کنند. ممکنه احراز هویت ها رو بتونن دور بزنن یا امنیت داده ها رو به خطر بندازن.
متاسفانه بعضی از مرورگر های قدیمی زبان جاوا اسکریپت را تفسیر نمیکنن و این باعث میشه به مشکلات زیادی با اجرا شدن سایت روی اون مرورگرها بر بخوریم.
متاسفانه کد ادیتورهای کمی وجود دارن که کدهای جاوا اسکریپت رو دیباگ کنن و حتی مرورگر ها هم اینکار رو انجام نمیدن, بخاطر همین رفع خطا ها و مشکلات کدهای جی اس زمان بر و چالش برانگیزه…
جاوا اسکریپت اعداد رو به صورت یک عدد اعشاری 64 بیتی (float) ذخیره می کنه ولی عملگرهاش روی عملوند ها به صورت 32 بیتی کار می کنند. و بخاطر همین، جاوا اسکریپت اعداد رو به در ابتدا به اعداد صحیح (integer) 32 بیتی تبدیل می کنه، عملیات و انجام میده و باز اونا را به اعداد اعشاری 64 بیتی تبدیل می کنه... این تبدیل ها باعث پایین اومدن پرفورمنس و سرعتش میشه.
خب همنطور که ملاحظه فرمودید جاوا اسکریپت در جایگاه خودش خیلی زبان خوبیه و حتی الزامیه, ولی خب معایبیم داره که باعث میشه در هر جایگاهی نتونیم ازش استفاده کنیم. این که میگن هر کسی را بهر کاری ساختن توی زبان های برنامه نویسی هم صدق میکنه. هیچ زبان برنامه نویسی هیچوقت نمیتونه تو همه ی زمینه ها وارد بشه و کامل عمل کنه.