C# , Tercih Nedenleri ve Geleceği

3D Pen Kalem Tasarım Eğitimi Müfredatı
Yepyeni bir müfredat: 3D Kalem ile Tasarım
11 Mart 2020
Sağlıkçılar için 3 Boyutlu maske üretim desteği
3 Boyutlu Destek Projesi
25 Mart 2020
C#

Biz insanların ihtiyaçları sınırsız ve süreklidir. Hepimizin gidermek zorunda olduğu, gidermeyi arzu ettiği çok sayıda ihtiyacı vardır. Ve bu ihtiyaçlar sürekli olarak artma eğilimindedir. Öyle ki ihtiyaclarımız için elektronik sistemler üretip, bu sistemlere komut yazmaya bile gerek duyduk. 

Tarihte insanoğlunun ihtiyaçlarını daha hızlı ve kolay bir şekilde yapma arzusu birçok bilimsel keşifle sonuçlanmıştır. Merak duygusuyla başlayan keşif sürecimiz ise icatlarla son buldu. Ancak günümüzde artık icatlarla yetinmeyip tüm bu süreci hatta sonucu yenilemeye başladık. İnovasyon…

Yani artık ürünle yetinmek yerine, bu ürünü sunan hizmeti ele alıp, yeni etkin özellikler katıp yeniden üretiyor veya daha anlamlı hale getiriyoruz. Kendi döneminde oldukça önemli gelişmelere yol açan buluşları daha anlamlı hale getirme sürecimiz ise devam ediyor. Bu yenilikçi süreçte bilgisayarların ve makineleşmiş bilgisayarların oldukça önemli bir yeri var.  Bu cihazları anlamlı kılanlar ise şüphesiz ki programlardır. Bilgisayar programlarının daha önce karşılanmayan ihtiyaçlara cevap vermekte ki başarısı ise övgüye değerdir.

NASIL BAŞLADI ?

İlk dönemlerde kullanımı oldukça zor olan makine ve assembly dilleri kullanıldı.  Bu dilde yazılan komutlar 0 ve 1 lerden oluşuyordu. İki tabanlı sayı sistemi kullanılarak yazılan detaylı ve uzun komutların program çıktıları oldukça basitti. Bu nedenle bu dillere ve makine diline yakın programlar düşük seviyeli programlama dilleri olarak adlandırıldı.

Ve bir gün….

 AT&T Bell laboratuvarlarında, Ken Thompson ve Dennis Ritchie’in Unix işletim sistemini geliştirebilmek için B dilinden türetilmiş yapısal bir programlama diline ihtiyaç duymasıyla programlama dillerinin gelişim süreci başladı.  

Dennis Ritchie C dilini ilk olarak bu kod ile tanıttı dünyaya…

#include <stdio.h>    int main()

   {

     printf(“Hello World\n”);      return 0;

   }

Bu basit “merhaba” çıktısı ile başlayan  C programlama dilinin macerası, günümüzde neredeyse tüm işletim sistemlerinin (Microsoft Windows, GNU/Linux, *BSD, Minix vb.) yapımında %95′ lere varan oranlarda kullanılmasıyla, sistem, sürücü yazılımı, işletim sistemi modüllerinin yapımında ve diğer bir çok alanda kullanılmasıyla devam ediyor.

Öyle ki C programlama dili artık sınırları belirsiz bir dil olarak tanımlanıyor.  Bu sınırsızlık diğer tüm programlama dillerinin ilham kaynağı oldu. Özellikle nesneye yönelik programlama dilleri olan C++, Java   ve script dilleri (JavaScript, JavaApplet, PHP) gibi programlama dilleri C Programlama Dili’nden esinlenmiştir. 

Başlarda sadece İki tabanlı sayı sistemi kullanılarak başladığımız süreç  günümüzde 150 den fazla programlama dilinin icadıyla devam ediyor. Bir bilgisayara ya da elektronik düzeneklere bir çözümü, algoritmayı ifade etmek amacıyla ne yapması gerektiğini anlatmak için kullanabileceğiniz 150 den fazla programlama dili….

