Programlama Dilleri

2017-05-17'de Mahir Yıldızhan paylaştı.

Yazılım ve Biz

Bir önceki yazımda "Günümüzde yazılım her şey demektir." diyerek başlamıştım. Şimdi yine bu sözümü tekrarlıyorum. Yazılım dediğimiz şeyin bir sürü "1" ve "0"dan oluştuğunu söylemiştim. Peki biz bu "1" ve "0"ların neresindeyiz?

Aslına bakarsanız pek de bir tarafında değiliz. -Türkiye olarak söylüyorum- yazılım konusunda çok gerilerdeyiz. Özellikle bir makale veya bir araştırmaya dayanarak bu düşüncelerimi dile getirmiyorum. Çok afaki konuşuyorsun diyebilirsiniz. Fakat çevrenizde kaç tane yazılım firması biliyorsunuz? Kaç tane Türk menşeili antivirüs yazılımı yapan firma var? Kaç veri analizi yapan firma? Kaç tane stok takip yazılımı yapan firma var? -Belki bu son söylediğimi yapan çok sayıda vardır. Ama buda bir yazılım yapabiliyoruz kriteri değil bence. Daha kapsamlı bir girdi çıktı takip programlarımız yok mesela. Linux gibi ücretsiz açık kaynaklı yazılımları bile istediğimiz ölçüde kişiselleştiremiyoruz. Örneğin Tübitak'ın geliştirdiği Pardus işletim sistemini ne kadarımız biliyor? Kaç kişi indirip yüklemiştir bilgisayarına.

Hadi bu sorduklarımı ufak bir anket ile derleyelim. Aşağıya 15 soruluk bir anket bağlantısı paylaşacağım. Bu anket 100 katılımcıya ulaştığında bunun ile ilgili bir yazı daha yazacağım.

Programlama Dillerinin Ortak Yanları

Peki "1"den kaç tane, "0"dan kaç tane yan yana koyarsak biz bu yazılımı yaparız. Aslına bakarsanız 1 ve 0'ları biz yazmıyoruz. Bizler programlama dilleri denilen özel komut kodlarını yazıyoruz. Bu bizim işimizi kolaylaştıran bir yapı diyebiliriz. Örneğin -atıyorum- bin tane 1 ve iki yüz tane sıfır arka arkaya yazılırsa ekrana "Ali" yazacak. Biz bunu -programına göre değişir- print("Ali"); diye bir komut ile yapıyoruz. Bu kodu yazdığımız programlara IDE ( Integrated Development Environment), yani "Bütünleşik Geliştirme Ortamı" denmektedir.

Bu IDE yazılımlarına doğru kodları doğru sıralar ile yazıldığında çıktı olarak aldığımız şey aslında bir programdır. Bu programlar kendi amaçlarına göre genel hatları ile 3 ana başlıkta incelenebilir.

  • Sistem Yazılımları:Cihazların tüm fonksiyonlarını bir bütün olarak çalıştırabilen yazılımlardır.
  • Program Yazılımları: Amacına yönelik yazılımlardır. Örneğin hesap makinesi: işlem yapmak için, Photoshop: fotoğraf düzenlemek, Word: kelime işlemek için kullanılan yazılımlardır.
  • Çevirici Yazılımlar: Bunlar programlama dilini makine diline çeviren programlardır.

Hani IDE içerisine yazdığımız kod ve komut grupları vardı ya. İşte bu kodların doğru sıra ile yazılmasını belirleyen "Sintax" denilen bir kurallar bütünü vardır. Aslında bu bizim günlük hayatta kullandığımız dillerin gramer kuralları gibidir. Her programlama dilinin sintax'i ayrıdır. Yani her programlama dilinin kendine ait bir yazım kuralları vardır.

Hangi Programlama Dilini Seçmeli?

