8 Aralık 2016 Perşembe

Hangi Programalama Dilini Öğrenmeliyim?

Kimse her şeyi bilemez elbet ya da kimsenin her şeyi öğrenecek vakti yok, ama, herkes bir şekilde bir yerden başlamalı sonuçta. Kuşkusuz her programlama veyahut bilgi teknolojisi odaklı sosyal medya grubunun tekrar tekrar sorulan yegane sorularından biridir başlıktaki soru. 
Herhangi bir geliştirici grubu da kendi güvenli alanlarını ve tabularını yarattıkları dil ile cevap vereceklerdir bu soruya. Görüleceği üzere direkt sorulduğunda ben dahil pek çok kimseden objektif bir cevap alınması da bir hayli zor. Peki o zaman ne yapacağız?

- İnternet üzerinde trend olmuş dil listerini mi baz alsak?
- En populer grubu olan dilleri mi?

Hayır!.. kesinlikle yeni sorularla kafamızı karıştırmayacağız. Öncelikle 'dil' sözcüğünün -ve aracının- en basit tanımına odaklanacağız. Dil bizim iletişim ve etkileşim aracımız ve bir programlama dili de bizim bilgisayar ile iletişim kurarak taleplerimizi ileteceğimiz ve bu taleplerin karşılığının nasıl sunulacağını belirleyeceğimiz bir araç.

Bu durumda iletişim kısmına odaklanırsak kendi anadilimizde bir makale, bir şiir ya da kompozisyon yazarken dilin ne olduğunun bir önemi yoktur. Önemli olan bizim o dile hakimiyetimiz ve dilin kalıpları, cümle yapısı, noktalama işaretlerinin kullanımı ve dil içinde anlamlara erişebilmemizi sağlayacak kelime dağarcığı bilgimizdir. Tıpkı bilgisayar ile iletişim kurduğumuzda olduğu gibi.

Öncelikle bilmeniz gereken bilgisayarların çok sayıda işlemi büyük hızla yaparak sonucunu sunabilmeleri ancak sandığımız manada da akıllı olmadıklarıdır. Bu yüzden başlangıç olarak bilgisayar algısına odaklanan dillere adapte olabilmek biraz daha zaman alabilir.

Öğrenmeye ilk başladığınızda insan algısı tarafına odaklanan bir dil tercih etmek süreci ve kavramları oturtup çalışma prensiplerini anlamanızı hızlandıracaktır. Bir programlama dilini seçip öğrenmeye başlamadan önce öğrenmenizi tavisiye edeceğim dil İnglizce'dir bu yüzden.

Temel bir İngilizce bilgisi dahi size bir hayli ivme kazandıracaktır.

İnsan dili ve algısına daha yakın populer dilleri araştırırsanız ulaşacağınız sonuçlar:

* Python
* Visual Basic.NET
* PHP
* Javascript
* Ruby

Dilleri olacak büyük olasılıkla. Özellikle Python, Php ve Javascript dilleri ülkemizde de bir hayli kalabalık ve aktif sosyal medya gruplarına ve komüniteye sahip.
İstihza.com sitesi aracalığı ile python dilinin orjinal dökümanının çevirisinden tutun da gayet kapsamlı ve ücretsiz Türkçe bir kitaba erişebilmeniz de mümkün.
Benim ağırlıklı olarak tercih ettiğim Ruby dilinde ise biraz daha fazla İngilizce bilgisi ve ilgisi gerekecektir. Her ne kadar Türkçe kaynaklar olsa da yeterlilik ve kalite bakımından diğer üç alternatifteki kaynakların (Python, PHP, Javascript) avantajını itiraf etmem gerekiyor.


Python progralama dili, Geliştirilmeye 1990 yılında Guido van Rossum tarafından Amsterdam'da başlanmıştır. Adını sanılanın aksine bir yılandan değil Guido van Rossum’un çok sevdiği, Monty Python adlı altı kişilik bir İngiliz komedi grubunun Monty Python’s Flying Circus adlı gösterisinden almıştır. Günümüzde Python Yazılım Vakfı çevresinde toplanan gönüllülerin çabalarıyla sürdürülmektedir. Python 1.0 sürümüne Ocak 1994'te ulaşmıştır. Son kararlı sürümü, 2.x serisinde Python 2.7 ve 3.x serisinde Python 3.5.2'dir. 3 Aralık 2008 tarihinden itibaren 3.x serisi yayınlanmaya başlamıştır; ancak 3.x serisi 2.x serisiyle uyumlu değildir. (Vikipedi alıntı.)

Ruby programlama dili,  temelleri 1993 yılında atılmıştır. Bu dönemde nesneye dayalı bir betik dili arayışı içinde olan Japon yazılımcı Yukihiro "Matz" Matsumoto; Perl, Python gibi mevcut programlama dillerini araştırmasına rağmen aradığını bulamayınca yeni bir programlama dili tasarlamaya başladı. Şubat 1993'te Matz, bir arkadaşı ile yaptığı çevrim içi sohbet esnasında arkadaşının bu yeni dil için önerdiği Ruby ismini uygun buldu ve bu isimle dili geliştirmeye başladı.

Aralık 1995'te Ruby'nin 0.95 ile ilk genel sürümü yayınlandı. Aynı ay içerisinde peş peşe 3 sürüm daha yayınlandı. Bu sürümler Japonya'da yerel haber gruplarında duyuruldu.

