جاوا و جاوااسکریپت در یک نگاه

جاوا و جاوااسکریپت در یک نگاه

برخی افراد تازه‌کار چنین تصور می‌‌کنند که زبان جاوا اسکریپت (JavaScript) شاخه‌ای از زبان جاوا (Java) است و یا حتی بعضی گمان دارند که جاوااسکریپت دقیقاً همان جاوا است که چنین چیزی اصلاً صحت ندارد. هر چقدر که شما بتوانید شباهت یا شباهت‌هایی مابین Car و Carpet قائل شوید، به همان اندازه نیز می‌توانید وجه تشابه مابین زبان‌های Java و JavaScript در نظر بگیرید. در همین راستا، در ادامه تفاوت‌های کلیدی این دو زبان را با هم مرور خواهیم کرد. 

دولوپر اصلی
جاوا توسط جیمز گاسلینگ (James Gosling) و در شرکت سان میکروسیستمز (Sun Microsystems) به وجود آمد اما جاوااسکریپت توسط برندان ایچ (Brendan Eich) در شرکت ارتباطات نت‌ اسکیپ (Netscape Communications) طراحی شد.

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

کاربردها 
جاوا هم برای توسعه‌ٔ نرم‌افزارهای مستقل (همچون اپ‌های اندرویدی) و هم برای توسعهٔ اپلت‌های تحت وب به‌ کار برده می‌شود اما جاوااسکریپت در اصل با هدف توسعه‌ٔ وب طراحی شده است.

کلاس محوری / پروتوتایپ محوری
جاوا یک زبان برنامه‌نویسی کلاس-محور است به این معنا که کدهای جاوا باید درون یک کلاس نوشته شوند اما جاوااسکریپت یک زبان پروتوتایپ-محور (Prototype-based) است چرا که جاوااسکریپت ویژگی شییٔ‌گرای را همچون ارث‌بری از طریق آجبکت‌های موجود به عنوان پروتوتایپ پیاده‌سازی می‌کند؛ یعنی برخلاف جاوا، به جا‌ی اینکه نیاز باشد از کلاس موجود یک آبجکت درست شود، از آبجکت‌های موجود به عنوان پروتوتایپ‌ استفاده می‌شود (البته در نسخهٔ ES6 قابلیت‌های شییٔ‌گرایی این زبان تکامل یافته‌اند).

تایپ زبان
جاوا از تایپ استاتیک استفاده می‌کند؛ منظور از تایپ استاتیک این است که تایپ چکینگ (بررسی دیتاتایپ‌ها) در هنگام کامپایل انجام می‌شود اما جاوااسکریپت از تایپ پویا استفاده می‌کند؛ منظور از تایپ پویا این است که تایپ چکینگ، در هنگام اجرا انجام می‌شود.

اپلیکیشن‌ها 
از جاوا می‌توان برای ساخت اپلیکیشن‌های دسکتاپ نظیر ویندوز و لینوکس بهره گرفت. همچنین می‌توان از جاوا برای ساخت اپلت‌ها برای ساخت صفحات وب استفاده کرد. تعامل (Interactivity) ویژگی کلیدی است که نمی‌توان هیچ وب‌سایتی را بدون آن متصور شد که این به یمن وجود JS امکان‌پذیر شده است. همچنین امروزه می‌توان از جاوااسکریپت برای ساخت اپ‌های هیبریدی و همچنین کدنویسی سمت سرور با استفاده از Node.js استفاده نمود.

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

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

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

منبع