Dasturlashdagi Toyota Corolla – PHP
28 yil tajribaga ega dasturchining PHP haqidagi maqolasi
1995-yili nomaʼlum dasturchi tomonidan yangi skript tilining birinchi versiyasi eʼlon qilindi. Maqsad – “butunjahon oʻrgimchak toʻri” deya nomlangan WWW (The World Wide Web) platformasi uchun dasturlar yaratish edi. Kichik loyiha sifatida boshlangan bu til dot-com yillaridagi tez o‘sish davrida mashhurlikka erishib, tarixdagi eng ko‘p ishlatiladigan dasturlash tillaridan biriga aylandi. Dastlabki muvaffaqiyatsiz urinishlardan soʻng dasturlash tili 1997-yilda maʼlum darajada standartlashtirildi. Hatto hamjamiyat va mutaxassislar istagini qoniqtirish uchun obyektga yo‘naltirilgan dasturlash (OOP) unsurlari ham kiritildi.
Tan olinmagan til
Biroq qanchalik harakat qilmasin, bu til va uning foydalanuvchilari o‘nlab yillar davomida o‘zini “jiddiy” deb hisoblagan dasturchilar tomonidan masxara qilindi. Ular bu tilning “Voy boʻ!” degulik sintaksisini, ishlashdagi g‘alati xususiyatlarini, tobora ortib borayotgan xavfsizlik muammolarini va atrofida paydo bo‘lgan behisob freymvorklarni tanqid qilardi. Shunga qaramay, bu til va uning hamjamiyati bosimlarga bardosh berdi, hatto yirik texnologik kompaniyalarning bevosita qo‘lloviga ega bo‘lgan ulkan “ikkinchi hayot”ni qo‘lga kiritdi. Bugun esa til 30 yoshga to‘lar ekan, Go dasturlash tilining kuchli tomonlariga tayanadigan yangi loyiha uning keyingi rivojiga yo‘l ochmoqda.
Qizig‘i shundaki, yuqoridagi ikki paragrafda keltirilgan tavsif faqat bitta emas, balki ikkita dasturlash tiliga to‘liq mos keladi. Biri – PHP, Perl tilidan kuchli ilhom olgan va Rasmus Lerdorf tomonidan 1995-yil iyunda “Personal Home Page Tools” nomi bilan chiqarilgan; ikkinchisi esa JavaScript, Brendan Eich tomonidan yaratilgan va o‘sha yilning dekabrida Netscape kompaniyasi tomonidan taqdim etilgan.
Ikkala til oʻrtasidagi oʻxshashliklar yolgʻiz shu bilan cheklanib qolmaydi. 1997-yilda PHP/FI 2 va ECMA-262 tufayli ularning har ikkisi ham ma’lum darajada standartlashtirildi. 2010-yillarda esa ikkisini ham yirik kompaniyalar qoʻllab-quvvatlashni boshladi: biri tomonida Facebook, ikkinchi tomonida esa Google va Microsoft. 2025-yilga kelib, ikkisi ham Go dasturlash tiliga asoslangan katta yangilanishlarga erishdi: FrankenPHP deb nomlangan yangi PHP runtime va yaqinda e’lon qilingan TypeScript kompilyatori.
PHP va JavaScript tanganing ikki tomoniga oʻxshaydi, ular veb dasturlashni ifodalaydi: biri server tomoni va ikkinchisi mijoz tomoni. World Wide Web’ning jadal rivojlanishi ularni dasturlash olamining eng muhim o‘yinchilariga aylantirdi. Ochigʻini aytganda, dastlabki loyihalarda ko‘plab g‘alizliklar, sekin rivojlanish jarayoni va tinimsiz davom etgan xavfsizlik muammolariga qaramay, ular o‘z ekotizimlarida baribir yetakchi o‘rin egallashga muvaffaq bo‘lishdi.
C++ tili yaratuvchisi Bjarne Stroustrup ko‘p tilga olinadigan kinoyali gaplarida shunday degan:
Tillarning faqat ikki turi mavjud: odamlar shikoyat qiladigan va hech kim foydalanmaydigan tillar.
Ikki yil oldin dasturchilar birdek “yoqtirib yomon ko‘radigan”, biroq butun bir davrni belgilab bergan BASIC dasturlash tili haqida maqola chop etgan edik. Endi esa navbat PHPʼga — hamma shikoyat qiladigan, hamma ustidan kuladigan, ammo, shunga qaramay, dunyodagi veb-saytlarning 70–80 foizini ishlatib turgan tilga. U haqida ham bir necha soʻz aytishimiz oʻrinli boʻladi. “Jiddiy” dasturchilar qanchalik kulmasin, bu raqam — haqiqatan ham hayratlanarli.
Tarixni kuzatadigan boʻlsak, dasturlash tillariga turli qiziqarli, ba’zan esa ularning asl mohiyatini ochib beruvchi laqablar berilgan. Masalan, C tilini “ko‘chma assembler” deb atashadi. Java haqida “bir marta yoz, hamma joyda tuzat” deyishadi. Python ko‘pincha “ishlaydigan psevdokod” deb taʼriflanadi. JavaScript haqida esa “10 kunda yaratilgan va bu sezilib turadi” degan gap yuradi. Perl esa “internetning izolyatsion lentalari” deb tanilgan.
PHP esa “yomon dizayn fraktali” (rostdan ham shunday deysizlarmi, odamlar?) yoki “juda dahshatli dasturlash” sifatida tanilgan.
Nega PHP “Toyota Corolla”ga oʻxshaydi?
Men buni shunday tushunaman: PHP – arzon bulutli veb hosting xizmatlarining umumiy tili, boshqacha aytganda, dasturlash tillarining Toyota Corolla’si: zerikarli, ishonchli, oson va arzon. Dunyoning deyarli istalgan joyida LAMP toʻrtligini taklif qiladigan arzon veb hostingni topishingiz mumkin: Linux, Apache, MySQL va PHP. Ya’ni operatsion tizim, veb server, ma’lumotlar bazasi serveri va skript tili – barchasi bitta, arzon to‘plamda, bu esa koʻpchilik uchun imkoniyatlar eshigini ochadi. Jorj Klunini gaplari bilan aytganda, yana nima kerak?
Bugungi kunda PHP zamonaviy dasturlash tillariga xos ko‘plab xususiyatlarga ega. Keling, ularning ayrimlarini sanab chiqamiz, buni uning to‘liq ochiq kodli ekanidan boshlaymiz. Unda obyektga yo‘naltirilgan dasturlash (OOP) uchun ilg‘or imkoniyatlar mavjud: traitʼlar, property hookʼlar, namespace’lar, attribute’lar va enumʼlar. Shuningdek, PHP’da funksional dasturlash elementlari ham bor, masalan, closure’lar va arrow function’lar, yaqin oyda esa “pipe” operatori ham paydo bo‘ladi (xursand bo‘ling, OCaml va F# dasturchilari!). PHP assotsiativ massivlarga ega, yana sodda, lekin tez, foydali va tobora rivojlanib borayotgan tur tekshirish tizimi ham mavjud. Bu tizimda never va nullable turlar ham mavjud. (Eslatma: declare(strict_types=1); — sizning do‘stingiz!) Til o‘z ichiga tayyor algoritmlar kutubxonasini olgan, ya’ni “barcha batareyalar qo‘shilgan” tamoyiliga amal qiladi. Agar, shunga qaramay, nimadir yetishmasa, kuchli va ochiq kodli paket menejeri mavjud — undagi paketlar soni hatto npm’ni ham xijolatda qoldiradi. PHP’da unit testlash uchun ajoyib qo‘llab-quvvatlash mavjud. Skript tili sifatida u kompilyatsiya va bajarilish tezligi jihatidan ancha yuqori. Bundan tashqari, PHP’ning o‘z ekotizimi, konferensiyalari, mascotʼi va hatto JetBrains tomonidan yaratilgan kuchli IDE’si ham bor.
Ammo, afsuski, PHP’da goto operatori ham bor. Ana xolos! Deykstra buni koʻrsa, nima derdi? Dollar belgisi bilan boshlanadigan o‘sha jirkanch o‘zgaruvchilar va uyatli foreach iborasini aytmasa ham bo‘ladi. Haqiqiy sharmandalik!
PHPʼga yangi nazar
Ko‘pchilik “jiddiy” dasturchilar ish joyidan LLM siqib chiqarmasidan oldin o‘zlarining “fildan minoralaridan” tushib, 2025-yildagi PHP’ga bir nazar tashlab qo‘yishsa, yomon bo‘lmasdi. So‘nggi o‘n yillik davomida bu til katta, izchil va muntazam yangilanishlarni ko‘rib kelmoqda. Har yil noyabr oyida chiqadigan barqaror relizlar, zaifliklarni doimiy ravishda tuzatib boruvchi jamoa va eskirgan API’larni yangiroq, xavfsizroq versiyalarga almashtirish kabi yangilanishlar bunga misol bo‘la oladi.
Men buni aniq bilaman, ular PHPʼni yana bir koʻrib chiqishi kerak. Chunki men oʻzim ham “fildan minoram”dan tushib, shunday qilganman. Xatoyimni tan olishim kerak: 2009-yili “Men PHPʼdan nafratlanaman” deb nomlangan (rostini aytganda, befoyda) jamoat harakatida qatnashganman. Internet arxivida o‘sha sahifa saqlanib qolgan, unda mening ismim bosh sahifada kattagina joyda turgan. Aybimni tan olaman, hurmatli sud.
O‘zimni oqlash uchun aytishim mumkinki, o‘sha paytlar PHP’ning biroz qorong‘u davrlari edi. O‘shanda Bryus Teytning “Javadan tashqarida” (Beyond Java) kitobi chiqqan, unda PHP’ga qarshi uzun va keskin tanqidlar yozilgandi.
Ancha oldinroq faoliyat ko‘rsatgan PHP xavfsizlik konsorsiumini eslaysizmi? Kichkina Bobby Tables davri tugadimi? Ochig‘ini aytganda, unday emas. Istasangiz, hali ham SQL inyeksiyasi zaifliklariga ega bo‘lgan kodni ishlab chiqarishingiz mumkin (maslahat: iloji boricha “.” operatoridan foydalanishdan qoching. Ma’lumotlar bazasi so‘rovlari bo‘lmagan barcha holatlarda satr interpolyatsiyasi sizning eng yaxshi yordamchingizdir).
Bugungi kunda men PHP atrofida sog‘lom va faol hamjamiyatni ko‘ryapman. JetBrains’ni hisobga olmaganda, bu hamjamiyat hech qanday FAANG yoki boshqa yirik texnologiya kompaniyalarining xohish-istaklariga bogʻlanib qolmagan. PHP Foundation esa o‘z standartlarini kelajak sari rivojlantirmoqda, umid qilamanki, pul va insonlar o‘rtasidagi beqaror munosabatlarni muvaffaqiyatli boshqara oladi ham.
Cheklovlar va muammolar
Bu raqamlarni unchalik jiddiy qabul qilmaslik kerak, lekin til reytinglariga qarasak, PHP hali anchagina yo‘lni qayta bosib o‘tishi lozim. Masalan, TIOBE’da 2004-yilda “yil tili” deb tan olingan PHP hozirda 15-o‘rinda, 2010-yilda esa 3-o‘rinda edi. IEEE reytingida 13-o‘rinda, PYPL’da esa 7-o‘rinda joylashgan — bu so‘nggi 20 yilda sezilarli pasayishdir. Lekin hammasi ham yomon emas: RedMonk reytingida PHP 4-o‘rinni egallab turibdi va grafikdan ko‘rinishicha, 2013-yildan hozirgacha unchalik keskin pasayish bo‘lmagan. Demak, hali ham umid bor.
Hazilni chetga qo‘ysak, PHP tarixidagi eng muhim o‘zgarishlar uni ishlatadigan dvigatellar bilan bog‘liq edi. O‘nlab yillar davomida Zend dvigateli tildagi rivojlanishning asosiy tayanchi bo‘lib xizmat qildi. U 1999-yillardagi internet ehtiyojlariga (ya’ni LAMP stack dunyosiga) moslab yaratilgan edi. O‘z davrida juda yaxshi bo‘lganiga qaramay, u DevOps, konteynerlar va Kubernetes orkestratorlari zamoniga moslashishda qiyinchiliklarga duch keldi.
(Agar qachondir eskirgan PHP 7.1 ilovasini ishga tushirish uchun Nginx, FPM va Supervisor yordamida Dockerfile yaratishga uringan bo‘lsangiz, qo‘lingizni ko‘taring. Do‘stim, men sizning qiyinchiligingizni tushunaman.)
FrankenPHP tanqidlarga chek qoʻyadimi?
Yaxshiyamki, endi biz Zend’dan voz kechishimiz mumkin. PHP hamjamiyatining kutilmagan kuchi tufayli endi FrankenPHP degan narsa paydo bo‘ldi. Bu loyiha yaqinda PHP Foundation tomonidan rasmiy runtime sifatida qabul qilindi va PHP’ni yangi bosqichga olib chiqishda barcha imkoniyatlarga ega.
FrankenPHP nafaqat konteyner yaratishni ancha soddalashtiradi, balki PHP kodini ishga tushirish uchun yangi modellarni ham taqdim etadi. Shu bilan birga, mavjud ulkan kodlar bazasi bilan 100% moslikni saqlab qoladi.
FrankenPHP qanchalik zo‘r bo‘lmasin, PHP’ga qarshi tanqidlar yaqin orada tugaydi deb o‘ylamayman. Til o‘zining kamtarona boshlanishi tufayli paydo bo‘lgan tamg‘adan qutula olmaydi. Til yaratuvchisi boʻlgan Rasmus Lerdorf “Dasturlash mohirlari” (Masters of Programming) kitobida intervyu olinganlar qatorida yo‘q, chunki PHP bozordagi tasodifiy dizayn natijasida yaratilgan tildir. Xuddi, shuningdek, tilning g‘ayrioddiy mashhurligiga qaramay Rasmusni keyingi HOPL konferensiyasiga ham taklif qilishmaydi. Doktorlik dissertatsiyalarida ham PHP ishlatilmaydi (albatta, xavfsizlik mavzusidan tashqari hollarda). Eng achinarlisi, PHP hatto “The Tao of Programming” kitobida ham tilga olinmagan (xo‘p, mayli, u 1987-yilda nashr etilgan, tan olaman).
Ammo baxtimizga IEEE’ning “Kompyuter jurnali” (Computer Magazine) PHPga e’tibor qaratdi va 2012-yilda Rasmus bilan yozma hamda video formatdagi intervyuni e’lon qildi.
Hech boʻlmaganda, shu bor. Oʻsha intervyuda Rasmus bozordagi asosiy falsafani shunday ifodalaydi:
Men yo‘l-yo‘lakay bitta narsani tushundim: PHP rivojlanishi uchun tilni nazorat qilishni butunlay o‘zimda saqlab qololmasdim — boshqalarga ham ozgina boshqaruv huquqini berishim kerak edi. (…) Endi ular faqat mening loyihamga hissa qo‘shayotgan emas, balki til bizning umumiy loyihamizga aylangandi. Aynan shu narsa PHP’ning mohiyatini butunlay o‘zgartirdi.

