دانستنی‌ها

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

یکی از قابلیت‌های جذابی که در اوایل معرفی جاوا، تحت عنوان Java Applets ، به توسعه دهندگان ارائه شد، قابلیت اجرای کد های جاوا بر روی بستر وب و توسط مرورگر های وب بود. درواقع ایده مهندسین شرکت سان (sun microsystems) این بود که توسعه دهندگان بتوانند برنامه های خود را در سطح وب و در یک بستر امن پیاده سازی واجرا کنند. ولی بعد از مدتی برنامه نویسان و کاربران به این نتیجه رسیدند که اپلت ها امن نیستند و میتوانند به ماشین کاربران دسترسی غیرمجاز داشته باشند بنابراین محبوبیت jvm که روی مرورگر نصب می‌شد، کم رنگ شد.
اما اخیرا محققان دانشگاه ماساچوست آمریکا پروژه ای را تحت نام javapoly راه‌اندازی کرده اند که میتواند کدهای جاوا را توسط جاوا اسکریپت در مرورگر های وب اجرا کند. Javapoly.js یک کتابخانه جاوااسکریپت است که توسعه دهنده را قادر میسازد بعد از اینکه جاواکد های خود را اضافه کرد، آنها را مستقیما از جاوااسکریپت در مرورگر وب فراخوانی کند. در واقع بدون درگیر شدن با محدودیت های sandbox اپلت ها ، کد های جاوا بطور مستقیم در تگ اسکریپت‌های مرورگر اجرا شده و می‌توانند با DOM تعامل داشته باشند. برای استفاده از این فناوری، حتی کاربران لازم نیست روی ماشین خود از قبل جاوا را نصب کرده باشند.

javapoly
ماشین مجازی (jvm) که قرار است این کد ها را اجرا کند دوپیو (Doppio) نام دارد. Doppio یک jvm است که بطور کامل با جاوااسکریپت نوشته شده است و ماشین مجازی پیش‌فرض javapoly خواهد بود. ناگفته نماند که این کتابخانه میتواند با jvm های دیگر هم ارتباط برقرار کند، ولی اگر نتوانست هیچ ماشین مجازی پیدا کند از دوپیو استفاده خواهد کرد.
به گفته مدیر پروژه دوپیو این jvm میخواهد تمام زبان هایی که بر اساس جاوا طراحی شده اند (از جمله Groovy و Scala) را پشتیبانی کند و هر زبانی که در java virtual machine اجرا می‌شود، با javapoly هم اجرا خواهد شد. حتی میتوانید پایتون را تحت قالب جاوا (یعنی جایتون) در این کتابخانه اجرا کنید!
هم اکنون توسعه دهندگان پروژهjavapoly در حال ساخت پلاگین‌هایjvm محلی برای مرورگر های گوگل کروم و فایرفاکس هستند که قطعا در بهبود زمان تولید کدها نقش بسزایی را ایفا خواهد کرد. به زبان دیگر، بازده یک مرورگر که دارایjvm محلی است از مرورگری که دارایJSvm (ماشین مجازی جاواسکریپت) باشد بسیار بیشتر است. هدف سازندگان این فناوری، ایجاد یکAPI استاندارد در یک ساختار استاندارد رسمی است.
درحال حاضر نسخه عمومی بتا این پروژه در وبسایت رسمی موجود است تا زمانی که توسعه دهندگان به این نتیحه برسند که API پایدار حاصل شده و آماده انتشار است. مراجع مرتبط با این فناوری، از جمله وبسایت این پروژه و jvm آن، در ادامه آمده است:
https://www.javapoly.com/
http://doppiojvm.org/

نوشته های مشابه

‫7 دیدگاه ها

  1. سلام مهندس خسته نباشید بنده یک سوال دارم

    سوال من اینه من میخام یک سایت دو صفحه ای درست کنم که بر روی صفحه index یک کادر متن و یک دکمه قرار بدم و بر روی صفحه دوم یک label حالا میخام یک فایل جاوا اسکریپت خارجی بسازم و توی اون یک متغیر تعریف کنم که مقدارش رو از کادر متن دریافت کنه یعنی اینکه مقدار درون کادر متن رو داخل متغیر فایل خارجی جاوا اسکریپت ذخیره کنه و بعد در صفحه دوم بتونم مقدار درون متغیر رو در کنترل label نمایش بدم
    ممنون میشم اگه راهنمایی بفرمایید

  2. شک درش نیست ک تاخیر زیاد داره توی روند اجرا شدن کد ها مرورگر خودش خیلی سنگین هست اون وقت یه ماشین مجازی هم گذاشتن ک کد رو اجرا کنه. دیگه هیچ.

  3. ایده خوبیه ولی یه سری مشکلات داره اونم اینه که حتما باید کاربر یک افزونه که مروبط هست رو نصب کنه و در غیر این صورت کدهای جاوا اجرا نمیشه.

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

      1. سوال…
        Jvm نوشته شده با جاوا اسکریپت باید موقع باز کردن صفحه ی وب ای که کد جاوا توشه، باید دانلود بشه؟ یا مثلا قراره همه ی مرورگر ها پیش فرض این کتابخونه رو داشته باشند؟
        اگه باید لود بشه، مثلا چقدر حجم داره؟ میصرفه؟

        1. سلام
          بله فعلا سرعت اجرا شدنش اصلا خوب نیست ولی توسعه دهندگانش درحال نوشتن یک پلاگین استاندارد برای مرورگر های مختلف هستند که هر دفعه نیاز نباشه مرورگر کد های جاوا را بفرسته کامپایل بشند و برگردند
          میتونید اطلاعات بیشتر را در وبسایت پروژه بخوانید
          https://www.javapoly.com

          ضمنا اگر به این مبحث علاقه مند شدید میتونید به پروژه GWT گوگل هم یک سری بزنید مطمئنم که خوشتان خواهد آمد(تکنولوژی تقریییبا مشابه است ولی تفاوت هایی وجود دارد که GWT را متمایز میکند)

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

          https://www.tutorialspoint.com/gwt/index.htm

          موفق و پیروز باشید

دیدگاهتان را بنویسید

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

دکمه بازگشت به بالا