Programlama Dili İçin Teknoloji Seçimi Ve Önemi

 Merhaba,

Bu yazımızda herkesin merak ettiği ve gerekse yazılım sektörüne veya siber güvenlik sektörüne gönül vermiş ancak nereden başlayacaklarını bilemeyenler için hangi yazılım dilleri ve ne şekilde kullanabilecekleri hakkında aydınlatıcı olması için  bu yazımda bahsetmek istiyorum.

Her Yazılım Dili Her İşi Yapmaz

Yazılım dillerinin de kendilerine göre bir dünyası vardır. Her dil her işi yapmaz. Yani bunu açmak gerekirse; bir programlama diliyle her şeyi programlamanız mümkün değildir, olsa bile biraz çetnefilli olacaktır. Bu sebeple teknoloji seçiminde en önemli etkenler başlıca: alan seçimi (web uygulaması, masaüstü uygulaması, elektronik devre uygulamaları, mobil uygulamalar) ,platform seçimi (İşletim sistemi: Windows, Windows Phone, Linux, Unix, Android, Ios, MacOS), sektör seçimi (oyun, ticari yazılımlar ve diğerleri) bu kraterleri belirmeniz hayati önem taşımaktadır.

Bir sistemin temeli atıldıktan ve üzerine bir süre düşüldükten sonra geliştirildiği vakit, yeni teknolojilere açık olmayan bir yazılım dili kullanımınızda inanın sonradan sistemi çevirmeniz gerçek anlamda zordur.

Siber Güvenlik Sektöründe Durum Nedir?

Şunu belirtmekte fayda var, siber güvenlik tüm bilişim sektörlerinin harmanlanmış bir biçimidir. Ve şahsi fikrim en zorudur. Çünkü gelişen yeni teknolojilere, onların bir takım çıkmış zaafiyetlerine ve devamlı güncel kalmayı zorunlu kılmaktadır. 

 Bu sebeple olacak ki pek çok dilde ne azından söz sahibi olmak gereklidir. Zararlı yazılım analizi yaparken, elinizde ki programın  Java ile yazıldığını düşünün. Bu durumda C# bilmenizin bir artısı olmaz. Vb…

Ve rasyonel bir düşünceyi zorunlu tutar. Herkes kullanır bir uygulamayı siz o uygulamadan nasıl zaafiyet bulabileceğinizi düşünmeniz gerekmektedir. Kendinize nasıl bir kolaylık çıkarabileceğinizi ve ne şekilde leihne kullanabileceğini çözmeniz gerekli.

 

Programlama Dilleri Ve Kullanım Kolaylıkları

C/C++ Ve Assembly Gibi Makine Dilleri

Neden C yada C++ diye soracak olursanız, eski ve orta seviyeli diller olmakla beraber makine programlanmasında kullanılması ve özellikle C++ için pek çok ayrı sektörde yer edinmesi bunun en büyük artısı. Makineye kesin komutlar gönderidği için çoğu işletim sisteminde yerleri bulunna bu dil grubu aslen bilgisayar üzerinde ki donaımlara ve diğer elektronik cihazlarda daha üstün gelmektedir.

Ancak C++ burada diğer orta seviyeli  ve makine dillerinden farklı olarak: Oyun, mobil vb. Alan ve platformları desteklemektedir. Genelde siber güvenlik yazılımlarında da özellikle antivirüs yazılımlarında çok kullanıldığı aşikardır ve bilinen bir gerçektir.

Zor bir dil grubudur. Başlangıçta çok önerilmez.

PHP

PHP… Günümüzde masaüstü uygulamalarda özellikle Unix ve Linux sistemlerde konsoldan uygulama olarak çalıştığını gördüm. Bazı eklentilerle beraber mikrodenetleyici programlamada da kullanılmaktadır. Ne kadar kalitelidir bilemem. Ben PIC serisini C ile programladım çünkü. PHP aslen hitap ettiği alan WEB’dir. Kolaylıkları başlıca şu şekilde: 

Syntax yapısı C# anımsatmaktadır. Genel olarak kolay bir yapısı vardır. Ancak eskiden çok zordu. Özellikle bir hata çıktı mı sadece satırını okuyor ve adeta “Hatam var bul beni!”  diyordu. Şimdilerde eskisi kadar zor değil, dünya çapında desteği büyük bir aileye sahip olmasındandır ki kolaylıkla da hatalarınızı bulabiliyorsunuz. Siber güvenlik araçlarında da çok sık kullanılmaktadır.

JavaScript

Akan sular bir durdu mu bana mı öyle geliyor? Şimdi bir zamanlar JS, tarayıcılarda çalışan bir WEB diliydi, günümüz teknolojileri öyle ki REACT, ELECTRON JS gibi kütüphaneler ile hibrit uygulamalar yazabilmekte ve geliştirici için hayatı kolaylıklar sağlamaktadır. Çok farklı alanlara hitap etmesi, günden günde gelişmesi ile yarınlarda çok aranacak nitelik olacağı kesin. Genelde mobil, masaüstü, web gibi alanlara hitap etmektedir. Benim bildiklerim sadece bu kadar. Dahası var mıdır bilemiyorum. Ama eminim arasak çıkar.

