JavaScript dasturlash tili hisoblanib ketma-ket yettinchi yil u eng ko'p ishlatiladigan dasturlash tili bo'lib kelmoqda. 2019 yilda 68% dasturchilar Javascript o'rganish uchun oson va eng yaxshi dasturlash tili ekanligi haqida o'z fikrlarini bildirib o'tishgan.
Zarurat tufayli yaratilgan ushbu dasturlsh tili bugungi kunda 95,2% (1,52 mlrd) veb-saytlarni, shu jumladan Facebook,YouTube va Instagram kabi dunyodagi eng yirik web-saytlarni yaratish uchun ham ishlatilgan. Javascriptsiz bizda Google Maps va eBay kabi mashhur va foydali web-ilovalar bo'lmasligi haqida xabaringiz bormidi?
Shunday qilib, ko'p gaplashmasdan, keling, JavaScriptni nima ekanligini, qanday va nimalarga qodir ekanligi haqida gaplashsak.
Bularning barchasi 1995 yil may oyidan dekabr oyigacha bo'lgan olti oy ichida sodir bo'ladi. Netscape Communications Corporation yosh Internet tarmog'ida kuchli ishtirokchi etdi. Uning brauzeri Netscape Communicator birinchi mashhur web-brauzer bo'lgan NCSA Mosaic-ga raqobatdosh hisoblanar edi. Netscape 1990-yillarning boshlarida Mosaikaning rivojlanishida qatnashgan bir xil odamlar tomonidan tashkil etilgan va endi pul va mustaqillik bilan Internetni kengaytirish yo'llarini izlash uchun zarur erkinlikka ega edilar va aynan shu narsa JavaScriptni dunyoga kelishiga turtki beradi.
Netscape Communications kompaniyasining asoschisi va sobiq Mosaic jamoasining bir qismi bo'lgan Mark Andreessen web yanada dinamik bo'lish uchun yo'l kerak degan tasavvurga ega edi. Animatsiyalar, o'zaro ta'sirlashish va kichik avtomatlashtirishning boshqa shakllari kelajak tarmog'ining bir qismi bo'lishi kerak degan g'oyani ilgari suradi. Shunday qilib, web-saytga DOM bilan o'zaro ta'sirlasha oladigan kichik skript tili kerak edi. Ammo, bu o'sha paytda muhim strategik chaqiriq edi, chunki bu senariy tili katta hajmdagi dasturchilarga va dasturiy ta'minotning muhandislik sohasida tajribasi bo'lgan odamlarga yo'naltirilmasligi kerak edi. Java ham ko'paymoqda va Java dasturlari tez orada haqiqatga aylanishi kerak edi. Shunday qilib, web-sayt uchun skriptlarni yaratish tili boshqa auditoriya turiga murojaat qilishi kerak bo'lardi. Dizaynerlar: Darhaqiqat, web statik edi. HTML hali ham yosh va sodda edi. Shunday qilib, web-saytni yanada dinamik qilish uchun brauzerning bir qismi bo'lishi kerak bo'lgan har qanday narsa dasturchilar uchun ochiq bo'lishi kerak edi va shuning uchun Mocha g'oyasi paydo bo'ladi. Mocha web uchun skript tiliga aylanishi kerak edi. Oddiy, dinamik va ishlab chiquvchilar uchun qulay.
Brendan Eich (nickname Mocha)
Bu rasmga JavaScriptning otasi Brendan Eich tushgan. Eich bilan "Netscape Communications" tomonidan "Brauzer uchun sxema" ni ishlab chiqish bo'yicha shartnoma tuzilgan. Sxema tabiatan dinamik, kuchli va funktsional bo'lishi kerak edi. Internetga ham shunday narsa kerak ed. Sintaktik usulda tushunish oson, dinamik, tezkor va kuchli. Eich o'ziga yoqqan narsada ishlash imkoniyatini ko'radi va kuchlarni birlashtiradi.
Ayni paytda ishchi prototipni iloji boricha tezroq topish uchun juda ko'p bosimlar mavjud edi. O'sha paytdagi Oak ismli Java tili o'zlashtira boshlanadi.Sun Microsystems bunga katta turtki beradi va Netscape Communications Javani brauzerda taqdim etish uchun ular bilan bitimni yopmoqchi bo'ladi. Xo'sh, nima uchun Mocha (bu JavaScriptning dastlabki nomi edi). Muqobil variant mavjud bo'lganda nima uchun butunlay yangi til yaratish kerak? O'sha paytdagi g'oya shundan iborat ediki, Java Mochani iste'mol qiladigan auditoriya turiga mos kelmadi: skriptchilar, havaskorlar, dizaynerlar. Java roli uchun juda katta, juda tashabbuskor edi. Shunday qilib, Java-ni katta, professional, tarkibiy qism mualliflari uchun taqdim etishdan iborat edi. Mocha esa kichik skript vazifalari uchun ishlatilishi mumkin edi. Boshqacha qilib aytganda, Mocha Windows platformasidagi C, C ++ va Visual Basic o'rtasidagi munosabatlarga o'xshash tarzda Javaning skript yozuvchisi bo'lishi kerak edi.
Ayni paytda bularning barchasi davom etmoqda, Netscape muhandislari Javani batafsil o'rganishni boshlaydilar. Ular o'zlarining Java Virtual Mashinalarini ishlab chiqishni boshlashadi. Biroq, ushbu VM tezda hech qachon xatolarga yo'l qo'ymaslik uchun mukammal xatolarga yo'l qo'ymaslik uchun tezda urib tushirildi.
Bir tilni iloji boricha tezroq tanlab olish uchun ichki bosim juda ko'p edi. Python, Tcl, Schemening barchasi mumkin bo'lgan nomzodlar edi. Shunday qilib, Eich tez ishlashi kerak edi. Uning alternativalarga nisbatan ikkita afzalligi bor edi: kerakli funktsiyalar to'plamini tanlash erkinligi va qo'ng'iroqlarni amalga oshirganlarga to'g'ridan-to'g'ri yo'nalish. Afsuski, uning ham katta kamchiliklari bor edi: vaqt yo'q. Ko'plab muhim qarorlarni qabul qilish kerak edi va ularni qabul qilish uchun juda oz vaqt bor edi. Ushbu kontekstda JavaScript, ya'ni Mocha tug'iladi. Bir necha hafta ichida ishlaydigan prototip ishlab turdi va shu sababli u Netscape Communicatorga qo'shiladi.
Brauzer uchun Sxema bo'lishi kerak bo'lgan narsa boshqacha narsaga aylanib boradi. Sun bilan kelishuvni yopish va Mochani Javaga senariy sherigiga aylantirish uchun bosim Eichning qo'lini majbur qiladi. Javaga o'xshash sintaksis talab qilinadi va ko'plab odatiy iboralar uchun tanish semantikalar ham qabul qilinadi. Shunday qilib, Mocha umuman sxemaga o'xshamaydi. Bu dinamik Javaga o'xshar edi, lekin uning ostida juda boshqacha hayvon bor edi: Java ko'rinishidagi Sxema va o'zining ertangi sevgilisi.
Mocha prototipi 1995 yil may oyida Netscape Communicatorga qo'shiladi. Qisqa vaqt ichida u LiveScriptga o'zgartirildi. Ayni paytda "jonli" so'zi marketing nuqtai nazaridan qulay bo'lgan. 1995 yil dekabrda Netscape Communications va Sun bitimni yopiladi. Mocha LiveScriptning nomini JavaScriptga o'zgartiradi va u brauzerda kichik mijozlar vazifalari uchun skript yozish tili sifatida taqdim etiladi. Java esa kattaroq va professional vosita sifatida targ'ib qilinadi. boy web-komponentlarni ishlab chiqishga.
JavaScriptning ushbu birinchi versiyasi bugungi kunda til uchun ma'lum bo'lgan ko'plab xususiyatlarga ega. Xususan, uning ob'ektiv modeli va funktsional xususiyatlari ushbu birinchi versiyada allaqachon mavjud edi.
Agar Eich o'z vaqtida ishlaydigan prototipni ishlab chiqara olmaganida nima bo'lishini aytish qiyin. Ishlaydigan alternativalar umuman Javaga o'xshamadi. Python, Tcl, Scheme ulardan juda boshqacha edi.Boshqa tomondan, Java uzoq vaqt davomida webning muhim qismi bo'lgan.
Mocha LiveScript nomini JavaScriptga o'zgartirish bo'yicha Sun va Netscape bitimni yopganda, katta savol tug'iladi: muqobil dasturlarga nima bo'ladi? Darhaqiqat, o'sha paytda Netscape tezda tanlangan brauzerga aylangan bo'lsada, unga raqobatdosh Micorosof tomonidan ishlab chiqarilgan Internet Explorer ham bor edi.Dastlabki kunlardanoq JavaScriptni foydalanuvchi tajribasida shu qadar katta farq qildiki, raqobatdosh brauzerlarda JavaScriptni ishlaydigan yechimini ishlab chiqishdan boshqa iloj qolmadi. Ayni o'sha paytda va juda uzoq vaqt davomida web-standartlar kuchli emas edi. Shunday qilib, Microsoft o'zlarining JavaScriptni JScript deb nomlangan versiyasini amalga oshirishadi. "Java" ni nomidan tashqarida saqlash savdo belgilariga olib kelishi mumkin bo'lgan muammolarga yo'l qo'ymasdi. Biroq, JScript shunchaki nomidan farq qiladi. Amalga oshirishda kichik farqlar, xususan, ba'zi DOM funktsiyalariga nisbatan, kelajakda ko'p yillar davomida sezilib turadigan to'lqinlarni keltirib chiqarardi. JavaScript urushlari shunchaki nomlar va vaqt jadvallaridan ko'ra ko'proq jabhalarda olib borilgan va uning ko'plab g'alati voqealari bu urushlarning yaralari. JScript-ning birinchi versiyasi 1996 yil avgustda chiqarilgan Internet Explorer 3.0 ga kiritilgandi.
Netscapening JavaScriptni tatbiq etishi ichki nomiga ega bo'ladi. Netscape Navigator 2.0 bilan chiqarilgan versiya Mocha nomi bilan tanilgan. 1996 yilning kuzida Eich Mochaning dasturni qaytadan yozadi. Netscapening JavaScript dvigatelining ushbu yangi versiyasi SpiderMonkey deb nomlaydi. SpiderMonkey hali ham Netscape Navigator nabirasi Firefoxda dvigateli hisoblandi.
JavaScript ning tarixi uzoq va notekislikka to'la edi. U "Internet uchun sxema" sifatida taklif qilingan. Dastlab Javaga o'xshash sintaksisga bog'langan. Uning birinchi prototipi bir necha hafta ichida ishlab chiqilgan. va ikki yildan kamroq vaqt ichida uchta nom olgan. 4-versiya bekor qilinadi va hamma tomonidan 3.1-versiya sifatida tanilgan kichik tahrir 5-versiyaga o'zgartirildi. 6-versiya ko'p yillar davomida ishlab chiqishga sarflanadi, ammo bu safar muvaffaqiyat qozoniladi, shunga qaramay, bu safar nomni yana o'zgartirishga qaror qilinadi 2015 yilgacha. Ushbu tahrir katta edi va amalga oshirish uchun ko'p vaqt talab qilinadi va nihoyat, JavaScriptga yangi havo kirib keladi. Jamiyat har doimgidek faol. Node.js, V8 va boshqa loyihalar JavaScript-ni hech qachon o'ylamagan joylarga olib keladi. Asm.js, WebAssembly yordamida til yanada kuchaytiriladi va turli bosqichlardagi faol takliflar barchasi JavaScriptning kelajagini har doimgidek porloq qiladi. Bu uzoq yo'l, to'siqlar bilan to'la edi. Shunga qaramasdan Javascript barcha to'siqlarni yengib o'tadi va bugungi kunga kelib