Ana içeriğe atla

Katılımcı bir dünya

Bugün Devveri.com da okuduğum “data driven kavramı ve II.faz” yazısı, yazılım ile çözüm üretme anlayışındaki değişimi bir yönü ile ele alıyor. Ben de başka bir yönü ile aynı konuya bakıyorum ve Ayhan Demirci’nin çizdiği resmi biraz daha tamamladığımı düşünüyorum. Ayhan yazıda SAS ile ilgili örnekler verdiği için, ben de benzer şekilde ilerleyeceğim.

İş dünyasının problem çözmede kullandığı temel araçlar olan bilgisayarların mimarisi 1990 lı yılların sonlarından itibaren inanılmaz bir değişim geçirdi. Sıradan bilgisayarların bile çok çekirdekli bir mimariye sahip olabilmesi, konvansiyonel programlama ile ulaşılan çözümlerin sonunu getirdi. Sebep basitti, iki çekirdek bir çekirdekten üstündü ve normal programlama dilleri ile üretilen çözümler tek çekirdeği kullanıyordu. Java gibi diller thread ler vasıtası ile paralel programlama  yapmayı sağlayarak diğer çekirdekleri de kullanmaya fırsat tanıyorlardı. Ne var ki çok zor bir programlama şekli olduğu için çok az programcının yetenekleri arasındaydı. Dahası, birden fazla bilgisayarda çalışsın diye geliştirme yapan grid programcıların sayısı bundan da azdı.

Bu anlamda veri işlemede başı çeken şirketlerin paralellik için yaptıkları gayretlerin çoğu, kullanıcının paralellikten yararlanmasını sağlayacak bazı sınırlı geliştirmelerdir. SAS ın SPDS e geçişi, MP işlem özelliği bunlardandır. Threadlerin sıradan SAS programlama yapan bir kullanıcının hizmetine sunulması SMP ve MPP makinalar ile DS2 ile oldu. ' The DS2 programming language in SAS® 9.4 simplifies and speeds data preparation with user-defined methods, storing methods and attributes in shareable packages, and threaded execution on multi-core symmetric multiprocessing (SMP) and massively parallel processing (MPP) machines'. Bazı gayretler ise sıradan kullanıcı için hiç binmediği çok pahalı spor arabalar gibi bir etki bıraktı. Büyük iş zekası şirketlerinin zor problemlere çözüm önerileri daha güçlü bir makinadan ve daha pahalı bir üst versiyondan geçerken, basit raporlama ve dashboard lar dışında veri işleme, öğlenleri pahalı restoranlarda yemek yiyebilen ayrıcalıklı bir çalışanlar grubu için mümkündü.

İnsan aklının farklı bakma yeteneğine hayranlık duymamak mümkün değil. Sadece bu yeteneği sayesinde birkaç yıl içerisinde paralel programlamayı sıradan bir programcının yapabileceği bir iş haline getirdi. Ama bu süreçte açık kaynak kodla geliştirmenin vazgeçilmezlerden biri haline geldiğini de gözlemledik. Bunun temel sebebi, birden çok makinada yani dağıtık paralel çalışan bir mimaride yazılan ürünlerin geliştirme, test ve dokümantasyon işlerinin oldukça karmaşık ve zorlu olması ve dünyanın en büyük firmalarının bile yüklenmek istemedikleri bir maliyeti olmasıydı. Thread-safe bir uygulama geliştirmek başlı başına zor bir işti. Buna bir de birden çok makinada çalışma ve bağlı olarak scalibility ve high availibility özelliği eklenince, bu zorlukları yenmek üzere yeni programlama dilleri ortaya çıktı. Erlang ve sonrasında ondan ilham alınarak geliştirilen ve Java dünyasından çıkan Scala thread-safe paralel uygulamaları normal bir programcının yazabilmesini sağlamak için geliştirilen dillere örnektirler. Hadoop eko sisteminin yeni yıldızı Apache Spark ın neden Scala da yazıldığını soran bir kullanıcıya Spark ın babası diyebileceğimiz Matei Zaharia şöyle cevap veriyor.

