Merhaba, ben Levent KARAGÖL. Çocukluk yıllarımda ZX Spectrum üzerindeki Basic çalışmalarımı saymazsak, yazılım kariyerime 1998'de Visual Basic ile başladım. O zamandan bu yana yurt içi ve yurt dışı pek çok yazılım projesinde görev aldım. Halen Türkiye'nin önde gelen yazılım firmalarının birinde çözüm mimarı olarak görev yapıyorum. Bunca yıllık yazılım kariyerimden sonra geçmişe dönüp baktığımda beni en çok üzen şey, şu anda hayranı olduğum programlama dilini geçmişte çok hakir görmüş olmamdır. JavaScript'ten bahsediyorum.

JavaScript, pek çok kişinin gözünden bakıldığında, ufak tefek işleri yerine getirmek, bazen de web sayfalarında göze hoş gözüken birkaç dinamik efekti gerçekleştirmek için kullanılan basit bir Script dilidir. Oysa işin aslı bunun çok çok ötesinde. JavaScript, hem istemci (Client), hem de sunucu (Server) tarafında uygulama geliştirmek için kullanılabilen, diğer pek çok modern programlama dilindeki yetenekleri (hatta zaman zaman daha da fazlasını) barındıran, genişlemeye açık bir programlama dilidir.

Öyle bir programlama dili düşünün ki;
  • Bu dil ile yazılan programlar, ekstra bir efora gerek duymaksızın (Windows, Mac OS, Linux, Android, IOS gibi) her platformda çalışsın.
  • Sadece bu dili kullanarak web sitesi de yapalım, kurumsal boyutta büyük uygulamaları da yazalım, cep telefonu uygulaması da yazalım, hatta hayalimizdeki 3D oyunları da yazalım.
  • Programı yazarken de istediğimiz platformu kullanabilelim. Hatta programı yazmak için bir IDE'ye (özel bir geliştirme ortamına) ihtiyacımız da olmasın. Not defterini açalım, yazalım.
  • Yazdığımız kodu derlemeye gerek kalmasın, not defterinde yazdığımız gibi koyalım, çalışsın.
  • Programın çalışması için kurulum yapılacak makinede de (Java VM veya .Net Framework gibi) ekstradan kurulu olması gereken bir ortama ihtiyaç duyulmasın.
  • Tüm bunların yanında, derlenmeden çalışmasına rağmen, yüksek performansta iş çıkartsın.
  • Bir de, çok geniş bir kitle tarafından kullanılıyor olsun ki, başımız sıkıştığında internette her türlü bilgiye kolayca ulaşabilelim.

Tüm bunları karşılayabilen kaç dil sayabilirsiniz ki? Elbette filmin başında kızımız bu kadar güzel değildi. 2008'de Google'ın çıkarttığı V8 motoru ardından 2009'da JavaScript ile sunucu tarafında da yüksek performanslı uygulama geliştirmeye imkan sağlayan Node.JS ve bu metni yazarken henüz beta aşamasında olmasına karşın göz kamaştıran WebGL teknolojisi ile JavaScript, artık bir programcının hayal gücünü zorlar hale geldi.

Geçmişte bu güzelliği hakir gördüğüm için kafamı pek çok kez duvarlara vurdum. Bu bloğu da kendimi, ona ve onu sevenlere bir nebze olsun affettirmek için açtım. Ancak lütfen yanlış anlaşılmasın. Bu, "Web siteleri için modern JavaScript örnekleri" tadında bir blog değildir. Burada JavaScript'e hak ettiği değeri vermek için, onu tam bir programla dili olarak kullanacağız ve kendi çapımızda sınırlarını zorlamaya çalışacağız. Sloganımız, "JavaScript programlama dili olarak tek başına yeter" olacak. Bunu yaparken de, insanların farklı seviyelerde bilgi sahibi olduğunu ve Türk insanının kolay sıkıldığını da unutmayacağız.

