Apple'ın her yıl düzenlediği ve tüm dünyada merakla beklenen WWDC gerçekleşti. Canlı bloglama ile sizlere aktardığımız konferansta Apple yine birçok yenilik açıkladı. En dikkat çeken konu ise şüphesiz yeni yazılım dili Swift'ti.
Swift'in tanıtımını ise şirkette Yazılım Mühendisliği Departmanı Kıdemli Başkan Yardımcısı görevinde bulunan Craig Federighi tarafından yapılmıştı.
Federighi yaptığı sunumla birlikte Swift'in Python ve Objective-C'den çok daha fazla hızlı olduğunu ve Syntax'nın çok daha sade ve kolay olduğu başlıkları üzerinde durmuştu.
Ortaya çıkan tartışmaların ilk ayağı ise dilin hiç bilinmemesi ve henüz kimsenin bir fikir sahibi olmamasıyla ilgiliydi. Apple Yazılımcı Araçları Bölüm Direktörü olarak görev yapan Chris Lattner'ın Temmuz 2010'da kişisel blogu üzerinde yazdığı yazılarlara tasarlamaya başladığı bir dil. 2011 sonlarına doğru seçtiği birkaç mühendisin ekibe dahil olmasıyla birlikte proje ve dil üzerine çalışmaya ağırlık vermiş, 2013 Haziran ayıyla birlikte ise Apple Geliştirici Araçları bölümünün birincil projesi Swift olmuş ve 2014 Haziran ayıyla birlikte tüm dünyaya duyuruldu.
Swift neler getiriyor?
- İlk olarak söyleyebileceğimiz konu şüphesiz syntax. Objective-C'nin ilk günden bu yana en çok eleştirildiği konulardan bir tanesi syntax'nın oldukça zor olmasıydı. Swift, Objective-C'ye göre çok daha sade ve kolay bir syntax'a sahip. Lua gibi script dillerini andırdığı ve bu bakımından birçok geliştiricinin Swift'e pozitif baktığını bunlara ek olarak daha önce Objective-C kullanarak yazılım geliştirmemiş ancak PhoneGap gibi araçlarla JavaScript kullanan yazılımcıların Swift ile native uygulama geliştirmeye sıcak baktığı forumlarda başlıca konuşulan konular arasında.
- Objective-C ile uygulama geliştirilirken Cocoa ile hem Mac hem iOS işletim sistemine sahip cihazlar için yazılım geliştirmek mümkündü, ancak buradaki handikap bunun için iki farklı kütüphaneler kullanmak zorunda olmanız ve neredeyse yeniden bir proje oluşturup yazmak gibi bir durumda kalmanız. Swift ile Cocoa'nın da yardımıyla birlikte tek kodla çok büyük oranda hem Mac hem iOS platformları için ortak uygulama geliştirmek daha kolay olacak.
- Objective-C'nin en zor ve can sıkıcı olarak nitelendirebileceğimiz alanlarından bir tanesi de Hafıza/Bellek Yönetimi (Memory Management) konusuydu. Swift'in en iyi yanlarından bir tanesi olarak sunulan bu konu ise, Hafıza/Bellek Yönetimi'nin arka planda büyük oran da halledileceği ve geliştiricilerin artık bu konu için daha fazla vakit harcamak ve üzerine düşünmek zorunda kalmayacak olması.
- Swift ile birlikte Xcode'a gelen en önemli yeniliklerden bir tanesi de "Playgrounds". Mevcut olarak iOS'a uygulama geliştirenler "Build almak" :) olarak adlandırılan konunun aslında can sıkıcı bir durum olduğunu çok iyi bilirler. Swift ile birlikte gelen yeni Xcode'la birlikte artık gerçek zamanlı (real-time) olarak projenizin mevcut durumunu kod yazdığınız ekranda görebileceksiniz. Bununla birlikte ana kodunuzu değiştirmeden, "playgrounds" üzerinde yazdığınız kodu düzenleyerek yapacağınız değişikliklerin nasıl tepki vereceğini anlık olarak görmek mümkün. Chris Granger tarafından Ocak 2012'de Kickstarter üzerinde Light Table isimli bir proje tanıtılmış ve 316.720 dolar gibi bir bağış alarak hayata geçmişti. Swift ile gelen playgrounds'ın Light Table'dan ilham aldığını söyleyebiliriz.
Swift ile birlikte akıllara gelen sorular
Swift henüz çok yeni, doğal olarak Swift ile geliştirilen ileri düzey projeler henüz ortaya çıkmadı. Bu nedenle yazılımcıların projelerini hayata geçirirken Swift'in nasıl tepkiler vereceği ve ne kadar yeterli olacağı akla ilk gelen sorulardan. Swift'e doğru bir geçiş sürecinin olacacağını ve bunun sancısız olmayacağını düşünmek hata olur, mevcut durumda da projelerde hem Objective-C hem Swift kullanılabilinmesiyle bu süreçteki geçişlerin bu sebeple biraz daha kolay olacağını düşünebiliriz.
Akıllara gelen bir diğer soru ise kütüphane desteği. Şu anda Objective-C ile birlikte birçok kütüphane desteği mevcut ve iOS'un en başından bu yana geliştiriciler Objective-C ile yazdığı için kütüphane desteklerinin ve performanslarının oturmuş olduğunu söyleyebiliriz. Swift'in ise şu an için bunu ne oranda başarıyla sunacağını kestirmek güç. Buna bir örnek vermemiz gerekirse OpenGL'in Swift ile kullanılabilmesi, kütüphane ve örneklerin yayınlanması. Bunu diğer önemli kütüphaneler içinde söyleyebiliriz.
Ekosistemin Oluşması
Bir programlama dilinin hayatını sürdürebilmesi ve daha fazla yazılımcıya/kullanıcıya ulaşmasının temel etkenlerden bir tanesi topluluk (community) desteği. Swift'in de hızlı ve etkin bir biçimde daha çok geliştiriciye ulaşması topluluk desteği, açık kaynak kodlu örnekler, yazılım geliştirici platformlarındaki soru-cevapların hızlıca farklılaşması ve cevaplar gelmeye başlaması ve yazılan kitaplar olarak sıralayabiliriz.
Apple WWDC'de resmi olarak yayınladığı Swift kitabı dışında şu anda herkesin dili anlamaya çalışmak ve birşeyler yapmaya çalışmakla meşgul olarak görünüyor :) Yukarıda da değindiğimiz gibi geçiş hem Apple hem geliştiriciler için biraz sancılı olacak ancak Swift'in kendi ekosistemini hızlı bir şekilde oluşturması gerekli ve insanların ilk başta bunu daha kolay öğrenip ortaya birşeyler çıkarabilmesi için Apple'a da büyük görev düşüyor.
Swift için Apple'ın yazdığı resmi e-kitaba buradan, Swift ile yapılan geliştirilen Flappy Bird (FlappySwift) github sayfasına buradan ulaşabilirsiniz. Tüm bunların yanında twitter'dan Craig Federighi ve Chris Lattner takip etmeniz, Swift ile ilgili son gelişmelere öğrenmek için yararlı olabilir.