آیا جانشین مناسبی برای جاوااسکریپت وجود دارد؟

ترجمه و تالیف : مهدی عقیقی
تاریخ انتشار : 12 فروردین 99
خواندن در 3 دقیقه
دسته بندی ها : جاوا اسکریپت

هیئت داوران هنوز نتوانستند در مورد خوب یا بد بودن جاوااسکریپت نظر خاصی بدهد. پس در این مقاله ما خوبی‌ها و بدی‌های جاوااسکریپت را بررسی می‌کنیم و نگاهی به جایگزین‌های آن می‌اندازیم.

جواب کوتاه به این سوال، نه می‌باشد.

و اما جواب کامل‌تر، کمی پیچیده است و فعلا همه‌ی جایگزین‌های آن اول به جاوااسکریپت کامپایل می‌شوند.

مردم دوست دارند که از جاوااسکریپت متنفر باشند

این تعجب‌آور نیست اگر برخی از اشکالات آشکار این زبان برنامه‌نویسی، از جمله IEEE 754 Double Precision را در نظر بگیریم.و این‌که تعدادی از توابع و خواص تمایل دارند به‌طور متفاوتی در مرورگرها اجرا شوند.

با این حال، در یک نظرسنجی که اخیرا برگذار شد و حدود ۹۸ هزار برنامه‌نویس در آن حضور داشتند، مشخص شد که جاوااسکریپت دومین زبان محبوب در بین برنامه‌نویس‌ها است. ۴۹٪ به آن رای دادند.

به نظر من، در مورد یک زبان که به شما اجازه‌ی ساختن rollover ،drop down، انیمیت کردن و پخش صدا و فیلم می‌دهد، چرا باید کسی از آن بدش بیاید ؟

به‌علاوه ما در مورد زبانی صحبت می‌کنیم که با بقیه‌ی زبان‌ها سازگار است و این یک نکته‌ی خیلی مهم است.

نکات خوب جاوااسکریپت

چیز‌های خیلی زیادی موجود است که می‌تواند دلیلی برای دوست داشتن جاوااسکریپت باشد. ما در زیر چند مورد از این نکات که باعث می‌شود جاوااسکریپت یک زبان محبوب باشد را برای شما می‌گذاریم.

  • وقتی کار به فرانت‌اند و واکنش‌پذیر بودن کلاینت در سایت می‌رسد، جاوااسکریپت تنها گزینه‌ای است که برنامه‌نویس‌ها دارند.
  • جاوااسکریپت بسیار سبک است و سینتکس بسیار راحتی دارد
  • یک زبان protorype-oreinted یا اولیه‌گرا است.
  • با معرفی شدن Node.js جاوااسکریپت قفل حضور در بک‌اند را شکست که قبل از آن فقط زبان‌هایی مانند Python, Java, Ruby در آن حضور داشتند.

نکات بد جاوااسکریپت

در زیر می‌توانید دلایلی مبنی بر این که چرا بعضی از برنامه‌نویس‌ها سعی می‌کنند از جاوااسکریپت دوری کنند را ببینید

  • تا زمانی که همه‌ی افراد می‌توانند کد‌ها را ببینید، جاوااسکریپت می‌تواند در جهات مخرب استفاده شود و امنیت کار را پایین بیاورد
  • کد‌ها قبل از استفاده عمومی باید در مرورگر‌های مختلف تست شوند. زیرا جاوااسکریپت در همه‌ی مرورگر‌ها به طور یکسان کار نمی‌کند.
  • نبودن دیباگر خوب برای این زبان، کار اشکال‌زدایی را برای برنامه‌نویس‌ها مشکل می‌کند.

جانشینان مناسب جاوا‌اسکریپت

اگر بگوییم که هیچ جایگزینی برای جاوااسکریپت وجود ندارد حرف غلطی نزدیم.

همه‌ی این جایگزین‌ها فقط راه‌حل‌هایی هستند برای این‌که ما دیگر کد جاوااسکریپت ننویسیم، اما نکته اینجاست که کدی که شما می‌نویسید، برای استفاده شدن در یک مرورگر یا کامپیوتر باید به آن تبدیل شود.

Dart

Dart یک زبان شی‌گرا است که شبیه به C می‌باشد و توسط گوگل، به منظور حذف جاوااسکریپت تولید شده است. دارت Statically-typed می‌باشد و این باعث می‌شود که منبع بیش‌تر ارور‌ها در جاوااسکریپت بسته شود. این زبان همچنین از type inference پشتیبانی می‌کند.

یکی از ویژگی‌های مهم این زبان در واقع این است که به شما این امکان را می‌دهد که فقط برنامه‌های فرانت‌اند نسازید و می‌توانید از آن در ساختن برنامه‌های مستقل هم کمک بگیرید. با استفاده از Google Ui Kit شما می‌توانید برنامه‌های نیتیو وب، دسکتاپ، و موبایل بسازید. با این حال، دارت با تعداد کم برنامه‌نویس‌ها و استفاده کم آن در بازار، از منابع آنلاین کمی برخوردار است. و این بدین معنا است که شما مشکلات خود را نمی‌توانید به راحتی حل کنید.