Pearl, Ruby

Bu iki dil günden güne azalsa da kullanımı bence hala çok dinamik ve güçlü bir dillerdir ikiside. Web ve masaüstü uygulamalar için kullanılmakta kolay syntax yapısı ve çok çeşitli kütüphaneleri sayesinde çok farklı amaçlar için kullanılmaktadır. Örn: Siber zaafiyet araçları, Web arama motorları, veri bilimleri… bu örneklerden bir kaçıdır.

Python

Bu dili üstte ki gruptan ayrılmasını nedeni, aynı amaçlara hitap etmiş olsa dahi daha geniş kitleye ve kullanıcıya sahip ve çok köklü bir geçişi olan bir dil. Uzun yıllar boyunca da popülerliğini kaybetmeyecektir diye düşünüyorum. Masaüstü, web, alternatif ama önerilmez lakin mobil, donanımsal cihazları programlamada dahil olmak üzere çok geniş ve güçlü bir toplulukla JS ile yarışıyor. Makine öğrenimi, veri bilimi, siber korsanlarında çok sevdiği bir dildir. Bende Python ile genelde ağ kartı okuma veri çalma, port okuma işlemleri için kullanmaktayım. Akademik çalışmalarda da çok kullanıldığı bilinmektedir.

Swift / Objectiv-C

Çok bilgim yok, açıkçası hiç bilmiyorum. Lakin hitap ettiği alanın MacOS ve IOS olduğunu biliyorum. Bu teknolojiler APPLE firmasının da destekleri ile paralel bir yürüyüşte. Ancak bilgim çok yok bu nedenle de yanlış yönlendirmek istemem.

C#, ASP, .NET, Visual Basic

Aslında bunlar farklı teknolojiler ama birleştiği nokta, Windows… Evet Microsoft’un geliştirdiği bu teknojiler ile Cross Platform diller kullanılmakta ve Visual Basic gibi diğer Microsoft ürünleri ile ortak çalışmalar yaparken hiç zorlanmayacağınız bir yapıdalar. Ben C# da genelde masaüstü uygulamaları yazmaktayım. Ama Xamarin gibi eklentilerle mobil içinde kullanıldığı bilinmekte. Ama çok önerilmediği de bir gerçek. Mobil(WindowsPhone, Android), Masaüstü, WEB uygulamaları için oldukça pratik ve güvenli olmasına rağmen dünyada çok rağbet görmemektedir. Nedeni, özgür düşünce sahibi geliştiricilerin bu konuda diğer dillere yaklaşmasından kaynaklıdır. Lakin Türkiye’de verdiği kolaylıklar ve Windows işletim sisteminin çok olması nedeniyle, kullanımı oldukça yaygındır.

Matlab

Genelde hesaplama aracı gibi kullanılmaktadır bu dil. Ve bildiğim kadarıyla masaüstüne hitap etmektedir. Hiç yüzüne bakmadım ihtiyaç duymadım. Fakat akademik çalışmalar için 1 numaralı kullanım alanı olduğunu çok iyi biliyorum.  

Java, Kotlin 

İkisi ayrı dildir. Ancak JVM motorunun kullanmaktadır. Bu da onları bir nevi bir yerde ortak kılıyor. Ancak syntax  yapısı, değişken tanımlamaları ve daha niceleri oldukça farklıdır. İkisinin de hitap etitği alanlar Web, Oyun, Masaüstü, Mobil… Evet Java burada büyük bir övgüyü bir yerde hak ediyor. Çünkü 1995 yılından bu yana Cross plartform olarak çalışması ve pek çok geliştirici açısından da bu durumun kolaylık sağlaması onu bu günlere kadar getirdi. Ve kullanımına göre çok şekil ala bir dil olması nedeniyle hemen her sektörde hayat bulmuştur Java. Kotlin hakkında bilgim yok. Çalıştığım şirkette kullanılıyor. Mobil uygulama geliştirmek için kullandıklarından çok takipte etmiyorum açıkçası. Ama Javada bulunan bazı sorunları kolaylaştırdığını dile getiriyorlar. 

Sonuç:

Özetle geliştirme yapacağınız uygulama alan ne ise ona göre detaylıca araştırma yapılmaıdır. Başta yani NewBie olduğum zamanlardan biliyorum. Javaya karşı bir sempatim vardı. Ve kendimi Windowsda yersizce yordum, Facebook için brute saldırısı düzenleyen bir yazılım yazmam gerekti bu kezde C# ile yıprattım. Oysaki Pythonda 10 satır kodu geçmeyecek olan  bir programı yazmak için 10 gün uğraştım. Bu benim yazılım sektöründe ki en büyük tecrübemdir. Dediğim gibi:

Teknolojiyi amacına uygun seçmek önemlidir. Yoksa zamanınımızdan çok yemekte.

Bol bilişimli günler 🙂 

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *