

|Bu makalenin farklı dillerde bulunduğu adresler: English Castellano ChineseGB Deutsch Francais Nederlands Turkce|


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