TYPESCRIPT

ساخته شده توسط مایکروسافت؛ تایپ‌اسکریپت، در واقع کمی بیش‌تر از یک superset جاوااسکریپت است. به این معنا که در واقع کمی متد به آن اضافه کرده و آن‌را مدرن‌تر کرده است. همین‌طور یک‌سری از محدودیت‌های آن را حذف کرده و از همه مهم‌تر، قابلیت static typing به آن اضافه شده است. به معنای دیگر بعد از کامپایل شدن به جاوااسکریپت، تقریبا می‌تواند در همه‌ی مرورگر‌ها اجرا شود.

برای مثال Angular.js کاملا توسط Typescript تولید شده است.

یک نکته مثبت دیگر در مورد این جایگزین این است که می‌تواند در Node.js هم استفاده شود.

با این حال، جامعه کوچک‌تری دارد و کد‌زدن با تایپ‌اسکریپت کمی زمان‌بر است.

برای یادگیری تایپ‌اسکریپت وبسایت راکت،اینجا کلیک کنید.

KAFFEINE

KAFFEINE در واقع یک‌سری از قابلیت‌های اضافی به سینتکس جاوااسکریپت است که یک‌سری از کار‌ها را برای شما راحت کرده است. برای مثال به برنامه‌نویس‌های فرانت‌اند در مورد CALLBACK های جاوااسکریپت کمک می‌کند و به برنامه‌نویس اجازه کد‌نویسی ASYNCRONUS را می‌دهد.

با استفاده از این جایگزین، دیباگ کردن بسیار راحت‌تر می‌شود، اما دوباره، جامعه‌ی کوچک و منابع کم این زبان را کمی مبهم می‌کند.

ELM

ELM یک زبان statically typed و فانکشنال است که بیشتر از C به Haskell شبیه است. اما برعکس گزینه‌های قبلی، برنامه‌نویس‌ها را با پیچیدگی خودش اذیت نمی‌کند.

این جایگزین در بعضی موارد با جاوااسکریپت تفاوت دارد مثلا یک زبان چند‌منظوره نیست. اما یک راه خوب برای دسترسی به برنامه‌نویسی فرانت‌اند حرفه‌ای می‌باشد.

در حین استفاده از ELM، زمانی‌که اروری رخ می‌دهد برنامه‌نویس‌ها ارور‌ها را فوری دریافت می‌کنند که باعث می‌شود بتوانند آن‌را راحت‌تر حل کنند. که این قضیه باعث می‌شود باگ‌های زیادی در مراحل بعدی کدنویسی حذف شود. نقطه حساس این زبان، این است که “هیچ ارور RUNTIMEی در برنامه‌نویسی وجود ندارد” و این بدین معناست که اگر یک برنامه‌ی ELM شروع به کار کند، خیلی بعید است که از کار بیافتد.

بعضی از نکات منفی این جایگزین: عدم قابلیت استفاده در بک‌اند، مسیر یادگیری سخت‌تر، و این موضوع که خیلی از توانایی‌های سطح بالای جاوااسکریپت را ندارد.

COFFEESCRIPT

CoffeeScript در واقع خوانایی زبان را بیش‌تر می‌کند و به همان اندازه کد را ساده‌تر و کوتاه‌تر می‌کند. سازگاری آن با Node.js یکی دیگر از مزیت‌های آن است.

با این حال، مهم است که به این اشاره کنیم که برنامه‌نویس‌ها برای استفاده از CoffeeScript باید در جاواسکریپت پرکار باشند. یکی از معایب اصلی آن محدود بودن ویژگی‌های آن نسبت به جاواسکریپت است. و زمانی‌که جاوااسکریپت نسخه ES6 ارائه شد، تقریبا CoffeeScript را از رده خارح کرد.( زیرا این آپدیت تقریبا سرعت جاوااسکریپت را به سرعت CoffeScript) رساند.

جمع‌بندی

به طور خلاصه، در حال حاضر جاوااسکریپت یکی از زبان‌های برنامه‌نویسی مهربان است و اینجاست که بماند. این جایگزین‌ها می‌توانند آن را تقویت کنند و بعضی از کاستی‌ها را به آن اضافه کنند، اما در واقع نمی‌توانند بدون جاوااسکریپت استفاده شوند. پس درست است اگر بگوییم که هنوز باید بایستیم تا به یک جانشین راسیتن برای جاوا‌اسکریپت که بدون پیش‌نیاز باشد برسیم.

شما می‌توانید برای یادگیری جاوااسکریپت؛از دوره‌ی آموزشی جاوااسکریپت وبسایت راکت استفاده کنید.

منبع

گردآوری و تالیف مهدی عقیقی
آفلاین
user-avatar

برنامه‌نویس وب، عاشق جاوااسکریپت و ریکت و لاراول :)

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید