samandar@home:~$
> cd ../blog

Software version

30 Jun 2026

Software 2.0: dasturlashning yangi davri

Dasturlash deganda ko‘pchilikning ko‘z oldiga kod yozayotgan inson keladi. Masalan, dasturchi JavaScript, Python, C++ yoki boshqa tilda kompyuterga aniq buyruqlar beradi. U shartlar yozadi, algoritm tuzadi, funksiyalar yaratadi va tizim qanday ishlashini bosqichma-bosqich belgilaydi.

Bu klassik dasturlash usuli. Buni shartli ravishda Software 1.0 deb atash mumkin.

Software 1.0’da inson kompyuterga aniq qoidalar beradi:

“Mana bu holatda bunday qil. Agar bu shart bajarilsa, mana buni ishga tushir. Agar boshqa holat bo‘lsa, boshqa natija qaytar.”

Bugungi kunda esa dastur yaratishning boshqa bir yo‘li kuchayib bormoqda. Endi ayrim tizimlar qo‘lda yozilgan qoidalar orqali emas, balki ma’lumotlar orqali o‘qitiladi.

Mana shu yondashuvni Software 2.0 deb tushunish mumkin.

Software 2.0 nima?

Software 2.0 — bu dasturni to‘g‘ridan-to‘g‘ri qo‘lda yozish emas, balki uni data orqali o‘qitish yondashuvi.

Oddiy qilib aytganda, Software 1.0’da biz kompyuterga qoidani yozamiz. Software 2.0’da esa biz kompyuterga ko‘plab misollar beramiz va tizim shu misollardan o‘rganadi.

Masalan, mushuk rasmini tanish vazifasini olaylik.

Klassik dasturlashda biz mushukni aniqlash uchun qo‘lda qoidalar yozishga harakat qilamiz: qulog‘i qanday, ko‘zi qanday, mo‘ynasi qanday, yuzi qanday shaklda va hokazo.

Lekin real hayotda bu juda qiyin. Mushuk har xil ko‘rinishda bo‘lishi mumkin: biri oq, biri qora, biri yon tomondan ko‘rinadi, biri qorong‘i joyda, biri esa boshqa narsalar orasida turadi. Bunday vaziyatlarning hammasini qo‘lda yozilgan qoidalar bilan qamrab olish deyarli imkonsiz.

Software 2.0 esa buni boshqacha hal qiladi.

Biz modelga minglab yoki millionlab mushuk rasmlarini ko‘rsatamiz. Model shu misollar asosida mushuk qanday ko‘rinishini o‘rganadi. Ya’ni biz unga har bir qoidani alohida yozmaymiz. Model qoidani datadan o‘zi topadi.

Bu yerda asosiy farq shunday:

Software 1.0’da dastur inson tomonidan yoziladi. Software 2.0’da dastur ma’lumotlar orqali o‘qitiladi.

Dataset — yangi source code

Klassik dasturlashda source code .js, .py, .java, .cpp kabi fayllarda bo‘ladi. Software 2.0’da esa dasturning eng muhim qismi ko‘pincha dataset bo‘ladi.

Dataset — bu model o‘rganadigan ma’lumotlar to‘plami.

Agar dataset yaxshi bo‘lsa, model ham yaxshi ishlashi mumkin. Agar dataset noto‘g‘ri, kam yoki sifatsiz bo‘lsa, model ham noto‘g‘ri natija beradi.

Shuning uchun Software 2.0 davrida “dastur yozish” faqat kod yozish emas. Endi muhim ishlar quyidagilarga ham bog‘liq bo‘ladi:

data yig‘ish, data tozalash, label qilish, xatolarni topish, model qayerda adashayotganini tushunish, yangi misollar qo‘shish va modelni qayta baholash.

Masalan, computer vision loyihasida model mashinani noto‘g‘ri aniqlayotgan bo‘lsa, bu muammo har doim koddagi bitta if bilan hal bo‘lmaydi. Ba’zan datasetga turli burchakdan olingan mashina rasmlarini qo‘shish kerak bo‘ladi. Ba’zan label sifati yomon bo‘ladi. Ba’zan modelga yetarli murakkab holatlar ko‘rsatilmagan bo‘ladi.

Demak, Software 2.0’da dataset oddiy yordamchi narsa emas. U dasturning asosiy qismiga aylanadi.

Nega Software 2.0 kuchli?

Software 2.0 kuchli bo‘lishining sababi shundaki, ayrim muammolarni qo‘lda qoidalar bilan ifodalash juda qiyin.

Masalan:

rasmdagi obyektni aniqlash, ovozni matnga aylantirish, matnni tarjima qilish, yuzni tanish, videodagi harakatni tushunish, tibbiy tasvirdan kasallik belgilarini topish, foydalanuvchi niyatini tushunish.

Bularning hammasini klassik qoidalar bilan yozish juda murakkab. Chunki real dunyoda holatlar juda ko‘p va ular doim o‘zgarib turadi.

Lekin bu vazifalar uchun misollar yig‘ish mumkin. Model esa shu misollar orqali patternlarni o‘rganadi.

Masalan, tarjima tizimini olaylik. Har bir til qoidasini qo‘lda yozib chiqish juda qiyin. Lekin millionlab matn juftliklari orqali model tarjima qilishni o‘rganishi mumkin.

Yoki speech recognition, ya’ni ovozni matnga aylantirish. Har bir inson har xil talaffuz qiladi, har xil tezlikda gapiradi, fon shovqini bo‘lishi mumkin. Buni qo‘lda yozilgan qoidalar bilan mukammal hal qilish qiyin. Lekin katta audio datasetlar orqali model buni yaxshiroq o‘rganadi.