BEN NASIL BAŞLAMALIYIM ?

Öncelikle bu sorunun cevabının evrensel olmaktan çok kişisel olduğunu belirtelim. Programlama dillerine henüz başlamamış veya nereden başlayacağına karar vermediyseniz, hangi programlama dilini profesyonel düzeyde öğrenmenizin beklenti ve isteklerinizi karşılayacağını bilmeniz gerekir. Yani işe beklenti ve hedeflerinizi belirleyerek başlamalısınız.

 Bunu henüz belirlemediyseniz sizin için hazırladığım bu testi yaparak sonuca ulaşabilirsiniz. 

Ya da kısaca neden bir programlama dili öğrenmek istiyorsunuz? Geliştirmek istediğiniz bir proje var mı? Var ise bu proje hangi işletim sistemi tabanlı olacak gibi sorular programlama dili seçiminizde etkili olacaktır.

Bu arada bu konuda bir yazı yazıyorsanız CarlCheo tarafından hazırlanan infografiğe değinmemek olmaz.  WebMasto tarafından türkçeleştirilen bu infografikte, size yöneltilen çeşitli soruları takip ederek programlama dünyasına hangi dil ile başlamanız gerektiği konusunda bir fikir sahibi olabilirsiniz. Bunu da şöyle bırakıyorum. 

C# Hangi Programlama Dili

Benim tercihim ise açık ara C#…

PEKİ NEDEN C# ?

 Öncelikle şunu belirtelim C# kullanışlı arayüzü ve orta seviye bir dil olması nedeniyle yazılımcılar tarafından en çok tercih edilen dillerden bir tanesi. C# Microsoft tarafından geliştirilen bir programlama dilidir ve dünyada en çok tercih edilen programlama dilleri olan c ve c++ etkileşimininden türemiştir.  Ayrıca Java gibi diğer popüler diller c# ile oldukça benzerdir.

Neden C# soruna geçmeden önce c# ile neler yapabileceğinize bir göz atalım.

  • WEB WEB UYGULAMALARI (ASP.NET):

ASP basit veya dinamik bir web sitesi yapmak için ihtiyaç duyulan tüm işlemleri gerçekleştirebileceğiniz bir teknolojidir. ASP, Aktif sunucu anlamına gelir. ASP İle oluşturulan siteler dinamik web siteleridir. ASP İle yazılan kodlar ziyaretçiler tarafından görüntülenemez (Tarayıcı tarafından yorumlanabilir) bu da asp teknolojisini oldukça güvenli kılar. ASP.NET ise daha gelişmiş bir teknolojidir. ASP.NET Web uygulamalarını oluşturan bir çatıdır. C# ile Asp.NET yazılır. Asp.NET bütünlük ve derleme açısından hem de yazılımcılara çok büyük kolaylıklar sağlar.

  • WEB SERVİSLERİ UYGULAMALARI:

Genellkile veri paylaşımına ihtiyaç duyulduğunda verilerin bulunduğu web sayfanın dışında farklı yerlere ve cihazlara gönderiminde kullanılır. Web Service ile platform bağımsız tüm cihazlara veri aktarımı gerçekleştirilir. C# , web servis uygulamaları için oldukça tercih edilir. 

  • OYUN TASARLAMA

Günümüzde  oyun tasarlamanın temenlinde C# vardır. En başta Unity olmak üzere bütün oyun platformları C# destekler. C# aklınıza gelen hemen hemen popüler her oyunun teknik tarafıdır.  C# bilmemek sizi oyun görsel ve grafik arayüzlerini tasarlayan bir tasarımcı yapar.Eğer bir oyun tasarımcısı olmak istiyorsanız artık C# bilmeniz şart.  

  • WİNDOWS FORM UYGULAMALARI:

