HANGİ YAZILIM DİLLERİ NEREDE KULLANILIR - 2 | Fuat Akdemir

HANGİ YAZILIM DİLLERİ NEREDE KULLANILIR? – 2

HANGİ YAZILIM DİLLERİ NEREDE KULLANILIR? – 2

Yazılım dilleri veya diğer bir deyişle programlama dillerinin nerelerde kullanıldığına dair klavyeye aldığım (evet klavyeme) yazı dizimin ikinci bölümüne hoş geldiniz. Bu bölümde ele aldığım yazılım dilleri mobil uygulama geliştirme, masaüstü uygulama geliştirme ve oyun geliştirmede hakkında.

Not: Yazı dizisinin veri bilimi, yapay zeka, big data (büyük veri), gömülü sistemler ve web (front-end ve back-end) alanlarında kullanılan yazılım dilleri hakkındaki ilk bölümüne buradan, veya siber güvenlik, blockchain (blok zinciri) ve robotik alanlarındaki yazılım dilleri hakkındaki üçüncü bölüme buradan ulaşabilirsiniz. Ayrıca Yazılım Nedir, Yazılımcı Nasıl Olunur? başlıklı yazıma da göz atabilirsiniz.

Dikkat! Bu yazımda genel olarak popüler dilleri ve framework'leri konu aldım. Unutmayınız ki bunlara çok daha fazla dil ve framework eklenebilir.

MOBİL UYGULAMA GELİŞTİRME

Mobil işletim sistemleri kullanım açısından günümüzde Android ve iOS dışında yok denecek kadar azdır. Bazı dillerde sadece Android ya da iOS'e yönelik (native) uygulamalar yapıldığı gibi bazı dillerle veya framework'lerde de çapraz - hibrid yani hem Android'de hem de iOS'te (hatta web uygulamaları ve masaüstü uygulamaları) çalışabilecek uygulamalar yapılabilmektedir.

Native Uygulama Geliştirme:

Java

