Hangi Yazılım Dili Nerede Kullanılır?

Hangi Yazılım Dili Nerede Kullanılır?

yazılım

Yazılıma ilgilisiniz ama nereden başlayacağınızı bilmiyor musunuz? Hangi yazılım dili nerede kullanılır merak mı ediyorsunuz? O zaman bu yazım tam size göre. Ufak da olsa bir araştırma yaptıysanız birçok yazılım dili olduğunu görmüşsünüzdür. Peki neden bu kadar çok yazılım dili var ve nereden çıktı bunlar? Neden bu kadar karmaşık? Bütün bunları nasıl öğreneceksiniz?

Not: Yazılım Nedir, Yazılımcı Nasıl Olunur? başlıklı yazımdan sonra bir ihtiyaç olarak gördüğüm bu yazımı yazmaya karar verdim. Dilerseniz ilk önce oradan başlayın.

Öncelikle şunu belirtmeliyim ki bütün yazılım dillerine hakim olmanız neredeyse imkansızdır. Ancak bir yazılım dilinde ustalaşmanız size diğer yazılım dillerini öğrenirken çok büyük kolaylıklar sağlar. Bütün yazılım dillerini bilmenize gerek de yok zaten. Her şeyden önce alanınızı seçmeniz sizin için en iyisidir. Bu küçük gibi görünen detay aslında en önemli adımdır. Çünkü bu yaptığınız işten zevk almanız ve öğrenme devamlılığınız için olmazsa olmazdır. Yazılım öğrenmeyi isteme sebebiniz mobil uygulama yapmak, oyun geliştirmek, web projeleri yapmak, gömülü sistemler ya da yapay zeka gibi konularda projeler geliştirmek olabilir. Kendinize bir alan seçtikten sonra sıra geldi sizin için gerekli olan yazılım dillerini öğrenmeye. Dikkat! Bu yazımda genel olarak popüler dilleri konu aldım. Unutmayınız ki bunlara çok daha fazla dil ve framework eklenebilir.

GÖMÜLÜ SİSTEMLER

Gömülü sistemler deyince yazılımla ilgisi olmayan insanlar genellikle ya bir anlam veremez ya da "nereye gömülü" gibi sorular sorar. İsim olarak korkutucu gelebilir ama evet, aslında bir yere gömülü 🙂 Mikrodenetleyici denilen elektronik elemana! Mikrodenetleyiciler içerisinde mikroişlemci ve birkaç başka şey daha barındıran elektronik devre elemanlarıdır. Yazdığınız kodu bu devre elemanına atarsınız ve o da sizin yazdığınız koda göre çeşitli işlemler gerçekleştirir. Sensörlerden gelen sinyalleri okuyabilir, bu verileri internete gönderebilir, lcd ekrana çeşitli şeyler yazdırabilir, motor kontrol edebilir ve daha pek çok şeyi gerçekleştirebilirsiniz. Küçük oyuncak arabalardan tutun savunma sanayisi ve hatta uzay araçlarına kadar pek çok yerde gömülü sistem yazılımları bulunur. Yazılımda ilk doğan alanlardan birisi budur.

Assembly

Assembly dili en eski dillerden biridir ve makine diline en yakın dillerden biridir. Bu sebeple yazılması çok zor bir dildir ve öğrenmek epey zaman alır. Bununla birlikte mikro işlemciyle alakalı çok ince ayrıntıları yönetmeye imkan verir. Bu nedenle çok hızlı çalışır. Yazılan kod çok az yer kaplar. Günümüzde hızın önemli olmadığı yerlerde çok fazla kullanılmamaktadır.

C Dili

C dili 1972 yılında Dennis Ritchie tarafından geliştirilmiştir. Bu program Unix işletim sisteminin yazıldığı dil olarak biliniyordu. Ama hemen hemen bütün işletim sistemlerinde C ya da C++ dilleri kullanılmıştır. Makine diline yakın olmasına rağmen kodlaması ve öğrenmesi Assembly'e göre daha kolaydır. Yazılan kod az yer kaplar ve hızlıdır. Günümüzde hala popüler olan bu yazılım dili ile birçok uygulama gerçekleştirilebilir.

C++ Dili

C++ (Türkçe olarak "si plas plas" diye okunur) dili C dili baz alınarak yazılmıştır ve birbirleriyle çok benzerdir. Genel olarak her C koduna aynı zamanda C++ kodudur diyebiliriz (ancak her C++ kodu bir C kodu olmayabilir). C++ dili 1979 yılında Bjarne Stroustrup tarafından geliştirilmeye başlanmış ve 1983 yılında çıkmıştır. Nesne yönelimli bir dildir. Performansın gerekli olduğu durumlarda kullanılan dillerden biridir ve günümüzdeki en popüler diller arasındaki yerini korumaktadır.

