nodejs event-driven non-blocking I/O

nodejs muhteşem dimi ?

acayip kavramları hayatımıza getirmiş gibi gözüküyor?

öncelikli olarak ben nodejs’i seviyorum ve kullanıyorum. ama pazarlanmasını pek sevmedim o yüzden, pazarlanmasında öne çıkan şeyleri aşağıda eleştireceğim.

olaya biraz derinlemesine bakalım.

I/O

öncelikli olarak bir  var socket= createSocket(…..) açtığımızı düşünelim

işletim sistemlerinde 3 türlü I/O mekanızması vardır .

a) blocking I/O mode

int size= read(socket,…) dediğimizde socket’te data yoksa, gelinceye kadar program bekler

b) non/blocking I/O mode

int size=read(socket,…) dediğimizde method hemen geri döner, veri varsa size >0 olur yoksa size=0 olur.

c) Async I/O

read(soket, $callback) mantığı ile çalışır. yani sokete veri geldiğinde $callback methodunu çağır ile çalışır.

gördüğünüz gibi  node.js kullandığı model c modelidir.

node.js async IO yapmak için https://github.com/libuv/libuv projesini geliştirmiş . bu projenin feature kısmında zaten “epoll,kqueue …..” gibi şeyleri gördünüzde async I/O görürsünüz.

yani işletim sistemleri (linux,bsd,windows) zaten bu üç modelide çok eskiden beridir destekliyorlar. bayağı eski hemde

yoksa apache,nginx, IIS ve ismini sayamadığım müthiş performanslı çalışan web serverları yazmak mümkün olmazdı.

yani yeni bir şey yok.

Event-driven

event-driven zaten çok eski bir fikir.  “event-driven architecture” diye geçer. bu fikir üzerine inşa edilmiş bir sürü şey var.

yine yeni bir şey yok.

velhasılı kelam, node.js bir “javascript ecosystem” yaratmak için güzel bir başlangıç noktası olmuştur.  ama müthiş bir backend programlama dilimi  acaba, pek emin değilim.

yani hayatımıza yeni kavramlar falan getirmedi. hepsi zaten kullandığımız şeylerdi.

hakkınıda çok yemeyeyim, ben seviyorum nodejs’i

 

 

 

 

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>