İlk genel sürümden tam bir yıl sonra, Aralık 1996'da Ruby 1.0 yayınlandı. Anavatanı Japonya'da hızla tanınan ve yayılan Ruby, 1999'da İngilizce yazıların yayınlanması ile tüm dünyaya açılma olanağına kavuştu. (Vikipedi alıntı.)

Php, web teknolojilerinde güçlü ve bilindik bir yere sahiptir hiç kuşkusuz. Modül ve frameworkleri bir hayli yaygın ve güçlüdür de. Ülkemizde de ne kadar popüler olduğunu da belirtmeme gerek olmadığını sanıyorum.  Bilmeniz gereken sunucu tarafında yorumlanan bir dil olduğu için orjinal çalışma ortamı olarak her halükarda arka planda bir sunucu altyapısının gerekeceği (Kolay kurulum için XAMMP, MAMP, LAMP gibi araçlar tercih edilebilir.)

Ruby ve Python söz dizimleri ve nesne anlayışlarını birbirine benzeyen iki dil. Her ikisi de size web tabanlı geliştirme için büyük, başarılı ve sağlam frameworkler sunduğu gibi, masaüstü uygulaması geliştirme araçlarından, veri madenciliğine, database yönetiminden sistem yönetimine kadar bir çok konuda özgür araçlar ve bizzat özgürlüğün kendisini sumaktalar. 

Javascript kanadında ise özellikle modern arayüz tasarımında neredeyse olmazsa olmaz denecek kadar populerleştiğini görüyoruz. Node.js gibi yapılarla masaüstü uygulamaları da geliştirilebilse de asıl odak noktası tarayıcı tarafından yorumlanan bir dil olması. PhanthomJs ile terminal uygulaması gibi de kullanmanız mümkün olacaktır.

Daha deteylı bilgi verecek olursak, JavaScript, yaygın olarak web tarayıcılarında kullanılmakta olan dinamik bir programlama dilidir. JavaScript ile yazılan istemci tarafı betikler sayesinde tarayıcının kullanıcıyla etkileşimde bulunması, tarayıcının kontrol edilmesi, asenkron bir şekilde sunucu ile iletişime geçilmesi ve web sayfası içeriğinin değiştirilmesi gibi işlevler sağlanır. JavaScript, Node.js gibi platformlar sayesinde sunucu tarafında da yaygın olarak kullanılmaktadır.

JavaScript prototip-tabanlı, dinamik türlere ve birinci-sınıf fonksiyonlara sahip bir betik dilidir. Nesne yönelimli, imperatif ve fonksiyonel programlama prensiplerine sahiptir.

JavaScript ve Java arasında; isimleri, yazım şekli ve standart kütüphanelerindeki benzerlikler dışında bir bağlantı yoktur ve iki dilin semantikleri çok farklıdır. JavaScript'in yazım şekli C programlama dilinden türetilmiş, semantiği ve tasarımı ise Self ve Scheme programlama dillerinden esinlenmiştir.

JavaScript, ECMAScript belirtimleri ile standartlaştırılmıştır. 

Biraz daha bilgisayar tarafına yaklaşmaktan korkmazsanız Java ve C# giibi alternatifler de var tabi. Java oldukça populer ve multiplatform olması ile benim açımdan C# diline  nazaran daha tercih edilebilecek bir dil. Vikipedi üzerinden de bu dilleri inceleyebilirsiniz.

Herkes için rahat geliştirme yaptığı, yapısıyla uyum içinde olduğu ve sevdiği dil farklıdır ancak profesyonel projelerde proje ihtiyaçları kullanılacak dili sizden önce belirleyeceğinden yeni şeyler öğrenmeye de her zaman açık olunmalıdır.

Maalesef  Visual Basic.NET hakkında herhangi bir bilgim olmadığı için araştırma yükü hala sizde.

Benim yeni başlayacaklara ve hobi olarak ilgilenenlere ya da hevesli olanlara önerim sorulacak olursa cevabım Python veya Ruby ile başlamaları olacaktır. Eğer İngilizce konusunda kendinizi gerçekten yetersiz görüyorsanız öncelikli tercihiniz PYTHON olsun. Derseniz ki senin için en kral dil hangisi cevabım Ruby olacaktır ancak bunun kişiden kişiye değiştiğini ve yıllar içinde başka diller ile de çalıştıktan sonra edinilmiş kişisel bir kanı olduğunu unutmayın. Hem Python hem Ruby, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir. Her ikisi de söz diziminin ayrıntıları ile vakit yitirmeden programlama yapılmaya başlanabilen bir dil olma özelliğine sahiptir. Yapabilecekleriniz derlenebilir dillere nazaran ancak hız açısından sınırlanabilir görünse de başka dillerin (C, C++, Rust) kodlarının gomülebilmesi, C dilinde modül yazılabilmesi veya JVM (Java Sanal Makinesi) üzerinde çalıştırılabilme vb seçeneklerle de bu göreceli açığın giderilmesi mümkündür.

Elbet oyun geliştiriciliğinde C++ dilinin performans ve yaygınlık üstünlüğü, web geliştirmede Php ve Js gibi teknolojileri dikkate alıp hangi alanda geliştirme yapacaksanız öyle bir tercih yapmanız makul olanıdır.

Programlama zor veya öğrenilmez değildir ancak kolay da değildir. 
Emek vermek, vakit ayırmak, araştırmak, izlemek ve tekrar gerektirir.

Yeni başlayan herkese merhaba diyor ve bu yazının faydalı olmasını umuyorum.

Hiç yorum yok:

Yorum Gönder