Pic mikrodenetleyicileri programlarken C dili, Arduino (Atmel mikrodenetleyicileri) programlarken basitleştirilmiş bir C/C++ dili versiyonu ve Arm tabanlı mikroişlemcileri programlarken de C++ dili kullanılır.

WEB (FRONT-END Ve BACK-END)

Öncelikle Front-end ve Back-end nedir bunu açıklayayım. Web tarayıcımızı (Mozilla Firefox, Google Chrome gibi) açtık ve bir sayfaya gittik diyelim. Örneğin Facebook'a. Butonlar, resimler, videolar, yazılar ve gördüğümüz diğer tüm şeyler aslında web'in front-end tarafıdır. Arka plandaki şeyler, yani bizim görmediğimiz şeyler de web'in back-end tarafıdır. Kullanıcının bilgileri ve paylaşımları server denen ortamda saklanır. Back-end programlama server (veri tabanı) ile front-end arasında bir köprü oluşturur. Örneğin kullanıcı adı ve şifremizi yazıp girişe bastığımızda back-end dili veri tabanına bağlanıp kullanıcı adı ve şifrenin doğruluğunu kontrol eder ve doğruysa girişe onay verir ve giriş sayfasına yönlendirir. Şimdi gelelim dillerimizi tanımaya:

HTML (Hyper Text Markup Language - Hiper Metin İşaret Dili)

HTML front-end tarafıdır ve bir yazılım dili değil işaret dilidir! Öğrenmesi kolaydır. Web programlamayı bir insana benzetirsek Html iskelet sistemidir diyebiliriz. Renk, boyut, arkaplan rengi vs gibi tasarım öğeleri eklenebilir ancak kod okumayı zorlaştırdığı ve karmaşıklaştırdığı için bu tercih edilmez. Öğelere class (sınıf) ya da id verilerek tasarım Css'e bırakılır.

CSS (Cascading Style Sheets - Basamaklı Stil Şablonları)

İnsan benzetimimizde Css insanın dış görünüşüdür. Yani renkler, öğelerin boyutları, yazı tipi ve boyutları, gölgelendirmeler... Bunların hepsi Html yazarken verdiğimiz class ve id'lere göre Css ile programlanır. Daha sonra oluşturduğumuz Css dosyamızı Html kodumuzun içine ekleriz. Css de kolaydır. Bootstrap gibi başarılı frameworkleri bulunmaktadır.

JS (Javascript)

Javascript bazen Java ile karıştırılmaktadır ama ikisi çok farklıdır. Javascript bir betik dilidir. İnsan benzetimizde javascript için verdiğimiz tepkiler diyebiliriz. Örneğin "beğen" butonuna bastığımızda arkada Js kodu çalışır ve boş olan kalp kırmızı renkte görünmeye başlar ya da bir içeriğe puan verdiğimizde de Js kodu çalışır. Menüden "blog" butonuna tıkladığımızda bizi Javascript kodları blog sayfasına yönlendirir. Js yazmak Html ve Css'e göre biraz daha zordur. Ama temelde bu üçü de her web sayfasında bulunmak zorundadır.

Javascript'in framework denilen çeşitli varyasyonları vardır. Hatta NodeJs gibi frameworkler ile back-end programlama da yapılabilmektedir. Frameworkler kod yazmayı kolaylaştırmak, hızlı kod yazmak ve kodun okunurluğunu arttırmak gibi şeyleri sağlar. Popüler olan bazı Js frameworkleri: NodeJs, Angular, ReactJs, Vue, Pug.

PHP (Hypertext Preprocessor - Hiper Metin Önişlemcisi)

Php internet için üretilmiş, sunucu taraflı, yani back-end dediğimiz, çok geniş kullanımlı, genel amaçlı, içerisine HTML gömülebilen betik ve programlama dilidir. Dinamik web sayfaları geliştirmeye yarar. İlk kez 1995 yılında Rasmus Lerdorf tarafından geliştirilmiştir. Php topluluğu tarafından şuanda da geliştirilmeye devam edilmektedir ve açık kaynak kodludur. PHP ile basit bir blog sitesinden tutun da, Arama motoru, web sayfaları (örneğin Facebook php ile yapılmıştır), WordPress gibi içerik yönetim sistemleri ve online oyunlar gibi pek çok şey yapılabilir.

