PDA

View Full Version : ارتباط میان Javascript و Java



eshpilen
سه شنبه 16 خرداد 1391, 11:04 صبح
JavaScript uses syntax influenced by that of C. JavaScript copies many names and naming conventions from Java, but the two languages are otherwise unrelated and have very different semantics. The key design principles within JavaScript are taken from the Self and Scheme programming languages.



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


LiveScript was the official name for the language when it first shipped in beta releases of Netscape Navigator 2.0 in September 1995, but it was renamed JavaScript in a joint announcement with Sun Microsystems on December 4, 1995,[10] when it was deployed in the Netscape browser version 2.0B3.


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


The change of name from LiveScript to JavaScript roughly coincided with Netscape adding support for Java technology in its Netscape Navigator web browser. The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language, and the choice has been characterized by many as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new web programming language.[12][13] It has also been claimed that the language's name is the result of a co-marketing deal between Netscape and Sun, in exchange for Netscape bundling Sun's Java runtime with its then-dominant browser.


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

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

منبع: http://en.wikipedia.org/wiki/Javascript

---------------------------------

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

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

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

Beginner2013
سه شنبه 16 خرداد 1391, 12:03 عصر
در واقع همونطور که از اسم Java Script هم برمیاد،یه زبان اسکریپتیه و فقط از نظر سینتکس با Java شباهت هایی داره،
می تونم بگم جاوا بیش تر با Javascript.Net یا همون Jscript.Net قابل قیاس هست.

eshpilen
چهارشنبه 17 خرداد 1391, 08:45 صبح
Anyway, I know only one programming language worse than C and that is Javascript. [...] I was convinced that we needed to build-in a programming language, but the developers, Tim first, were very much opposed. It had to remain completely declarative. Maybe, but the net result is that the programming-vacuum filled itself with the most horrible kluge in the history of computing: Javascript.


Robert Cailliau

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


JavaScript was originally developed in Netscape, by Brendan Eich. Battling with Microsoft over the Internet, Netscape considered their client-server solution as a distributed OS, running a portable version of Sun Microsystem's Java. Because Java was a competitor of C++‎‎‎‎ and aimed at professional programmers, Netscape also wanted a lightweight interpreted language that would complement Java by appealing to nonprofessional programmers, like Microsoft's VB.


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


A common misconception is that JavaScript is similar or closely related to Java. It is true that both have a C-like syntax, the C language being their most immediate common ancestor language. They are both object-oriented, typically sandboxed (when used inside a browser), and are widely used in client-side Web applications. In addition, JavaScript was designed with Java's syntax and standard library in mind. In particular, all Java keywords were reserved in original JavaScript, JavaScript's standard library follows Java's naming conventions, and JavaScript's Math and Date objects are based on classes from Java 1.0.

However, the similarities end there. Java has static typing; JavaScript's typing is dynamic (meaning a variable can hold an object of any type and cannot be restricted). JavaScript is weakly typed ('0.0000' == 0, 0 == "", false == "", etc.) while Java is more strongly typed. Java is loaded from compiled bytecode; JavaScript is loaded as human-readable source code. Java's objects are class-based; JavaScript's are prototype-based. JavaScript also has many functional features based on the Scheme language.


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

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

منبع: http://en.wikipedia.org/wiki/Javascript