Xamarin, Microsoft’u Nereye Taşıyacak?
Bir sene olmadı Çapraz Platformda Zoru Başarmak başlıklı seminer sunumumuzda çapraz platform fantezilerinden bahsedeli. Laf illaki dönüp dolaşıp mobilde farklı bir yol tutturan ve benzerlerine fark atan Xamarin’e geliyordu.
Xamarin’in hikâyesini biraz başa sarmamız iyi olur. Hikâye, Miguel de Icaza ile başlıyor; Meksika’nın tezenesi.
Miguel, 25 yaşındayken Microsoft ile bir iş görüşmesi yapıyor. Hatta onlara Internet Explorer’i açık kod yapmayı teklif ediyor. İşi, okul durumundan dolayı çalışma vizesi alamadığı için olmuyor.
Bu yıllarda elinden Unix/Linux dünyasına hitap eden parlak ürünler çıkıyor. Unix için yazdığı bileşen sistemi Bonobo, adeta Miguel’in kariyerinin özeti. Çünkü Microsoft’un COM’undaki dil bağımsız bileşen çalıştırma mantığını Unix’e taşıyor. Belki de hakkındaki Microsoft’un Linux dünyasındaki ajanı ya da açık kaynak hâini yakıştırmaları bu tarihlerde başlıyor.
Ve Gnome. Linux için Miguel’in epey kastığı masaüstü sistemi. İçinde yine Microsoft’un OLE’sini temel alan bir yaklaşım var. Ve bu yüzden Miguel, hep şüpheli.
2001 ise, Miguel için çok önemli bir projenin başlangıcı: Mono. Platform nakil ustası Miguel bu sefer Microsoft’un .NET geliştirme platformunu açık kaynakla Linux platformu için yazacağını ilan ediyor. O gün bugün Mono hâlâ yaşıyor. Gençlere Mono.Cecil gibi bir mucize hediye etmişliğiyle.
2012′de Gnome ile girdiği Linux masaüstü macerasını bizce haklı bir gerekçeyle sonlandırıyor. Masaüstünde Microsoft’tan nefret eden çoğu Linux’çunun yaptığı gibi OS X ortamına ve Mac donanımına geçiyor.
Bunca senedir çapraz platform bilimiyle uğraşan bu adam, sonunda aradığı madeni mobil dünyada buluyor. iOS, Android ve cılız da olsa Windows’un kapıştığı bu dünyada her üçünde çalışacak ortak kodu kim yazdırabilir? Miguel, çapraz işler nerede, oraya ışınlanıyor her zamanki gibi. Xamarin.Mobile, Mono’dan gelen VM tecrübesi ve üzerine eklediği native iOS derleyicisiyle C#’ı merkeze alan bir çapraz platform kuruyor. Yalnız bu sefer ibre ekonomiye dönüyor. Xamarin.Mobile, iyi paralara satılıyor.
Miguel, Microsoft’la olan ilişkisini yine devam ettiriyor. C#’ı bırakmıyor. Mono’yu hiç bırakmıyor. Bu sadakat, Microsoft’un da açılma, saçılma politikalarıyla birleşince tencere-kapak şıngırtısı oluşuyor. Microsoft, sayıları hızla artacak olan açık kaynak kodlu projelerini emanet edeceği vakfın yönetimine Miguel’i de dahil ediyor.
Miguel’in şirketi Xamarin, mobil dünyada ciddi bir ivme yakalıyor. Platform güncellemelerini yakından takip ediyor. Tek bir dille, yani yakışıklı C# ile, tüm platformlarda native çalışacak mobil uygulamalar yazmanın ilk akla gelen adresi oluyor. En azından vaat ettiğini yapıyor. Bir yandan Test Cloud ile bulutta, yüzlerce gerçek telefon üzerinde test hizmeti veriyor.
Hepsinden önemlisi, 20 yıl önce çalışma vizesi alamadığı için ABD’ye giremeyen Miguel, 2015′te ABD tarafından vatandaşlığa kabul ediliyor. Taco’lardan paçayı kurtarıyor.
Miguel’in hikâyesi genelde yükselen bir çizgi izliyor. Microsoft’ta ise durum farklı.
Microsoft, geçen sene Build etkinliğinde Windows 10 platformu için epey ümitli gözüküyordu. Üç dört kanalda uygulama yazılabilecek bir ortam inşa etmişti. Kimseyi native Windows (UWA) uygulamaları yazmaya ikna edemediği için iOS ve Android tarafındaki uygulamaları hızlı klonlama yöntemi geliştirmişti. (Biz de bu konuyu değerlendirmiştik zamanında: Build 2015 Halk Günleri.)
Bir sene geçti. Kararların çok hızlı verildiği endüstri için uzun bir süre. Ben zaten ümitli değildim; Microsoft da ümidini kaybetti. Yani pes etti. Universal Windows Platform, bir hülya olarak kalacak. Başka bir şekle evrilmesi lâzım. Bir takım fikirler var, sonra konuşuruz.
Microsoft, Windows gelirlerinde de büyük düşüş yaşadığına göre artık hem ticari hem de stratejik bir kararın eşiğinde. Biz karar verecek diye düşünsek de Satya’nın liderliğinde bu karar verilmiştir muhtemelen. Artık hedef, herkese platform sağlamak.
Xamarin, bu strateji için zamanını bekleyen bir satın almaydı. Hem iOS dünyasına ve hem de Android dünyasına başarıyla girebilen, web temelli yarı-doğal ürünlerden farklı, potansiyel içeren bir ürün.
İşin ilginç yanlarından birisi, Xamarin’in Microsoft’unkine eş değer ürünler sağlaması. Geliştirme ortamı olarak Visual Studio’ya ve VM olarak da .NET’e alternatif sunması. Ortada daha filizlenme aşamasında açık kaynak bir .NET Core varken, bir de Xamarin’in kontrolünde giden yine açık kaynak Mono olacak.
Rasyonel bir patron, bu iki framework’ü aynı anda yaşatmaz. Microsoft’un .NET Core’u daha yeni çıkarmışken, çöpe atacağını da söyleyemeyiz. Formül bellidir. Mono’yu hızla, mantıklı seçimlerle .NET Core’a nakletmek.
İş bittiğinde, elimizde Android uygulamalarını da çalıştıran bir .NET Core olacak. Belki adı .NET Core olmayacak, üzerine yeni isimler gelecek. Ama neticede, çapraz platform VM, sadece backend servisleri çalıştıracak diye bir kural olmuyor.
Microsoft’un eline geçen Test Cloud gibi yan servisleri saymıyoruz bile. Onlar Azure’da hemen tezgâha girecek. Kaçış yok.
Asıl masaüstü GUI dünyasında ilginç şeyler olabilir. Birçok insan WPF’in açık kaynak olup Linux veya OS X dünyasına gelmesini bekliyor. Ama Microsoft GUI’yi fazlaca Windows’a bağımlı olduğu için bu taşımalara pek gönüllü değil. Bir de âlem web olmuş diyor zaten diyebiliriz. Ancak topluluk bu. İşi belli olmaz. Eğer geliştiriciler ve topluluk ilgisi tam kanalize olursa, .NET’in GUI tarafında da çapraz platform bir ünite oluşabilir.
Tüm bunlar, Microsoft’un Electron ile kafayı bozduğu dönemde olursa epey gülünç duruma geliriz. (Visual Studio 15’in kurucu yazılımı da Electron ile geliştirilmiş.)
Sonuçta efendim, endüstri bir ormanı andırıyor. Güçlü olan, taban bulan teknoloji, rakiplerini yutuyor ve tabanını temizliyor.
Şu anda bizim görebildiğimiz: Microsoft, çapraz platformda Xamarin ile önemli bir güce sahip olacak. Tüm bu gücü, Azure’un bulut servisleriyle kompoze edecek. Visual Studio Team Services ile geliştirme ve CI/CD hattına sokacak. Visual Studio Code ile başlayan camiayı mindere çekme hareketi, Xamarin’in Microsoft damgalı ve (temennimiz odur ki) ucuzlayan, ücretsize yaklaşan ürünleriyle kuvvetlenecek.
Microsoft, önümüzdeki yıllarda mutlaka uğramak veya bulunmak zorunda kalacağınız bir geliştirme platformu sunmak istiyor. Bu da Azure’da daha çok platform ve computing tüketimi demek. Eskiye göre ders alan Microsoft bu sefer, sizin işletim sisteminize, programlama dilinize, mobil platformunuza, internet gezgininize ve teknoloji yığıtınıza karışmayarak alerji üretmiyor ve dostluk teklif ediyor.
Mart sonunda Build 2016 ile bu stratejiyi daha net görmüş ve analizimizi de test etmiş olacağız.
…
Miguel ve Microsoft. 20 yıllık yasak aşk böylelikle resmiyete bağlanmış oluyor. Linux dünyası ise her açıdan memnun. En azından bir hâinden kurtulduk diyorlar. Öte yandan, Linux tarafı güçlü bir Microsoft ekosistemi çalıştırmaya çok yakın. Çünkü Microsoft… Linux’u seviyor.
3 Comments
Uğur Umutluoğlu
18 Mart 2016 at 10:54.NET Core ve Mono’nun bir çatı altında tekilleşmesi bana da mantıklı hatta zorunlu bir yol gibi geliyor. Peki bu birleşmenin .NET Framework’e bir etkisi olur mu sevgili Tahiroğlu? Yani Microsoft, Windows platformlarında .NET Framework, diğer platformlarda .NET Core ile mi devam eder, yoksa yakın gelecekte değilse bile gelecekte bir yerlerde bu iki çatının da birleşimine/evrilmesine dair birşeyler görür müyüz?
Muhammed C. Tahiroğlu
21 Mart 2016 at 21:59.NET Framework Windows tarafında şu anki durduğu hâliyle duracak ve çok fazla yatırım almayacak durumda gözüküyor. Microsoft tüm yatırımı cross-platform .NET Core’a çekecek. Hem Windows ve hem de diğer platformlarda çalışacak tek bir platform olarak gelişecek. Windows’a özel bir yenilik girmeyecek içine. Cloud-first yazılacak. Bu da platform bağımsız olmasını sağlayacak. Windows’a özel geliştirmelerin gerekirse .NET Core üzerine bağımsız bir şekilde eklendiğini görebiliriz. Yani yeni bir Windows.Forms .NET Core kütüphanesi gibi. Belki de bu yeni kütüphaneler, Mono’dan gelen tecrübeyle cross-platform yazılır. Herkesin beklentisi WPF’in cross-platforma taşınması.
Neticede geleneksel .NET Framework’ün 4.6 seviyesinde park ettiğini rahatlıkla söyleyebiliriz. Windows-first bir framework’e bulut dünyasında yer olmayacak. .NET Core ile alfabeye yeniden başlayacağız.
Abdurrahim Hacıoğlu
2 Ağustos 2016 at 13:34Harika bir yazı olmuş. Aklımdan geçen herşeyi teknik ve edebi açıdan dile getirmişsiniz :). Aslında Xamarin ile ilgili sanırım en iyi gelişme artık herkese açık ve ücretsiz bir ürün olacağı. Eski aylık yıllık abonelik ücretleri oldukça yüksekti. Keşke Xamarin University de ücretsiz hale gelse.