Asp ve Asp.Net

Asp (Active Server Pages - Aktif sunucu sayfaları) Microsoft yazılımı olmakla beraberinde bu firmanın geliştirmiş olduğu bir programlama dilidir. Bu programlama dili kullanıcı tarafına etkileşimli, dinamik web sayfaları göstermek için kullanılır. Bu dil sayesinde kodlamanız bittikten sonrasın da kullanıcının sadece sonuçta oluşan HTML sayfalarını görmesi olayıdır. Yani sizin kodlamış olduğunuz ASP kodlarınızın gösterilmemesidir. Sunucunuz onun için hazırladığı HTML kodlarını gösterir.  En büyük avantajlarından biri kullandığınız scriptlerin saklı kalmasıdır.

Asp.Net'in ilk sürümü 1992 yılında, Microsoft tarafından geliştirilmiştir ve veritabanı yardımıyla dinamik internet siteleri oluşturulmak için kullanılan bir programlama çatısıdır. IIS üzerinde çalışan ASP.NET bir programlama dili değil yazılım çatısıdır. ASP.NET ile internet sitesi geliştirmek isteyen yazılımcılar Visual Basic, C++, C# ve Perl gibi programlama dillerini kullanarak dinamik web siteleri ve yazılımlar geliştirebilirler. Açık kaynak kodlu değil ticaridir.

Java

Java ilk olarak Sun Microsystems tarafından 1995 yılında piyasaya sürülen bir programlama dili ve bilgi işlem platformudur. Java neredeyse her türdeki ağ uygulamalarının temelini oluşturarak gömülü ve mobil uygulamalar, oyunlar, Web tabanlı içerik ve kurumsal yazılım geliştirme ve dağıtımı için kullanılabilir. Çok geniş bir alana hitap etmektedir.

Django

Python dilinin web geliştirme framework'ü olan django'nun temel amacı, karmaşık bir yapıda olan web uygulamalarının kullanımını kolaylaştırmaktır. Django yeniden kullanılabilirlik, modülerlik, hızlı geliştirme süreci politikasına sahip bir yapıda tasarlanmaktadır. Öğrenilmesi kolaydır.

Ruby on Rails

Açık kaynak kodlu bir dil olan Ruby'nin web geliştirme framework'ü olan Ruby on Rails basit yazımı ve öğrenilmesinin kolay olması nedeniyle son dönemlerde popülerleşmiştir. Mvc (model-view-controller) yapısında olan dillerdendir.

MOBİL UYGULAMA GELİŞTİRME

Mobil uygulamalar günümüzde Android ve Ios dışında yok denecek kadar az. Bazı dillerde sadece Android ya da Ios'a yönelik (native) uygulamalar yapıldığı gibi bazı dillerle de hibrid yani hem Android'de hem de Ios'ta çalışabilecek uygulamalar yapılabilmektedir.

Java

Java'nın çok kapsamlı bir dil olduğunu ve pek çok şey yapılabileceğinden bahsetmiştim. Java ile native (sadece Android'de çalışan) uygulamalar geliştirilebilir. 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 bir yazılım dili 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

Kotlin JetBrains tarafından geliştirilmeye 2010 yılında başlanmış, 2011 yılında duyurulmuş, açık kaynak kodlu, nesne yönelimli bir dildir. Yakın zamanda çıkmasına rağmen hızlı bir şekilde popülerleşmiştir. Kotlin ve Java birlikte çalışabilmektedir. Kotlin içinde Java, 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ış, 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 duyurulmuştur. Kullanımı kolay ve açık kaynaklı bir dildir. Bu gibi nedenlerle, yakın geçmişte çıkmasına rağmen, hızlı bir popülerliğe erişmiştir.

Hybrid Geliştirme Platformları

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. Titanium, 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’ta JavaScriptCore veya Android’de Rhino)

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

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++
  • C#
  • Java
  • Javascript

Popüler Oyun Motorları:

Oyun geliştirme yaparken kodlarımızı derleyicilerle derleyebildiğimiz gibi oyun motorlarıyla direkt olarak kodlayabiliriz de. Bana sorarsanız Unreal Engine ya da Unity işinizi epey kolaylaştırır. Hem daha hızlı proje geliştirir hem de daha iyi yönetirsiniz. Bazı popüler oyun motorları:

Unreal Engine, Unity, 3D GameStudio, CryEngine 3, Truevision3D

 

 

Bir cevap yazın

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