“Quite a few people ask this question and the answer is pretty simple. When we started Spark, we had two goals — we wanted to work with the Hadoop ecosystem, which is JVM-based, and we wanted a concise programming interface similar to Microsoft’s DryadLINQ (the first language-integrated big data framework I know of, that begat things like FlumeJava and Crunch). On the JVM, the only language that would offer that kind of API was Scala, due to its ability to capture functions and ship them across the network. Scala’s static typing also made it much easier to control performance compared to, say, Jython or Groovy.”

Buna bu ürünlerin her çağdaş üründe olan tüketilip atılma döngüsünün eskisinden çok daha kısa olmasını da katarsak işin mantığını kavrayabiliriz. Twitter firmasının geliştirmesine önce destek olduğu sonrasında saflarına katıp kullandığı Apache Storm un 2010 da başlayan geliştirme yolculuğu güzel bir örnek sunuyor. Twitter ın Heron u Storm un yerine koyduğunu açıklaması ile dört yıllık bir sürede kullanma ömrü dolmuş oluyor.

Bu nedenle artık büyük firmalar bazı ürünleri veya hizmetleri hiç tanımadıkları geliştiricilere yazdırıp, hiç tanımadıkları testçiler ile test ettirip, hiç tanımadıkları kişilerin dokümante etmesini destekliyorlar gibi. Bu işleri ücretsiz ve gönüllü olarak yapan bir topluluk var ve bu gönüllü işçilerin amacı kalabalıktan sıyrılıp fark edilmek. Nihayetinde başarılı olanlar için büyük şirketlerin kapıları ardına kadar açılıyor.

Yani sadece veri büyük değil, bu veriyi işleyen, bu veriden bilgi üreten ürünleri üreten ekipler de büyük. Örneğin, Apache Spark ın şu ana kadar contributer olan yani koda katkı yapan 826 kişinin 620,000 satır kod yazdığı gözüküyor. Toplam eforun/masrafın COCOMO yöntemi ile hesaplandığında 170 yıla tekabül ettiği söyleniyor. Tabii bu bir ya da iki kişinin etkin pozisyonda olduğu ve bunların öne çıktığı gerçeğini değiştirmiyor. Ama kullanıcılardan gelen bugların fixlenmesi, soruların cevaplanması için bile onlarca belki yüzlerce insanın etkin olduğu gruplardan bahsediyoruz.
 
Apache Spark projesinde ay ay yazılımcı katkıda bulunma sayılarındaki değişim

Yapı böyle olunca, bir ürün çevresinde gelişen iş fırsatları, yatırımcılardan alınan milyonlarca dolar ile şirketleşmeye gitmeleri ve gelişen eko sistem ile birlikte büyük balıklardan birinin parçası olmaya doğru evrilme artık oyunun kuralı haline gelmiş durumda. Hal böyle olunca büyük şirketler daha çok, çıkan bu yeni ürünlere entegre olma, ürünleri içinden kullanmayı kolaylaştırmaya odaklanmış durumdalar ve bu hali ile sürdürülemez bir "yeniler ile zenginleştirilmiş eski yapılar" görmekteyiz. Bunu SAS ın Grid computing mimarisindeki değişimde gözlemleyebiliyoruz. Yıllarca kullanılan LSF yerini YARN a bırakıyor gibi.

Bunun yanında kendi ARGE destekli ürün geliştirmelerini yapan ve bu süreci tersten giderek geliştiriciler, testçiler ve dokümancılara açıp yeni eko sistemler oluşturan firmalar fark yaratıp öne çıkacaklar ve kalıcı olacaklar düşüncesindeyim.

Uzun lafın kısası, kullanıcı ile geliştiricilerin ayrımının kalmadığı bir dünyaya “merhaba !”.

Yorumlar

Bu blogdaki popüler yayınlar

