GNUstep, açık kaynak kodlu OpenStep

 

ArticleCategory: [Choose a category for your article]

SoftwareDevelopment

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech 

en to trOnan Görel

en to trÖzden Akıncı

AboutTheAuthor:[A small biography about the author]

Georges uzun süredir ticari ve serbest olan Unix işletim sistemi kullanıcılarından biri. Eski bir NeXT hayranı olarak, OS görüntüsü ve hissini kullanan serbest çalışmaları oldukça beğenmektedir.

Abstract:[Here you write a little summary]

Bundan 10 sene kadar önce, inanılmaz bir makine yine en az onun kadar inanılmaz bir OS sürümüyle ortaya çıkarıldı. Bu makineye NeXT ve bu yeni OS sürümüne de NeXTStep adı verildi.
Bundan önce buna benzer bir şey görmemiştik: bu makine son derece iyi bir şekilde tasarlanmıştı, ve nefes kesici güzellikte bir arayüze sahipti. İlk başta BSD 4.2 tabanlı olan hemen
sonra 4.3 e çıkarılan OS un çekirdeği de son derece küçüktü. Bununla beraber, ilk defa grafik ve nesneye dayalı geliştirme aracını önümüze sundu: Interface Builder
(Bu inanılmaz araç için Jean-Marie Hullot ve Bertrand Serlet'e teşekkür ederiz). Ticari olarak düşünürsek, bu makine gerçek bir başarıya ulaşamamıştır. Sonra, NeXT Sun gibi değişik OS'ları
taban alarak çalışmaya başladı. Bu API'ye (Uygulama Programı Arayüzü) OpenStep olarak adlandırıldı. Bundan sonra, GNU büyük bir projeye girişti, GNUstep, http://www.gnustep.org/, to build a
free OpenStep gerçeklemesi. Bu makale henüz bitmemiş olan bu büyük çalışmayı sunmaya yöneliktir. 

ArticleIllustration:[This is the title picture for your article]

ArticleBody:[The article body]

Başlarken...

GNUstep için, başka büyük bir serbest ürüne ihtiyacınız vardır: Window Maker . Window Maker NeXT'in pencere yöneticisidir. Eğer henüz bununla ilgili yeterli bilgiye sahip değilseniz,
başka bir makaleye göz atabilirsiniz.. Bu yazı hazırlanırken Window Maker'ın son sürümü 0.64.0 idi.Bu pencere yöneticisi aslında GNUstep projesinin bir parçasıdır, ve eğer isterseniz buna
ulaşabilirsiniz.http://www.windowmaker.org/. Window Maker neredeyse ticari ya da serbest her türlü Unix ortamında çalışabilmektedir. Bu GNUstep'e göre biraz farklıydı.
NetBSD, FreeBSD, OpenBSD gibi her türlü Linux çeşidinde koşabilecekti üzerinde koştuğu OS çeşidine göre daha fazla ya da daha az kararlıydı. Ticari Unix'leri de dikkate alacak şekilde
Solaris, Irix... gibi Unix'lerde de çalışabilecekti. Bir kere ekranınız NeXTStep gibi görünürse, GNUstep sanal doku yöresine gidip ihtiyacınız olan herşeye ulaşabilirsiniz.
Ve neye ihtiyacınız var? Açıkçası, nesnel bir C derleyicisi (hatırlayın, neyneye dayalı bir yapıya sahipti). gcc 2.8 ve üstü işinizi görecektir. Önerilen ise libobjc'dir.
Derleme için gerekli araçlar dışında, GNUstep 'in marifetlerine de ihtiyacınız olacaktır: bu temel kütüphane, en az, grafik kullanıcı arabirimi kütüphanesi, X11 backend (xgps veya xdps)...
ve diğerleri. Bunlardan bir çoğunu indirebilirsiniz, bu size bağlı: seçiminizi yapmak için listeyi inceleyebilirsiniz. Örneğin, Arayüz Yapıcı olarak Gorm'u alabilirsiniz,ve tabii ki, örnekler,
veya kullanıcıların uygulamalarına da ulaşmak mümkün. 

Kurarken...

Sadece indirdiklerinizi derlemek zorundasınız! Aslında, OKUBENı'leri ve KUR'ları okumalısınız. Ayrıca GNUstep'in NASIL YAPILIR (HOWTO) dökümanı da, okumanızı önerceklerimiz arasında.
Derlemeden sonra işinizin çoğu çevresel değişkenleri ve programları düşünmek, ve başlatmak. (örneğin, gdnc adlı motor).
Önceden de belirtildiği gibi, iki farklı backend'e sahip olabilirsiniz : Biri X ve diğeri dps, Display PostScript in kısaltılmışı olan serbest bir program. Bu sonuncusu daha iyi sonuçlar
verecektir fakat geliştirilme açısından X 'ten geride kalmıştır. Sizin OS 'unuza göre, çevresel değişkenleri tanımlarken dosya yollarını denetleyin. En azından, GNUSTEP_SYSTEM_ROOT değişkenini
tanımlamanız gerekecektir ve çeşitli programlara ve script'lere olan yolları da belirtmeniz gerekebilir. Bu kısmı bitirdiğinizde GNUstep ile "oynayabilirsiniz". 

Örnekler

GNUstep sanal doku yöresinde bir çok örnek vardır, kullanıcı uygulamalrı kısmında veya indir kısmında bunlar görülebilir. Aslında, eğer NeXTStep veya OpenStep hakkında bir bilginiz yoksa
bu örnekleri incelemek GNUStep ile haşır neşir olmak için en iyi yoldur. Bunların çoğu çalışan örneklerdir ve size temeldeki yapının mantığını anlamanızda önemli bir katkıda bulunacaklardır.
Program kodunu incelemek size nesnel C ile ilgili bir çok şey öğretecektir. C'yi bilen biri için nesnel C 'yi öğrenmek biraz daha kolaydır ve her halde C++ 'ı öğrenmekten çok daha kolaydır.
(tabii, bu sadece benim düşüncem). Bu örnekler içinde, en iyilerinden biri "font panel" dir. Gerçekten orjinaline çok benzemektedir. Sırası gelmişken , bu makalede karşılaştırma yapabilmeniz
için GNUstep ve NeXTStep'e ait bazı ekran görüntülerine yer verilmiştir, ılk örnek aşağıda verilmiştir : GNUstep'in "font panel"i ve NeXTStep'in "font paneli". 

fontp.jpg fontpn.jpg

Bir başka ilginç örnek ise "Edit app". Henüz tam olarak çalışmamaktadır ama orjinaline çok yakın olan bu örnek de çok iyi bir çalışmadır.
En iyi öğretici örneklerden biri ise GSTest'tir. GSTest'i çalıştırmak size pencereler düğmeler kayan barlarla ilgili anlamak istediğiniz herşeyi öğrenmenizi sağlayacaktır.
Bu aslında herşeyi bir arada toplayan bir örnek! Programın koduna şöyle bir bakmanız kitaptan öğrenmeye çalışmaktan daha iyi olacaktır.
Tabii ki,bu diğer örneklerin çok ilgisiz olduğu anlamına gelmiyor: onların da faydası olacaktır!
Açıkçası, bir çok uygulamanın yazarı olan, Nicola Pero, gayet iyi iş çıkarmıştır.
Yine Nicola'nın yazdığı güzel örneklerden biri, Finger'dır. Parmak için bir grafik kullanıcı arayüzüdür.(tahmin edebildiniz mi?), ping, traceroute. ışte Finger: 

finger.jpg

Aslında bunu gibi birçok uygulamaya değinebiliriz ama gerisini de okuyucunun merakına burakalım.

Büyük Silahlar

NeXTStep ile bize görünen temel devrim Interface Builder'dır. İsminden de anlaşılacağı gibi , uygulamalarınız için grafik kullanıcı arabirimi yaratmanızı sağlayan bir araçtır.
Fakat, nasıl bir araç! Hatırlarsanız, 80'lerin sonunda: bu sadece inanılmazdı!
Neden bu bir devrimdi: çünkü 5 dakikadan kısa bir süre içinde her türlü aksesuarıyla birlikte bir pencere hazırlamanızı olanaklı kılıyordu.!
Bu menüsüyle, düğmeleriyle kayan barlarıyla ve diğer aksesuarlarıyla sadece nesneleri paletten çekip taşıyarak oluşturulabilen bir pencere.
Hatta bu nesneleri diğer pencerelere, menülere, benzer başka nesnelere bağlamak da olanaklıydı. Olabilecek en az program kodu oluşturuluyordu ve gerisini tamamlamak size kalıyordu.
Bir kere yeretılan bu nesneler herhangi bir yerde tekrar kullanılabiliyordu.
O zamanlar inanılmazdı!
Bundan sonra, bir çok büyük yazılım editörü aynısını yapmaya çalışmışlardı: benim düşünceme göre, hiç bir zaman orijinalinin seviyesine ulaşamadılar.
Ve şimdi, tamamen sebest bir şekilde böyle bir aracınız olabilir! Gorm (GNUstep Graphics Object Relationship Modeler) adındaki bu aracın yazarı Richard Frith-Macdonald'dır.
Gorm sadece CVS olarak GNUstep sanal doku yöresinden elde edilebilir. Bu yazının hazırlandığı sırada sürümü ise 0.1 olan bu araç bununla birlikte bir çok fonksiyonu henüz tam olmayan
bu araçla yine de çalışılabilmektedir. Interface Builder' ı keşfetmek için bakın ve hissedin,Gorm doğru araçtır.
ışte çok basit (ve saçma) bir örnek NeXTStep'teki eşiyle birlikte verilmiştir.

gorm.jpg ib.jpg

Daha önce söylediğimiz gibi, bu araç ve onun modeli Interface Builder bir uygulamanın grafik arayüzünü yaratmak için kullanılır.Tabii ki, bu uygulamanın çalışması için yeterli değildir.
Yaratılan kodu tamamlamanız gerekir ve değişik kaynakları yönetebilmeniz gerekmektedir. En son, çalışmanızı derlemeniz gerekecektir.
şimdi ikinci büyük araç olan NextStep altındaki Project Builder'a ve GNUstep altındaki ProjectCenter 'a geldi sıra. Henüz sürüm numarası 0.2 olan ProjectCenter ın yaratıcısı
Philippe C.D Robert 'dır. Bir kez daha belirtelim, bu araç sürüm numarasına rağmen çalışan bir araçtır. NeXTStep altındaki Project Builder ile projenizi oluşturabilir ve tamamlayabilirsiniz.
Aslında yapılması gereken bir çok iş varken, bu aracı indirmek de harcayacağınız çabaya değecek bir iştir.
Aşağıda "baba"sıyla karşılaştırıldığında ProjectCenter'ın nasıl çalıştığı görülmektedir. 

prcent.jpg pb.jpg

Eğer NeXTStep veya OpenStep biliyorsanız bu iki aracı kullanmak daha kolay olacaktır. Eğer daha önce hiç kullanmadıysanız, arkalarındaki çalışma prensbini bulmanız gerekecektir.
Bu kouyla ilgili önerilebilecek bir çok yazı bulunmaktadır. (zorunlu okuma anlamında değil). Fakat bir kere nasıl çalıştığını anladığınızda... onsuz yapamayacaksınız! Bu nedenle sizi uyarıyorum.
Ayrıca GWorkspace veya GSBench gibi diğer büyük devrimlere de değinmemiz gerekiyor. GNU 3DKit da bir başka muhteşem yazılım parçasıdır. OpenGL üzerinde çalışmakmak için tasarlanmış bir API olan
GNU 3DKit'ye diğer uygulamalarla birlikte http://www.nice.ch/~phip/softcorner.html ulaşabilirsiniz.

Faydaları

Burada bahsettiğimiz araçlar uygulamaları "OpenStep"den "GNUstep"e taşımak için tasarlanmıştır. Ancak bunun çok ötesinde "Mac OS X" uygulamalarını da taşıyabilmektedir. Bu çok önemli bir
noktaydı ve gelişmeler devam etti. "OpenStepGNUConverter" adında bir araç, "PBProject (Project Builder)"leri "GNUstep Makefile"a dönüştürmeyi sağladı. Yani "OpenStep" projelerini mesela
Linux'unuzda derleme imkanınız doğdu. Böyle bir projeyi derlemek için "nfmake" adlı başka bir araca da ihtiyaç var.
"nib2gmodel" aracı da, "nib (Interface BUilder ile oluşturulan dosyalar)" dosyalarını "GNUstep" altındaki eşdeğeri "gmodel"a dönüştürme imkanı sağladı.
Son olarak bir veritabanı kütüphanesinden fazlası olan "gstep-db" ile Oracle'a ulaşabilirsiniz.
NeXTStep ve OpenStep Sybase ve Oracle için adaptörler sağladı, öyleki bu editörlerden veritabanını sorgulamak için bir arayüz vardı. Oysa GNUstep aynı şeyleri ücretsiz sunuyor ( NeXTStep
OpenStep'de çok pahalı olan geliştirme ortamına, GNUstep'te "Enterprise Object Foundation" adı altında ücretsiz sahip olabiliyorsunuz - Ayrıca bunun gibi pek çok daha örnek mevcut).
Bu araçlara GNUstep sanal yöre dokusundan ulaşılabilinir.
Sadece eski bir NeXT makinaya sahip olduğumdan ve sabırsızlıkla Mac OS X'i beklediğimden, bahsettiğim araçların hepsini test etme fırsatım olmadı. Ancak GNU 'ya 15 yıldan beri güveniyorum ve
bunun değişeceğini de sanmıyorum! şunu rahatlıkla söyleyebilirim ki, tüm bahsettiklerim güvenle çalışacaktır. Yine de bir kaç ay içerisinde hepsini test edeceğim...

Dökümantasyon

Eğer bu müthiş sistemde çalışmak istiyorsanız, daha önce de belirttiğim gibi bir çok dökümantasyona ulaşabilirsiniz. Her ne kadar yapı basitte olsa, nasıl işlediğine dair genel bir bilginizin
olması gerekmekte. GNUstep sanal doku yöresinden bir çok faydalı bağlantı bulabilirsiniz. Bunlardan bazıları özel dikkate değerdir.
GNUstep kütüphanesi ,nesnel C kaynakları, kurulum komutları, sıkça sorulan sorular gibi genel GNUstep dökümantasyonu için "http://www.gnustep.org/resources/documentation.html" sanal doku yöresini ziyaret edebilirsiniz.
Eğitim dökümanları için, Nicola'nın da favori sanal doku yöresi olan "http://www.gnustep.it/nicola/Tutorials" yi ziyaret etmenizi öneriyorum.
GNUstep'e yeni başlayanlar için de "http://www.gnustep.net/" sanal doku yöresini öneriyoruz.

NeXT Nedir?

NeXt'in tuhaf hikayesi Mac OS X adı altında devam ediyor. Umarız bu sefer başarılı olur. 10 yıldan eski bir işletim sisteminin yeni kariyeri hakkında ne düşünüyorsunuz ?
Muhtemelen yenilerinden daha iyi olan birçok uygulama tekrardan derlenecek. Mac OS X ve NeXTStep 'in UNIX sistemleri olduğunu da unutmamak gerekiyor. Yani özellikle ücretsiz Unix sistemlerinin sahip olduğu tonlarca uygulama
potansiyel olarak GNUstep için hazır durumda.
Bu bir çeşit hayal bile olsa, istediğimiz yazılımı seçme şansımız artık olacak. Malesef bu madalyonun bir karanlık bir de aydınlık yüzü var....

Aydınlık Yüzü

Örnek olarak, kullandığımız işletim sistemlerinde sanal doku tarayıcıları açısından fazla bir çeşitlilik sunmamaktadır. Tarayıcılar ya Netscape(ve türevleri) ya da Explorer olmaktadır ki bunlar da güvenlik açığı gibi
ciddi eksiklikler bulunmaktadır. Mac OS X'de "OmniWeb" adlı mükemmel bir tarayıcı bulunmaktadır. Bu tarayıcıyı NeXTStep altında kullanmakta ayrı bir zevktir. Unix veya M$ işletim sistemlerinden hangisini kulanıyor
olursanız olun bu günümüzün düşlenen tarayıcısıdır. Bu kadar ince sanal doku tarayıcıları ancak alternatif işletim sistemleri altında bulunmaktadır: BEOS altındaki NetPositive, AmigaOS altındaki AWeb gibi. Opera çekici
gözükmesine rağmen maalesef benbi ikna edememiştir. Burada bahsetmek istediğim şu ki, Mac OS X ve GNUstep günümüzde kullandıklarımızdan çok daha iyi yazılım araçları sağlayacaklar. NeXTStep ile bundan 10 yıl önce
bu tür araçlardan yararlanmıştık.
Tabiki bu sadece sanal doku tarayıcıları için değil diğer yazılım araçları için de geçerli.
"http://www.omnigroup.com/" sanal doku yöresinden bunlar gibi bir çok yazılım araçlarına erişebilirsiniz.
GNUstep ile Mac OS X arasındaki ana fark X-Window'un GNUstep te kullanılmasından kaynaklanmaktadır. NeXTStep hakkındaki en büyük şikayette zaten bu idi.
GNUstep'i önemli kılan şey bahsettiğim tipteki uygulamaların X-Window altında kullanılabilmesidir.

Karanlık Yüzü

Bu konuda en büyük endişemiz Explorer ve aynı firmanın ürettiği yazılımların Mac OS X 'e sızabilme tehlikesidir. Bu M$ yazılımlarının ücretsiz Unix dünyasına saldırma olasılığıdır.
Mac OS X altında geliştirilen uygulamaları görmek için "http://www.apple.com/macosx/applications/ " sanal doku yöresini ziyaret edebilirsiniz.
şimdilik yukarıda bahsettiğimiz şeyin şüpheci bir yaklaşım olduğunu varsayalım: bekleyip göreceğiz !!

Bu noktada unutulmaması gereken bir diğer şey de, GNUstep'in geliştirme için dizayn edilmiş olmasıdır. Daha büyük ilerlemeler kaydedildiğinde NeXTStep'te olduğu gibi uygulama geliştirmek çok basit olacaktır.
GNUstep küçük bir çalışma çerçevesinden çok ötede, birleşmiş geliştirme ortamıdır (IDE). Burada en önemli noktalardan biride uygulamaların taşınabilir olmasıdır, örneğin Mac OS X'e.
Bu arada Apple'ın açık kaynaklarıyla ilgili Darwin More'ın katkılarıyla "http://www.opensource.apple.com//" unutmayalım.
Tabiki GNUstep hakkında soylenebilecek pek çok şey daha var, ancak onlar bu makalenin kapsamını aşmakta. Burada amaç bu muhteşem ürünü denemenizi ve hatta bu projenin bir parçası olmanızı sağlamaktı.

Ve Hayat Devam Ediyor

En büyük zevklerimden biri olan ücretsiz yazılımlarla ilgilenmek, büyük ticari yazılımlardaki hataları gidermeye çalışmamdan kaynaklanıyor. NeXTStep benim için gerçek bir devrimdi. Ben 10 yaşındaki
bir iş istasyonuna sahip olmaktan mutluyum ve onun tozlanmadığını savunuyorum. Çünkü 68040/25 Mhz'lik işlemcisi dışında onu neredeyse her gün kullanıyorum. GNUstep ve Window Maker'ı hazırlayanlara
böylesine güzel işler çıkardıkları için teşekkür ediyorum.
NeXTStep'in en inanılmaz özelliklerinden biri de birçok üreticinin onu klonlamaya çalışmış olması ama ürettikleri ürünlerinin hep hatalı olmasıdır. şimdi Redmond Krallığına bir atıfta bulunalım, W95
pencerelerini hatırlıyor musunuz? NeXTStep'in ekran görüntülerine bakın, NeXTStep ilk olarak Amerika'da 1987 ler de ve Avrupa'da 1990 larda kullanıldı. Kolayca anlaşılabileceği gibi M$'ın benzer ürünlerinden en
az 5 yıl önce NeXTStep'te vardı. Hatta iki dizin arasında uçuşan şekiller ilk Seattle yakınlarında, 1991 yılında keşfedildi ve NeXTStep 2.1 ile sunuldu. İlk başlarda bunu Redmond'da kopyalamadılar ve daha
iyisini yaparak NeXT' insanları satın aldılar. Pek adil görünmüyor değil mi?
GNU ücretsiz yazılım söz konusu olduğunda tek kaynaktır ve bunu hakeder. Tüm dünya GNU ya sahiptir ve tüm işletim sistemleri onun yaptığı çalışmlardan faydalanır. İşletim sistemi ne olursa olsun GNU'nun derleyicileri
yapılanların içinde en iyileridir. Bu diğer yazılım araçları içinde geçerlidir. GNU'nun projeleri de, yazılım araçları kadar müthiştir ve GNUstep'te bunlardan biri. Bu arada NeXTStep bir GNU dizini var...
Siz de benim gibi ücretli ya da ücretsiz Unix masa üstü ortamından tam tatminkar değilseniz GNUstep'i deneyin, seveceksiniz ! Dahası bir daha onsuz çalışamayacaksınız.
Eğlenin!
Ne güzel bir dönemde yaşıyoruz!