Bloğu temelde 11 kategoride tasarladım. Bunlar;
  1. Temel JavaScript : JavaScript'in J'sini veya programlamanın P'sini bilmeyen azimli ve hevesli kardeşlerime yöneliktir. Diğer kategorideki makaleleri anlayabilmek için gerekli olan bu kategoride sadece JavaScript değil, sırası geldikçe zaruret ölçüsünde HTML ve CSS'in yanı sıra JQuery gibi bazı kütüphanelere de değineceğim.
  2. Object Oriented JavaScript : Object Oriented JavaScript ile programlama yapabilmek için gerekli olan temel bilgileri adım adım anlatacağım.
  3. Design Patterns : JavaScript ile Design Pattern'lerin kullanım şekillerine ilişkin bilgileri  adım adım işleyeceğim.
  4. Angular.JS : JavaScript ile SPA(Sinle Page Application) türünde, modern programlama dilleri ile yazılmış kompleks uygulamaları aratmayan projeleri geliştirmek için kullanılabilecek altyapılardan biri olan Angular.JS'i adım adım anlatacağım.
  5. Can.JS : Angular kadar popüler olmasa da, daha yüksek performansla yine SPA(Sinle Page Application) türünde projeleri geliştirmek için kullanılabilecek altyapılardan biri olan Can.JS'i adım adım anlatacağım.
  6. Node.JS : JavaScript ile yüksek performanslı sunucu taraflı projeleri geliştirmek için kullanılabilecek altyapılardan biri olan Node.JS'i kurulumundan itibaren adım adım anlatacağım.
  7. Three.JS : Herkesin bilgisayarında kurulu olan web tarayıcıları üzerinde çalışan ve modern 3D oyunları aratmayan projeleri WebGL ile geliştirmek için kullanılabilecek altyapılardan biri olan Three.JS'i adım adım anlatacağım.
  8. Require.JS : JavaScript ile yazdığımız kod bloklarının birbirleri ile olan bağımlılıklarını yönetmek ve çıktıyı optimize etmek için kullanılabilecek altyapılardan biri olan Require.JS'i adım adım anlatacağım.
  9. Grunt : JavaScript ile dosyaları minimize etme, birleştirme, teste sokma ve kurulum paketi hazırlama gibi görevleri kolaylıkla yerine getirmemizi sağlayacak altyapılardan biri olan Grunt'u adım adım anlatacağım.
  10. Jasmine : JavaScript ile yazdığımız istemci ve sunucu taraflı kodları test etmek için kullanılabilecek altyapılardan biri olan Jasmine'i ve BDD tarzında uygulama geliştirmeyi adım adım anlatacağım.
  11. Projeler : Bu kategoride, bloğun geri kalanında anlatılanlar kullanılarak sıfırdan adım adım geliştirilen açık kaynak kodlu projeler bulunacak. Projelerin tamamı eğitim amaçlı olup, MIT lisansına sahiptir. Özetle buradaki kodları ve bilgi birikimini istediğiniz gibi kullanabilirsiniz.

Günümüzde oynadığımız en gösterişli 3D oyunları ve büyük/dağıtık kurumsal uygulamaları tek başına yazabilecek kadar yetenekli ama basit bir web sayfasında bir metin kutusunu boş bıraktığımız için bizi uyaracak kadar da alçak gönüllü bu muhteşem dili Türk programcılarına sevdirebilirsem, kendimi amacıma ulaşmış sayacağım.

Yorum Gönder

  1. Son zamanlarda sitenizi takip etmeye başladım. Çok faydalandığımı belirteyim. Özelllikle Tasarım Desenleri bölümünüzü çok beğendim.
    Else {makale fontunuz 11px. Her defasında developer toolsdan fontu 16px yapmadan okumak çok zorluyor. }

    YanıtlaSil
  2. abicim ben 17 yaşımdayım java script yazılım dilini öğrenmek istiyorum bu işide seviyorum bildiğim diller C# ve ASP.net ileride diğer yazılım dillerinide öğrenmek istyorum

    YanıtlaSil
  3. Şu ana kadar bu konuda görüp görebildiğim en kaliteli Türkçe içeriğe sahip, derli toplu bir blog benim için JsKoleji. Emekleriniz için teşekkür ediyor, başarılarınızın devamını diliyorum.

    YanıtlaSil
  4. Türkçe böyle sitelere ihtiyacımız var, taşın altına elini koyan levent beye teşekkürler.

    YanıtlaSil
  5. Zihninize, ellerinize, emeğinize ve sabrınıza sağlık. Her kesimden vatandaşımıza çok faydalı bir türkçe web sayfası hazırlamışsınız. Heyecan ve gurur duydum!

    Evet biraz geç duydum ama olsun :) Javascript ile abi kardeş olmama rağmen sitenize ilk defa denk geliyorum...

    YanıtlaSil
  6. JS ile ilgili bulunabilecek ender kaynak... Teşekkürler Levent bey...

    YanıtlaSil
  7. Türkiye'deki en kaliteli JavaScript içeriğine sahip site.
    Ellerinize sağlık. Gerçekten başarılı bir iş yapıyorsunuz.

    YanıtlaSil
  8. Türkiye'de böylesine eşi bulunmaz bir javascript kaynağı hazırladığınız için teşekkürler. Makalelerinizde kullandığınız üslubu da ayrıca takdir ediyorum.

    YanıtlaSil
  9. Merhaba
    Blog sayfanız ile yeni tanıştım. Son derece faydalı ve dopdolu bir içeriği var. Açıkçası çok hoşuma gitti ama bir o kadar da başım döndü. Javascript her şeye yeter sloganını savunan birisiyim.
    Kolaylıklar dilerim.

    YanıtlaSil
  10. Merhaba
    Postgres/PostGIS konusunda bende katkıda bulunmak isterim.

    YanıtlaSil
  11. Elinize sağlık Levent Bey, çok kaliteli ve anlaşılır bir kaynak olmuş.

    YanıtlaSil
  12. Levent Bey , Asp.Net içinde bilgiler paylaşsanız çok güzel olur. baştan aşağı c# (o)

    YanıtlaSil
  13. Eski bir makale ancak yorum olarak bulunsun istedim. Python dili hakkında ne düşünüyorsunuz?

    YanıtlaSil

 
Top