در این مطلب به بیان تفاوتهای دو زبان برنامه نویسی جاوا و جاوا اسکریپت پرداخته شده است. علاوه بر این، برخی از شباهتهای آنها، آشنایی با زبانهای Java و Javascript و مقایسه آنها از لحاظ شیگرایی، پلتفرم اجرا، پیچیدگی یادگیری، کامپایل و موارد دیگر نیز ارائه شده است. در آخر نیز برخی از دورههای آموزشی مرتبط، معرفی شدهاند. اکنون در بخش اول به این سوال که «تفاوت جاوا و جاوا اسکریپت چیست؟» پرداخته میشود.
با توجه به اینکه در نام «جاوا اسکریپت» از کلمه «جاوا» استفاده شده است، بسیاری از افراد بر این باور هستند که دو زبان جاوا و جاوا اسکریپت به نوعی به هم ربط دارند. با وجود اینکه بسیاری از برنامه نویسان این باور را سرزنش میکنند و بسیاری هم گمان میکنند که این شباهت در نامگذاری تنها یک حیله تبلیغاتی است، تاریخچه این دو زبان برنامه نویسی محبوب برای مدت زمان کوتاهی در روزهای آغازین فعالیت شرکت Netscape به هم گره خورده است.
سیر تکاملی دو زبان جاوا و جاوا اسکریپت از یک نقطه به بعد آنچنان مسیرهای متفاوتی را در پیش گرفتند که لطیفهای در خصوص تفاوت جاوا و جاوا اسکریپت بر سر زبانها افتاده است:
رابطه جاوا نسبت به جاوا اسکریپت مثل رابطه «هَم» به «همستر» است.
هم (Ham) نوعی فرآورده پروتئینی و همستر هم نوعی موش است و این دو هیچ ارتباطی با هم ندارند. اما به جای شنیدن لطیفه، افرادی که این مقاله را مطالعه میکنند به دنبال توضیحات مفیدتری در خصوص تفاوت جاوا و جاوا اسکریپت هستند. بنابراین در ادامه به شرح تفاوت این دو زبان برنامه نویسی محبوب و پر استفاده پرداخته شده است.
تفاوت جاوا و جاوا اسکریپت چیست ؟
اگر حدوداً به ۱۰ سال پیش بازگردیم، با مقایسهای ساده میتوانستیم تفاوت جاوا و جاوا اسکریپت را شرح دهیم:
جاوا یک زبان برنامه نویسی همهمنظوره است و جاوا اسکریپت در ساخت کاربردهای تحت وب و برای تعاملی کردن و متحرکسازی وباپلیکیشنها استفاده میشود.
اما اکنون با پیشرفتهایی که در جاوا اسکریپت حاصل شده و رشد چشمگیری که این زبان داشته است، شرح تفاوت جاوا و جاوا اسکریپت بسیار پیچیدهتر از این مقایسه ساده است. پیش از هر چیز، بد نیست به تعدادی از حقایق جذاب و برخی آمار و ارقام پیرامون جاوا و جاوا اسکریپت پرداخته شود.
واقعیت هایی در مورد جاوا و جاوا اسکریپت
در این بخش، واقعیتها و آمار جالبی پیرامون جاوا و جاوا اسکریپت مطرح شدهاند که به نوعی بیانگر علت تشابه اسمی جاوا و جاوا اسکریپت نیز هستند.
- نام اصلی جاوا «Oak» بود و توسط بخش بازاریابی شرکت سان مایکروسیستمز به جاوا تغییر داده شد. زیرا آنها متوجه شده بودند که نام Oak برای یک شرکت کامپیوتری دیگر قبلاً به ثبت رسیده است.
- زبان برنامه نویسی جاوا به دنبال یک اتفاق تصادفی خلق شده است. در حدود سال 1992، جیمز گاسلینگ در آزمایشگاه سان (Sun Labs) مشغول به کار بود. او همراه با تیمش در حال ساخت Set-Top Box) بودند. این پروژه با پاکسازی زبان ++C شروع شد که این تغییرات روی C++ منجر به خلق زبان برنامه نویسی جدیدی شد که امروزه به نام جاوا شناخته میشود.
- جاوا برای مدتی در جایگاه دومین زبان پرطرفدار قرار داشت. این زبان همواره به عنوان یکی از بهترین زبانهای برنامه نویسی شناخته میشود و در بین برنامه نویسان وب بسیار محبوب است.
- زبان برنامه نویسی جاوا مستقل از مفهوم اشارهگر (Pointer) است، زیرا اضافه شدن اشارهگرها به زبان برنامه نویسی جاوا، امنیت و قدرتمندی آن را به خطر میاندازد. این مسئله باعث شده است که زبان برنامه نویسی جاوا بسیار پیچیدهتر شود.
- در جاوا معنی واقعی کلمه کلیدی Final، «نهایی» نیست و معانی مختلفی دارد. معنی آن در جاوا میتواند متُد Final، کلاس Final، متغیر Final یا فیلد Final باشد.
- امروزه 95% از شرکتها، جاوا را به عنوان زبان برنامه نویسی اصلی استفاده میکنند. این میزان استفاده از زبان جاوا، بسیار بیشتر از زبان C و سایر زبانهای برنامه نویسی است.
- جاوا حدود یک میلیارد بار در سال دانلود میشود.
- از آنجایی که در سیستم عامل اندروید از APIهای جاوا استفاده میشود، امروزه جاوا روی بیش از 1 میلیارد سیستم عامل اندروید اجرا میشود.
اکنون برای درک بهتر تفاوت جاوا و جاوا اسکریپت بهتر است هر یک از این دو زبان برنامه نویسی به طور اجمالی معرفی شوند.
معرفی اجمالی جاوا و جاوا اسکریپت
در این بخش برای آشنایی با هر یک از زبانهای برنامه نویسی جاوا و جاوا اسکریپت و درک بهتر تفاوت میان این دو زبان برنامه نویسی به معرفی اجمالی آنها پرداخته شده است. ابتدا به این سوال پاسخ داده میشود که جاوا اسکریپت چیست؟
جاوا اسکریپت چیست؟
زبان برنامه نویسی جاوا اسکریپت یکی از زبانهای اسکریپت نویسی شیگرا به حساب میآید که در مرورگر کاربر اجرا میشود و میتواند صفحه وب را تعاملی کند. در اوایل پیدایش اینترنت، حدود سال 1990، دو نرم افزار Internet Explorer و Netscape Navigator از جمله محبوبترین مرورگرهای وب محسوب میشدند که عموم مردم از آنها استفاده میکردند. تنها در عرض 10 روز، توسعهدهندهای با نام Brendan Eich در شرکت Netscape یک زبان برنامه نویسی ایجاد کرد که میتوانست به کامپیوتر دستور دهد تا با دریافت ورودی از کاربر با او تعامل داشته باشد. او نام این زبان را “LiveScript” گذاشت و آن را مستقیماً در مرورگر Navigator تلفیق کرد.
این بدین معنی بود که مرورگر به معنای واقعی کلمه، دستورهای کاربر را تفسیر میکرد. بنابراین، دیگر نیازی به کامپایل کدها وجود نداشت و استفاده از افزونهها هم دیگر ضروری نبود. تقریباً در همان زمان، جاوا هم در حال کسب محبوبیت بود. اگرچه، جاوا به افزونه مجزایی برای کارکرد صحیح نیاز داشت. Netscape این فرصت را غنیمت شمرد و نام زبان برنامه نویسی خود را به «جاوا اسکریپت» تغییر داد. در روزهای آغازین رواج اینترنت، جاوا اسکریپت یک فناوری اجتناب ناپذیر به حساب میآمد و هم اکنون نیز اوضاع به همین قرار است.
جاوا چیست؟
جاوا یک زبان برنامه نویسی شیگرا (OOP) محسوب میشود که بیشتر برای توسعه سمت سرور به کار میرود و در حوزههای مختلفی کاربرد دارد. جاوا توسط «جیمز گاسلینگ» (James Gosling) خلق و به وسیله شرکت سان میکروسیستمز توسعه داده شده است. کمی بیشتر از ۱۰ روز طول کشید تا جاوا توسعه پیدا کند. سپس جاوا برای ۴ سال متوقف شده بود. در سال ۱۹۹۱، گروهی از مهندسین شرکت Sun Microsystem به صورت شبانهروزی با Green Team کار میکردند تا جاوا را ایجاد کنند.
Java اولین بار در سال ۱۹۹۵ منتشر شده بود و از آن زمان به بعد، نسخههای جدید بسیاری از آن عرضه شد. اینترنت امروزی کاملاً با زبان برنامه نویسی مبتنی بر جاوا ساخته شده است. برنامههای کاربردی ساخته شده با زبان جاوا زندگی روزمره را آسانتر کردهاند و در حال حاضر جاوا متعلق به شرکت اوراکل (Oracle) است.
تفاوت جاوا و جاوا اسکریپت
جاوا یک زبان برنامه نویسی شیگرا (Object-Oriented Programming) یا OOP به حساب میآید که در سال ۱۹۹۵ استفاده شد. Java در شرکت سان میکروسیستم (Sun Microsystems) توسعه یافت که بعداً توسط شرکت اوراکل (Oracle) خریداری شد. در زبان برنامه نویسی Java، برنامهها یا اپلیکیشنهای کاربردی توسعه داده شده در یک ماشین مجازی جاوا (Java Virtual Machine) اجرا میشوند که با سرنام JVM نیز شناخته میشود. از طریق ماشین مجازی جاوا میتوان همان برنامه را روی پلتفرمها یا سیستمها یا دستگاههای مختلف اجرا کرد. جاوا اسکریپت یک زبان اسکریپت نویسی (Scripting Language) شیگرا محسوب میشود که از طریق آن میتوان صفحات HTML پویا (Dynamic) ساخت و جلوههای تعاملی در صفحه وب ایجاد کرد. تا هنگامی که گوگل کروم موتور Node خود را با نام «Node.js» (نود جیاس) منتشر کرد، JS در مرورگر آن وجود داشت.
هر دو زبان جاوا و جاوا اسکریپت برای اجرا به صورت متفاوتی به کد ماشین (اسمبل) تبدیل میشوند و ساختار نوشتاری و اجرای آنها نیز با یکدیگر متفاوت است. این دو زبان برنامه نویسی از لحاظ قابلیت نیز با یکدیگر متفاوت هستند که در بخشهای بعدی این مطلب آموزشی به آن پرداخته شده است. برای درک بهتر تفاوت جاوا و جاوا اسکریپت در ادامه به آشنایی با این زبانهای برنامه نویسی پرداخته میشود.
تفاوت جاوا و جاوا اسکریپت از نظر قابلیت ها
در بخش اول این مقاله آموزشی تفاوت جاوا و جاوا اسکریپت به طور کلی ارائه شد. حال در این بخش به بیان تفاوت آنها از نظر قابلیتها پرداخته میشود. این زبانها از نظر قابلیتها تفاوت چشمگیری دارند که به شرح زیر است.
جاوا در زمینههای بسیاری مانند برنامه نویسی کارت اعتباری، برنامههای کاربردی (Application) اندروید، ایجاد اپلیکیشنهای دسکتاپ و اپلیکیشنهای کاربردی در سطح سازمانی استفاده میشود. در مقایسه با آن، جاوا اسکریپت در درجه اول، بیشتر برای تعاملی کردن صفحات اپلیکیشنهای وب به کار میرود. در حوزه اپلیکیشنهای وب، میتوان JS را به عنوان جایگزین برای نرم افزار Flash به کار برد. اگر چه اکثر توسعهدهندگان و برنامهنویسان وب میگویند که جاوا اسکریپت از فلش محبوبتر است و قابلیتهای بیشتری هم دارد. به عبارتی دیگراز جاوا اسکریپت میتوان برای انجام کارهای تکراری و یکنواخت مانند ایجاد انیمیشن در HTML استفاده کرد.
به طور خلاصه، هنگامی که نحوه استفاده از این زبانهای برنامه نویسی مطرح میشود، جاوا معمولاً برای توسعه سمت سرور به کار میرود در حالی که ایجاد اسکریپتهای سمت کاربر برای کارهایی مانند اعتبارسنجی فرم و تعاملی کردن سایت به جاوا اسکریپت اختصاص داده میشود.
تفاوت های اساسی جاوا و جاوا اسکریپت
در این بخش، برخی دیگر از تفاوتهای مهم و اساسی جاوا و جاوا اسکریپت در ادامه مطرح شدهاند.
- جاوا اسکریپت، زبان برنامه نویسی مبتنی بر متن محسوب میشود و کد آن تماماً متنی است و نیازی به کامپایل ندارد در حالی که کد نوشته شده به زبان جاوا باید کامپایل شود.
- هر یک از این زبانها به پلاگینهای متفاوتی نیاز دارند.
- کد نوشته شده به زبان JS، فقط بر روی مرورگر اجرا میشود در صورتی که جاوا، اپلیکیشنهای وبی ایجاد میکند که در مرورگر یا ماشین مجازی نیز قابلیت اجرا دارند.
- Java یک زبان برنامه نویسی شیگرا محسوب میشود و JavaScript به طور خاص، یک زبان اسکریپت نویسی شیگرا به حساب میآید.
با توجه به موارد مطرح شده در مطلب آموزش تفاوت جاوا و جاوا اسکریپت ، یک دانشجوی تازهکار برنامه نویسی متوجه میشود که Java و JavaScript، زبانهای برنامه نویسی ارزشمند و مفیدی برای افزودن به مجموعه دانش برنامه نویسی او هستند. در واقع بسیاری از برنامهنویسان ابراز میکنند که یادگیری سریع این دو زبان برنامه نویسی برای یک برنامه نویس تازهکار، حرکت بسیار خردمندانهای است. قطعاً یادگیری جاوا اسکریپت و جاوا باعث سیر صعودی میشود و فرصتهای استخدامی بهتر و پرسودتری را در مسیر حرفهای یک برنامه نویس فراهم میکنند. پس از درک تفاوتهای این دو زبان برنامه نویسی در بخش بعدی به شباهتهای جاوا و جاوا اسکریپت پرداخته میشود.
شباهت های جاوا و جاوا اسکریپت چیست ؟
جاوا و جاوا اسکریپت زبانهایی جدا از هم و مستقل هستند با این وجود، شباهتهایی هم دارند که از جمله آنها میتوان به سطح بالا بودن هر دو، شیگرا بودن، استفاده در برنامه نویسی وب (Back End و Front End) اشاره کرد. در ادامه به شرح بیشتر این شباهتها پرداخته شده است:
برنامه نویسی شیگرا: هر دو زبان برنامه نویسی، توسعهدهنده را ملزم به کدنویسی اشیاء و روابط آنها در زمینه یکدیگر میکنند. علاوه بر این، فناوریهایی مانند ارثبری، کپسولهسازی (Encapsulation) و چند ریختی (Polymorphism) در این زبانهای برنامه نویسی در دسترس هستند.
توسعه فرانتاند: هر دو زبان برنامه نویسی را میتوان در جهت توسعه Front-end به کار برد. کدهای زبان JavaScript را میتوان به طور مستقیم در فایل HTML وارد کرد که به عنوان یک چارچوب (Framework) یا کتابخانه پیادهسازی میشوند. جاوا را میتوان به صورت اپلت (Applet) جاوا – برنامههای کوچکی که در پس زمینه برنامههای دیگری اجرا میشوند – استفاده کرد.
توسعه بکاند: هر دو زبان برنامه نویسی قابلیت استفاده در سمت سرور را دارند. مدتها است که جاوا برای تقویت فناوریهای بکاند مانند آپاچی (Apache)، JBoss و WebSphere استفاده میشود. Node.js نیز اولین فناوری به حساب میآید که از جاوا اسکریپت در بکاند استفاده کرده است و به عنوان سکوی پرتابی برای سرورهای مبتنی بر جاوا اسکریپت محسوب میشود. با توجه به این که جاوا اسکریپت یک زبان اسکریپت نویسی است، برای آشنایی بیشتر با مفهوم اسکریپت مطالعه مقاله زیر پیشنهاد میشود:
- مقاله پیشنهادی: اسکریپت چیست ، چه کاربرد و انواعی دارد؟ — به زبان ساده
جدول مقایسه جاوا و جاوا اسکریپت
در این بخش از مطلب آموزشی تفاوت جاوا و جاوا اسکریپت به طور خلاصه به مقایسه این دو زبان برنامه نویسی پرداخته شده است. حدود 5 سال پیش در مورد جاوا و جاوا اسکریپت مقایسه سادهای وجود داشت. در آن زمان جاوا، زبان برنامه نویسی همهمنظوره محسوب میشد و جاوا اسکریپت برای برنامههای کاربردی وب به کار میرفت تا آنها را تعاملی و متحرک کند. حالا که JS رشد کرده، مقایسه آنها بسیار پیچیدهتر شده است.
همچنین نیاز به ذکر است که در کلاس زبان جاوا به کدهایی که بین آکولاد ([ ]) قرار میگیرند، بلاک (Block) یا قطعه کد گفته میشود و جاوا، زبانی مبتنی بر بلاک محسوب میشود. در ادامه برخی از مقالاتی معرفی شدهاند که میتوانند برای علاقمندان به زبان جاوا مفید باشند.
آیا استفاده از جاوا و جاوا اسکریپت برای پروژه های بعدی پیشنهاد می شود؟
در این بخش پروژههایی که امکان پیادهسازی آنها با زبانهای جاوا و جاوا اسکریپت وجود دارد در جدول تفکیک شدهاند. مانند همه زبانهای برنامه نویسی، انتخاب این زبانهای برنامه نویسی به دو چیز وابسته است که در ادامه شرح داده شدهاند:
- برنامه نویس به چه زبانی تسلط دارد؟
- هدف از ایجاد منابع، انجام چه کاری است؟
به طور خلاصه، جاوا اسکریپت هنوز یک فناوری وب محسوب میشود در حالی که جاوا یک زبان برنامه نویسی همهمنظوره به حساب میآید که میتواند هر چیزی را بسازد. در جدول زیر، پروژههایی که هر یک از این زبانهای برنامه نویسی برای آن کاربرد دارند به صورت مجزا مشخص شدهاند:
پروژههایی که زبان جاوا اسکریپت برای آن مناسب است | پروژههایی که زبان جاوا برای آنها مناسب است |
اپلیکیشنهای تک صفحهای پویا (SPAها) | اپلیکیشنهای اندرویدی |
فناوریهای فرانتاند مانند ReactJS ،Ember.js ،JQuery ،AngularJs Backbone.js و موارد دیگر | نرم افزار سازمانی |
فناوریهای سمت سرور مانند MongoDB ،Node.js Express.js و موارد دیگر | محاسبات علمی |
توسعه اپلیکیشنهای موبایلی از طریق PhpneGap، React Native و موارد دیگر | تجزیه و تحلیل کلان داده (Big Data) |
برنامه نویسی همهمنظوره سخت افزار | |
فناوریهای سمت سرور مانند آپاچی، GlassFish ،JBoss ،Geronimo و موارد دیگر |
جمعبندی
در این مقاله به مبحث تفاوت جاوا و جاوا اسکریپت، شباهتها و مقایسه این زبانهای برنامه نویسی پرداخته شد تا سردرگمی که ممکن است بخاطر شباهت اسمی آنها وجود داشته باشد را حل کند. زبانهای برنامه نویسی جاوا و جاوا اسکریپت زبانهایی شیگرا محسوب میشوند که در طراحی بکاند و فرانتاند به کار میروند. یکی از تفاوتهای اصلی این دو زبان، نحوه اجرای آنها است. جاوا اسکریپت بر روی مرورگر کاربر اجرا میشود و در زبان جاوا، برای اجرای اپلیکیشنها به نصب JRE و JDK روی سیستم نیاز است و از این طریق روی هر پلتفرم و سیستم عاملی قابلیت اجرا دارد.
زبان JavaScript به طور معمول برای طراحی وبسایتها، فناوریهای سمت سرور و تعاملی کردن صفحات وب استفاده میشود در حالی که Java یک زبان برنامه نویسی همهمنظوره است که برای ساخت اپلیکیشنهای اندرویدی، نرم افزارهای شرکتی، محاسبات علمی و بسیاری موارد دیگر کاربرد دارد.