Yazılım Dünyasında Neden Çok Sayıda Dil Var? Birkaç Tanesiyle Her İş Yapılamaz mı?

Yazılım Dünyasında Neden Çok Sayıda Dil Var? Birkaç Tanesiyle Her İş Yapılamaz mı?

Yüksek kalitede ve rahat şekilde hem web sitesi hem mobil uygulama hem de oyun geliştirmemize imkân tanıyacak tek bir tane yazılım dilini neden kullanmıyoruz?

Gelişen teknolojiyle birlikte her geçen gün önü daha da açılan ve yazılım çevresinde dönen meslekler, başta sundukları yüksek maddi getirilerle yazılıma ilgisi olan ve olmayan çok sayıda kişinin ilgisini çekiyor. Bu bağlamda her yaştan yazılım öğrenmek isteyen kişileri görüyoruz.

Bu elbette oldukça iyi bir durum. Fakat bu kişiler, özellikle de yazılıma ilgisi olmayanlar bu alana adım attıklarında çok sayıda programlama diliyle karşı karşıya kalıyor ve bu da onları sonu gelmez bir kafa karışıklığına sürüklüyor. Bu manzara karşısında akıllarında canlanan soru ise şu: Neden bu kadar çok yazılım dili yerine her işi görebilecek kapasitede olan bir tanesini kullanmıyoruz?

Öncelikle neden çok sayıda yazılım dili olduğunu, daha sonra da neden bunların yerine sadece bir tane kullanmadığımızı anlatacağız:

Öncelikle programlama dili sayısının artmasının temel sebebi ihtiyaç. Teknoloji, her geçen gün daha da gelişiyor ve bu bağlamda şirketlerin buna uyum sağlaması, dijital ürünlerini buna göre devam ettirmesi gerekiyor. Elimizde çok fazla yazılım dili olmasına rağmen düşük ihtimalli bir senaryoda da olsa belli bir iş için gerekli araçları elde edemeyebiliriz.

Bu da bizi o işi görecek yeni araçlar oluşturmaya iter. Temelde tüm dilleri alıp ikonik “Hello World” komutunu farklı şekillerde de olsa girebilirsiniz. Tıpkı araba, bisiklet, uçak ve trenle bir yerden başka bir yere gidebilmeniz gibi. Fakat iş hangi araca ihtiyacınız olduğu konusuna geldiğinde burada belirli çizgiler çekiliyor.

Evet bisiklet de bir ulaşım aracıdır. Fakat ailenizle birlikte uzun yol yapmak istediğinizde araba gibi motorlu taşıtları tercih edersiniz.

Tıpkı web sitesi üzerinde çalışmak için C++ yerine daha çok Javascript veya Python’un tercih edilmesi gibi. C++ da işinizi görebilir fakat dediğimiz gibi bu, araba varken bisikletle uzun yol yapmaya benzer. Ama kimilerinin de bu hoşuna gider ve sürekli bisikleti, yani konumuz çerçevesinde C++ dilini tercih eder. Burada işler biraz da kişisel boyuta geçer.

Şimdi yine araç örneğiyle devam edelim:

Kimileri Ferrari’nin hızını, kimileri Tesla’nın sadeliğini ve akıcılığını, kimileri de Mustang’in sesini sever ve bunlar böyle devam eder. İşi kişisel boyuta geçiren şey de bu. Sizin için daha basit olan veya kullanmaktan keyif aldığınız bir dil varsa, araba örneklerinde olduğu gibi onu tercih edersiniz.

Bu yüzden iki oyunun farklı şekillerde geliştirildiğini görürüz. Stüdyolar geliştirdikleri oyunun ihtiyaçlarına göre farklı diller tercih eder ve günün sonunda bu stüdyoları takip eden farklı stüdyolar da kendilerine uygun olan yolları izleyince “oyun geliştirme için en yaygın kullanılan diller” listesini görürsünüz. Fakat bu listelerdeki dillerin oyun geliştirme için şart olmadığını, kullanılacak dilin oyunun ihtiyacına göre değiştiğini belirtelim.

Oyunlar ve arabalar üzerinden bahsettiğimiz durum internet sitesi tasarlarken de, mobil uygulama yaparken de ve diğer senaryolarda da geçerli. iOS için uygulama geliştiriyorsanız ayrı, Android için uygulama geliştiriyorsanız ayrı araçlarınız olur. Hepsi amaca göre şekilleniyor ve bu yüzden çok sayıda programlama diline sahibiz. Şimdi 5 yaşındaki birinin anlayacağı şekilde sadece 2 görselle anlattıklarımızın üstünden geçelim.

Bunlar, sahip olduğumuz yazılım dilleri.

  • Çatal, bıçak ve kaşık yeter” demeden önce hatırlatalım. Masadaki her bir şeyin işlevini gerektiren en az bir senaryo var.

Bu da her işi görmesini istediğimiz yazılım dili:

Çatalla çorba içmek gibi bir alışkanlığımız olmadığı sürece de kimse, ihtiyaç duymasının yanında işini kolaylaştıran veya kullanmaktan hoşlandığı bir dil karşısında dururken gidip de geliştirme sürecini uzatanı kullanmayacaktır. “Elimizde olanı geliştirmek yerine neden sürekli yenilerini çıkarıyoruz?” diye soracak olursanız da bunun şirketlerin veya yazılımcıların tercihleriyle ilgili olduğunu belirtelim.

  • Kaynaklar: ScienceABC, freeCodeCamp, Stack Overflow
  • Görsel Kaynakları: mkdev, cm-strategies, Greg Pepin Silver