SAS Nedir?

Anthony Barr, James Goodnight, John Sall ve Jane Helwig isimli dört kişi tarafından 1976 yılında Statistical Analysis System i smi ile kurulan fakat yazılım alanında ürettiği ürünlerle bu sınırları aşan SAS (SAS Institute) günümüzde borsaya açık olmayan dünyanın en büyük yazılım şirketlerinin başında geliyor. Hiç kuşkusuz bu dörtlüden en önemlisi, Harvard Business School tarafından* 20 inci yüzyılın en önemli iş liderleri listesinde gösterilen ve aynı zamanda şirketin CEO su olan James "Jim" Goodnight dır. İstatistik alanında doktorası olan Goodnight ayrı bir yazı konusu olmayı hakeden renkli bir kişilik. SAS denince ilk akla gelen öncelikle istatistik ve iş zekası alanlarında marketin önemli oyuncularının başında gelen ve "Bilmenin gücü (Power to know)" nü uzun yıllardır müşterilerinin hizmetine sunan Amerika Kuzey Karolayna merkezli dev bir yazılım şirketi olduğudur. Detaylarda ise genetik, tarım, finans, telekom, uzay, ilaç, kimya, bankacılık gibi birçok farkl

Veri kalitesi işlemlerinde bulanık mantığın (Fuzzy logic) kullanılması

Bulanık mantık (Fuzzy Logic) üzerine 1995 yılında bitirdiğim yüksek lisans tezinde, bulanık mantık ile çalışan bir uzman sistem yapmıştım. O zamanlar bulanık mantık, bilişim teknolojileri alanında yeni yeni emekleme dönemindeydi. Özellikle veritabanlarında bilgi keşfi çalışmaları için kullanılması yönünde oldukça çok akademik çalışma yapılmaktaydı. Günümüzde Bilgi Teknolojileri (BT) sektöründe bulanık mantık dahil diğer bilgi belirsizliği modellerini, BT profesyonelleri "kullanıyor" dememiz zor. Fakat en zor alanlardan biri olan ve gün geçtikçe önemi artan veri kalitesinin arttırılması konusunda yapılan çalışmalarda, bulanık mantık terimi oldukça sık ismi geçen bir terim haline geldi. Bu nedenle yazımızın konusu bu terimin genel anlamından çok veri kalitesinde kullanımı konusunda olacak. Veri kalitesi çalışmalarında fuzzy logic kelimelerini ilk duyduğumda kelimelerin bulanık küme teorisinde kullanılması geldi. Örneğin; çok gürültülü kelimesinin bulanık kümesinin kurulmas

Veriden Bilgiye Dönüşüm Sürecinin Temelleri

Merhaba, Ağırlıklı olarak Telekom sektöründe uzun yıllardır çalışmakta olan birisi olarak, büyük şirketlerdeki verinin ilk çıkış noktalarından, raporlarda yer alması ve karar destek sistemlerinde görünmesine kadar giden süreçler hakkında önemli bir bilgi birikimim oldu. Bu bilgi birikimi farklı noktalardan bakışı gerektirir ve az sayıda profesyonel, bu bakışa sahip olma ayrıcalığını taşır. Sürekli değişen Bilgi Teknolojileri (BT)  araçları ve yüksek rekabet ortamı içinde bu bilgi ve tecrübeyi sürekli güncel tutmakta ayrı bir gayret gerektirir. Tabii ki bu tecrübede kullanılan araçların yeri yadsınamaz. Atalarımız alet işler el övünür derken haklı bir noktaya temas etmişler. Fakat bu bizde, aletin işin en önemli parçası olduğu şeklinde bir yanılsama yaratmasın. Peki, işin en önemli kısmı nedir öyleyse? Bu soruya yanıt vermeden önce sürece biraz yakından bakmakta fayda var. Gerçekte birbirine benzeyen büyük şirket yada kurumlarda (yazının devamında ikisi içinde büyük org