|
Yeni Genç
|
Bilgisayar Programcılı Nedir? Bak!
S.A kardeşler,
Nedir bu bilgisayar programcılığı ?
şahsen ben kendime sordum ve dedimki; Zor mu yoksa Deli işi mi
diyerekten bu dökümanı azı alıntıda olsa çoğu kendi arşivimden yazdım
Evet birçok kişi bilgisayar programcılarının ne ile uğraştığını bilir fakat nasıl uğraşıp neler yaptığını pek bilmez... Bu konulara sayfamda biraz özet olsa da değineceğim. Önce bilgisayar dünyasında sıkça kullanılan bir kelimeden bahsedeyim yazılım...
Yazılım(software) kelimesi bilgisayar programlama dilleriyle oluşturulan dökümanları, dosyaları ifade eder. Yani bilgisayarınızda işletilmek, çalıştırılmak üzere tasarımlanmış dosyalar yazılım kapsanına girer.
Bu dosyalar nasıl yapılır ?
Yazılım programlama dilleri ile tasarlanır ve yazılır,programlama dili de nedir? derseniz.Programlama dilleri, bilgisayarınızın donanımını(ekran kartı, ses kartı, modem, mouse, klavye...) sizin en rahat biçimde kullanabileceğiniz düzeye getirmeye çalışır. Yani bilgisayarın o soğuk 1010110 gibi rakamlarını sizin zevkle kullandığınız programlara, işletim sistemlerine, oyunlara çevirir.
Örneğin kullanılmakta olan Windows işletim sistemi onbinlerce sayfa milyonlarca bilgisayar kodunun biraraya gelmesinden oluşur. İşte işin tüm zorluğu, o kodların arasında dolaşan, hata mesajlarını günlerce kodları gözden geçirerek arayan, sandalye tepesinde saatlerce aynı ekrana bakarak ilginç görüntüler sergileyen programcıların üzerindedir...
Bilgisayar programcıları işini zevkle yapan ve işini bir hobi edinmiş insanlardan oluşur, en azından öyle olmalı. Aksi halde yoğun konsantrasyon ve sabır isteyen bu işi yapmak aşırı zorlaşır. Neyse... Programlama dillerinden bahsediyorduk Programlama dilleri kendi aralarında sınıflara ayrılmışlardır. İnsanın en zor öğrenebileceği, anlayabileceği yani 1100101 gibi makina kodlarına yakın diller en düşük seviyeli(low level) programlama dilleri, insanın en kolay anlayıp kullanabileceği ve insan diline yakın özellikler gösteren diller ise en yüksek seviyeli(high level) programlama dilleridir. Şimdi bu sınıflandırmaya örnekler verelim;
1-Çok yüksek seviyeli diller : VisualBasic, VB.NET, Acces , Foxpro ...
2-Yüksek seviyeli diller: Pascal ,Basic ,Fortran...
3-Orta seviyeli diller: C ,C++, C# , Java ,ADA...
4-Düşük seviyeli diller: Assembly...
5-Makina dilleri: Bilgisayarın çalışma dilleri 1 ve 0’lardan oluşur...
Bu dillerin kullanıldığı alanlara örnek verirsek;
1-Bilim ve Mühendislikte: Pascal ,C ,C++ ,Java ,Fortran...
2-Veritabanı Programcılığında: Dbase ,Acces ,Foxpro ,Sql...
3-Yapay Zeka Kullanımında: Prolog ,Lisp...
4-Sistem Programcılığında: C ,C++ ,Java ve sembolik makina dilleri...
Bir bilgisayar programı nasıl yazılır ?
Bir yazılım değişik dillerle oluşturulabilir fakat izlenen yöntemler genelde birbirine benzer.Örneğin Algoritma...
Algoritma, elimizdeki sorunun çözümüne gidebilmek için tasarlanan yollar,yöntemlerdir. Örneğin bir arkadaşınıza daha önce gitmediği bir yerdeki bir postaneyi tarif edeceksiniz. Bunun için anlatımda genelden özele giden bir yol izlersiniz. Önce gideceği semti sonra caddeyi sonra postanenin olduğu yönü tarif eder son olarak da kolay bulması için postanenin çevresindeki göze batan özelliklerden bahsedersiniz.İşte bu yaptıklarınız bir algoritmadır. Ve amacınız arkadaşınıza postaneyi bu algoritma yardımıyla tarif etmektir...
Bilgisayar programlama dilleri de programcılıkta bunu gibi yöntemler kullanarak çözüme gider. Algoritmanın uzunluğu kullanılan programlama dilinin seviyesi ve problemin karmaşıklığı ile doğru orantılıdır.
Yapılan algoritma ve tasarımdan sonra yazılım aşamasına gelinir ve bu aşamada yapılacak programın kullanım ömrü, programın kullanım düzeyi ve hangi amaçla kullanılacağı gibi soruların cevaplarına bakılarak programlama dili seçilir. Dil seçimi bazı kriterlere göre yapılmaktadır, örneğin kısa sürmesi ve görsel tasarım içermesi, veritabanı iletişimi yoğun kullanılması gereken bir program yapmamız gerekiyor olsun. Bu durumda Assembly dili ile yola çıktığımızda bahsedilen proje birkaç kişilik deneyimili bir programcı grubu ile birkaç yıl alır. C ile iki programcı aynı işi üç dört ayda VisualBasic veya Delphi ile bir programcı bahsedilen işi bir iki aya yakın bir sürede yapabilir.
Başka bir açıdan örnek verirsek örneğin bir ekran kartı programlamamız gerekiyor ve bu kartın driver’ını ( sürücüsünü ) biz yazacağız. Bu durumda bu işi VB veya Delphi ile yapmamız imkansızdır, kullanmamız gereken diller öncelikle Assembly ve C/C++ olmalıdır.
Evet, programlama dillerinin kendi alanları vardır ve her dil kendi branşında kullanıldığı sürece başarılı ve etkili kullanılmış olur. Buraya kadar anlattığımı özetlersem.
Bir bilgisayar programı yazmak için belli aşamalar vardır ve bu aşamalar geçildiğinde kodlamaya başlanabilir. Bunlar:
1-Analiz
2-Algoritma
3-Dil Seçimi
4-Kodlama
Analiz ile gerçekleştirilmek istenen proje tasarımlanır ve parametreleri araştırılır.Algoritma ile adımlar tayin edilir. Dil seçimi ile en uygun programlama dili seçilir. Ve kodlamaya başlanır...
Kod yazıldıktan sonra da bazı aşamalardan geçer bunlar da genel olarak :
1-Test ve Debug
2-Pilot denemeler ve ilk versiyon denemeleri
3-Hazır halde çalışır programı sunma
Programlama Dilleri
Bu bölümde programlama dillerinin kullanıldıkları alanları ve özelliklerini inceleyeceğiz. Programlama dilleri uygulama alanlarına göre dörde ayrılır:
1-Bilimsel ve Mühendislik Alanında : Üniversitelerde ve bilimsel kuruluşlarda mühendislik veya matematik hesapları için kullanılan bu dillere örnek; Pascal, C, C++, Java dilleridir.
2-Veritabanı Kullanımında : Genellikle Personel kayıtları, fabrika stok veya depo denetimi gibi veritabanı gerektiren işlemlerde kullanılan diller;DBASE,SQL,FOXPRO,PARADOX gibi veritabanı dilleridir.
3-Sistem Programcılığında : İşletim sistemlerinin ve sistem programlarının yazılımında kullanılan dillere örnek, C ,C++ ,Java ve makina dilleridir.
4-Genel Amaçlı kullanım : Çeşitli konularda uygulama geliştirmek için kullanılan dillere örnek,C ,C++ ,Java ,VB ve Pascal’ı verebiliriz.
Son yıllarda programlama dillerinde nesneye yönelik tasarımlar yapılmış ve bu dillerin çoğunun nesneye yönelik programlama yapabilen uyarlamaları çıkmıştır. Nesneye yönelik programlama, programcının kendi sınıfını ve nesnesini oluşturup bunun üzerinde işlemler yapmasına olanak sağlayan ve programlama dillerinin geldiği son aşamalardan birisidir. Bu konu oldukça kapsamlı olup bunun geniş açıklamasını burada yapmayacağım.
OOP(Object Oriented Programming) yani Nesneye Yönelik Programlama’nın kullanılmasıyla ve Visual programcılığın da gelişmesi ile beraber ortaya oldukça güzel görünümlü ve kullanışlı programlar çıkmaya başladı. Bu bilgisayar programlarına olan ilgiyi arttırdı ve bu konulardaki araştırmaları hızlandırdı. Sonuçta şu anda, pekçok dilin artık nesneye yönelik olan ve visual özellikler içeren sürümleri kullanılmakta ve tercih edilmektedir. Örneğin: C++ ,Visual C++ ,C++ Builder ,Delphi ,Java...
İnternet’in de yaygınlaşmasıyla programlama dillerine yeni özellikler eklendi ve internet’te kullanılabilecek nitelikte görsel özellikli diller çıkarıldı. Örneğin HTML, kullanıcının dikkatini çeken renkli ve hareketli arabirimiyle her geçen gün yeni ekler ile gelişmektedir. JavaScript ve VBScript iki script dili olarak HTML’ye getirdiği ek özelliklerle çokça kullanılır oldu. Ve asp ile veri tabanını aktif kullanıma sunma, aktif sayfalar hazırlama olanağı elde edildi.
Görüldüğü gibi özellikle internet’in gelişmesi ile birlikte programlama dillerinin yapılacak işe veya kullanılacak platforma göre değişik özellikler gösteren uyarlamaları çıktı. Bu durumda web teknolojisini izleyen ve internet üzerinde yazılım geliştirmek isteyen bir programcının javascript ,vbscript ,java ,HTML gibi dilleri bilmesi ve bu konularda kendini geliştirmesi gerekir. Uygulama programlarına ,ticari programlara, veya işletim sistemlerinin kullanımına yönelik yazılım geliştirmek isteyen programcıların da C++ ,Java ,Delphi gibi son zamanların en popüler dilleri üzerinde çalışması, bunları öğrenmesi gerekir.
Internet programcılığı, esnek mimari, OOP gibi konularda söylenmesi gereken önemli bir nokta da Java’nın programlama dünyasına getirdiği önemli bir özelliktir. Java nın çıkması ile atılan önemli bir adım da platform’dan yani işletim sisteminden bağımsız olarak çalışan, her sistemde çalışabilen, programların yazılabilmesidir. İleriye yönelik bir bakış açısı ile bakıldığında cep bilgisayarlarının, kablosuz cihazların, cep telefonlarının sıklıkla kullanılacağı ve artık PC lerin döneminin kapanmaya başladığı düşünülürse birçok cihazda çalışabilecek programların yazılmasının önemi anlaşılabilir. Java son yıllarda programlama dünyasına gelmiş en iyi programlama aracıdır ve yeni çıkacak programlama dillleri de Java’nın birçok özelliğinden esinlenmektedir.
Şimdi programlama dillerine özet bir bakış yapalım;
C
Yapısal programlama dilleri arasındadır. Öğrenilmesi zaman almasına rağmen oldukça kullanışlı ve esnek yapısı ile adından yıllarca bahsettirmiş, bilgisayar programcılığının temel dillerinden biridir. C ile bilgisayarınıza bir sistem yazmaktan bir oyun yazmaya veya printer kontrolü yapmaya kadar her türlü işlem yapılabilir ve bu özelliği sayesinde kullanım alanı çok geniş bir dildir.
C++
Nesneye yönelik programlama yapabilen diller arasındadır. C’nin saydığımız tüm özelliklerine ek olarak güçlendirilmiş nesne yönetim özelliği ile şu anda bilgisayar dünyasının en çok kullanılan dillerinden biridir
C#
Nesneye dayalıdır(OOP). C++ ın ve Java’nın pozitif yönlerini bünyesinde birleştirmiş yeni bir dildir. Programcıya internet uygulamaları ve yerel uygulamalar yazmakta bazı kolaylıklar getirmiştir. İleriye dönük olarak microsoft’un java teknolojisine rakip olarak ortaya sürdüğü bir programlama dilidir ve microsoft’un bu konulardaki (internet uygulamaları) yelpazesini genişletmeye yönelik bir atılımdır. Microsoft teknolojileri kullanacak programcıların C#’ı öğrenmeleri zamanla gerekecektir ve öncelikle öğrenilmeye başlanması da avantaj getireceği açıktır.
Java
Nesneye yönelik dillerdendir. Son yıllarda geliştirilmiş bir dil olup modern ve yenlikçi altyapısı ve visual özellikleri ve sürekli gelişen kütüphane (library) desteği ile gün geçtikçe kullanımı artan bir dil olmuştur. Java dili hemen hemen her alanda kullanılabilen esnek ve güçlü bir dildir.
VB.NET
Nesneye dayalı bir dildir. VisualBasic(VB) teki biçok özellik bu dilde yeniden yapılandırılarak değişmiştir. Yapısına bakılırsa VB den ayrı yeni bir dil geliştirilmiş denilebilir. Eklenen bazı özellikler ile VB de yapılamayan birçok işlem artık yapılabilmektedir ve OOP nin özellikleri desteklenerek daha verimli kod yazmaya olanak sağlanmıştır. VB programcılarının VB.NET’e geçişleri kolay olmayacak olsa da VB yerine VB.NET kullanımı gün geçtikçe artacaktır. VB.NET internet uygulamalarından yerel uygulamalara kadar kullanım imkanı geniş bir dildir.
Delphi
Pascal tabanlı bir dil olup nesneye yönelik programlama yapabilme özelliği taşır. Öğreniminin çok zor olmayışı ve üniversitelerde pascal eğitiminin ağırlıklı verilmesi nedenleriyle çoğu bilgisayar programlama öğrencisinin tercih ettiği bir dildir.Visual programlama özelliği taşır.
Pascal
Pascal Yapısal bir dildir, C ’ye benzerlik gösterir. Öğrenilmesinin zor olmayışı ve bilgisyar eğitimi veren okullarda okutulan bir ders olması sebebiyle kullanım alanı genelde üniversiteler ve bilimsel hesaplamalar yapan kurumlardır.
VisualBasic
Basic tabanlı bir dil olup öğrenilmesi kolay, kullanım alanı geniş bir dildir. Özellikle görsel uygulamalarda projenin arabiriminin hızlı yazılmasını sağladığı için genelde kullanıcı arabirimi tasarımlarında kullanılır. Kapsamlı veya çok kullanıcılı uygulamalarda kullanılmaz. Kullanıcı sayısı az olan veya kısa sürede bitmesi gereken küçük ölçekl projelerde tercih edilen bir programlama aracıdır. Yoğun olarak kullanılmaktadır
Programlama dillerinin hepsini incelemeye imkan olmadığından çok kullanılan bir kısım dilden bahsettim. Her dilin kullanım amacı ve yönelimi farklı olabilir önemli olan hedeflediğiniz konularda size yardımcı olacak dili seçip onunla çalışmanızdır.
phpmi aspmi
Birçok defa karşılaştığımız bu soruya tam olarak bir cevap vermek zor. Fakat yeni başlayanlar için seçimi kolaylaştırmak amacıyla her ikisinin de kendi artıları ve eksilerini bilmekte fayda var.
ASP.NET nedir ve avantajları nelerdir?
ASP.NET, güçlü web uygulamalarının hızla hazırlanabilmesi için Microsoft tarafından hazırlanan en son programlama çatısı olarak özetlenebilir. Yani ASP.NET bir programlama dili olmayıp bir programlama çatısıdır. ASP.NET’i ASP’nin son sürümü olarak düşünmektense, yeni bir dönemin başlangıcı olarak görmek daha doğru olabilir.
Daha hızlı web uygulamaları
ASP.NET derlenmiş kod ve saklanma işlemi ile hız kazanıyor. Daha önceki ASP sürümlerinde bir kullanıcı web sitesine girdiği zaman bilgisayar üzerinde anlık derlemeler yapılırdı ve bu hız kaybına neden olurdu. Artık ASP.NET ile hazırlanmış bir kod, bir ziyaretçi tarafından hiçbir zaman ziyaret edilmese bile derleniyor. Saklama işlemiyle de hafızaya bilgi depolanıp, bu sayede kullanıcılara verilerin daha hızlı yollanması sağlanabiliyor.
ASP.NET ile programcılar sayfalarını her kullanımda yeniden aratmak yerine bir kısmını ’caching’ yani tamponlama işlemi sayesinde daha hızlı erişilebilir hale getirebiliyorlar. Bir diğer değişiklik ise ASP .NET ile veri tabanındaki belirli verilerin saklanabilir hale getirilebilmesi. Bu sayede çok değişmeyen bir veritabanını her seferinde tekrar yüklenmek yerine, hızlı erişilebilir forma sokulmuş oluyor.
Güçlü veritabanı fonksiyonları
ASP gibi ASP.NET de programcıların veri tabanlarıyla etkileşimli çalışabilen web uygulamaları yapabilmesine izin veriyor. ASP.NET’in asıl avantajlı bir çok programlama aracına imkan veren Nesne Merkezli (Object Oriented) programlama ile çalışması. Bu sayede daha fonksiyonel ve daha hızlı tasarıma imkan sağlıyor.
Hafıza sızıntısı ve çökme koruması
ASP.NET teki en çok beğenilen yeniliklerin başında hafıza sızıntısı ve çökme koruması özellikleri geliyor. Özellikle hafıza sızıntısı, çoğu kullanıcı tarafından pek bilinen bir konu değilken, sistem yöneticilerini sıkıntıya sokan durumlardan biridir. ASP.NET ile bu hatalar otomatik olarak düzeltilerek, kullanıcıların her zaman web sitesine ulaşabilmesi sağlanıyor.
Çoklu dil desteği
Programcılar artık 25’ten fazla .NET dili ile ASP.NET’i kullanabiliyorlar. Bu dillerden bazıları VB.NET, C# ve Jscript NET. Geniş dil desteği sayesinde birçok programcı web uygulamalarını kolayca hizmete sunabiliyor.
.NET’in parçası olmak
.NET çatısı 3400’den fazla sınıftan oluşan bir yapıya sahip, ASP.NET de .NET’in bir parçası olduğu için neredeyse web uygulaması olarak yapılamayacak hiçbir şey yokmuş gibi gözüküyor.
Programlar ve HTML artık aynı sayfada değil
Önceki sürüm ASP’lerde göze çarpan sorunlardan biri HTML sayfasında programlamanın da görünmesiydi. Diğer bir deyişle, scriptler ve HTML aynı sayfadaydı. Artık gösterilen kod ile script kodu ayrılmış olduğundan, Mic rosoft bunun önüne geçmek için bir önlem almış gibi görünüyor.
ASP.NET’in dezavantajları
Windows zorunluluğu
ASP.NET halen Windows işletim sistemi kullanan bir sunucu üzerinde yapılandırılmak zorunda; kısacası platform bağımsız değil. ASP’de de olan bu sorunu çözmek için Linux sistemlerinde çalışan birkaç ASP hosting sunucusu geliştirildiyse de, işin açıkçası pek başarılı olabilmiş değil. ASP.NET de hali hazırda Windows ve IIS (Internet Information Server)’a mahkumu görünüyor.
Güvenlik
Güvenlik açıkları ASP.NET’ten değil ne yazık ki IIS’ten kaynaklanıyor. Her yeni sürümde açıkları kapansa da IIS dünya çapında güvenlik açıklarıyla ünlü. Fakat .NET ile bununda bir dezavantaj olmaktan çıkması bekleniyor.
Bedava değil
Evet, buna bir çok kişi şaşıracak ama temelde ASP.NET bedava değil. Ne de olsa kendi bilgisayarınızda ASP.NET kullanabilmek için (lisanslı) bir Windows sürümüne ihtiyacınız var. Bu da demek ki tam anlamıyla bedava değil.
Eklenti krizi
ASP.NET kaynak olarak bedava gibi görünebilir ama programlama konusunda bilgili değilseniz hazırlıklı olmanız gereken bir durum var, o da eklentiler. Bir işlemi yapmak için gereken eklentiler genelde ücretli olarak satılıyor. Tabii saatlerce uğraştan sonra bedava olan birkaç eklentiyi zor da olsa bulabilirsiniz.
Hosting maliyeti
Eğer dışarıdan hosting hizmeti alacaksanız biraz daha fazla para ödemeye hazırlıklı olmanız gerekiyor. Çünkü genel olarak Windows hosting daha pahalı, ki bu da normal olması gereken bir fark.
PHP nedir ve avantajları nelerdir?
Personel Home Page’in kısaltmasından oluşan PHP bir web işaretleme dilidir. Zaman içinde çok fazla taraftar bulması sonucu insanlar arasında adı PHP: Hypertext Preprocessor’ kısaltması olarak da değiştirildi. PHP aslında ASP’nin alternatifi olarak görünse de, ilerleyen zamanlarda PHP kendine rakip kabul etmez hale geldi.
Açık kaynak kodu
Kim ne derse desin açık kaynak kodu bilgisayar ile ilgili her sektörün lokomotifi durumunda.
Açık kaynak tabanlı her şey çok hızlı gelişiyor ve taraftar buluyor. Açık kaynak kodu sayesinde herhangi bir hata ya da açık bulunduğunda, saatler içinde yamalar yapılabiliyor. Kısacası sürekli olarak geliştirme çalışmaları devam ediyor.
Hız hız hız
Platform bağımsızlığı
PHP ile biri işletim sistemine mahkum değilsiniz. Unix, Linux, Solaris ve Windows altında PHP sunucusu kurabilirsiniz. Ayrıca PHP dünya üzerinde kullanılan birçok web sunucusu çözümünde destekleniyor. Örnek vermek gerekirse Apache, Microsoft IIS ve Microsoft PWS PHP desteklidir.
Maliyet hesapları
PHP açık kaynak kodu ile yazıldığı için herhangi bir maliyeti bulunmuyor. Bunun yanında şirketler PHP’nin açık kaynak kodu üzerinde çalışma yapıp, istedikleri değişiklikleri gerçekleştirerek, istedikleri sonucu alabiliyorlar. Daha da güzel olan, PHP eklentilerinin internet üzerinde binlerce sayıda ücretsiz olarak bulunduğu gerçeğidir. Hiçbir şey bilmeseniz bile PHP ile hazırlanmış bir portal’ı saniyeler içtnde çalışır hale getirebilirsiniz.
MySQL faktörü
Belki de tüm web tasarımcılarının kabul edeceği konu, MySQL veritabanının PHP ile mükemmel sonuç verdiğidir. Neredeyse bütünleşikmiş izlenimi veren bu birliktelik, performansı çok fazla etkiliyor. Internet üzerinde MySQL yönetimi ve ayarlaması için PHP ile hazırlanmış birçok kaynak bulmanız hiç de zor değil. Ayrıca MySQL bir çok veritabanmda bulunmayan fonksiyonlara sahip.
PHP’nin dezavantajları & Hatalarla baş etmek
PHP hatalarla başa çıkmak konusunda ASP.NET veya ColdFusion kadar başarılı ve güçlü değil. PHP’de yapılan bir hata, kolayca birden çok sayfada soruna neden olabiliyor.
Detaylı programlama zorluğu
PHP bir işaretleme dili olduğu için, bir PHP programından cevap alma süresi uzayabilir. Kısacası, ileri seviye programlama işaretleme dili ile yapılabilecek bir işlem değil.
Sonuç
Dünyaca ünlü web siteri, e-bay (www. ebay.com), hotmail, ASP.NET’e geçti bile, ASP ile çok yüksek trafikli site bulmanız pek kolay değilken, ASP.NET ile ilerleyen günlerde bu durum fazlasıyla değişecek. ASP.NET ile yeni bir dönemin açıldığı da kesin ve PHP’nin tahtı gerçek bir tehlike altında diyebiliriz.
|