Dvije poprilično utjecajne tehnologije u cjelokupnom IT svijetu u pogledu raširenosti njihovog korištenja u prošlosti, sadašnjosti i budućnosti predstavljaju svojevrsne vršnjake vašeg omiljenog časopisa. To su programski jezik PHP i sustav za upravljanje bazama podataka MySQL. Sasvim dovoljan razlog da se na slavljenike osvrnemo u prigodnom tekstu.
1. PHP
PHP je u svojem izvornom obliku, pod istom skraćenicom PHP, ali s drugim nazivom (Personal Home Page) kreirao Kanađanin (danskog porijekla) Rasmus Lerdorf. Prva verzija na kojoj je rad započeo 1993. godine zapravo i nije bila pravi programski jezik u današnjem smislu te riječi, nego prije skup CGI (Common Gateway Interface) modula razvijenih u C jeziku, koji su se mogli koristiti za jednostavniju pripremu vlastitih web stranica. Do 1995. godine kad je objavljena prva službena verzija u PHP je ugrađen čitav niz različitih dodataka kao što je pristup bazi podataka. Tako da su programeri dobili alat kojim su mogli početi izrađivati prve prave web stranice na relativno jednostavan način.
Svakako je zanimljivo spomenuti kako je Rasmus Lerdorf naglašavao da njegova ideja zapravo nikad nije bila razvijati novi programski jezik, nego samo pripremiti nekakav skup modula koje bi jednostavno kombinirao u vlastitim rješenjima zbog smanjenja količine programiranja. Budući da se PHP unatoč takvoj početnoj pretpostavci počeo širiti mnogo optimističnije nego što je to itko očekivao, uskoro su se pojavile prve „prave verzije“ programskog jezika.
Verzija 2.0 objavljena je nakon dugotrajnog testiranja 1997. godine s potpunim redizajnom interne strukture, a rast popularnosti je sad već bio toliki da je 1998. godine prema nekim procjenama više od 60.000 web domena bilo razvijeno upravo u PHP-u. Međutim, verziji 2.0 i dalje je nedostajao dio mogućnosti neophodan za razvoj dijela modernih web aplikacija.
Rasmus Lerdorf: Autor programskog jezika PHP (https://www.siliconrepublic.com)
Razvoj PHP-a: Kronološki pregled pojave različitih verzija jezika tijekom godina (https://geckodynamics.com/blog)
Zato verzija 3.0 predstavlja istinsku prekretnicu u razvoju PHP-a. Od nje je PHP postao pravi, skriptno orijentirani programski jezik sa svim potrebnim mogućnostima. Ovu verziju su u suradnji s izvornim autorom razvili Andi Gutmans i Zeev Suraski. O tome o kolikoj promjeni je bila riječ svjedoči da je usporedo došlo i do promjene naziva jezika. Upravo od verzije 3.0 nadalje, puni naziv PHP-a je „PHP: HyperText Preprocessor“.
Od verzije 3.0 svakih nekoliko godina neprekidno se pojavljuju nove verzije i podverzije programskog jezika (prateća slika uz tekst), da bi se danas stiglo već do verzije 8.x. Tijekom tih godina u programski jezik su ugrađivane najnovije paradigme s područja programskih jezika, kao što je podrška za objektno orijentirano programiranje. Unatoč pojavi 8.x verzije, treba istaknuti kako to ne znači da su rješenja napravljena u prethodnim verzijama odjednom nestala, nego postepeno dolazi do zamjene starije tehnologije novijom. U praksi je i dalje najzastupljenija verzija 7, iako još uvijek ima dosta rješenja razvijenih i u prethodnim verzijama.
Na ogromnu popularnost jezika u praksi je utjecala i pojava različitih CMS platformi kao što su WordPress, Joomla i Drupal, zasnovanih upravo na PHP-u. Prema nekim istraživanjima, samo WordPress stoji u pozadini više od 40% postojećih web rješenja. Trenutno se PHP i dalje nalazi na sigurnom mjestu među 10 najkorištenijih programskih jezika na svijetu, ali s manje ili više kontinuiranom tendencijom pada popularnosti.
Trenutna zastupljenost verzija: Verzija 7.x je i dalje najkorištenija verzija programskog jezika https://geckodynamics.com/blog)
Trenutna popularnost PHP jezika: PHP se i dalje sigurno nalazi među 10 najpopularnijih programskih jezika (https://pypl.github.io)
Nakon 30 godina korištenja u praksi, brojni IT stručnjaci naglašavaju da bi bilo vrijeme da PHP konačno „odumre“, te da ga zamijene modernija rješenja. Glavne zamjerke u odnosu na neke druge programske jezike su neprimjenjivost u svim mogućim situacijama (što je i logično, jer je PHP oduvijek web orijentirani alat za korištenje na strani servera), relativna sporost u izvođenju prema nekim drugim alatima za razvoj, odnosno nedostatak nekih od najnovijih paradigmi i mogućnosti drugih programskih jezika.
Međutim, dok je prva primjedba opravdana, jer vjerojatno malo tko očekuje da će PHP koristiti kao primarni alat za razvoj AI sustava i slično, ostale dvije i nisu toliko opravdane. Praktično svaka nova verzija PHP-a pokazuje unapređenja u brzini izvođenja, a u sam programski jezik se kontinuirano ugrađuju najnovije mogućnosti drugih programskih jezika.
Istovremeno, nakon 30 godina intenzivnog korištenja u praksi, PHP počinje polako pokazivati „Cobol efekte“. Broj sustava koji se u svijetu temelje upravo na PHP-u je tijekom godina toliko narastao da je teško (ili praktično nemoguće) pronaći dovoljno financijskih i ljudskih resursa da bi se svi stari sustavi zamijenili novima. Puno jednostavnije i jeftinije je raditi manja održavanja na postojećem PHP kodu i prilagođavati ih najnovijim verzijama PHP-a.
Zato ne bi uopće bilo iznenađujuće ako nakon sljedećih 30 godina i dalje budete čitali svoj omiljeni časopis te koristili neki od sustava razvijenih u budućim verzijama PHP-a.
2. MySQL
Relacijski orijentirana baza podataka MySQL u svojoj prvoj komercijalnoj verziji objavljena je također 1995. godine, ali je njezin razvoj trajao vrlo intenzivno još 1994. godine. Glavni autor u njezinom stvaranju bio je Finac Michael Widenius zajedno s dva koautora iz Švedske (David Axmark i Allan Larsson) u okviru zajednički osnovane tvrtke MySQL AB. Prva verzija MySQL zasnovana je na temelju mSQL, prvog jeftinog sustava za upravljanje bazom podataka.
Sljedeće desetljeće predstavlja period intenzivnog razvoja i širenja među korisnicima, da bi se tako stiglo sve do verzije 5.x u 2008. godini. Tijekom 2008. godine, matičnu tvrtku MySQL AB kupio je u to vrijeme vrlo jak igrač na IT području – tvrtka Sun Microsystems. Budući da je 2010. godine spomenuto poduzeće preuzeo još veći softverski gigant Oracle, MySQL je još jednom promijenio svojeg vlasnika.
Michael Widenius: Glavni autor baze podataka MySQL (izvor - Wikipedia)
Datum preuzimanja MySQL-a od strane Oraclea (27.01.2010.) izuzetno je važan u cijeloj priči, jer ujedno predstavlja datum rođenja „mlađe sestre“ pod nazivom MariaDB - vrlo važnog dijela u priči o bazi podataka MySQL i njezinoj budućnosti. Tog istog dana je glavni autor MySQL-a (već spomenuti Michael Widenius) s grupom programera započeo razvoj baze MariaDB (koja je ponovo dobila ime po autorovoj drugoj kćeri Mariji). Takav scenarij bio je posljedica zabrinutosti da bi Oracle, tvrtka i sama nastala na vlastitoj bazi podataka kao osnovnom proizvodu, mogla utjecati na budućnost razvoja i korištenja MySQL-a.
Zato nije nikakvo čudo da su na samom početku razvoja obje baze bile praktično jednake, da bi se tijekom vremena počele pojavljivati i određene razlike među njima. U praksi se MariaDB „trudi“ da bude što kompatibilnija s bazom MySQL, ali da uz to ponudi i nešto više za svoje korisnike. Ponovo, vrlo važna činjenica za budućnost MySQL-a.
Jedna od posebnosti baze MySQL je u tome što čitav sustav za upravljanje bazom podataka nije tako „monolitan“ kao kod nekih drugih proizvođača baza podataka. To se jasno može vidjeti i na pratećoj slici uz tekst. Posebno je zanimljiv dio označen kao „storage engines“. Riječ je o sistemskim modulima koji predstavljaju vezu između hardvera i ostalih sistemskih modula sustava za upravljanje bazom podataka, sa zaduženjem da brinu o samom zapisivanju, odnosno čitanju podataka.
Međusobno se ovi moduli mogu razlikovati po brzini rada, ugrađenoj podršci za korištenje transakcija ili njezinim izostankom, različitim vrstama podržanih indeksa te još nekim dodatnim karakteristikama. Ako korisnik točno zna što mu je potrebno u određenoj situaciji, može znatno unaprijediti brzinu rada cjelokupnog sustava ili povećati sigurnost zapisa odabirom optimalnog modula.
Struktura MySQL-a: Sastoji se od više razina koje se po potrebi mogu rekonfigurirati drugim modulima
Tijekom godina je u MySQL (kao i u MariaDB) ugrađivan čitav niz naprednih mogućnosti kakve su praktično neophodne za današnje relacijski orijentirane sustave za upravljanje bazama podataka. Od podrške za korištenje transakcija, preko ugrađivanja podrške za najnovije tipove podataka, do korištenja u najmodernijim hardversko/softverskim okruženjima kao što je, na primjer, Amazon AWS. Zato nije ni čudo da se prema različitim popisima popularnosti MySQL (trenutno u verziji 9.0) još uvijek nalazi na drugom mjestu, ali s tendencijom stalnog pada popularnosti.
Za to postoji nekoliko razloga. Osim ranije spomenute baze MariaDB kao izravne konkurencije MySQL-u zbog zajedničke prošlosti, tu je i opasna konkurencija koja sve više zamjenjuje MySQL (dobro poznati PostgreSQL), te je moguće da matična tvrtka ne „gura“ MySQL sa 100% zainteresiranosti u odnosu na vlastite Oracle proizvode. U prilog navedenim tvrdnjama može se pogledati kako nezavisan izvor, kao što je Amazon AWS, uspoređuje MySQL i MariaDB. Budući da takav nezavisan izvor nema previše razloga za navijanje za jednu ili drugu stranu, uspoređivanje bi trebalo biti prilično objektivno (izvor - https://aws.amazon.com/compare/the-difference-between-mariadb-vs-mysql/).
Prema Amazonu, MariaDB brže izvodi upite što je čini pogodnijom za korištenje kod jako velike količine podataka u bazi. Popis podržanih strojeva za spremanje podataka (storage engines) veći je kod MariaDB (XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra, Connect) nego kod MySQL (InnoDB, CSV, Federated, MyISAM, Merge, Federated). Podaci u JSON formatu, kao praktično nezaobilaznom formatu spremanja podataka u današnjem IT svijetu, u MySQL-u se čuvaju u binarnom formatu, dok su u MariaDB to zapravo i dalje stringovi. Drugim riječima, u ovom slučaju je tip podatka JSON samo zamjena LONGTEXT, iako postoje dodatne funkcije za rukovanje takvom vrstom podataka.
Zbog svega navedenog, čini nam se da budućnost MySQL-a u sljedećih 30 godina nije toliko obećavajuća kao budućnost PHP-a.
Trenutna popularnost baze MySQL: Trenutno je još uvijek na drugom mjestu (https://pypl.github.io)
Usporedba MySQL i MariaDB: Dostupno u originalu na https://aws.amazon.com/compare/the-difference-between-mariadb-vs-mysql/