کتابخانه ی JavaPoly.js ، کد فعلی جاوا را وارد نموده و آن را به طور مستقیم از JavaScript فراخوانی مینماید.
JavaPoly.js با ادغام دنیای Java و JavaScript به گسترش پشتیبانی ماشینهای مجازی محلی Java بر روی مرورگرها از طریق Polyfill کردن برخی کتابخانه ها و کدها میپردازد.
JavaPoly.js این امکان را برای Developerها فراهم مینماید تا کد فعلی Java را وارد نموده و آن را از JavaScript فراخوانی نمایند. طبق مطالب عنوان شده در وبسایت Javapoly، در نهایت این امکان برای Java فراهم میگردد تا به جای محدود شدن به Applet Sandbox ،به اجرای مستقیم در تگهای اسکریپت مرورگر (و تعامل مستقیم با DOM) بپردازد. علاوه بر مورد فوق، دیگر ضرورتی برای نصب Java روی کامپیوتر کاربران وجود ندارد.
Jim Sporch به عنوان Developer این پروژه، اظهار داشت که به صورت تئوری، JavaPoly.js این امکان را فراهم مینماید که میزبانِ زبانهای JVM در مرورگرهایی مانند Groovy و Scala پشتیبانی گردد. به گفتهی وی، هر زبانی که در JVM اجرا شود، باید با استفاده از JavaPoly نیز قابل اجرا باشد. در واقع حتی قادر خواهید بود که Python را با استفاده از Jython اجرا نمایید. این احتمال وجود دارد که پروژه اخیر با هدف پشتیبانی از زبانهای دیگر به ایجاد چندین پروژه منتهی گردد. همچنین Sporch اذعان کرد که این پروژه عمدتا دربارهی توسعهی وب در Java میباشد.
Developerهای JavaPoly در حال حاضر مشغول ساخت Pluginهای JVM به صورت native برای Chrome و Firefox میباشند. Sporch عنوان کرد: هدف ما، استانداردسازی API در مجموعه استانداردهای رسمی میباشد که این مباحث هم اکنون در مراحل اولیه کار قرار دارند. واضح است که JavaPoly در همه مرورگرهای کنونی بدون پشتیبانی از سوی شرکتهای آنها قابل اجرا خواهد بود. بدیهی است مرورگرهایی با پشتیبانی محلی Java، نسبت به مرورگرهایی که به صورت محلی جاوا را پشتیبانی نمی کنند، به صورت تصاعدی سریعتر می باشند؛ بنابراین میتوان چنین نتیجهگیری کرد که سازنده مرورگرها تمایل زیادی به افزودن پشتیبانی محلی دارند.
وی در ادامه افزود: یکپارچهسازی بهتر با مرورگرها برای JavaPoly.js از اهمیت ویژهای برخوردار است؛ اجرای یک کد در JVM محلی به جای ماشین مجازی JavaScript میتواند امکان دستیابی به سطوحی از عملکرد را فراهم نماید که در JSVM مرورگر امکانپذیر نخواهد بود. وی ابراز امیدواری نمود که روزی مرورگرها بتوانند تمامی Opcodeهای JVM را در JSVM پشتیبانی نمایند.
با این وجود، طراحی Java عمدتا کلگرا و همراه با پشتیبانی محلی برای Threadها، Shared Memory، Locking Primitiveها، 64-Bit Integer و مواردی دیگر میباشد. همچنین از قابلیت Built-In Type-checking و زیرساخت توسعه نرمافزاری کاملتری برخوردار میباشد. این زبان با همکاری تیم مهندسی از طراحی بهتری برخوردار شده و بنابراین برای برنامههایی با مقیاس بزرگتر مناسب می باشد.
به گفته وی، Developerهای JavaPoly باید عملکرد کُند Runtime یا زمان اجرا و عدم تقارن مطلوب در هنگام Build out کتابخانه را مد نظر قرار دهند. هنگامی که JavaPoly بر روی سیستم Client در دسترس باشد، میتوانیم یک JVM محلی را فراخوانی نماییم تا با bypass کردن JavaScript بتوان امکان بهرهگیری کامل از سختافزار کامپیوتر را فراهم مینماید.
در حال حاضر نسخه ی بتای JavaPoly در مرحله توسعه میباشد و تا زمانی که Developerها از Stable بودن آن اطمینان حاصل نکرده باشند، نسخه نهایی آن در دسترس قرار نخواهد گرفت. در این زمینه، بازخورد کاربران نیز حائز اهمیت بوده و جمعآوری میگردد.