geliştiricileri neden özgür bırakmalısınız?

resist

Tüm geliştiricilerin aşina olduğu şekilde neredeyse tüm projelerimizde bir veya birden fazla servis ve uygulama arayüzü (API) kullanıyoruz.. ve farklı! – yani daha pratik, hızlı, yeni.. – bir seçenek ortaya çıkana kadar bu metodları kullanarak projeler üretmeye devam edeceğiz.

Uzun bir süredir – özellikle ülkemizde geliştirilen projelerde – bir araya geldiğimiz tüm arkadaşlarla mümkün olduğunca ekosistemde API desteğinin olması en azından bazı parçaların kod örneklerinin paylaşılması veya beta sürüm erişimleri yada prototip testleri için uygun geliştirici arayüzlerinin sağlanması konusunda hem fikiriz.

Bu yüzden bir zamanlar yazdığı kodları en samimi dostlarına bile göstermeye çekinenler yerine artık blogunda github linklerini paylaşan, yazılımcının başucu sitesi stackoverflow‘da başlık açan, facebook ve google gruplarında projelerini tanıtmaya çalışan arkadaşlara rastlamak artık çok olağan bir durum.

Temel amaç ise geliştirdiği mantığı veya modeli alıp birebir kullanmak yerine – ki kullanınca oldukça mutlu olan bir kesim de var – üzerine farklı kurgular ekleyerek yararlandığı kaynakları paylaşan arkadaşların çoğalması.

Tabii ki bu paylaşımcı topluluğa kucak açan ve sınırsız destekleyen firmalara da teşekkür etmek lazım. Çok başarılı ve sınırsız destek veren örnek yapılar da var. Yanlız şu aralar bazı değişimler de gözden kaçmıyor. Ne gibi mi?

Son günlerde popüler bir ağın API servislerinin biraz keyfekeder hale sokulması gündeme geldi. Bu yüzden önceden tanımlı anahtarların (key) recall edilirken kullanım sebebinin de zorunlu olarak iletilmesi, eğer uygun görülürse! tekrar servislerin kullanıma açılması gibi bir durum ile karşılaşılıyor. Tabii ki güncellenen kullanım şartları ve firmanın politikası gereği bunu yapmayı kendilerince – üye verilerini zamanla öz sermaye gibi görme içgüdüsü nedeniyle – gayet doğal bir hak olarak görüp, kişisel bilgilerin korunması ve güvenlik gibi ek durumlar öne sürülerek geliştiricilerin bu şartlar altında servisleri kullanması zorunlu kılınıyor.

Bahsi geçen ağ, bir süredir etkileşimleri belirli limitlerle sınırlandırıp API desteği vermeyerek yada hesapları iptal ederek kendi belirlediği modeller dışında kullanımları kontrol altında tutup gittiği yere kadar popüleritesini sürdürmeyi tercih ediyor.

Acaba kısıtlamalar neyi değiştirir?

Sonuçta API desteği, geliştiricilere, kod kalitesi ve azlığı – haliyle hız, uygun biçime (format) dönüştürme ve analiz – ölçümleme yeteneği katıyor. Eğer bu model geliştiricinin hareketlerini kısıtlayarak projenin yapısının kollandığı bir yapıya dönüşmeye başlarsa acaba geliştiriciler bu detaylarla uğraşmak yerine farklı yöntemler ile aynı sonuca ulaşabilir mi, evet ulaşır!

Genelde projeler API desteği ile başlamadığı için her geliştiricinin de önceden aşina olduğu bir veri toplama ve kullanma yeteneği vardır. Sonuçta açık kaynak kodlu ekosistem sayesinde bilgisi olmayan bir çok yazılımcı benzer sonuçlara çok kısa sürede varabilir*.

Popüler ağların stratejilerini tartışmak yerine benzer durumlarla karşılaşılınca çözüme ulaşmak adına altını çizmek gerekirse: uzun zamandır popüler olan otomasyon yazılımları(bot) ile uğraşanlar herhangi bir API sınırlandırmasına takılmadan kolaylıkla aynı sonuçlara ulaşabilir ve böylece istatistiklerin dışında tüm verilere sınırsızca ulaşmış olur.

Demek ki engellere göre çözümler üreterek aynı sonuçlara ulaşan birileri her zaman bulunuyor (tıpkı bizim yaptığımız gibi). Fakat bu tarz çözümler sisteme ve projenin kendisine ne katkı sağlar orası ayrı konu. Başlangıcında geliştiricileri el üstünde tutarak sonradan kuralları değiştiren yöneticilere ufak bir noktayı hatırlatmak gerekirse; geliştiricileri her zaman özgür bırakmalısınız çünkü projeleri hayata geçiren ve devam ettiren zaten onlar.

iyi bayramlar..

*Gelişmiş tüm dillerde scraping fonksiyonları bulunmakla birlikte bu konuda en çok tercih edilen diller arasında ilk sırada Python bulunuyor.