ارتباط میان Javascript و Java

جاوااسکریپت از سینتاکسی تحت تاثیر C استفاده میکند. جاوااسکریپت بسیاری از نامها و الگوهای نامگذاری را از Java کپی برداری کرد، اما این دو زبان به غیر از این بی ارتباط و از نظر معنایی بسیار متفاوت هستند. اصول کلیدی جاوااسکریپت از زبانهای برنامه نویسی Self و Scheme گرفته شده اند.

LiveScript نام رسمی زبان بود وقتی که نخست در انتشار بتای Netscape Navigator 2.0 در سپتامبر 1995 منتشر شد، اما در 4 دسامبر در یک اعلان مشترک با شرکت Sun موقعی که در مرورگر Netscape نسخهء 2.0B3 بکار گرفته شد به جاوااسکریپت تغییر نام داده شد.

تغییر نام از LiveScript به JavaScript تقریبا با افزودن ساپورت فناوری جاوا به مرورگر Netscape Navigator توسط Netscape همزمان بود. انتخاب نهایی نام باعث سردرگمی شد که این تصور را القا میکرد که این زبان بر اساس زبان برنامه نویسی جاوا است، و این انتخاب توسط بسیاری افراد بعنوان یک ترفند بازاریابی بوسیلهء Netscape برای استفاده از اعتبار آنچه که در آن زمان زبان جدید و پرحرارت برنامه نویسی وب بود (Java) شناخته شد. همچنین ادعا شده است که نام این زبان حاصل یک قرارداد بازاریابی مشترک بین Netscape و Sun است در ازای اینکه Netscape محیط اجرای جاوای Sun را در مرورگر خود که در آن زمان مرورگر غالب بود بگنجاند.

===================

منبع: JavaScript – Wikipedia, the free encyclopedia

———————————

خلاصه این بحث خیلی قدیمی ای هست و بنده از خیلی قدیم بارها در این مورد از منابع مختلف مطالبی خوندم که شباهت جاوااسکریپت و جاوا و ارتباطشون با هم بیشتر از نظر نامگذاری هست تا چیز دیگه مثل مسائل فنی.
اصلا نمیشه گفت که جاوااسکریپت یک نسخهء اصلاح شده یا محدود شدهء جاوا هست.
این دوتا زبان ارتباط مستقیمی با هم ندارن. مستقلا طراحی شدن. ساختار و استاندارد و مرجع اونا متفاوت هست. ولی طبیعتا هر زبان جدیدی که طراحی میشه طراحانش ایده های مختلفی رو از زبانهای مختلف ممکنه برداشت کنن. طراحان جاوااسکریپت هم تحت تاثیر زبانهای مختلفی بودن و چیزهای مختلفی رو از زبانهای مختلف ایده گرفتن؛ این با اینکه یک زبان واقعا نسخهء محدود شده و تحت محیط دیگر یک زبان خاص باشه خیلی فرق میکنه.
ضمنا شباهت جاوااسکریپت با جاوا همونطور که در این متن آمده بیشتر در زمینهء الگوهای نامگذاری هست و شباهت مهم و اساسی ای نیست، درحالیکه جاوااسکریپت از نظر فنی و ساختاری شباهت اساسی تری با زبانهای دیگری که ذکر کرده (Self و Scheme) داره.

در بخش Influenced by هم مشاهده میکنید که طراحی جاوااسکریپت تحت تاثیر این زبانها بوده:

C, Java, Perl, Python, Scheme, Self

بنابراین فکر نمیکنم جاوااسکریپت به هیچ وجه در ساختار و استانداردهای جاوا جا بگیره و اگر میخواست بر اساس جاوا باشه نمیتونست اینقدر زیاد و در موارد اساسی از زبانهای دیگر برداشت کنه و بیشتر به اونا شباهتهای اساسی داشته باشه تا جاوا. اصلا Sun که برای جاوای خودش استانداردهای گسترده و دقیق و کامل و سختگیرانه ای داره هم اجازه نمیده یک چنین زبانی که اینقدر اختلاف داره رسما بعنوان نوع خاص و محدود شده ای از جاوای خودش معرفی بشه.
همونطور که در متن آمده بنظر میرسه این نامگذاری و عدم شکایت Sun از بابت اون بیشتر یک توافق تجاری بر اساس منافع و بازاریابی دو طرفه بوده باشه.

—————————

نقل قولی از Robert Cailliau: «بهرصورت، من تنها یک زبان برنامه نویسی میشناسم که از C بدتر است و آن Javascript است. … من قانع شده بودم که ما به یک زبان برنامه نویسی درون ساخت نیاز داریم، اما توسعه دهندگان، اول از همه Tim، خیلی مخالف بودند. من مجبور بودم کاملا مثبت باقی بمانم. شاید، اما نتیجهء خالص، آن است که آن خلاء برنامه نویسی خودش را با وحشتناک ترین وصله و پینه در تاریخ رایانه پر کرد: Javascript.»

جاوااسکریپت در ابتدا در Netscape بوسیلهء Brendan Eich توسعه داده شد. در نبرد با مایکروسافت بر سر اینترنت، Netscape راهکار client-server خود را بعنوان یک سیستم عامل توزیع شده تلقی کرد که یک نسخهء portable از جاوای Sun Microsystem را اجرا میکند. چون جاوا یک رقیب سی++ بود و برنامه نویسان حرفه ای را هدف قرار داده بود، Netscape خواست همچنین یک زبان سبک وزن تفسیری داشته باشد که با خوشایند بودن برای برنامه نویسان غیرحرفه ای، مکمل جاوا باشد، همچون VB مایکروسافت.

یک تصور اشتباه متداول آن است که جاوااسکریپت مشابه یا از بستگان نزدیک جاوا است. آن درست است که هردو یک سینتاکس شبیه سی دارند؛ زبان سی نزدیکترین جد مشترک آنهاست. آنها هردو شیء گرا هستند، معمولا در sandbox اجرا میشوند (موقعی که در یک مرورگر استفاده میشوند)، و بصورت گسترده در اپلیکیشن های وب سمت کلاینت استفاده میشوند. بعلاوه، جاوااسکریپت با سینتاکس و کتابخانهء استاندارد جاوا در ذهن طراحی شد. بخصوص، تمام کلمات کلیدی جاوا در نسخهء اصلی جاوااسکریپت رزرو شده بودند، کتابخانهء استاندارد جاوااسکریپت از توافقات نامگذاری جاوا پیروی میکند، و اشیاء Math و Date بر کلاسهایی از Java 1.0 پایه گذاری شده اند.

اما، شباهتها در همانجا پایان می یابند. جاوا نوع دهی static دارد؛ نوع دهی جاوااسکریپت dynamic است (به معنای آنکه یک متغییر میتواند یک شیء از هر نوعی را نگهداری کند و نمیتواند محدود شود). جاوااسکریپت نوع ضعیف دارد (’0.0000′ == 0, 0 == “”, false == “” و غیره) درحالیکه جاوا بیشتر دارای نوع قوی است. جاوا از bytecode کامپایل شده بارگذاری میشود؛ جاوااسکریپت بصورت کدمنبع خوانا بارگذاری میشود. اشیاء جاوا class-based هستند؛ اشیاء جاوااسکریپت prototype-based هستند. جاوااسکریپت همچنین تعداد زیادی از ویژگیهای بر اساس زبان Scheme را دارد.

منبع: JavaScript – Wikipedia, the free encyclopedia

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>