Bu kabaca bilgilerden sonra, "peki hangi dil daha kolay?" "hangi dili öğrenmeliyim?" gibi sorular insanların aklına gelir. Benim de en başta gelmiş ve uzunca bir süre bu konuda kafa patlatmıştım. İşin bu kısmında ben kendi fikirlerim ile tavsiyelerimi vereceğim. Ancak araştırıp detaylandırarak kendinize en uygun dili siz bulmalısınız.

Öncelikle seçeceğiniz dili belirlerken kafanızda ne gibi bir şey yapmak var bunu belirlemelisiniz. Örneğin çok kapsamlı bir girdi-çıktı takip programı mı yapmak istiyorsunuz. Yoksa basit bir hesap makinesi mi? Belki de benim gibi kendi yapay zekanızı yapmayı bile düşünebilirsiniz. Dediğim gibi burada amacınız çok önemli. Gerisi programlama dilini öğrenip pratik yapmaktan başka bir şey değil. Dillerin zorlukları kolaylıklarına hiç girmiyorum, çünkü bilene her şey kolay, bilmediğin bir şeyi öğrenmek herkes için zordur. Fakat sizin bu konudaki isteğiniz, size artı bir destek verecektir. Şimdi bildiğim kadarı ile bir kaç dili ve hangi amaçlar doğrultusunda kullanılabilir kısaca sıralayalım.

  • HTML/CSS: Bu iki dili ayrı ayrı da söyleyebilirdim. Ama ikisi bir bütün halinde çok daha güzel sonuçlar çıkarıyor. HTML web sayfalarının temel yapısını oluşturmak için kullanılan dildir. CSS ise bu yapıyı renklendiren, şekillendiren ve efektler ekleyen dildir. HTML (Hypertext Markup Language) Hiper Metin İşaretleme Dili, CSS (Cascading Style Sheets) Basamaklı Stil Sayfaları. Benim işim internet siteleri diyenlerin yönelebileceği dillerdir.
  • C/C++: Bu iki dili de birlikte yazmamın sebebi birbirinin alt/üst versiyonları olmaları. C programlama dili üzerine bazı yeni kütüphaneler ve özellikler eklendiğinde C++ versiyonu geldi. Bu diller de basit oyun uygulamaları ve Window uygulamaları için geçerli.
  • C#: Aslına bakarsanız bu dilde C ve C++'ın bir üst versiyonudur. Ancak kütüphane yapısı ve Visual Studio IDE programının avantajları ile çok daha karmaşık şeylere basit çözümler getirmekte. Genel olarak Window uygulamalarında kullanılmakta.
  • Python: Bu dil ise daha çok analiz ve günümüzde büyük veri ile ilişkilendirdiğimiz bir konu. Aslına bakarsanız bu dil ile çok fazla değer/değişken incelenerek daha verimli ve doğru sonuçlar bulunabilir.
  • PHP: Web siteleri için HTML ve CSS'ten sonraki aşamada PHP olabilir. HTML ve CSS ile hazırlanan siteler ne kadar hoşta görünse statiktir. PHP ile hazırladıklarınız ise daha dinemikleri olan siteler olacaktır.
  • Ruby: Bu da python benzeri bir yazılım. Ağırlıklı analiz işlerinde hızı yüzünden tercih edilir.
  • Java: Bu dil diğerlerine nazaran biraz daha zor. Kaliteli eğitimi bulmak zor aslında. Bulduktan sonra bu da öğrenilebilir. Güzel tarafı da java yüklü tüm platformlarda çalışabilmesi.

Bunca kabanında kabası bilgiden sonra eğer gerçekten bu işlere merakınız var ise daha detayı internette bulabilirsiniz. Burada şöyle bir serzenişte de bulunayım. İnternet alemi büyüdükçe içerisindeki çöp bilgi de çoğalıyor. Gerekli gereksiz detaylar, yalan yanlış bilgiler. Bu yüzden sizin yapmanız gereken en önemli şey iyi bir araştırmacı olmak ve bu bilgileri doğru süzgeçlerden geçirmek.