Write once, run anywhere
WORA(Write once, run anywhere) bu atama ma'lum bir dasturning faqat bir marta yozib, har qanday operatsion sistemada kodga hech qanday o'zgarishlar kiritishlarsiz foydalanishga aytiladi. |
Bir marta yozing, istalgan joyda ishga tushiring (WORA) yoki baʼzan bir marta yozing, hamma joyda ishga tushiring (WORE) Java tilining platformalararo afzalliklarini koʻrsatish uchun Sun Microsystems tomonidan 1995-yilda yaratilgan[1] shiori edi.[2] Ideal holda, bu Java dasturi har qanday qurilmada ishlab chiqilishi, standart bayt kodiga kompilyatsiya qilinishi va Java virtual mashinasi (JVM) bilan jihozlangan har qanday qurilmada ishlashi kutilishi mumkinligini anglatadi. JVM yoki Java interpreyeterini chiplar, qurilmalar yoki dasturiy taʼminot paketlariga oʻrnatish sanoat standartiga aylandi.
Dasturchi kompyuterda kod yozadi va uni Javani qoʻllab-quvvatlaydigan mobil telefonlarda, shuningdek, Java oʻrnatilgan boshqa qurilmalarda hech qanday tuzatishlarsiz ishlatishi mumkin. Bu dasturiy taʼminotni ishlab chiquvchilarni oʻzlari joylashtirmoqchi boʻlgan har bir platforma yoki operatsion tizim uchun ishlab chiqayotgan dasturlarining boshqa shu platformaga mos versiyasini yozish uchun ketadigan vaqtni tejash uchun chiqarilgan.
Ushbu gʻoya 1960-yillarda IBM M44/44X bilan paydo boʻlgan va 1970-yillarning oxirida p-kodni ishlab chiqarish va kompilyatsiya qilish uchun UCSD Paskal tizimi ishlab chiqilgan. UCSD Paskal (Smalltalk virtual mashinasi bilan birga) Jeyms Gosling tomonidan taʼkidlanganidek, JVM dizayniga asosiy taʼsir koʻrsatdi.
Shunisi eʼtiborga loyiqki, turli xil operatsion tizimlar bilan bir qatorda bir nechta JVM ilovalari mavjud boʻlgani sababli, dasturning har bir JVM/OS kombinatsiyasida qanday bajarilishida nozik farqlar boʻlishi mumkin, bu esa har bir platformada dasturni avval sinab koʻrishni talab qiladi. Va bu holat Java dasturchilari orasida „bir marta yozing, hamma joyda tekshirib koʻring(Write Once, Debug Everywhere)“ degan hazil tarqalishiga sabab boʻladi.[3]
Taqqoslash uchun, Squeak Smalltalk dasturlash tili va muhiti haqiqiy har qanday joyda bir marta ishga tushirish qobiliyatiga egaligi bilan maqtanadi,[4] chunki u barcha bazasida bir xil kodlarni ishga tushiradi.[5]
Anʼanaviy dasturlash tili boʻlgan C yoki C++ dasturni kompilyatsiya qilinganda maʼlum bir operatsion sistema tushunadigan kodga aylantiradi. Agar biz bir xil kodni operatsion sistemaga ega boʻlgan boshqa kompyuterda ishga tushirishimiz kerak boʻlsa, yangi operatsion sistema tushunishi uchun kodni qayta kompilyatsiya qilish kerak. Aks holda, bu xatolikka olib keladi.