Yeni Üye Kaydı  |  Kullanıcı adını veya şifreni mi unuttun?
PORT25, SOURCEFORGE, CodePlex
Son Üye: emrefc   
      
Tuna Toksöz ile Açık Kaynaklı Yazılımları Konuştuk
  Yazar : berkesokhan   
Eklenme Tarihi : 28 Haziran 2010 Pazartesi
Okunma sayısı : 1715
Ortalama Puan : 10
Puan vermek için üye girişi yapınız.

Özet
Castle ve NHibernate geliştiricilerinden Tuna Toksöz ile genel olarak açık kaynaklı yazılımlar ve güncel olaylar hakkında söyleştik.
 
Röportaj

Berke Sökhan - Selamlar Tuna, bize kendinden biraz bahseder misin?


Tuna Toksöz - Tam zamanlı öğrenciyim. Boğaziçi Bilgisayar Mühendisliğini bitirdim. Önümüzdeki seneden itibaren MIT Aeronautics and Astronautics bölümünde insansız yer/hava araçları üzerine yüksek lisans yapacağım. Başlıca iki açık kaynaklı projenin peşinden koşturuyorum: NHibernate ve Castle Project. NHibernate'de, Criteria API'yi kullanarak LINQ Provider yazımıyla uğraşıyordum fakat şimdi genel geliştirmeye yöneldim. Castle'daki ana işim de yine NHibernate Facility ile ilgili. Onun dışında zaman zaman faydalı olacağını düşündüğüm kısımları da geliştiriyorum.



Berke - Açık kaynaklı yazılımlar ile nasıl tanıştın? Açık kaynaklı yazılımları ve bileşenleri hangi amaçlar için nerelerde kullanıyorsun?

Tuna - Açık kaynaklı yazılımla çok çok önceden tanışık olmama rağmen esas tanışmam ALT.NET yoldaşım Doğa Öztüzün ile oldu diyebilirim. Öncesinde Db4o projesi, sonrasında NHibernate ve Castle projelerinin kodlarını inceleyerek başladım. O zamanlar yazılımın nasıl daha iyi olabileceği üstüne kafa patlatıyordum.



Berke -
İçinde bulunduğun bu projelerde süreçlerin nasıl ilerlediğinden özet olarak bahsedebilir misin?

Tuna - Projelerde genelde "release cycle"lar bulunur. Benim içinde bulunduğum projelerde bu cycle'lar biraz daha gevşek. Proje liderine bakıyor daha çok. NHibernate sık sık sürüm çıkarken, Castle sürümleri daha uzun sürebiliyor mesela. Yeni özellik eklenmesi de committer'lara bakıyor. Committer faydalı olacağını düşündüğü şeyi, eğer büyük bir şey değilse ve projenin bütününü bozmuyorsa, kimseye danışmadan ekleyebilir. Eğer büyük bir özellikse veya özellikle "Breaking Change" dediğimiz bir şeyse, ilgili projenin development mail grubunda tartışma başlatır ve oradan görüş alır. Bugların tutulduğu issue tracker denen bir liste olur, bu tüm kullanıcılara açıktır ve kullanıcı karşılaştığı bugları bildirir.
Bugları düzgün şekilde bildirebilmek burada önemli, çünkü bug tanımı yaparken eksik bilgi verilmesi o bug'ın çözülmeyeceği anlamına geliyor.


Berke - Yazılım geliştiricilerin açık kaynaklı yazılım geliştirilen bir projeye dahil olması için ne yapması gerekir?

Tuna - Projenin büyüklüğüne göre bir miktar patch göndermek yeterli. Bu sayı genelde 10 civarı oluyor. Bu patch'ler elbette ki yazım hatalarını düzelten patch'ler değil :)


Berke - Açık kaynaklı hali hazırda devam eden projelere katılmak için yazılım geliştiricilerin öğrenmesi gereken özellikler/beceriler nelerdir? Sen, çalıştığın projelerde yazılım geliştirmek için ne gibi birikimlere ihtiyaç duydun?

Tuna - Ben bu projelerde geliştirmek için çok birikime ihtiyaç duymadım açıkçası. Daha çok bu projeler beni geliştirdi diyebilirim. Projeleri incelemekteki amacım da buydu, daha iyiyi öğrenebilmek. Kod tabanını öğrendikçe daha güzel nasıl yapılır neler eksik görebiliyorsunuz. Fakat projelerde belli bir kalite standardı var bunu tutturabilmek önemli. Örneğin SOLID principles ALT.NET projelerinin çoğunda sıkı sıkıya kullanılan bir kavram ve bunu özümsemiş olmak gerekiyor.


Berke - Açık kaynaklı yazılımlar hakkında takip ettiğin kaynaklar ve bloglar nelerdir?

Tuna - Bana açık kaynağı sevdiren saydıran Oren Eini (aka Ayende Rahien) 'nin blogu, yakından takip ettiğim ve hatta yazarlık yaptığım Codebetter ile devlicio.us ailesi ve LosTechies
Bu 4'ü benim için en önemli kaynaklar. Onun dışında twitter'da takip ettiğim ALT.NET insanları var. twitter'ı bir çok insanın aksine, geyik amacıyla kullanmazsanız faydasını inanılmaz görürsünüz.




Berke - Türkiye'de açık kaynaklı yazılımlar konusundaki faaliyet ve çabaları yeterli buluyor musun? Bulmuyorsan sence ne gibi iyileştirmeler yapılabilir?

