Kada sam poceo sa serijom textova o osnovnom Pascalu, dobio sam brojna pitanja od raznih poznanika, medju kojima je bilo i iskusnih programera ali i onih koje je tema zanimala na korisnickom nivou. U ovom clanku cu probati da odgovorim na ona koja mi se cine najzanimljivijim. Neka pitanja su licna, druga se ticu same teme i kompjuterskih nauka. Nadam se da ce ovaj FAQ biti zanimljiv.
1) Zasto bas Pascal, da li se neko uopste jos uvek bavi time?
Naravno da se bavi i dobre su sanse da se ovaj trend nastavi u duzem periodu. Najaktivnija grupa je svakako okupljena oko projekta Lazarus i Free Pascal Compiler-a (FPC). Glavni razlog je korisnost i cena. Besplatan je, primenljiv na svim sistemima, i podseca na Delphi na kome su mnogi odrasli, kad je u pitanju brzi razvoj software-a.
2) Da li postoje jos neke grupe i projekti koje postujete i preporucujete?
Naravno! Najpre prethodno pomenuti Delphi, kao projekat RAD (Brzo Razvijanje Software-a), kojim se vise ne bavim ali je i dalje u razvoju. Tu su razni izvedeni programski jezici i okruzenja, poput Oxygene-a ili onih baziranih na Lazarusu o kojima smo vec pisali. Naravno, tu je i nezaobilazan GNU Pascal projekat, koji predstavlja takodje cross-platformski i dugogodisnji standard u ovom jeziku.
3) U ovom kontextu, mozete li reci kako ste poceli sa programiranjem?
To je bilo davne 1985te, sto je mozda i formiralo moj ukus u IT oblasti. Poceo sam sa 8bitnim, u to vreme naprednim kompjuterima, radeci najvise sa Sinclair Basicom i Z80 Asemblerom. Kada kazem da je to formiralo ukus, mislim na postovanje hardwareskih resursa i optimizacije koda. Recimo, kompletna memorija ZX Spectruma je zauzimala manje memorije od jedne ikonice na ekranu danasnjih kompjutera, pa ipak u njoj su stajale fantasticne igre i programi.
4) Kako bi uporedili Pascal sa drugim programskim jezicima?
U sustini sve zavisi sa kojim jezikom. Pascal je pre svega orijentisan ka desktop programiranju i ucenju. U pitanju je jezik koji radi na svim sistemima, daje konzistentne rezultate i moze se lako primeniti u razlicitim okruzenjima. Druga bitna prednost je kompajlerski pristup, koji po defaultu daje gotove upotrebljive aplikacije, a ne skripte koje, iako mogu biti jako korisne, zahtevaju neko okruzenje da bi se izvrsile.
5) Zasto smatrate da je Pascal superioran za ucenje programiranja?
Tesko je odgovoriti na taj nacin, pre bih rekao da je superioran za ucenje logike programiranja. Tu su stvari relativno jednostavne. Pascal je izuzetno citljiv i razumljiv, za razliku od recimo C-a i derivata, ili Asemblera na kome sam pravio prve korake u kompajlerskim jezicima. Sa druge strane, dovoljno je striktan u svojoj stukturi, za razliku od tipicnih intepreterskih jezika, poput recimo ranog Basica ili danasnjeg Pythona, koji su prilicno liberalni. Drugim recima, svako treba da radi onako kako smatra da je najbolje, ovo je samo moj pristup. Pascal je idealan spoj razumljivosti, uz pouzdanu strukturu i optimizovanu upotrebljivost. Zato se isplati uciti ga.
6) Ocigledno je da su drugi jezici preuzeli primat, zbog cega je to tako?
Ne mogu se u potpunosti sloziti sa vama. Svaki jezik ima svoj fokus, i to je normalno kada se neka oblast razvija. Svakako cemo programe za web raditi u PHP-u sa CSS dodacima. HTML5 nove generacije nam otvara mogucnosti za koje smo ranije morali da se dovijamo preko Flasha. Pojavljuju se potpuno novi jezici poput R za statistiku, Perl koji mnogima deluje suludo ali daje odlicne rezultate, ili Python koji pravi cuda u gotovo svim oblastima. Samo je pitanje sta vas tacno zanima. Ova lista se moze siriti u nedogled.
7) Dobro to je jasno, jos jednom, zasto preporucujete Pascal za ucenje i uopste?
Dobro dacu jasan odgovor, da svima bude jasno:
1] Pascal ima striktnu programersku strukturu, sto razvija dobre programerske navike. Za razliku od jezika poput Basica i Pythona koji previse toga podrazumevaju.
2] Ovaj jezik je u stalnom razvoju kako od aktivnih zajednica tako i od komercijalnih kompanija. Na primer Lazarus/FPC, GNU Pascal ili Delphi.
3] Daleko je razumljiviji od jezika koji su savremenici ali su daleko tezi za razumevanje i ucenje. Razlog zasto su drugi jezici preuzeli primat je podrska velikih kompanija, poput Microsofta. Dobar primer je C i kasnije derivati istog.
4] Optimizovani kompajlirani programi u Pascalu zauzimaju izuzetno malo prostora. Npr. osnovna igra iz pogadjanja brojeva koju cu objaviti u narednoj lekciji zauzima svega 18kb. Ikonica Firefoxa ili slicnog programa uzima dva do cetiri puta vise.
5] Pascal je lep za programiranje i pripada dugoj tradiciji optimizovanog i svesnog codiranja. Sad, ovo mozda nikom ne znaci, ali je pitanje upuceno meni pa je to i odgovor. U koliko radite mehanicki najbolje da se bavite nekim drugim poslom.
8) Sta mislite o ostalim programskim jezicima i njihovoj primeni?
Programski jezici su toliko raznovrsni da je tesko napraviti neki razumni presek. Samo cu reci da, bar iz mog ugla, stare podele vise ne vaze. Na primer gde smestiti Perl ili ChucK, ili kako uopste odrediti prednosti i mane kompajlerskih i interpreterskih jezika. Vremena su se promenila, odavno vladaju druga pravila, a IT naucnu busiju i dalje drzi stara garda koju mrzi da uci novotarije. Ovo je standardna pojava u svim naukama i disciplinama, pa se moze videti i u IT sektoru.
9) Dobro, preciznije onda, pored Pascala koje bi programske jezike preporucili i zbog cega?
Ja samo mogu dati svoje favorite, ali ovo svakako ne treba shvatiti kao univerzalni putokaz. Pored Pascala koga preporucujem kao jezik opste namene koji je kompajlerski i moze da pravi aplikacije na svim nivoima i platformama, preporucio bih Python kao interpreterski. Python je izuzetno zanimljiv, kao vrlo flexibilan jezik opste namene, koji se dokazao na gotovo svim planovima. E sad, postoje i specijalizovani jezici koje bih pomenuo, recimo PHP je idealan za server-side programiranje, ili ko voli da chatuje, do sada nisam sreo mocniji jezik od mIRC skriptinga. Tako da, sa jedne strane ovde pricamo o jezicima opste namene i tu preporucujem Pascal i Python, sa druge o specificnim jezicima koji zavise od vasih potreba – za net PHP, za muziku ChucK itd.
10) Niste pomenuli Javu, C++ i ostale koji se mozda smatraju danasnjim favoritima.
Manje je poznato, ali Pascal i C su bili jaka konkurencija, kao bazicni jezici kasnih 60tih. Sticaj je istorijskih okolnosti da je C ‘pobedio’ u toj trci, ranih 70tih. Logika C-a je primenjena kako u C++, tako u Javi, PHP-u, C#, javascript i brojnim slicnim jezicima. Naravno to je sasvim ok i svako je nastavio da ide svojim putem. Tu su se pojavili i razni hibridi, preklapanja itd. Ono sto pisem je iskljucivo moj licni pogled i zaista ne zelim da potcenim bilo koga. Za mene je linija Pascal ka Basicu ka Pythonu linija koja u programerskom smilu, ima vise logike i stila od C struje. Naravno, svako ima pravo na svoj pristup i logiku.
11) Kako vidite globalnu buducnost razvoja IT-ja i programerskih jezika?
U toj oblasti zaista je nezahvalno biti bilo kakav prognozer, jer se stvari menjaju jako brzo. Kada bih rekao nesto oko prirodnih nauka, na kojima je moje obrazovanje bazirano, to bi mozda imalo vise smisla. Iako danas marketing odredjuje sve, mislim da ce na duze staze pobediti vrednosti. To znaci, da ce pobediti diverzitet pristupa u skladu sa potrebama. Naravno, opste vrednosti ce opstati kao i do sada, u programerskom smislu. Sto ce reci C/C++, Basic/Python, Pascal, PHP itd. Uveliko zivimo u digitalnom svetu, pa ce ova pitanja sve vise dolaziti do izrazaja. Ukratko, nadam se najboljem.