Bu nima?
Dasturlash tillari nima va ularning turlari
Maqolada dasturlash tillari nima uchun kerakligi, qanday ommabop tillar borligi, ularni o‘rganishni nimadan boshlash haqida so‘z yuritamiz.
Dasturlash tillari nima?
Tasavvur qiling, uyingizni ta’mirlayapsiz: javonlarni oʻrnatyapsiz, mebellarni yig‘yapsiz. Bu ishni asboblarsiz uddalay olmaysiz: ko‘p funksiyali shurupovyort shkafni tezda yig‘ish, devorda teshik ochish, mahkamlash elementlarini oʻrnatishga yordam beradi. Otvyortka esa shuruplarni burash yoki mebelni ta’mirlash uchun yaraydi.
Dasturlarni yozishda dasturchilar ham vositalar — tillardan foydalanadi. Ular yordamida kompyuter bilan “suhbatlashish”: unga buyruqlar berish, boshqarish, ma’lumotlarni o‘zgartirish, hisob-kitoblarni amalga oshirish va boshqa ko‘p amallarni bajarish mumkin.
Dasturlash tillari kompyuter dasturlarini yaratishda ishlatiladigan tillardir.
Turli manbalarning ma’lumotlariga ko‘ra, jami 250 tadan 9000 tagacha dasturlash tillari mavjud. Ularning soni yil sayin ko‘payib bormoqda. Har biri turli maqsadlarda ishlatilgani uchun ular shunchalik ko‘p. Bu xuddi mebel to‘plamini yig‘ish uchun ishlatiladigan og‘ir shurupovyort yoki bir juft shurupni ehtiyotkorlik bilan oʻrnatish uchun kerak boʻladigan oddiy otvyortkadan foydalanishga o‘xshaydi.
Dastlab dasturlash tillarining turlari, dasturchining vositalari, keyin esa ularning qanday vazifalar uchun mos kelishini ko‘rib chiqaylik.
Dasturlash tillarining turlari
Kompilyatsiya va interpretatsiya qilinadigan tillar
Oʻzi chet tilini bilmagani uchun delegatlar xalqaro ishbilarmonlik uchrashuvlariga tarjimonlar bilan birga boradi.
Kompyuterning “miyasi” hisoblangan protsessor ham dasturchi dasturlash tilida yozgan kodni tushunmaydi. Protsessor faqatgina nol va birlardan iborat ketma-ketlikni qabul qiladi. Dasturchi va kompyuter bir-birini tushunishiga ham maxsus tarjimonlar: kompilyator va interpretatorlar yordam beradi.
Dastur ishga tushirilishi bilan kompilyator butun kodni darhol (nol va birlardan iborat) mashina kodiga o‘giradi. Kompilyatorning ishlash jarayonini quyidagicha tasvirlash mumkin:
Dasturchi dasturni dasturlash tilida yozadi → Kompilyatorni ishga tushiradi → Kompilyator butun dasturni mashina kodiga o‘giradi va uni bajariluvchi faylga (Windowsʼdagi .exe) joylashtiradi.
C, C++, Java, Swift, Go kompilyatsiya qilinadigan dasturlash tillariga kiradi.
Har safar dastur ishga tushganda interpretator kodni satrma-satr mashinaga tushunarli tilga o‘giradi.
Interpretatsiya qilinadigan tillarda yozilgan dasturlar ko‘pincha kompilyatsiya qilinadigan dasturlarga qaraganda sekinroq ishlaydi. Bu kodning satrma-satr tarjima qilinishi bilan bog‘liq. Biroq interpretatsiya qilinadigan tilda dastur ishlab chiqish jarayoni kompilyatsiya qilinadigan tildagiga qaraganda tezroq. Chunki dasturchiga dasturiy kodni qayta-qayta mashina tiliga kompilyatsiya qilish shart emas.
Python, PHP, JavaScript interpretatsiya qilinadigan dasturlash tillari qatoriga kiradi.
Yuqori va quyi darajali dasturlash tillari
Kompilyator va interpretator ixtiro qilingunga qadar dasturchilar kodni mashina tilida qo‘lda yozgan. Bunday tilda yozilgan kod har bir kompyuter uchun turlicha edi. Chunki har bir protsessor ishlab chiqaruvchisi oʻzining maxsus buyruqlar toʻplamiga ega boʻlgan. Kodni yozishda ana shu buyruqlardan foydalangan.
Dasturchilar mashina tilida kod yozish uchun ko‘p vaqt va kuch sarflagan. Vaqt o‘tishi bilan ular kompyuterni yozilishi jihatidan bizning tabiiy tillarimizga yaqin bo‘lgan dasturlash tillarini tushunishga o‘rgatdi. Shu tarzda dasturlash tillarini shartli ravishda yuqori va quyi (mashina tili ham quyi darajaga kiritildi) darajalarga ajratish paydo bo‘ldi.
Quyi darajali tillarga assembler tili ham kiritildi. Dasturchilar uchun unda kod yozish mashina kodini yozishga qaraganda biroz osonroq. Lekin baribir unchalik qulay emas. Assembler tilida ham xuddi mashina tilida boʻlgani kabi funksiya, ma’lumotlar strukturasi, ro‘yxat va obyektlar mavjud emas.
Dasturchiga yuqori darajali tillardagi kodni o‘qish oson va tushunarli. Bunday tillar dasturlarni turli xil protsessorlarga mos kelishi haqida o‘ylamasdan yaratish imkonini beradi. Yuqori darajali tillar kompilyatsiya yoki interpretatsiyani talab qiladi. Java, JavaScript, Python, Ruby, PHP va boshqalar shunday tillar sirasiga kiradi.
Statik va dinamik tipizatsiyaga ega tillar
Tasavvur qiling, ko‘chib o‘tyapsiz va buyumlaringizni qutilarga solyapsiz. Oshxona, mehmonxona va yotoqxona buyumlari qaysi qutiga solinganini bilish uchun ularni belgilaysiz. Mana shu — tipizatsiya.
Tipizatsiya — dasturlash tili axborotni tasniflaydigan qoidalar to‘plami. Tipizatsiya tufayli kompyuter qanday ma’lumotlarni qayta ishlashi, ular bilan qanday amallar bajarishi va bo‘lajak operatsiya uchun qancha xotira hajmi kerakligini tushunadi.
Agar tilda tipizatsiya bo‘lmasa, dasturchi o‘zgaruvchiga istalgan turdagi ma’lumotni (satr, son) tayinlashi, keyin esa shu o‘zgaruvchiga boshqa turdagi ma’lumotni kiritishi mumkin. Bu kodni tezroq yozish imkonini beradi. Ammo belgilanmagan qutilarni adashtirib yuborish mumkin bo‘lgani kabi bunday kodda ham chalkashib ketish ehtimoli bor.
Qutilarni turlicha belgilash mumkin boʻlgani kabi dasturlash tillarida ham tipizatsiya turlicha bo‘ladi. Statik tipizatsiya dasturdagi ma’lumotlar turini u ishga tushishidan oldin (kompilyatsiya vaqtida) aniqlaydi.
Statik tipizatsiyaga ega tillar — Java, C++, Swift.
Dinamik tipizatsiyali tillarda o‘zgaruvchining turi dastur ishga tushirilgan paytda aniqlanadi. O‘zgaruvchi turini ochiq shaklda koʻrsatishning hojati yo‘q: interpretator uni dasturning ishlash jarayonida aniqlab oladi. Dinamik tipizatsiyali tilda yaratilgan dasturga tuzatish kiritish va uning funksionaliligini kengaytirish qiyinroq boʻladi.
Dinamik tipizatsiyali tillar — Python, JavaScript, Ruby.
Universal va maxsus tillar
Turli maqsad va sohalarda qo‘llanishi mumkin bo‘lgan tillar mavjud. Ular universal tillar deb ataladi. Masalan, C++ murakkab bo‘lmagan hisoblash dasturlarini ishlab chiqishda ham, yuqori yuklamali ilova, o‘yinlar yaratish uchun ham mos keladi.
Maxsus dasturlash tillari (yoki domen-ixtisoslashgan tillar)dan muayyan turdagi vazifalar uchun foydalangan yaxshi. Masalan, ma’lumotlar bazalariga so‘rovlar yuborishda ishlatiladigan SQL, veb sahifalarni loyihalash va joylashtirishda qo‘llanadigan HTML yoki CSS.
Ezoterik tillar
Amaliy vazifalar uchun mos kelmaydigan va faqat tajriba o‘tkazish yoki ko‘ngilochar loyihalarda ishlatiladigan tillar guruhi mavjud. Ezoterik tillar dasturchilarga g‘ayrioddiy g‘oyalarni ro‘yobga chiqarish, tillarning imkoniyatlarini o‘rganish imkonini beradi. Shuningdek, aql va tasavvurning qayishqoqligini rivojlantirishga yordamlashadi.
Masalan, Piet dasturlash tilidagi dastur mavhum manzara ko‘rinishida boʻladi. Chef dasturlarni pazandachilik retsepti sifatida yozadi. ArnoldCʼning buyruqlari esa Arnold Shvarsenegger ishtirokidagi filmlardan iqtiboslardir.
Vizual tillar
Ba’zan katta hajmdagi ma’lumotlarni matnli kod bilan ifodalash murakkab bo‘ladi. Biroq ularni bloklarga ajratib, sxema ko‘rinishida tasvirlash qulay. Bunday holatlarda vizual dasturlash tillaridan foydalanish maqsadga muvofiq boʻladi. Shunda kod grafik elementlar (blok va tasvirlar) yordamida yoziladi.
Vizual tillarda kod yozish ancha oson va tushunarli tarzda amalga oshiriladi. Shu sabab yangi boshlayotgan mutaxassislar uchun u bilan ishlash qulay. Scratch, Blockly, Substance Designer vizual tillarga kiradi.
Qanday dasturlash tillari bor va ular qayerda qo‘llanadi?
Yuqorida aytib o‘tganimizdek, har bir dasturlash tili ma’lum bir vazifalar uchun mo‘ljallangan. Keling, eng ommabop tillar, ularning qayerda qo‘llanishi va ahamiyatli xususiyatlarini koʻrib chiqamiz.
Python
Qoʻllanish sohalari. Python mashinani o‘qitish va sun’iy intellekt sohalari, veb ilovalarni ishlab chiqish, ma’lumotlar tahlili, o‘yinlarni dasturlashda ishlatiladi. Pythonʼdan Dropbox, Spotify, Netflix, Uber kabi mashhur ilovalar foydalanadi.
Tilning ommabopligi. Python eng oddiy va qulay dasturlash tillaridan biridir. U 2023-yil sentyabr oyidagi TIOBE indeksiga koʻra eng ommabop tillar reytingida birinchi o‘rinni egalladi.
Tilning o‘ziga xos xususiyatlari. Python tushunarli sintaksis, ko‘plab kutubxona va freymvorklarga (dasturlash jarayonini soddalashtiruvchi va tezlashtiruvchi vosita hamda qoidalarga) ega. Biroq Pythonʼda yozilgan dasturlarning ishlash tezligi pastroq bo‘ladi.
JavaScript
Qoʻllanish sohasi. JavaScript veb-sayt interfeysi, veb ilova, brauzer kengaytmalari, mobil ilova, ilovalarning server qismi (bekend) ishlab chiqish uchun juda mos. JSʼdan frontend va bekendlarini ishlab chiqishda Slack, Discord, Microsoft Teams, Uber, Amazon, Apple foydalanadi.
Tilning ommabopligi. 2023-yil sentyabr oyidagi TIOBE indeksida JavaScript oltinchi o‘rinni egalladi. GitHub Octoverseʼning 2022-yildagi reytingida esa JavaScript eng ommabop til bo‘lib, birinchi o‘rinni egalladi.
Tilning o‘ziga xos xususiyatlari. JS yuqori tezlik va ish unumdorligiga ega. Unda ko‘plab kutubxona, ma’lumotlar bazalari, test va monitoringni avtomatlashtirish vositalari mavjud.
Java
Qo‘llanish sohasi. Ilovalar va krossplatformali veb-saytlarning bekendini ishlab chiqish uchun mos dasturlash tili. Java Amazon, Netflix va Spotify kabi xizmatlarning server qismini yaratishda qo‘llanadi.
Tilning ommabopligi. IEEE Spectrum (Elektrotexnika va elektronika muhandislari instituti) jurnali ma’lumotlariga ko‘ra, 2023-yilda Java eng ommabop dasturlash tillari reytingida ikkinchi o‘rinni egallagan. TIOBE indeksiga koʻra esa to‘rtinchi o‘rinda turadi.
Tilning o‘ziga xos xususiyatlari. Java sodda sintaksis, o‘qish oson boʻlgan ixcham kod, o‘rnatilgan kutubxona va freymvorklarga ega.
PHP
Qoʻllanish sohasi. PHP dastlab shaxsiy veb sahifalarni yaratishda ishlatilgan. Bugungi kunda u bekendda qo‘llanadi. Ko‘pincha HTML va JavaScript bilan birgalikda ishlatiladi. Ted.com loyihasi, Dailymotion video hostingi, BlaBlaCar platformasini ishlab chiqishda PHPʼdan foydalanilgan.
Tilning ommabopligi. PHPʼning ommabopligi asta-sekin oshib bormoqda. TIOBE indeksi ma’lumotlariga ko‘ra, 2023-yil sentyabr oyida u Go, Swift, Ruby va boshqa dasturlash tillarini ortda qoldirib, sakkizinchi o‘rinni egallagan. GitHub Octoverseʼning 2022-yildagi reytingiga koʻra PHP yettinchi o‘rinda boʻlgan.
Tilning o‘ziga xos xususiyatlari. PHP’ning manba kodini o‘qish juda oson, til bilan ishlaydigan dasturchilarning katta hamjamiyati mavjud. Ammo bu tildagi kodning xavfsizlik darajasi va ish unumdorligi past.
C/C++
Qoʻllanish sohalari. C va C++ yuqori yuklamali dasturiy ta’minot, o‘yinlar, robotlar uchun dastur ishlab chiqishga mos keladi. Bu dasturlash tillaridan Microsoft Office, Adobe Illustrator hamda World of Warcraft kabi o‘yinlarni yaratishda foydalaniladi.
Tillarning ommabopligi. TIOBE indeksiga ko‘ra, 2023-yil sentyabr oyida C va C++ eng ommabop dasturlash tillari ro‘yxatida ikkinchi va uchinchi o‘rinlarni egallagan. 2023-yilgi IEEE reytingida esa C va C++ Python va Java’dan keyin uchinchi hamda to‘rtinchi o‘rinlarda boʻlgan.
Tillarning o‘ziga xos xususiyatlari. C va C++ tillaridan xotirani aniq boshqarish va joy tejash zarur bo‘lganda foydalaniladi. C va C++ yuqori ish unumdorligi va katta hamjamiyati bilan AyTi mutaxassislarni oʻziga jalb qiladi. Biroq bu tillarda sifatli kod yozish uchun kompyuterning tarkibiy qismlari qanday ishlashini yaxshi tushunish kerak. Bundan tashqari, C va C++ da veb ishlanmalar uchun kutubxonalar JavaScript yoki Pythonʼdagi kabi unchalik ko‘p emas.
Go
Qoʻllanish sohalari. Yuqori yuklamali bekend yaratishda ishlatiladi. Goʼdan Uber, Netflix, Facebook kabi platformalarni ishlab chiqishda foydalanilgan.
Tilning ommabopligi. IEEEtalqiniga ko‘ra, 2023-yilda Go ommabopligi bo‘yicha Swift, Ruby, Kotlin va boshqa tillarni ortda qoldirib sakkizinchi o‘rinni egallagan.
Tilning oʻziga xos xususiyatlari. Go sintaksisi sodda va tushunarli boʻlib, keng ko‘lamdagi vosita hamda kutubxonalarga ega. Go yuqori yuklamali veb ilovalar uchun juda mos keladi.
C# (sharp)
Qoʻllanish sohasi. C# tili Microsoft kompaniyasi tomonidan .NET platformasida ilovalar ishlab chiqish maqsadida yaratilgan. U Teslaʼning korporativ veb-xizmat va dasturlari, Ozonʼning ombor, logistika tizimlari, Sberbankʼning 3D grafikalarini ishlab chiqishda qo‘llanadi.
Tilning ommabopligi. 2023-yil sentyabr oyidagi TIOBE indeksiga ko‘ra, C# beshinchi o‘rinni egallagan. GitHub Octoverse reytingiga ko‘ra ham C# beshinchi o‘rinni saqlab qolgan.
Tilning o‘ziga xos xususiyatlari. C# katta dasturchilar hamjamiyatiga ega, ixcham va oson o‘qiladigan kod ishlab chiqishni ta’minlaydi.
Swift
Qo‘llanish sohasi. iOS va macOS ilovalarini ishlab chiqish uchun mo‘ljallangan dasturlash tili. Jumladan, iOS FireFox va WordPress uchun mobil ilovalar Swift dasturlash tili yordamida ishlab chiqilgan.
Tilning ommabopligi. 2023-yilda Swift bir vaqtning o‘zida ikkita nufuzli reyting — TIOBE va IEEE ro‘yxatlarida o‘n oltinchi o‘rinni egallagan.
Tilning oʻziga xos xususiyatlari. Swift oddiy sintaksis, dasturlarning yuqori ishlash tezligi va xotirani boshqarishni qo‘llab-quvvatlashga ega. Biroq kam sonli o‘rnatilgan vosita va kutubxonalar bu tilda ishlashni murakkablashtirishi mumkin.
Kotlin
Qo‘llanish sohalari. Kotlin — ixcham kod hajmiga ega dasturlash tili. Asosan Android uchun server ishlanmalar va mobil ilovalar ishlab chiqishda qo‘llanadi. Kotlin yordamida Pinterest, Coursera, Evernote yaratilgan.
Tilning ommabopligi. TIOBE reytingi ma’lumotlariga ko‘ra eng ommabop 20 ta dasturlash tili sirasiga kiradi.
Tilning afzallik va kamchiliklari. Kotlinning ustun tomonlari haqida gapiradigan bo‘lsak, u Java bilan to‘liq moslashadi. Uning manba kodi soddaligi va o‘qish qulayligi bilan ajralib turadi. Kamchiliklari esa kompilyatsiya tezligining pastligi va o‘rnatilgan kutubxonalarning kamligidir.
Dasturlash tillarini bilmasdan turib dasturchi bo‘lish mumkinmi?
Yo‘q. Agar siz birorta ham dasturlash tilini bilmasangiz, o‘z g‘oya va ko‘rsatmalaringizni kompyuterga yetkazib bera olmaysiz. Ta’mirlash bilan bog‘liq o‘xshashlikni esga olaylik: asboblarsiz xonadonni ta’mirlab bo‘lmaydi. Xuddi shunday, dasturchilar ham dasturlash tilisiz dastur yarata olmaydi.
Yuqori malakali mutaxassislar shunchaki turli tillarni yaxshi bilish bilan cheklanib qolmaydi. Ular doimiy ravishda o‘z malakalarini oshirib, dasturlash ko‘nikmalarini takomillashtirib boradi. Chunki dasturchilar uchun faqat kod yozishning o‘zi kifoya qilmaydi. Ular uchun eng muhimi bu – dasturlash vositalari yordamida foydalanuvchilarning muammolarini tezda va samarali hal qilishdir.
Dasturlashni boshlash uchun qaysi tilni tanlagan maʼqul?
Yangi boshlayotgan mutaxassis qaysi sohada va nimani dasturlashni istayotgani borasida bir qarorga kelishi kerak. Oʻzi uchun robotlarni dasturlash, ma’lumotlarni o‘rganish yoki ilova va o‘yinlar yaratish kabi qanday vazifalar bilan shugʻullanish qiziqarli ekanini tushunishi muhimdir. Ana shunda dasturlash uchun qaysi vositalar kerakligini aniqlash osonroq bo‘ladi.
Masalan, veb ilovalarni yaratish uchun eng maʼqul til JavaScript hisoblanadi. Agar o‘zingizni data saynsda sinab ko‘rmoqchi bo‘lsangiz, Python’ni tanlang. Bekend uchun yuqorida aytilgan JavaScript va Node.js, Java, PHP mos keladi.
Bir xil vazifalarga yechim boʻladigan tillardan qaysi birini tanlagan maʼqul? Bunda tanlov dasturchining oʻziga bogʻliq. Har bir kishi tilni o‘z didi, o‘rganish osonligi, qulayligi va til atrofidagi hamjamiyatning sifatiga e’tibor qaratgan holda tanlaydi.
Qaysi texnologiyalar to‘plamini (stekini) o‘rganish kerak?
O‘zingizga mos keladigan stekni tanlash uchun ish qidirish veb-saytlariga o‘tib, talab eng yuqori boʻlgan dasturlash yo‘nalishlarini qidiring. Dasturlash tillari reytingini o‘rganib, stekni bilimingiz va ish haqi borasidagi kutilmalaringizdan kelib chiqqan holda tanlang.
Dasturlash sohasida birinchi qadamni qo‘yishingizga yordam beradigan ko‘plab bepul materiallar mavjud. Yangi boshlayotganlar uchun foydali bo‘ladigan bir nechta manbalar:
GitHub — dasturchilar o‘z loyihalarining kodlarini joylashtirаdigan platforma. Undagi loyihalarning manba kodlarini o‘rganib, tajriba orttirishingiz mumkin.
Stack Overflow — oʻzingizni qiziqtirgan savollarni berib, ularga javoblar olishingiz mumkin bo‘lgan dasturchilar hamjamiyati.
Code Basics — dasturlash tillari asoslari bo‘yicha bepul kurslar.
Dasturlashni o‘rganishning eng oson yo‘li — ko‘proq mashq qilish va kod yozish. Oddiy veb-sayt, Telegram bot yoki buyruq satri uchun dastur yozishga urinib ko‘ring.