Tuna - Türkiye'de (ve dünyada) Java toplulukları açık kaynak konusunda daha iyi bir konumda. PrimeFaces gibi dünyada belli bir yere gelmiş projeler var ve bunlarla ilgili güzel tartışmalar da olabiliyor. Fakat .NET konusunda düzgün bir topluluk henüz oluşmadı. ALT.NET Türkiye'yi biraz da bu amaçla kurduk. Açık kaynaklı yazılımı da karar mekanizmalarında değerlendiren, iyi yazılımı hedefleyen insanları bir araya toplamaya çalıştık.


Berke - Açık kaynaklı yazılımları ve açık kaynaklı uygulama geliştirmeyi uzun vadede Türkiye ve dünyada ne gibi gelişmeler bekliyor?

Tuna - Gelecek olumlu olacak gibi. Microsoft biraz geç de kalsa bu konuda belli çabalar gösteriyor. Gerek Codeplex gerek ASP.NET MVC, MEF gibi projeler bunların en güzel örneği. Onun dışında sanırım .NET platformu dışında çoğu platformda açık kaynak daha hakim.


Berke -
Son olarak dahil olmak istediğin ancak vakitsizlik gibi kronik sebepler yüzünden ilgilenemediğin açık kaynaklı yazılım projesi var mı, ayrıca başlatmak istediğin bir açık kaynaklı yazılım projesi var mı?

Tuna - Var. Şu an yüksek lisans yaparken de kullanacağımı düşündüğüm Player/Stage/Gazebo projelerine girmek istiyorum. Bunların dışında iki .NET projesi var: Biri RavenDB, diğeri FubuMVC. Fakat bu kadar projeyi birarada götürebilmek için Ayende olmak gerekiyor sanırım. Onun dışında bitirmek istediğim, senin de zaman zaman dalga geçtiğin Blogsharp var :)


Güncel Haber Yorumları

Berke - Geçen günlerde .NET tabanlı popüler açık kaynaklı yazılım geliştirme kütüphanelerinin son sürümlerini indirmek için kullanılan HornGet projesinin sona ereceği haberleri geliştirici e-posta listesinde yer aldı. Projenin sonlanmasıyla ilgili olarak ALT.NET New York'tan Steve Bohlen, projenin başarısız olmasına rağmen .NET açık kaynaklı yazılım dünyasının bu tür bir araca ihtiyaç duyduğunun anlaşılması açısından projenin başarılı olduğunu söyledi. Senin fikrin nedir, Microsoft platformlarında açık kaynak kodlu geliştirilen yazılımların Ruby'de bulunan Gem tadında bir kurulum sistemine ihtiyacı var mıdır?

Tuna - Gerek olduğunu düşünüyorum. Ubuntu kullanırken en büyük kolaylığın apt-get olduğunu gördüm. Özellikle açık kaynaklı projelerde dependency'ler önemli bir sorun haline geliyor. Projelerden biri log4net vX ile derlenmişken diğeri vY ile derleniyor ve bu iki projeyi kullanmak için koddan sizin kendiniz derlemeniz gerekiyor. HornGet'in yaptığı şey güncel kodları çekip bunların hepsini topluca derleyerek dependency sorununu kaldırmak. HornGet'in başarısız olma sebepleri arasında projelerin güncel build descriptor'leri sağlamakta geç kalması oldu aslında. Örneğin Castle Project Github'a geçtikten sonra ilgili tanımlar HornGet'te güncellenmediği için Castle ve onun bağlı olduğu bir çok proje derlenemedi. Şu an Sebastien Lambla yanılmıyorsam adı OpenWrap olan bir proje üstünde çalışıyor. Bakalım önümüzdeki günler neler gösterecek.



Berke - Yine HornGet projesinin geliştiricilerinden Paul Cowan, açık kaynaklı yazılım yapmak isteyenlerin hali hazırdaki projelere geliştirmelerinin mevcut projelerin (daha iyi tasarlanmış olduğu iddia edilen) kopyalarını çıkarmaktan daha önemli olduğunu bir çok kere blogunda savundu ve Karl Seguin, Jeremy Miller ve Ayende Rahien gibi .NET açık kaynaklı yazılım cemiyetinde iyi bilinen isimleri eleştirdi (ve doğal olarak tepki almıştı). Sen bu argümana katılıyor musun?

Tuna - Değişir. Çok büyük bir kod tabanından bahsediyorsak kodda köklü bir değişiklik yapmak iki şey gerektirir. Koda tamamen hakim olabilmek, ve yapılacak değişikliklerin son kullanıcıya olabildiğince az yansımasını sağlamak. NHibernate'den örnek verilecek olursa, NHibernate belki de .NET dünyasındaki en karmaşık framework (hem yaptığı iş olarak hem de kod tabanı olarak). Bunda değişiklik yapabilmek için kod tabanını anlamak gerek ki bunun için uzun uğraşlar vermeniz gerekiyor. Diğer yandan sıfırdan yazmak ise önemli bir zaman alacak. Bu ikisinin tradeoff'unu yapabilmek önemli.


Berke -
Paylaşımların ve değerli zamanın için teşekkür ederiz.


Tuna - Rica ederim.


 
Linkler
Link bulunamadı.
 
Dosyalar
Dosya bulunamadı.
 
Paylaşım
 
Yorumlar

Yorum ekleyebilmek için üye olmalısınız.