31 Mart 2017 Cuma

ÜÇ PLATFORMU DA DESTEKLEYEN PROGRAMLAMA DİLLERİ

Merhaba okuyucular ,bugün sizlerle birlikte  3 işletim sistemine de aynı anda derlememize yardımcı olan programlama dillerinden bahsedeceğiz.Bu programlama dilleri sayesinde zamandan masraftan ve bir çok şeyden  tasarruf etmemizi sağlamaktadır.Bu dillerden en iyisini şimdiden söylemek istiyorum tabiki bu benim fikrimce Xamarin Studiodur. Yazılan programlar ios,android ve windows phone platformlarına  aynı anda derlenmektedir.Bu sayede  farklı programlama dillerine ayrı ayrı zaman harcama gereği duymamaktayız. Xamarin Studio'yu seçmemin sebebi ise Native bir yapıya sahip olmasıdır.Native  ne demek diye soran olabilir hemen sorunuza cevap vermek istiyorum. Android Studio da nasıl program yazdığımız da androide tam erişim sağlaya biliyorsak ,native yapısı sayesinde Xamarin Studio üzerinden de ulaşabilmemizi sağlamaktadır.



DELPHİ
Embarcadero Delphi ya da kısaca Delphi bir programlama dili ve konsol, web, masaüstü ve mobil uygulamalar için tümleşik derleme ortamı (IDE) dır. Delphi'nin derleyicileri, kendi Pascal dialekti olan Object Pascal'ı kullanarak Windows(x86 ve x64), Mac OS X (sadece 32-bit), iOS (32 ve 64-bit), Android ve Linux için kodlar üretebilir.
Delphi, Code Insight kod editörü, Error Insight gerçek-zamanlı hata yakalama ve diğer özelliklere sahiptir. Başlıca özellikleri; refactoring; VCL (yerel Windows) ve FMX (çoklu-platform, her platform için kısmi yerel); mobil platformlar dahil tüm platformlar için entegre edilmiş debugger; kaynak kod kontrolü (SVN, git ve Mercurial); üçüncü-parti bileşenleri destekleyen RAD Studio'nun bir parçasıdır. Çok güçlü veritabanı desteğine sahiptir. Delphi, derleme hızı açısından dikkat çekici bir hıza sahiptir.
C# ve Swift gibi yaygın dillerin aksine, bir milyon satırlık Delphi projesi saniyeler içerisinde derlenebilir. 170,000 satırdan oluşan test projesini saniyeler içinde derlemiştir. Aktif geliştirilmeye devam edilmektedir ve her altı ayda bir yeni özellikler ve düzenlemeler ile yeni sürümü yayınlanmaktadır.
XAMARİN
Xamarin'de uygulamanın tüm kodunu C# dili ile yazıyoruz. Yani Android için Java ya da iOS için objective C ya da Swift'e ihtiyaç duymuyoruz. Bu durum bizi sürekli olarak "Peki bu nasıl oluyor? Native mi?" sorularıyla karşı karşıya getiriyor.
Xamarin'in nasıl çalıştığını anlatmaya başlamadan önce, konuyu daha aşina olduğumuz bir platforma taşıyacak şu soruyu sormakta fayda var;
Windows'un C/C++ ile yazıldığını biliyoruz (kernel.dll, win32.dll). Peki C# ile yazdığımız bir program (.net application), Windows İşletim Sistemi üzerinde nasıl çalışıyor? Peki Windows Forms Application'ın Native olmadığını söyleyebilir misiniz? Native ne demek? Neye göre? Kime göre?
Bu soru, C#+Xamarin ile geliştirilen uygulamanın Android ya da iOS üzerinde çalışması ile ilgili bir benzerlik yakalamanızı sağlamış olmalı.
Doğrudan bilgimiz olmasa da Pınvoke'u sadece İşletim Sistemi ile haberleşmede değil aslında birçok yerde zaten kullanıyoruz; VOIP sistemler,  OpenCV, Speech To Text,…
Konuyu biraz derinleştirmek adına arkada neler dönüyor anlamaya çalışalım;
1.      *h/*hpp/*h++   Header dosyaları okunarak,  c/c++ API ve C# map edilir. (marshaling)
2.      *.c/*.cpp/*.c++  dosyaları nesne dosyalarına "Compile" (cross compile) edilir ve static iOS kütüphanelerine ya da dynamic Android kütüphanelerine link'lenir.
3.      Bu kütüphanaler  .net projesine refere edilir
4.      C# dünyasının kullanımına açabilmek için C# wrapper oluşturulur.
Bu işleme  "Binding (or Wrapping, Bridging) native to c/c++." adı verilir.
Xamarin nasıl çalışıyor sorusunun yanıtı burada gizli. Xamarin,  java jar dosyalarını ve iOS objective-c static lib'lerini (*.a) bu yaklaşımla kullanımımıza sunarak C# geliştiricilerinin "CrossPlatform Native" mobil uygulama üretmelerini sağlamaktadır. (Xamarin Platformunda, C# dili ile yazılan kodun derlenme ve çalışma prensiplerinde (iOS ve Android için) bazı farklılar vardır.
Biliyorsunuz Xamarin OpenSource bir platform. İnceleme şansı bulursanız siz de fark edeceksiniz; aslında içinde bugüne kadar bilinen ve kullanılan tekniklerden farklı bir şey yok (fakat hakkını da teslim etmek adına şunu belirtmekte yarar var; Xamarin hem iOS, hem Android hem de WindowsPhone dönüşümlerini sağlayabilmek adına içerisinde farklı bir çok tekniği kullanan ve üst seviye bir mühendislik yapılarak üretilmiş bir teknoloji. Projenin bugünk verisyonuna ulaşması yıllar sürmüştür). 
Temelde birçok  iOS cihazınızda Objective-c ya da swift nasıl çalışıyorsa, java kodu Android cihazınızda nasıl çalışıyorsa, Xamarin compiler ile derlenen uygulamalar da cihazlarınız üzerinde aynı şekilde çalışıyor. Bahsi geçen tüm bu Bridge'lerin isimleri farklı olsa da temelde yaptıkları şey aynı; Bridge burada sadece bir terminolojiden ibaret. (java dünyası JNI diyor, microsoft PInvoke diyor. 


PYTHON


Hiç yorum yok:

Yorum Gönderme