Java'nın çok kapsamlı bir dil olduğunu ve pek çok şey yapılabileceğinden bahsetmiştim. Native Android uygulamaları geliştirmek için Java temel dildir. Java ile mobil uygulama geliştirmek için Android Studio programını kullanabilirsiniz. Java diline iyice hakim olmadan Java ile Android uygulama geliştirmeniz biraz zor olabilir. Özellikle de başka yazılım dillerini bilmiyorsanız. O nedenle önce Java'dan başlayın derim. Arayüz yapısını (butonlar, text view'lar vb.) gerçekleştirmek için de Xml kullanmak gerekiyor.

Kotlin

Bir diğer native Android uygulama geliştirme dili de Kotlin'dir. Kotlin JetBrains tarafından geliştirilmeye 2010 yılında başlandı ve 2011 yılında duyuruldu. Açık kaynak kodlu ve nesne yönelimli bir dildir. Nispeten yakın zamanda çıkmasına rağmen hızlı bir şekilde popülerleşti. Kotlin ve Java birlikte çalışabilmektedir. Kotlin içinde Java veya Java içinde Kotlin çalışabilir. Dolayısıyla Java kütüphaneleri Kotlin'de de kullanılabilir. Google tarafından desteklenmekte ve Android ile de %100 uyumludur. Java'dan daha az kod yazımına izin verir ve daha güvenlidir.

Objective-C

Objective-C, C dili üzerine yazılmış ve nesne yönelimli bir dildir. İlk çıkış tarihi 1983 yılı olup, Apple tarafından 2007 yılından itibaren geliştirilmeye devam edilmiştir. Native iOS uygulama geliştirmek için kullanılır. Yazımı Swift'e göre daha zor olduğu için son dönemde Swift biraz daha öne çıkmaya başlamıştır.

Swift

Swift, Apple tarafından iOS ve OS X platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dilidir. İlk defa 2014 yılında duyuruldu. Kullanımı kolay ve açık kaynaklı bir dildir. Bu gibi nedenlerle, nispeten yakın geçmişte çıkmasına rağmen, hızlı bir popülerliğe erişmiştir.

Hybrid ve Cross (Çapraz - Hem iOS Hem Android Uygulamaları) Geliştirme Platformları:

Flutter

Google tarafından geliştirilen Dart dilinin bir framework'ü olan Flutter ile mobil ve masaüstü uygulamalar geliştirebilirsiniz. 2017 yılında yayınlanmıştır ve henüz çok yaygın olarak kullanılmasa da giderek popülerliği artmakta. Widget mantığı ile geliştirilmekte ve önce arayüz oluşturma esasıyla geliştirme yapılır. Flutter ile Android, iOS, web, Windows, MacOs ve Linux uygulamaları geliştirilebilir.

React Native

Facebook tarafından desteklenen bir cross platform framework'ü olan React Native ile hem iOS hem de Android uygulamaları geliştirebilirsiniz. Ülkemizde de oldukça popülerdir. Js tabanlıdır. Cross platform olmasına rağmen "native" ismini almasının sebebi kullanıcı arayüzünde bir webview kullanmak yerine native bileşenleri kullanmasıdır.

Ionic

Ionic ile yazılan kodla tek seferde iOS, Android, masaüstü ve web uygulamaları yapılabilir. Angular.js veya Angular 2 bilgisine sahip geliştiriciler için öğrenmesi daha kolaydır. Açık kaynak kodludur ve dokümantasyonu iyidir. Performans ve güvenlik açısından dikkat edilmesi gerekir. Cordova üzerine inşa edilmiştir ve mobil cihaz donanımına ve sistem kaynaklarına erişim gibi işlemler Cordova aracılığıyla yapılmaktadır.

Cordova

Cordova’da geliştirme, bir web sayfası oluşturmak için ihtiyaç duyulan geliştirmeye benzerdir; Html, Css ve Js, hepsi Cordova’da paketlenmiş bir web görünümü yaratmak için bir araya gelir.

Titanium

Titanium’u Cordova’dan ve PhoneGap gibi Cordova-tabanlı araçlardan ayıran, eğer hem native hem Html-tabanlı kullanıcı arayüzü kullanan bir uygulama yaratmak istemiyorsanız, Html ve Css dosyalarına ihtiyaç olmamasıdır. Uygulamanızı bir tarayıcı yerine gerçek platformda emüle (ya da simüle) etmenize yardımcı olan oldukça faydalı bir mobil araç kitiyle gelir. Uygulamanız cihazda çalıştırıldığında, bir web görünümüne paketlenmez, bunun yerine bir Javascript motoru tarafından yorumlanır (iOS’te JavaScriptCore veya Android’de Rhino).

Xamarin

Xamarin’in, geliştiricilerin native kullanıcı arayüzleri olan ve C#’a odaklanan birden çok platformda kod paylaşan, native Android, iOS ve Windows uygulamaları yazmak için kullanabilecekleri C#-shared bir kod tabanı vardır. Cordova’ya benzer şekilde çalışır.

MASAÜSTÜ UYGULAMA GELİŞTİRME

Masaüstü uygulamaları Microsoft Windows, Apple MacOs veya Linux gibi işletim sistemlerinde, bilgisayarlarda çalışan uygulamalardır. Yine diğer alanlarda olduğu gibi bu alanda da farklı yazılım dilleri kullanarak masaüstü uygulama geliştirebilirsiniz.

Java

Çok güçlü bir dil olan Java ile masaüstü uygulamalar yapmak da mümkün. Çoklu platform desteği sayesinde Java önemli bir avantaja sahip. Ancak Java ile yapılan masaüstü uygulamalar bilgisayarı biraz zorlamakta. Çünkü Java işletim sisteminden bağımsız olarak çalışmak için arka planda sanal makine kullanmakta ve bu yüzden fazla kaynak tüketmekte.

C# (C Sharp)

Windows bilgisayarlarda çalışmasını istediğiniz uygulamalar için en çok kullanılan dillerden biri C#'tır. Bu dil zaten Microsoft tarafından yapıldı ve 2000 yılında piyasaya sürüldü. C Sharp ile modern masaüstü uygulamalar geliştirebilirsiniz. Ayrıca C# ile konsolda çalışan uygulama da yapabilirsiniz. C# kullanarak MacOs işletim sisteminde çalışacak uygulama geliştirmek isteyenler Xamarin.Mac kullanabilir.

C++ (C Plus Plus)

C++ makine diline yakın bir dildir ve bu sebeple öğrenmesi zor bir dildir. Ancak yine bu sebepten hızlı çalışır. C++ ile masaüstü uygulama geliştirmek mümkündür ama yine de bunun için çok tercih edilmez. Çok detaylı bir masaüstü uygulama yapmak istiyorsanız C++ kullanabilirsiniz.

Swift

Apple'ın kendi ürünlerinde kullanılması için geliştirdiği bir dil olan Swift ile iOS, Apple TV veya Apple Watch uygulamalarının yanı sıra Mac uygulamaları da geliştirmek mümkündür. Açık kaynaklı bir dildir ve öğrenmesi nispeten kolaydır.

Objective-C

Objective-C, Swift dili çıkana kadar Apple ürünleri için yazılım geliştirmek için kullanılan bir dildi. Swift'in çıkmasından sonra popülerliği azaldı. Ama yine de MacOs uygulamaları geliştirmek için Objective-C dili kullanabilirsiniz.

Python

En popüler yazılım dilleri arasında olan Python ile masaüstü uygulamalar geliştirmek için de bazı framework'ler vardır. Bunlardan en çok kullanılanları PyQt, Tkinter ve Kivy'dir. Bu GUI (Graphical User Interface, Grafiksel Kullanıcı Arayüzü) araçları ile modern masaüstü uygulamalar geliştirmek mümkündür. Ancak yine de masaüstü uygulama geliştirmek için Python çok tercih edilmez.

Flutter

Dart dilinin bir framework'ü olan Flutter'dan mobil geliştirmede bahsetmiştim. Flutter ile iOS, Android uygulamalarının yanı sıra, web, Windows, MacOs veya Linux uygulamaları geliştirebilirsiniz. Google'ın desteklediğini tekrar belirteyim. Geliştirme hızı ve performans açısından da Flutter avantajlıdır. Bu nedenle giderek popülerliğini arttırmaktadır.

Electron Js

Bir Javascript framework'ü olan Electron, aslında Chromium ve Node.Js karışımıdır. Html, Css ve Electron Js kullanarak masaüstü uygulamalar geliştirmek mümkündür. Eğer web sitesi kodlamayı biliyorsanız Electron Js ile hızlıca masaüstü uygulama geliştirebilirsiniz. Electron ile Windows, MacOs ve Linux uygulamaları geliştirebilirsiniz.

OYUN GELİŞTİRME (MOBİL Ve/Veya MASAÜSTÜ)

Öncelikle oyun geliştirme çok uzun ve detaylı bir konu. Grafiklerin tasarımı, sesler ve kodlamaya (bazı framework'lerde kodlama olmadan da oyun yapılabilmekte) kadar pek çok şeye değinmek zorundasınız. Amacınız basit bir oyunsa tabi hızlıca bir geliştirme yapabilirsiniz. Büyük bir oyun yapmak istiyorsanız da tavsiyem ekip oluşturmanız ya da bir ekibe dahil olmanızdır. Aşağıda popüler olarak kullanılan dilleri listeledim:

C++

Makine diline yakın bir dil olan C++ ile oyun da geliştirebilirsiniz. Makine diline yakın olması sebebiyle öğrenmesi zor, ancak yine aynı sebeple her şeyde tam kontrol sağlamanın avantajı olan bir dildir. Bu sebeple ileri seviyedeki oyunlar için genellikle C++ tercih edilir. Geliştirme süresi bakımından uzun bir zaman alır. C++ dilinin diğer bir artısı ise hızlı çalışmasıdır. Popüler oyun motorlarından olan Unreal Engine tarafından tercih edilen dil C++'tır. C++ ile geliştirilen birçok popüler oyun vardır. Geniş bir topluluğa sahiptir.

C#

C# dili C++ dilinin üzerine geliştirilmiştir. Öğrenmesi C++ diline göre daha basittir. Ancak C# ile yapabilecekleriniz C++'a göre biraz kısıtlıdır. Bilgisayar, mobil veya konsol cihazları için oyun geliştirebilirsiniz. Popüler oyun motorlarından olan Unity tarafından tercih edilen dil C#'tır. C# da popüler bir dildir ve geniş bir topluluğa sahiptir. C# ile geliştirilmiş pek çok popüler oyun bulunmaktadır.

Java

Pek çok alanda olduğu gibi oyun geliştirme alanında da Java karşımıza çıkmaktadır. Bu sebeple oldukça popüler bir dildir ve geniş bir topluluğa sahiptir. Java'nın çoklu platform desteği sayesinde esnek yapılıdır. Genellikle Android oyun geliştiriciler tarafından kullanılır. Java ile geliştirilmiş pek çok popüler oyun bulunmaktadır.

Objective-C

Apple'ın kendi ürünlerinde kullanılması için geliştirdiği bir dil olan Objective-C ile oyun da geliştirebilirsiniz. Objective-C, C dili temel alınarak geliştirilmiştir. iOS işletim sisteminde çalışacak oyunlar için genellikle tercih edilir. Objective-C'nin söz dizimi diğer dillerden biraz farklıdır.

Python

Popüler bir dil olan Python ile oyun geliştirme de yapılabilmekte. Python ile oyun geliştirmede birkaç framework kullanılmaktadır. Bunlardan en popülerleri PyGame, Pyglet ve Panda3D'dir.

Javascript - HTML - CSS - SQL

Web tabanlı oyun geliştirmek için bu dillerin tamamı kullanılır. Web geliştirmeye aşinaysanız oyun geliştirmeye buradan başlayabilirsiniz. Basit oyunlar yapmak için tercih edilebilirdir. Oyununuzun arayüzünü HTML ve CSS ile geliştirip Javascript ile hareket katabilirsiniz. SQL ile de veri tabanına verileri kaydedersiniz.

Popüler Oyun Motorları:

Oyun motoru, oyun geliştirmek için kullanılan, kütüphanelerden oluşan programlardır. Oyun geliştirme yaparken kodlarımızı derleyicilerle derleyebildiğimiz gibi oyun motorlarıyla direkt olarak kodlayabiliriz de. Önceden oluşturulmuş fonksiyonlar, sınıflar gibi veriler bulunur ve bunları kullanarak daha hızlı oyun geliştirebilirsiniz. Aynı zamanda projenizi yönetmeniz de kolaylaşır. Bazı popüler oyun motorları:

Unreal Engine

Epic Games tarafından geliştirilmiş olan Unreal Engine en popüler oyun geliştirme motorlarından biridir. Oyun geliştirmek için C++ ana dil olmasına rağmen C veya Blueprint de kullanılabilir. İster profesyonel bir stüdyo ister amatör bir geliştirici olun, tamamen ücretsizdir ancak oyun üzerinden 1 milyon dolar üstünde gelir elde ederseniz %5'lik bir kısmı Unreal Engine'e ödemek durumundasınız. Oyun geliştirici olarak çalışmak istiyorsanız Unreal Engine öğrenmek avantajlıdır, çünkü sektörde çok fazla yaygındır. Unreal Engine, oyun geliştirmenin yanı sıra sinema ve televizyon alanında da kullanılmaktadır. Gerçek zamanlı render, görsel efekt gibi işlemleri Unreal Engine ile yapabilirsiniz. Hatta kamera görüntüsünü bile içeri aktarıp kullanabilirsiniz. Unreal Engine ile ses düzenleme de yapmak mümkündür. Ses motoru olan Unreal Audio Engine ile bir çok işlemi yapabilirsiniz. İçerisinde çeşitli efektler de bulunan bu motor profesyoneller için pek çok araç sağlamaktadır.

Unity

Bir diğer popüler oyun motoru olan Unity, aynı zamanda Unity 3D şeklinde de bilinmektedir. İsminde 3D olmasına rağmen 2D oyunlar geliştirmek de mümkündür. Unity'de oyun geliştirmek için C# dili kullanılır. Unity ile yapılmış pek çok popüler oyun bulunmaktadır. Bilgisayar, oyun konsolu, mobil, akıllı TV, AR veya VR gözlükleri için geliştirme Unity ile yapılabilir. Çoklu platform desteği sayesinde bir platform için yapılmış bir oyun başka bir platform için hızlıca üretilebilir. Örneğin Windows işletim sisteminde çalışan bir oyunu hızlıca MacOs için hazır hale getirebilirsiniz. Bu sebeple tercih sebebidir. Unity oyun geliştirme, AR ve VR uygulamaları geliştirmenin yanı sıra, sinema ve film endüstrisinde, 3 boyutlu mimari görselleştirme için de kullanılmaktadır.

3D GameStudio

3D GameStudio (GameStudio olarak da bilinir) kısaca 3DGS şeklinde de kullanılmaktadır.  Oyun, 3 boyutlu uygulama ve gerçekçi sanal uygulamalar geliştirmeye yönelik bir oyun motorudur. C dilinin düzenlenmiş bir versiyonu olan Lite-C dili ile programlanmaktadır. Ama C++ ve Delphi için SDK desteği mevcuttur.

CryEngine

3 Türk kardeş tarafından Almanya'da kurulan Crytek firması tarafından geliştirilmiş bir oyun motorudur. CryEngine ile geliştirilmiş en popüler oyun Crysis'tir. Geliştirme dili olarak C++ kullanır.

Truevision 3D

Kolay kullanıma sahiptir ve .Net altyapısına sahiptir. Bu sebeple C#, VB.Net, Visual Basic, C++ ile geliştirme yapmak mümkündür.

 

Yazı dizimin bu bölümünde mobil uygulama geliştirme, masaüstü uygulama geliştirme ve oyun geliştirme alanlarında kullanılan yazılım dilleri ve framework'lere değindim. Diğer bölümlere göz atmayı unutmayın. Geri bildirim, ek bilgi veya eleştiri için yorum yapmaktan çekinmeyin. Ayrıca yazılarımı paylaşarak daha fazla kişiye ulaştırabilirsiniz ????

 

Paylaş:

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir