LAKI PINGVINI<>
052008<><>

Lazarus 0.9.24

Open-source Delphi

Borland je pre više godina napravio Kylix, GNU/Linux pandan Delphiju, nekada veoma popularnom RAD (Rapid Application Development) okruženju, ali je njegov razvoj obustavljen, a pokretanje poslednjih verzija pod novijim distribucijama nije jednostavno. Tako su ljudi koji su na Windowsu voleli da programiraju u Delphiju došli u situaciju da na GNU/Linuxu nemaju alternativu svom omiljenom razvojnom okruženju.

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.lazarus.freepascal.org/Getting_Lazarus.

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Ć

 
Lazarus 0.9.24
Šta mislite o ovom tekstu?
Inkscape 0.46
GNOME 2.22

Od Paskala...
Paskal je oduvek bio popularan programski jezik, ako ni zbog čega drugog, ono zbog toga što je pogodan za učenje programiranja. Borland je osamdesetih godina prošlog veka svojim Turbo Pascalom ovaj jezik doveo na znatno viši nivo upotrebljivosti, najpre ispravljanjem nekih propusta koji su sprečavali efikasno programiranje pod tada aktuelnim operativnim sistemima (npr. nemogućnost slobodnog rada sa fajlovima na disku u osnovnom Paskalu), a zatim i ubacivanjem klasa, čime je stvoren objektni Paskal, pandan jeziku C++.
Početkom devedesetih i ekspanzijom Windowsa, programeri su imali svega dva izbora za izradu grafičkih aplikacija za ovaj operativni sistem: Visual Basic i C/C++. Prvi je bio vrlo lagan i za učenje i za rad, ali je imao neka ozbiljna ograničenja (interpretirano izvršavanje programa, nezgrapno rešeno pozivanje kontrola i funkcija iz eksternih biblioteka, zavisnost od runtime DLL-ova i slično), dok su C programeri bili „osuđeni” na direktno korišćenje Windowsovog API-ja, gde je i za najjednostavnije „prozorne” programe bilo potrebno spuštati se na nizak nivo komunikacije između programa i sistemskih biblioteka, uz obavezno „bunarenje” po Win32 Programmers’ Reference i plivanje u moru konstanti i funkcija. I Borland i Microsoft izradili su pakete klasa za Paskal, odnosno C++ (ObjectWindows i Microsoft Foundation Classes), ali ni jedni ni drugi nisu dozvoljavali programeru da se previše „odmakne” od WinAPI-ja.

...do Delphija
A onda je došao Delphi. Borland je napravio okruženje koje je izgledalo kao Visual Basic, ali je pružalo moć C++-a, kako zbog kvalitetnog jezika, tako i zbog novodizajniranog skupa klasa po imenu Visual Component Library, koje su pokrivale sve što je programerima bilo potrebno za razvoj programa: od Windowsovih grafičkih elemenata (prozori, tekstualna polja itd.) do rada sa fajlovima i multithreadinga (u 32-bitnoj verziji). Još jedna svetla tačka programa izašlih iz Delphija jeste to što su izvršni EXE fajlovi bili u potpunosti self-contained (ako programer nije samostalno pozivao eksterne biblioteke), tako da se distribucija svodila na isporuku jednog izvršnog fajla od nekoliko stotina kilobajta, koji je radio na svakom Windowsu. Jedan od najpopularnijih programa današnjice, Total Commander, napisan je u Delphiju. Nažalost, Delphi je počeo rapidno da gubi na popularnosti nakon što je Microsoft započeo agresivno propagiranje .NET-a i C#-a (koji je inače osmislio Anders Hejlsberg, otac Delphija), ali je i danas prilično interesantan manjim developerima i studentima.

Platforma:
GNU/Linux, FreeBSD, Mac OS X, Windows
Licenca:
GNU GPLv2 / LGPL
Veličina:
47 MB (i386 DEB paket bez FPC kompajlera)
Cena:
program je besplatan
Adresa:
www .lazarus .freepascal .org
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera