Charles Babbage 1833-ban réz- és ónkerekekből kezdett számítógépet építeni. Ez akkoriban, amikor Assemblerben kezdtem programozni, egy kicsit primitívnek tűnt számomra, mostanában viszont a modern programnyelvek és az Assembler közti különbség tűnik akkorának, mint a réz és a modern számítógépek szilikonchipje közti különbség.
Mintegy 30 programnyelvben dolgoztam, és írtam is egypárat, de jó néhányszor belefutottam az egyes cégek által kifejlesztett saját tulajdonú programnyelvek, illetve az egyetlen programozó által írt nyelvek okozta megszorításokba. A nyílt forráskódú szoftverfejlesztés lényegében megszüntette ezeket a korlátozó tényezőket.
Ha egyetlen ember fejleszt egy nyelvet, szorosan ellenőrzése alatt tarthatja azt, és képes a számítástechnikának új irányokat adni. Az IBM-nél 1969-ben dr. Charles Goldfarb vezette azt a kutatócsoportot, amely a Generalized Markup Language-t (GML), majd később a Standard Generalized Markup Language-t (SGML) kifejlesztette. Az SGML a Hypertext Markup Language (HTML) őse. Elmondhatjuk, hogy Dr. Goldfarb új irányba terelte a számítástechnikát.
A nagy vállalatoknál kifejlesztett saját tulajdonú programnyelvek ezzel ellentétes irányba haladnak. Az IBM két olyan termékével is dolgoztam, amelyek ugyanazt a piacot célozták meg, de mind a kettőt korlátozta, hogy nem voltak kompatíbilisek az IBM összes termékével. Az IBM szakemberei saját érdekeiknek megfelelően használták a fejlesztési projekteket, ami aztán mindkét termék végét jelentette. Nyílt forráskódú fejlesztés esetén nincsen .ehetőség az egyéni érdekek előtérbe helyezésére, hiszen ez a fejlesztési módszer lehetővé :sszi, hogy a programozók versenyeztessék saját ötleteiket, a felhasználók pedig eldöntik, nogy nekik melyik változat felel meg. Végeredményben a kevésbé hasznos termék beolvad más termékekbe, vagy háttérbe szorul, hiszen helyette a fejlesztők a népszerűbb termékek :ovábbfejlesztésével vagy teljesen új ötletek kidolgozásával foglalkoznak.
A nyílt forráskód megjelenése
1992-ben Linus Torvalds a Linux megírásával előtérbe helyezte a nyílt forráskódú szoftvereket. A Linux egy olcsó PC-n is futtatható ingyenes operációs rendszer. Emberek ezrei töltik szabadidejüket a Linux fejlesztésével, hogy emberek milliói ingyenesen használhassák.
1994-ben Rasmus Lerdorf kifejlesztette a PHP/FI-t, ami a nyílt forráskódú fejlesztéseknek köszönhetően PHP4-gyé fejlődött. A PHP4 egy olyan nyílt forráskódú nyelv az új webfejlesztők számára, amely folyamatosan váltja fel a Perihez hasonló régebbi nyelveket.
Egyértelmű, hogy a PHP az egyetlen igazi nyelv, de vannak, akiket csak a tények győznek meg, a tények pedig azt mutatják, hogy napjaink weboldalaihoz a PHP a megfelelő szkript nyelv. Tapasztalataim alapján állítom, hogy a PHP-t könnyebb tanítani, mint az olyan keverék nyelveket, mint a Visual Basic vagy az US. Mivel több iskolában tanítanak Visual Basicet, mint PHP-t, rövid távon az informatikai menedzserek számára vonzóbb a Visual Basic.
Értelmezés kontra fordítás
Gondolj a számítógépes nyelvekre úgy, mint utasítások listájára. Aztán vegyél egy általad rendszeresen használt utasítást, legyen az ételrecept vagy feljegyzés arra vonatkozóan, hogy hogyan találod meg a barátod új házát. Képzeld el, hogy az utasításokat begépelő ember néhány, számára magától értetődő utasítást kihagy, vagy néhány szót hibásan gépel be. Az eredmény az lesz, hogy nem tudod az utasításokat követni.
Vonatkoztasd ezt a problémát a fordítóprogramokra. Ahogy a programozó befejezi a gépelést, a számítógép megnézi a helyesírást, és ellenőrzi, hogy az egyes utasítások ott kezdődnek-e, ahol az előző befejeződött. (Azonban a számítógép nem tudja ellenőrizni, hogy borsra vagy borsóra gondoltál, hiszen mindkettő szükséges hozzávaló.)
A fordított nyelveknek vannak hátrányai: az egész programot meg kell írnod fordítás előtt, hiszen minden hiányzó rész fordítási hibát okoz. Az értelmezett szkriptekkel lehet soronként haladni, mert az értelmező anélkül foglalkozik az adott sorral, hogy ellenőrizné a többi megvan-e.
Vonatkoztasd a számítógépes értelmezést a hibásan írt névre. Amikor a programozó befejezi az írást, a számítógép semmit nem tesz. A számítógép addig nem ellenőrzi az utasításokat, amíg el nem kezded használni azokat. A számítógép addig nem foglalkozik az adott
név helyesírásával, amíg a nevet tartalmazó sor utasításához nem ér. Egy félig kész leves receptjének a közepére érve a gép közli veled, hogy nincs „őrült bors". Az egész folyamatban lévő munkát kidobhatod, és másnap kezdheted elölről.
A PHP a fordítás és értelmezés majdnem tökéletes keverékét nyújtja. Annyit ellenőriz, amennyit egy jó fordítóprogram ellenőrizne, és emellett az értelmezés előnyeit is biztosítja.