|
![]() |
|
![]() tarafýndan Georges Tarbouriech <georges.t(at)linuxfocus.org> Yazar hakkýnda: Georges uzun zamandýr bir Unix kullanýcýsý. GNUstep'i ve bu büyük oluþumun hazýrladýðý araçlarý seviyor. Türkçe'ye çeviri: Murat Kaplan <mkaplan(at)be.itu.edu.tr> Ýçerik: |
Özet:
RAD, "Rapid Application Development" (Hýzlý Uygulama Geliþtirme araçlarý) kelimeleri yerine kullanýlýr. Seksenlerin sonunda, NeXTstep çýktýðýnda, InterfaceBuilder. ProjectBuilder adýnda, bir flash içinde grafik uygulamalarý oluþturmaya izin veren baþka bir araçla birlikte kullanýldý. GNUstep bu araçlarýn Gorm.app and ProjectCenter.app adýndaki serbest sürümlerinin daðýtýcýsýdýr.
![]() |
Bilgisayarlarýn tarih öncesi döneminde, yazýlým geliþtirmede büyük bir mücadele
vardý. Bilgisayarlar oldukça düþük güçte olmalarýna karþýlýk boyut olarak bir o kadar
büyüktüler. Çok pahalýydýlar, sayýca fazla deðildiler ve geliþtirenler diðer insanlarla
paylaþmak zorunda olduklarýndan istedikleri sýklýkta kullanamýyorlardý.
Bu durumda araþtýrmacýlar, verimliliði yükseltmek ve bilgisayarlarýn
ayný anda birden fazla görevi yürütmesi için bir yol bulmaya çalýþtýlar.
Açýkçasý, kullanýlabilir makinalarýn kötü kaynaklarýný hesaba katarak bir programlama
dilini sýfýrdan tasarlamak ve yaratmak zorundaydýlar.
Böylelikle, 60'lar süresince çeþitli yeni programlama dilleriyle karþýlaþýldý: LISP,
FORTRAN, BASIC, Algol68, BCPL, vb. Sonra BCPL'den B dili türetildi ve onu da
C dili izledi. Bu sonuncu programlama dünyasýný deðiþtirdi.
Sonrasýnda "görsel devir" ile birlikte "nesneye yönelik" (SmallTalk, Objective C, C++,
vb) diller göründü.
Seksenlerde bazý makinalar grafiksel iþletim sistemleri sunuyorlardý (Apple Macintosh,
Commodore Amiga, Atari ST, vb) ve X Window System sahnedeydi. Ayný anda,
Presentation Manager adýnda bir þirket IBM OS2 için bir grafik arayüz üzerinde
çalýþýyordu. Bu çalýþma sona ermeden önce, þirket kendi DOS 'u için "kendi"
grafik arayüzü Windos'u piyasaya sürdü. Ýlk iki sürüm oldukça kullanýþlýydý, ancak...
sonunda üçüncüsü geldi. MvAI (Microsoft very Artificial Intelligence) doðdu!
Böylelikle bütün kullanýcýlar bilgisayar bilimci oldu. O zamandan itibaren
Excel yada Word ve Visual Basic kullanýlarak yazýlan "büyük" uygulamalar gördük:-(
Her neyse!
Neyseki, biz bu durumu geride býrakmadan çok önce, NeXTstep doðdu ve onunla birlikte
InterfaceBuilder geldi. Bu araç, uygulamanýz için çok kýsa bir sürede ve
kolaylýkla bir grafik arayüz oluþturmanýzý saðlar. Oradan bu tür araçlar
yayýlmaktadýr. Dðerleri için de Omnis, 4D, Delphi, Kylix, vb. 'den bahsedebiliriz.
Çoðunluðu Windows'a yönelik iken bir kaçý "multiplatform" 'dur.
Böyle bir düþünceyi kullanmak için Gtk (Gimp Tool Kit) gibi ücretsiz
"toolkit"'ler olduðunu da söyleyelim.
Lisanslý Unix'ler de bu tür araçlarý saðlar.
Bu aaçlarýn en önemli özelliði, kodu uygulamanýn 200 penceresi için yazmak
zorunda olmamanýzdýr. Veriyi yönetmek için sadece bir pencere yeterlidir.
Burada tür araçlardan hoþlanýp hoþlanmamanýz önemli deðildir. Önemli olan
geliþtirme süresinin kýsalýðýdýr: bu bir gerçek (bu sebeple adý "Hýzlý Uygulama
Geliþtirme araçlarý")
GNUstep bize serbest RAD araçlarý saðlar.
Bu araçlar Gorm ve ProjectCenter isimlerini taþýrlar. Doðal olarak bu araçlar
oldukça "genç" 'tirler ama iþe yararlar. Onlara bir bakalým.
Gorm ve ProjectCenter 'ýn ikisini de kullanabilmek için GNUstep'i kurmanýz
gerekir. Bunun nasýl yapýlacaðý bu makalenin konusunun ötesindedir. Gereksinim
duyacaðýnýz herþeyi GNUstep sanalyöresinde
bulabilirsiniz. Bu adreste kaynak kodunu, kaynak yazýlarý vb bulabilirsiniz.
Ayrýca bu makalelere bakabilirsiniz:
GNUstep, the open source OpenStep ve GNUMail.app, the portability evidence.
Önceki makale için FreeBSD 4.7 ile Window Maker 0.80.1, gnustep-make-1.5.0,
gnustep-base-1.5.0, gnustep-gui-0.8.2 ve gnustep-back-0.8.2 kullanýlarak testler
yapýldý. Bunlar GNUstep'in en son, kararlý olmayan sürümleridir. Ýsterseniz
kararlý sürümleri de kullanabilirsiniz. Son ama sonuncu olmayan gcc 3.0.4
derleyicisini kullandýk.
Gorm Graphic Object Relationship Modeler 'ýn baþ harflerinden oluþur (yada belki
BENIOKU dosyasýnda yazdýðý gibi GNUstep Object Relationship Modeler). NeXTstep
Interface Builder 'ýn bir benzeridir (yada bugünlerin MacOS X'inin).
Gorm, projeyi baþlatan Richard Frith-Macdonald'ýn ürünüdür.
Bugün projeyi Gregory Casamento, Pierre-Yves Rivaille ile birlikte yürütmektedir.
Programýn güncel sürümü 0.1.9. En yeni CVS görüntüleri
http://savannah.gnu.org/projects/gnustep adresinden edinilebilir..
En son kararlý sürümü GNUstep sanalyöresinden indirilebilir.
Gorm'un (ve Interface Builder'ýn) arkasýndaki düþünce, kullanýcýya paletlerde
bulunan nesneleri boþ pencerelere düþürerek uygulamanýn grafiksel parçalarýný
hazýrlamasýný saðlamaktýr.
Nesneler, düðmeler, alanlar, paneller ve benzerleri olabilir. Böylelikle, bir
pencereye ekleyebileceðiniz herþey ile kullanýcý dostu olur. Sonrasýnda
denetleyicileri kullanarak onlarý iyileþtirebilirsiniz. Denetleyicilerden
seçilen nesnelerin özelliklerini, tanýmlanmýþ baðlantýlarý, boyutlarý, yardým
ve iþletim sýnýflarýný deðiþtirebiliriniz. Bir sýnýf oluþturduktan sonra
nesneye yol ve eylem ekleyebilirsiniz.
Sonra Gorm ana penceresinde yeni bir (örnek) nesne yaratan sýnýf örneklenir
ve yollarla eylemleri uygun bölümlere baðlarsýnýz. Bunu sadece
fareyi örnekten seçilen nesneye yolarý baðlamak için ve nesneden örneðe
eylemleri baðlamak için çekerek yaparsýnýz. Son olarak, kaynak dosyalar sýnýfýnýn
iskeletini oluþturursunuz, ve bitirdiniz. Daha fazlasý daha sonra.
ProjectCenter, isminin de söylediði gibi, bir projenin "kalbi"'dir. Project Builder in
NeXTstep ve Mac OS X altýnda bulunan benzeridir.
ProjectCenter, Philippe C.D.Robert'ýn ürünüdür ve güncel sürümü 0.3.0'dýr.
Gorm gibi GNUstep sanalyöresinden, "Developer apps" bölümüne giderek
indirebilirsiniz. Tabi ki en son CVS görüntülerini edinebilirsiniz: biz bu makale
için 0.3.1 sürümünü kullandýk.
ProjectCenter'dan bir proje yaratabilir, arayüzünü oluþturabilir (Gorm kullanarak),
kaynak kodunu yazabilirsiniz; projeyi oluþturabilir ve çalýþtýrabilirsiniz
(hata ayýklayýcý henü kullanýlabilir deðil). Kýsaca proje için gereken bütün kaynaklarý
yönetebilirsiniz: kaynak kod, kaynak yazý, kitaplýklar, alt projeler, arayüzler vb.
Yeni bir proje oluþturduðunuzda tipini seçebilirsiniz. Uygulama, paket, araç,
kitaplýk ve Gorm uygulamasý arasýndan seçebilirsiniz.
ProjectCenter diðer þeylerin arasýnda, Gorm iskelet kodunu tamamlayabileceðiniz
bir editörle gelir.
Gorm ve ProjectCenter'in birlikte çalýþmasý nasýl? Çok güzel, teþekkürler!
Daha ciddi olarak, bunu anlatmak için iki örnek kullanacaðýz
Bu makale bir "kýlavuz" DEÐÝLDÝR. Düþünce, bu araçlarýn kullaným kolaylýklarýný
ayný kodu GNUstep ve MacOS X'te (yani bir çok Unix ortamýnda... ve "çabalamak"'tan
hoþlanýyorsanýz Windows altýnda da) kullanabileceðinizi ýsrarla göstermektir.
Sadece arayüzü her ortam için tasarlamanýz gerektiðinde, nib dosyalarý
(InterfaceBuilder yada Gorm) henüz (þimdilik) taþýnabilir deðildir.
Yukarýda sözü edilen GNUMAil.app makalesi taþýnabilirliði bir kullanýcýnýn
bakýþ açýsýndan gösterir. Bu makale ise geliþtiricinin bakýþ açýsýndan, hala
düþüncedeki taþýnabilirlikle odaklanacaktýr. GNUMail.app 'de Ludovic ve
arkadaþlarýyla bunu yaptýk ve burada bir GUI uygulamasýný GNUstep ve MacOS X
için oluþturuyoruz.
MacOS X yada GNUstep için bir çok kaynak yazýya ulaþýlabilir. GNUstep için
GNUstep sanalyöresinden yada
http://www.gnustep.net'den, birkaçýný da biz söyleyelim.
- An application using Gorm and
ProjectCenter Pierre-Yves Rivaillei'den.
- The Nicola Pero's tutorial page
- Bir HTMLEditor'ü oluþturmak için daha eski bir kýlavuz: http://stepwise.com/Articles/Technical/HTMLEditor/
Daha fazlasýný öðrenmek için var olan GNUstep uygulamalarýnýn kaynak kodlarýný, nib
dosyalarýný ve tabi ki gnustep örneklerini kontrol edebilirsiniz.
Sanal ortamdan InterfaceBuilder için eriþilebilir sayýsýz MacOS X kýlavuzu
arasýndan biz bir ilk örnek olarak aþaðýdakini seçtik:
http://www.macdevcenter.com/pub/a/mac/2001/05/18/cocoa.html. Yazar Mike Beam
http://www.macdevcenter.com/pub
/ct/37'dan edinilebilecek birçok karýþýk kýlavuz yazdý.
Niçin bu? Çünkü bir tek satýr kod yazmadan çalýþan bir metin editörü saðlar.
Bu MacOS X yada GNUstep altýndaki geliþtirme aracýnýn gücünü gösterir.
GNUstep altýnda ProjectCenter.app ve Gorm.app kullanarak kesme, kopyalama, yapýþtýrma
iþlemlerini yapabilen çok basit bir metin editörü oluþturalým. Aslýnda çalýþmanýzý
kaydedemeyeceksiniz: hatýrlayýn, tek bir satýr kod yazmayacaðýz. MacOS X altýnda
ProjectBuilder ve InterfaceBuilder'ý kullanarak aynýsýný yapacaðýz. Açýkçasý, bu
editörü iyileþtirmek için bir çok þey yapmak gerekir ve biz bunu bir alýþtýrma olarak
okuyucuya býrakýyoruz. Birkez daha belirtelim, bu makale bir "kýlavuzu" deðil!
Þimdi baþlayalým.
ProjectCenter.app'ý açýn ve Editor adýnda yeni bir proje oluþturun. Adýný kaydetmeden
önce pencerenin altýnda bir Gorm Application projesi seçin. Bu size ProjectCenter'ýn
sol sütununda bir "Interfaces" parçasý saðlar.
Interfaces 'i týklamak Editor.gorm'u gösterir. Editor.gorm'u
çift týklayýn ve Gorm.app açýlýr. Öntanýmlý pencereyi seçin (MyWindow) ve araç
denetleyicisini kullanarak ismini "Attributes"'te Editor olarak deðiþtirin.
Paletten Editor penceresine bir TextView çekin. TextView, "Paletler" pnceresinin
en üstünde ensað ikonu kullanan, seçilen palette bulunan en büyük
nesnedir. Bu nesnenin boyutlarýný pencereyi dolduracak þekilde deðiþtirin, ve
bitirdiniz.
Yeniden, GormInternalViewEditor denetleyicisini kullanarak (TextView seçili iken)
, Size'ý seçin ve deðerleri Editor penceresinin boyut deðerlerine uyacak
þekilde deðiþtirin. Bu sonuncusu ayný þekilde saðlanýr, yani, pencere seçilerek
ve GormNSWindow denetleyicisindeki boyut kontrol edilerek. Örneðin X ve Y deðerlerini
deðiþtirmezseniz pencerenin boyutlarýný deðiþtirseniz de deðiþtirmeseniz de editörün
bütün geniþliðini kullanamazsýnýz.
Gorm Document menüsünde hepsini kaydedin ve ProjectCenter'a dönmek için çýkýn.
"Build" ikonunu seçin ve pencerenin ikinci yatay kýsmýndaki "new build" ikonunu
týklayýn. Eðer derleyiciniz, "debugger"'ýnýz vb. için doðru seçimleri yaptýysanýz
herþey doðru gitmiþ olmalý. Örneðin FreeBSD kullanýrken ProjectCenter'ýn "Settings"
ikonunu týklayarak make'i gmake olarak deðiþtirmelisiniz. Yollarý da ProjectCenter'da
"Preferences" menüsünden kontrol etmelisiniz.
Eðer oluþturma baþarýlý olduysa (olmalý!), aynýsýný Run ile yapýn ve Editor
uygulamasýný göreceksiniz. Yazarak, keserek, yapýþtýrarak oynayabilirsiniz. Sonra
"openapp" buyruðunu kullanarak yeniden baþlatabilirsiniz.
Ne kadar sürdü? Aslýnda, birkaç dakika diyebilirim.
Yukarýda yapýlanlarýn aynýsýný yapacaðýnýzdan söylenecek fazla birþey yok.
GUI'nin tasarýmý sýrasýnda aþaðýdaki gibi görünmeli:
Þimdi Mike Beam'dan bir baþka örnek seçelim. Bu sefer veriyi yönetebilen,
tam olarak çalýþan bir uygulama: bir adres defteri. Mike 'ýn adres defteri
kýlavuzunun (diðerleri gibi) düþüncenin nasýl iþlediðinin anlaþýlmasý
için okunmasý önerilir. Ayrýca Mike ayný uygulamayý iyileþtirmeyi saðlayan
farklý geliþtirme iþlemleri önerdiðinden kýlavuz listesi de kontrol edilmelidir.
Yine uygulamayý hem GNUstep'te hem de MacOS X'de oluþturup çalýþtýracaðýz.
Editör örneðinde yaptýðýnýz gibi, ProjectCenter.app 'ý baþlatýn. Bir Gorm
uygulamasý seçip "AddressBook" adýný verin. ProjectCenter'dan "Interfaces"'de
-> AddressBook.gorm 'u çift týklayarak Gorm'u baþlatýn. Paletten öntanýmlý
pencereye bir "TableView" çekin. Baþka bir deyiþle, Mike'ýn kýlavuzunu
MacOS X altýnda olduðu gibi takip edin. Gorm'da ve InterfaceBuilder'da farklý
çalýþacaklarýndan birkaç þeyi uygun hale getirmelisiniz.
Örneðin, "TableView"'deki sütun sayýsý Gorm'da "attributes inspector"'dan
tanýmlanamaz. Bazý þeyleri basit tutmak için bir sütunu kopyalayýp sonrakine
gerektiði kadar kopyalayýn (burada 4 kez). Benzer þekilde bitirmiþ olmalýsýnýz:
Mike Beam bütün iþi yaptý: ekleyebileceðim baþka ne var?
Açýkçasý GNUstep geliþtirme araçlarý Apple'ýnkiler kadar önde olamaz.
Apple ve NeXT yüzlerce geliþtiriciyle birlikte 15 yýllýk fazla deneyime sahiptir.
GNUstep bir yaþam için daha baþka (serbest) birþeyler yapan bireysel bir oluþumdur.
Bu sebeple, örneðin eriþilebilir sýnýflarýn InterfaceBuilder'da
Gorm'dan çok daha fazla olmasý þaþýrtmamalýdýr. Gorm henüz
0.1.9 (yada 0.2.0) sürümünde.
Üstelik biz testleri "zor" yoldan yaptýk. OS X 'den GNUstep'e taþýdýk.
Yukarýda bahsedilen araçlar arasý farklardan dolayý baþka yoldan gitmek daha
kolay olabilir.
Örneðin oldukça iyileþtirilmiþ yeni Apple geliþtirme araçlarý kullanýlana kadar
MacOS X 10.2 altýnda geliþtirilmiþ uygulamalarý taþýmak çok daha zor olabilir.
Daha önce de söylendiði gibi, ulaþýlabilecek birçok yeni yada özenli sýnýf vardýr.
Her nasýlsa, ayný düþünceye güvenen araçlar GNUstep yada MacOS X altýnda çalýþýrlar
... ve GNUstep her geçen gün iyileþmektedir. Birþey bana çok hoþ görünüyor:
GNUstep'te insanlar gerçekten birlikte çalýþýyorlar. Farklý projeler düþünüldüðünde
her birine yardým ediyorlar ve GNUstep çekirdeðinin geliþimine de katkýda bulunuyorlar.
Bu benim hoþlandýðým Serbest Yazýlým'ýn çalýþma þekli. Mr.Fedor ve arkadaþlarýna
böyle bir tavýrdan dolayý tebrikler.
Bu makalenin amacý GNUstep "RAD" aracýnýn, Gorm.app ve ProjectCenter.app'ýn
gücünü göstermekti. Gençliklerine raðmen oldukça kolay þekilde hoþ uygulamalar
geliþtirmenize yardým edebilirler.
Daha fazlasý, bu araçlar oldukça baþarýlý bir þekilde çok hoþ bir çalýþma tarzý
saðlarlar. Nesnel C oldukça týkýz bir dildir ve fikrimce birinin C ile
birlikte C++ öðrenmesinden çok daha kolaydýr (Biliyorum, daha önce de söylemiþtim!).
Bu daha küçük boyutlarda tutarak hoþ görünen uygulamalar tasarlamayý saðlar
(tamam, bu zevk meselesi ama ben bu durumu seviyorum).
Kabul etmeliyim ki ilk NeXT makinasýyla tanýþmamda yaþadýðým þoktan hiç
kurtulamadým. Apple NeXTstep'in ileri bir sürümünü üreterek beni sevindirdi.
Bu ayný zamanda benim GNUstep yada Window Maker gibi projeleri neden çok
sevdiðimin de sebebi. Herneyse, serbest yazýlýmý seviyorum diye "tutucu" deðilim,
ve buna uygun olarak sahipli yazýlýmlara karþý deðilim (aslýnda, belki özel bir
kelime iþlemciye biraz karþý olabilirim... ama, sadece biraz!).
GNUstep Apple'dan yararlanabilir... ama Apple da GNUstep'den yararlanabilir.
GNUstep Apple'ýn bir rakibi deðil, serbest bir yazýlým. Bildiðim kadarýyla
serbest yazýlýmlar OS X'de oldukça kullanýlýyor. Bu demektir ki Apple'a
çok daha fazla serbest yazýlým getirmek kötü birþey olmayabilir.
Ludovic ve rakadaþlarýnýn GNUMail.app ile yaptýklarý ne olabileceðine çok güzel
bir örnek.
"Bir rüya gördüm"... Apple geliþtirme araçlarýnýn çoðunun kaynak kodlarýný GNUstep'e
sunuyordu. GNUstep ve Apple geliþtiricileri Unix kullanýcýlarýna olaðan üstü
uygulamalar sunmak için birlikte çalýþýyorlardý. Ve yavaþ yavaþ insanlar Windos
olmadan yaþayabileceklerinin farkýna varýyorlardý...
Ne yazýk ki, bir rüyaydý ;-)
Her neyse, GNUstep ve uygulamalarýný bilmiyorsanýz, bir denemek için rahat olun.
Hatýrlayýn, GNUstep size herþeyi keþfetmek ve oluþturmak için Gorm ve ProjectCenter
gibi bir ortam ve araçlar saðlar. Baþka bir deyiþle, biraz hayal gücü ile,
bugünlerde görebildiðinizden -Widos uygulamalarý benzerlerinden!- çok farklý
"ürünler" geliþtirebilirsiniz.
Önemli bir zamanda yaþýyoruz!
GNUstep insanlarý: A.Fedor, N.Pero, G.Casamento, P.Y.Rivaille, N.Roard, L.Marcotte,
R.Frith-Macdonald, P. C.D.Robert, E.Sersale, A.Froloff, F.Kiefer, M.Viviani,
M.Guesdon ve unuttuðum herkese bu büyük iþ için, hem bu ortam ve hem de uygulamalar
için.
Window Maker insanlarýna: A.Kojima, D.Pascu ve bize X için serbest bir NeXTstep
arayüzü saðlayan arkadaþlara.
J.M.Hullot ve B.Serlet'a InterfaceBuilder'ý ürettikleri için.
"Steve Jobs INC."'e bize NeXT, NeXTstep ve MacOS X'i saðladýklarý için.
Burada bahsedilmeyen, profesyonel yaþamýmýzýn oluþumunda az çok katkýsý olan herkese
|
Görselyöre sayfalarýnýn bakýmý, LinuxFocus Editörleri tarafýndan yapýlmaktadýr
© Georges Tarbouriech , FDL LinuxFocus.org Burayý klikleyerek hatalarý rapor edebilir ya da yorumlarýnýzý LinuxFocus'a gönderebilirsiniz |
Çeviri bilgisi:
|
2002-12-19, generated by lfparser version 2.27