Windows form uygulamalarını, konsol uygulamalarından ayıran en önemli özelliği  grafiksel kullanıcı arayüzüne sahip olmasıdır. Bilgisayar programları yazmak için windows form uygulamarı tercih edilir. Örneklersek Steam bir grafik arayüzü bulunan uygulama olduğu için Windows form uygulamasıdır.Son güncellemeler ile artık c# ile grafiksel olarak gelişmiş çalışmalar yapmak da mümkün hale gelmiştir.

 KONSOL UYGULAMALARI:

Console uygulamaları Windows’ta CMD Üzerinden çalışır. Consol uygulamaları grafiksel olmayan bir arayüze sahiptir.  Ayrıca konsol uygualamarı geliştirmek programlama öğrenmek için en basit ve en hızlı yoldur.

  • MOBİL UYGULAMALAR

 Güncel verilere bakıldığında Windows Phone mobil iştetim sisteminin Pazar payı her ne kadar yok denilecek kadar az olsa da  Xamarin sayesinde C# ile Windows Phone için mobil uygualama geliştirebilirsiniz. Xamarin, C# kullanarak Cross (çapraz) Platform mobil uygulama geliştirme frameworküdür.

*Mobil uygulama  alanında profesyonelleşmek isteyenlere C# tavsiye edilmez.  

DLL yazma

C# İle DLL yazabilirsiniz. DLL (Dinamic Link Library) adından da anlaşılacağı üzere dinamik bir kod kütüphanesidir. Özellikle kendini tekrar eden yapılar DLL içerisine yazılır ve uygulama tarafından (Oyun, form uygulaması vs.) ihtiyaç duyulması halinde çalıştırılır. DLL,  tek bir dosya üzerinden çalışarak bellek kullanımını minimum seviyeye düşürmenizi, program ve bilgisayar hızını artırmanızı sağlar.

PEKİ NEDEN C#

  • Popülarite,  C# Dünyada en çok kullanıla programlama dilleri arasıdna 5. Sırada yer almaktadır. Dürüst olmak gerekirse bu kadar popüler olmasının nedeni microsoft gibi dünya devi bir yazılım şirketinin gücünün arkasında olması. C#’ın  hem windows hem web hemde mobil uygulama geliştirmeye imkan vermesi bu dili popüler kılan bir diğer neden. Ayrıca geniş iş imkanları da bu dili diğer programlardan daha popüler hale getiriyor. Microsoft tarafından yapılan dünya çapında geçerli sertifika sınavları hatta bu sınavlarda derece alanlara kendi bünyesinde çalışmayı vaat etmesi sayesinde özellikle genç yazılımcıların ilgisini çekiyor.
  • C# orta düzey bir programlama dili olarak sınıflandırılır ancak C# ile çok üst düzey veya basit programlar yapmanıza olanak verir.
  • C# dili makine ve insan algısına eşit seviyededir. Bu nedenle diğer birçok dile oranla daha çabuk öğrenilir.  Bu kolaylığı sağlayan bir diğer özellik ise az sayıda kelime ve basit kontrol yapısına sahip olmasıdır.
  • Esnek bir dil olması, sayesinde c# ile masaüstü, mobil, web uygulamalarını kolaylıkla yazabilir, loT ve diğer sitemlerde kullanarak servisler yazabilirsiniz.
  • Güçlü alt yapısı, bu programlama dilinin en çok tercih edilen diller arasında yer almasını sağlıyor. Bunun en büyük nedeni ise c++ ile aynı komut setini kullanmasıdır.
  • Nesne tabanlı olması sayesinde 4 temel özelliği (Soyutlama, Paketleme ,Kalıtım Alma,Çok Biçimlilik) de içerir.
  • Erişilebilir ve Çokça kaynaklar, c#  hakkında en çok kitap yazılan, örnekler paylaşılan dilerden bir tanesidir.  Çok basit bir araştırma ile c# anlatan çok fazla sayıda kaynağa ulaşabilirsiniz.  Yine  C#(csharp) ile geliştirlen ASP.NET, Silverlight, Azure vb. Microsoft teknolojilerine dair başlangıç seviyesinden  uzman seviyeye kadar çok fazla örneğe ücretsiz erişim sağlayabilirsiniz.
  • Ezber gerektirmemesi, c# dilinin öğrenilme kolaylığı sepeplerinden biridir. Visual studio ile geliştirilmesi nedeniyle namespace / isim alanı hiyerarşisi sayesinde kod bulma kolaylığı sağladığı için ezbere gerek kalmadan kolaylıkla kod yazabilirsiniz.
  • Türkiye öznelinde şirket profilleri, ülkemizde bulunan kökü yazılım şirketleri çoğunlukla c,c# bilen kişiler tarafından kurulmuş ve şirket alt yapılarını c# kurmuşlardır. Bu nedenle c# bilen elemana  duyulan ihtiyaç fazladır.
  • Yüksek Verimlilik;  Diğer bir çok programlama dilinde kod yazmak diğer dillere nazaran daha uzun sürer ( ” Pyton hariç :)” ). Bunun nedeni söz dizimlerinin hata yapmaya açık olmasıdır. Bundan dolayı bu dillerde hata ayıklamada zaman kaybı fazladır. Ancak C# ‘ın söz dizimi oldukça kullanışlı ve hata ayıklamaya müsaittir.
  • XML (Extensible Markup Language) Desteği; C#’ta (csharp) çalışırken XML verilerini eklemek oldukça kolaydır. Bu sayede yazmış olduğunuz programların internete açılan yönleri olur , buda programınızı başka sistemlerle kolayca etkişime geçmesi, veri alışverişine olanak sağlar.
  • JSON (Javascript Object Notation) Destegi;  JSON (Javascript Object Notation), XML’e alternatif olarak cıkarılmış JavaScript tabanlı veri digiştirme formatıdır. JSON (Javascript Object Notation) bilgi alışverişinde XML’e göre daha küçük boyutlatlarda bilgi akışı saglamaktadır. C# (csharp) JSON türünden verileri kullanıp derleyebilme özelliginden dolayı bu C#’ı(csharp) daha güçlü bir dil haline getirmektedir.
  • .NET Framework, .Net platformu C# için geliştirilmiş bir çalışma ortamıdır. C# içerisinde yer alan tüm kütüphaneler .Net platformu içerisinde tanımlanmıştır.

Sonuç olarak,

 C#  günümüzde oldukça popüler bir dildir. Microsoft çok daha geniş kitlelerin ilgisini çekmek için Visual Studio’ya çokça düzenlemeler ve yenilikler getiriyor. Bunu somut bir örnekle açıklayalım. Developer Tech’de yer alan bir makalede Microsoftun C# derleyicisini bir servis olarak sunabilmek için çalıştığı yazıldı. Yazının devamında Microsoftun C#’ı, derleyici ve Visual Studio IDE’si tarafından kullanılan sözcüksel, sözdizimsel ve anlamsal çözümleme motorlarını dokümante edilmiş ve desteklenmiş şekilde kullanıma sunulacağı belirtiliyor. Bu güncelleme C# için kullanılan kullanılar kütüphanelerin ulaşabillirliği daha da kolaylaşacak.Buda bizlere C# Kodlarını anlamada, hata bulmada, düzenlemede ve diğer işlemlerde çokça yardımcı olacağından C# için daha az çaba ile daha iyi kod yazmak mümkün olacak.

 C# gelecekte de popülerliğini sürdürmeye devam edecek…

Sezer ÇETİNTAŞ
Bilişim Teknolojileri ve Yazılım Öğretmeni
https://educathub.com/sezer-cetintas/