Shuning uchun Software 2.0 ayniqsa murakkab, noaniq va real dunyoga bog‘liq muammolarda kuchli.

Dasturchining roli o‘zgaradimi?

Ha, o‘zgaradi. Lekin bu dasturchilar kerak bo‘lmay qoladi degani emas.

Aksincha, Software 2.0 davrida yaxshi muhandislarga talab yanada oshadi. Faqat ularning vazifasi biroz boshqacha bo‘ladi.

Klassik dasturchi asosan kod yozadi: frontend, backend, database, API, UI, authentication, deployment va hokazo.

Software 2.0’da esa dasturchi bundan tashqari model, data, training, evaluation, monitoring va error analysis kabi narsalarni ham tushunishi kerak bo‘ladi.

Model yaxshi ishlashi uchun faqat kod yetarli emas. Tizimga quyidagilar ham kerak bo‘ladi:

sifatli dataset, yaxshi annotation jarayoni, test va baholash metrikalari, model xatolarini kuzatish, real foydalanuvchi holatlaridan feedback olish, modelni xavfsiz deploy qilish.

Bu yerda dasturchi oddiy kod yozuvchi emas, balki butun AI tizimni boshqaruvchi muhandisga aylanadi.

Bugungi AI vositalari bu jarayonni yanada tezlashtirdi

So‘nggi yillarda katta til modellari dasturlash jarayoniga ham katta ta’sir qila boshladi. Endi dasturchi faqat kod yozmaydi, balki AI bilan muloqot qiladi, unga vazifa tushuntiradi, yechim variantlarini oladi, kodni tekshirtiradi, refactor qildiradi va murakkab tizimlarni tezroq quradi.

Bu Software 2.0 g‘oyasini yanada kengaytiradi.

Avval biz kompyuterga shunday derdik:

“Mana kod, shuni bajar.”

Endi esa tobora ko‘proq shunday deyapmiz:

“Mana maqsad, menga yechim yaratishda yordam ber.”

Bu juda katta o‘zgarish. Chunki dasturlash faqat syntax bilishdan iborat bo‘lmayapti. Endi muammoni to‘g‘ri tushuntirish, tizimni to‘g‘ri loyihalash, natijani tekshirish va AI bergan yechimni tanqidiy baholash ham juda muhim bo‘lib bormoqda.

Software 2.0’ning xavfli tomonlari

Software 2.0 juda kuchli, lekin uning muammolari ham bor.

Birinchi muammo — tushuntirish qiyinligi. Klassik kodda xato bo‘lsa, ko‘pincha qaysi qatorda muammo borligini topish mumkin. Neyron tarmoqda esa model nega aynan shunday qaror chiqarganini tushunish har doim ham oson emas.

Ikkinchi muammo — datasetdagi xatolar. Agar model noto‘g‘ri yoki bir tomonlama data bilan o‘qitilsa, u ham noto‘g‘ri qaror chiqaradi. Bu ayniqsa tibbiyot, moliya, huquq, hiring va xavfsizlik kabi sohalarda juda xavfli bo‘lishi mumkin.

Uchinchi muammo — modelning ishonchli ko‘rinadigan xatolari. Ba’zan AI noto‘g‘ri javob beradi, lekin javobi juda ishonchli ko‘rinadi. Shu sababli AI tizimlarda monitoring, test, human review va evaluation juda muhim.

Demak, Software 2.0 “hamma narsani AI’ga topshirish” degani emas. Bu yangi kuchli yondashuv, lekin uni mas’uliyat bilan ishlatish kerak.

Software 2.0 uchun yangi vositalar kerak

Klassik dasturlashda bizda juda ko‘p qulay vositalar bor: IDE, debugger, GitHub, testing framework, CI/CD, Docker, monitoring tool va boshqalar.

Software 2.0 uchun ham shunday vositalar kerak.

Masalan:

Datasetdagi o‘zgarishlarni qanday version control qilamiz? Model qaysi turdagi misollarda xato qilayotganini qanday ko‘ramiz? Label sifatini qanday tekshiramiz? Modelni deploy qilgandan keyin uning real hayotdagi xatolarini qanday kuzatamiz? Datasetga bitta o‘zgarish kiritilsa, model natijasi qanday o‘zgarganini qanday bilamiz?

Bugungi AI engineering, MLOps, annotation platformalar, model evaluation dashboardlar va AI monitoring vositalari aynan shu ehtiyojdan paydo bo‘lyapti.

Xulosa

Software 2.0 — bu dasturlashning yangi bosqichi.

Software 1.0’da biz kompyuterga qoidalarni yozamiz. Software 2.0’da esa biz unga misollar, data va baholash mezonlarini beramiz.

Bu yondashuv real dunyodagi murakkab muammolarni hal qilishda juda kuchli. Lekin u bilan ishlash uchun faqat kod yozishni bilish yetarli emas. Endi muhandis data, model, evaluation, monitoring va AI workflow’ni ham tushunishi kerak.

Kelajakdagi kuchli dasturchi faqat kod yozadigan inson emas. U muammoni tushunadigan, datani baholay oladigan, AI bilan ishlay oladigan va tizim natijasini tanqidiy tekshira oladigan muhandis bo‘ladi.

Software 2.0 bizga shuni ko‘rsatadi: dasturlash yo‘qolmayapti, balki yangi shaklga o‘tyapti.