![]() | ![]() |
![]() |
| ![]() |
| |||||||||||||||
Open-source Delphi
Devedesetih je nastao besplatni i open-source Paskal kompajler po imenu Free Pascal Compiler, koji je bio kompatibilan sa kôdom pisanim u Turbo Pascalu (uključujući i klase), tako da je još „samo” bilo potrebno da neko razvije skup klasa kompatibilnih sa VLC-om da bi se dobila besplatna alternativa Delphiju. Tako je nastao Lazarus, razvojno okruženje sa skupom klasa nalik na VLC, koji daje kôd kompatibilan (u velikoj meri) sa Delphijem. Pored izdanja za GNU/Linux, Lazarus postoji i za druge operativne sisteme, pa se autori hvale parolom „write once, compile anywhere”, jer se isti kôd može kompajlirati na svim izdanjima Lazarusa (nasuprot „write once, run anywhere” konceptu koji „fura” Java sa svojim bajt-kôdom). Preuzimanje Lazarusa može se izvršiti preko download sekcije matičnog sajta, koja će vas uputiti na SourceForge stranicu projekta. Kao i obično, najsrećniji su oni koji koriste neku od GNU/Linux distribucija sa Debianovim sistemom APT, pa će prostim dodavanjem novog repozitorijuma moći da izaberu Lazarus u svom paket-menadžeru, a time će automatski povući i ostatak međuzavisnosti zajedno sa Free Pascal Compilerom. Svoju kopiju instalirali smo na ovaj način, što je rezultovalo downloadom više od 100 MB podataka. Detaljno uputstvo za ovakvu instalaciju može se pročitati na wiki. Po startovanju programa, programere sa iskustvom u Delphiju dočekaće poznato okruženje automatskim kreiranjem default projekta – osnovni meni u vrhu, properties/events lista trenutno selektovanog objekta u levom delu ekrana, izlaz kompajlera na dnu i podrazumevano prazan prozor forme uz prozor sa izvornim kôdom. Editor je vrlo funkcionalan, poseduje „zatvaranje” blokova kôda radi bolje preglednosti, prikaz liste članova klase sa autokompletiranjem (istina, ne tako hitro kao u Delphiju, ali sasvim upotrebljivo) i sve ostalo što jedan moderan programerski editor treba da ima. Prvo iznenađenje sledi posmatranjem rezultata kompajliranja „praznog” programa, sa jednim prozorom bez dodatnih kontrola i kôda: rezultujući izvršni fajl bio je veći od 14 MB! Razumemo da se program linkuje statički kako ne bi tražio gomilu različitih sistemskih fajlova i izazivao glavobolju kod GNU/Linux korisnika sa distribucijama svakakvog porekla i verzija, ali što je mnogo – mnogo je. Postoji i drugi razlog: Lazarus podrazumevano uključuje sve debug informacije u izlazni program kako bi se ovaj mogao kontrolisati pri testiranju iz razvojnog okruženja. Zato smo posegli za komandom Project: Compiler Options, gde smo u karticama Code i Linking uključili opcije Smaller Code, Strip Symbols From Executable i Link Smart, smanjivši tako veličinu izlaznog programa na prihvatljivih 2 MB (s obzirom na to da se radi o statički linkovanom programu). Oni koji su se „naoštrili” da svoj program maksimalno sabiju, mogu koristiti neki od besplatnih runtime (de)kompresora kao što je UPX. Drugo iznenađenje može nastati pokušajem kompajliranja postojećih Delphi projekata: poznato je da u Delphiju postoje dva tipa stringova koji sadrže jednobajtne karaktere – ShortString koji može imati do 255 znakova i interno je fiksne veličine jer se alocira pri startu programa, i AnsiString – koji može biti dugačak onoliko koliko operativni sistem i radna memorija dozvoljavaju, jer se alocira dinamički pri izmeni sadržaja stringa. Koji će se od ova dva tipa podataka podrazumevati pod standardnom paskalskom definicijom stringa kao tipa promenljive određuje odgovarajuće podešavanje u razvojnom okruženju. Delphi pod stringom podrazumeva AnsiString, ali ne i Lazarus, pa ćete korišćenjem nečega što ste deklarisali kao string u funkcijama koje očekuju AnsiString „popiti” poruku o nekompatibilnosti tipova. Stoga opet valja otići u Project: Compiler Options i u sekciji Parsing uključiti Use Ansi Strings. Nije zgoreg obeležiti ni opcije Delphi Compatible i TP/BP 7.0 Compatible radi eliminisanja potencijalnih problema. Programere koji drže do izgleda svog programa interesovaće kako se rešiti ružnog GTK1 interfejsa – odlazak u Compiler Options po treći put prikazaće padajuću listu iz koje je moguće izabrati koje će se grafičke biblioteke koristiti, uključujući i „fensi” GTK 2 i Qt. Ostatak posla prilično je straight-forward – za pravljenje upotrebljivih programa potrebno je znati osnove objektnog Paskala i event-driven programiranja, a uvek je dostupan i online help – pritiskom na ’F1’ u editoru kôda otvara se web stranica sa opisom funkcije, klase ili propertiesa na kome se nalazi tekstualni kursor. Nije baš kao dokumentacija iz Delphija pre verzije 8, ali je ipak dovoljno upotrebljivo. • • • Lazarus je veoma dobro rešenje za brz i efikasan razvoj manjih i srednjih programa, naročito za one koji imaju iskustvo u Delphiju. S obzirom na to da Paskal važi za čist i jasan jezik, ni novajlije neće imati naročitih problema da ga savladaju. Stoga zaslužuje našu preporuku ukoliko se dvoumite oko izbora alata za izradu desktop aplikacija za GNU/Linux. Ivan TODOROVIĆ |
| |||||||||||||||||
![]()
![]()
![]()
|
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |