Ne?

Merhaba, bu yazımda size Node.js’ten bahsetmek istiyorum. Node.js’i merak edenler ve bir yerden başlamak isteyenlere giriş niteliğinde fazla kafa karıştırmayan bir yazı yazmak istedim. Herkesin öncelikle sorduğu Node.js nedir sorusunun cevabını zihinlerde aydınlatmak istiyorum. Node.js deyince aklımıza sanki jquery.js, knockout.js, underscore.js gibi birşey geliyor ama neyse ki değil. En azından şimdilik ne değildir onu biliyoruz.

Node.js, Google tarafında Chrome için yapılmış olan V8 JavaScript derleyicisini temel alan bir JavaScript derleyicisidir. Karışık oldu değil mi? O zaman basitçe diyebilir ki bildiğimiz JavaScript ama sunucu tarafında çalışan bir JavaScript. JavaScript’in web tarayıcıları üzerinde istemci tarafında çalışmasını o kadar özümsemişiz ki sunucu tarafında derlenerek çalışması ilk düşünüşte ters gelebiliyor. Node.js de yazdığımız kodlar tarayıcıya derlendikten sonra gönderildiği için, PHP, Ruby ve Python’da olduğu gibi tarayıcılar node.js kodlarına kesinlikle erişemezler ve bu JavaScript’in server-side yani sunucu tarafında da hayatımıza girdiğinin resmi ilanıdır.

Neden?

Ben her ne kadar bir backend programcısı olsam da, projelerde JavaScript ile yazılması gereken yerlere hep balıklama atlamışımdır. Kendimi JavaScript Ninja olarak adlandırabilecek JS bilgi ve tecrübesine şu an için sahip değilim ancak şunu açıkça dile getirebilirim ki yazmaktan en çok zevk aldığım dil şu an için kesinlikle JavaScript. Bu da Node.js ‘e “neden” sorusuna verebileceğim ilk cevap olacaktır. Node.js event-driven (olay güdümlü) ve asenkron çalışıyor. Nu özellikleri Node.js’i I/O işlemleri için biçilmiş kaftan yapıyor. Tutup node.js ile web-spider tasarlayın veya yüz tanıma sistemi yapın demiyorum ama birazdan göreceğiniz üzere birkaç satır kodla web sunucusu yapabiliyorsunuz. RESTful servislerin ne kadar kolay yapıldığını görünce şaşıracaksınız. Gerçek zamanlı veri gerentiren (real-time) uygulamalar için, ekran paylaşımı ve chat gibi senkron çalışması gereken sistemler için mükemmel bir teknoloji.

Nerede?

  • Windows : nodejs.org/download adresinden Windows Installer ile kurabilirsiniz.
  • Mac         : brew install node
  • Linux       : apt-get install nodejs

Nasıl?

Kurulumu test etmek için konsolda: node -v komutunu girerek kurulumun başarılı olup olmadığını ve yüklenen sürüm numarasını kontrol edebilirsiniz. Eğer başarısız olursa kullandığınız işletim sistemine göre girmeniz gereken komut:</p> nodejs -v olabilir. Lütfen ekrana node.js nin sürüm numarasının basıldığına emin olun.

Eğer node.js’in düzgün kurulduğuna ve çalıştığına eminsek, yazılım sektöründe bir klasik olan bir Merhaba Dünya örneğinin nasıl yapıldığını göstermek istiyorum.

Basit bir test editörüyle ( vim olabilir ) hello.js isimli bir JavaScript dosyası oluşturun. İçine aşağıdaki kodları girin.

var http = require('http');
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Merhaba Dunya\n');
}).listen(1337, '127.0.0.1');
console.log('Sunucu http://127.0.0.1:1337/ adresinde çalışıyor. ')

Kaydedip çıkış yaptıktan sonra konsoldan hello.js nin bulunduğu dizine gelin.

node hello.js

Komutunu girdikten sonra ekran görüntüsü;

node hello.js
Sunucu http://127.0.0.1:1337 adresinde çalışıyor.

sonucunu alacaksınız. Şimdi web tarayıcınızda bir sekme açıp http://127.0.0.1:1337 adresine giderseniz “Merhaba Dunya” çıktısını ekranda göreceksiniz. Bingo! 6 satırda apache veya iis gibi bir http sunucu yaptınız.

Node.js ile işler bu kadar basit. Neden bu kadar popüler olduğuna şaşmamak gerekir. Bu bir giriş yazısı olduğu için sizlere uzun uzun örneklerle node.js in külliyatını anlatmak istemiyorum. Ancak ilerde daha detaylı örnekler paylaşabilirim.

Kim?

Node.js’in babası kim? Ryan Dahl isimli bir meslektaşımız node.js i ilk başlatan kişi olmuş bize de onu babası olarak anmak düşer.

Node.js’i kimler kullanır?

  • GoInstant
  • LiveChat
  • Koding
  • Trello
  • Microsoft Azure

ve daha niceleri.

Ne Zaman?

Bunun bir 5N1K yazısı olması planlarımda yoktu ama baktım ki buraya kadar 4N1K olmuş ben de 1N’ den daha ne çıkar diyerek üşenmeyip sizin için bu başlığı ekledim gelenek bozulmasın diye (Biliyorum kimse yemedi bunu).

Ryan’ın 2009 yılında Flicr’a dosya yüklerken çıkan ilerleme çubuğundan etkilenerek bunu icat ettiği iddia ediliyor. Ben de internetin yalancıyım.

Ee?

Yazıyı yazdığım an itibari ile yayınlanmış son kararlı sürümü “0.10.21”. Bu da daha versiyon 1’in çıkmasına zaman var demek oluyor. Bu sizi yanıltmasın node.js gayet stabil çalışıyor ve barındırdığı özellikler sunucuda bulundurulmasını haketmesine yetiyor. Versiyon numarasının düşük olması aslında gelişime ne kadar açık ve aç olduğunu ifade ediyor.

Node.js ye beraber göz gezdirdik. Sunucu tarafında da JavaScript’i çalıştırdık ve geliştirme ortamlarımıza taşıdık. Artık ne olduğunu nasıl kurulduğunu ve kullanıldığını da biliyoruz. Ben şimdi node.js oynamaya gidiyorum sağlıcakla…