Kategoriler
Apple iOS Mac OS X Yazılım

Swift Paralel Programlama Dili: Apple’ın Yeni Silahı Mı?

WWDC 2014’te Swift parallel programlama dilinin geliştiricilerin kullanımına sunulduğunu hepimiz duyduk ve geliştirici dünyası bu konuda büyük bir çıkmaza girdi. Apple’ın yıllardır arkasında durduğu Objective-C dururken ve yeni kütüphaneler yazılabiliyorken neden Swift’e geçiş başladı? Bu geçişin Apple için bir anlamı var ve Apple bu geçişte daha büyük şeyler planlıyor galiba. Apple’ın neden Swift’i neden destek vermeye başladığının bazı gerekçeleri olabilir. Bu gerekçeler bu programlama dilinin diğer programlama dillerine göre daha üstün özellikleri olarak görünüyor. Detaylara girmeden önce paralel programlama nedir ve çalışma mantığı nedir bu konuda konuşalım.

Nedir Paralel Programlama

Bir karşılaştırma yapacak olursak geleneksel yöntemlerde programlar seri halde bir dizi sürecinde yazılır ve bu yönde yapılır. Program bir bilgisayarda bir işlemci vasıtasıyla icra edilir ve programlar birbiri ardına gelen kodların yapılmasıyla devam eder ve belli bir zaman diliminde sadece bir işlem yapılır. geleneksel Paralel programlama ise problem çözümüne biraz daha farklı bir yönden yaklaşmaktadır. Geleneksel programlamanın aksine problem birden fazla işlemci kullanılarak çözülür. Problem sıra ile yazılmaz, birden fazla parçaya bölünerek eşzamanlı olarak çözülür. Komutlar farklı işlemcilerde işlenecek hale getirilir. paralel   Bilim ve mühendislik alanlarında ve endüstriyel ve ticari alanlarda kullanılan paralel programlama dili genel olarak zamandan kazanmak ve büyük problemleri kolayca çözmek için tercih edilir. Bu da genelde birbirine bağlı süper bilgisayarlar inşa etmek vasıtasıyla gerçekleştirilir. Seri programlama yani geleneksel programlama bazı sınırlamalara sahip ve bu sınırlamaları aşmak için paralel programlamadan yararlanılır. Yerel veri işlemede etkin gibi görünen geleneksel programlama yerel olmayan verilerin işlenmesinde özellikle de birden fazla farklı noktada bulunan verilerin işlenmesinde pek de etkin olamayabiliyor. İşte bu noktada paralel programlama devreye giriyor. Şu an piyasada gerçekten lider durumda olan paralel programlama dilleri var. Bunlardan en bilinenler Nvidia’nın geliştirdiği CUDA ve MPI (Message Passing Interface) dilleridir. Nvidia’nın CUDA’sı Mac üzerinde de geliştirilebilmektedir. MPI ise Homebrew olarak çalışmakta, yani sadece port edilmiş durumda. nv-cuda-2014header-updated

Peki Neden Swift?

Unknown-3Hızlı ve kolay paralel programlama sağlayan Swift çoklu işlemcilerde, cluster bilgisayarlarda (ağ üzerindeki yığın bilgisayarlarda), bulut bilişimde ve gigaflopluk işlem yapabilen süper bilgisayarlarda kullanılmak üzere tasarlanmış. Bu kadar profesyonel kullanıma rağmen yazım şekli diğer paralel programlama dillerine göre daha basit. Paralelliğin getirmiş olduğu karmaşıklıktan uzakta olan bir yapıya sahip Swift ve kısa yazılan sentakslar bile büyük çapta işlemler yapabilecek durumda. Swift milyonlarca programı, aynı anda binlercesini çalıştırabilecek kapasiteye sahip hem de bir saniye içerisinde yüzlercesini başlatarak. (Bu bilgi Swift’in kendi sitesinden alınmıştır.)

Swift Apple’a Ne Kazandıracak?

Swift Cocoa ve Cocoa Touch (OS X ve iOS yazılım temeli) için yeni bir programlama dilidir. Swift ile kod yazmak etkileşimli ve eğlenceli bir hale geliyor. Bunun yanında sentaks (cümle dizilimi) daha kendini ortaya koyabilen bir yapıya sahip ve programlar bu dil ile çok hızlı çalışıyor (Valla Apple’ın yalancısıyım). Swift iOS ve OS X Projeleri ile rahatlıkla kullanılabilmekte ve Objective-C ile yan yana çalışabiliyor. Swift Apple’ın yıllarca edinmiş olduğu platform deneyimlerinin ve programlama dilleri üzerine son yıllarda yapmış olduğu araştırmaların sonucudur. Objective-C den ortaya çıkan isimlendirilmiş parametreler Swift’teki API’ların daha kolay okunabilmesini ve barındırılmasını sağlayan çok daha belirgin bir sentaks içerisinde ifade edilmektedir. Bu tür ifadeler yazdığınız kodu daha saf bir hale getirir ve daha az yanlış yapmanızı sağlar. Bellek tamamen otomatik olarak yönetilmektedir ve iki nokta üst üste yazmanız bile gerekmez. LLVM Derleyici sayesinde Swift kodları Mac ve iOS cihazlarınız için öz kodlara çevrilir ve siz böylelikle cihazınızdan en yüksek performans almanız sağlanır. Programlamadan biraz anlayanlar programlamadaki bazı temel işlemleri bilirler. Swift C ve Objective-C dilindeki alt seviye ilkel işlemleri de barındırmaktadır. Yani veri tipleri, akış kontrolleri ve operatörleri rahatlıkla kullanabilirsiniz. Bunun yanında nesnesel tabanlı program öğelerini de barındırmaktadır. Şimdi gelelim Apple’ın bunu neden tercih ettiğine… Galiba Apple büyük bir adım atmaya yaklaşıyor. Swift’in sağlayacağı özelliklerle herhalde artık bulut teknolojisine daha çok dayalı yazılımlar geliştirecek. iCloud tamamen baskın bir Apple teknolojisi olacak ve abartmak gibi olmasın ama Apple bilgisayarınızı yoracak işlemleri diğer Apple cihazlarınızı kullanarak daha hızlı yapmanızı sağlayacak bir alt yapı bile çıkarabilir. Final Cut’da bir render alırken başka Mac’lerden ve aynı zamanda işlemcisi neredeyse bir Mac kadar güçlü olan iOS cihazlarından da yardım alabilecek bir sistem; hem de kablolardan bağımsız… neden olmasın?