Node.js Tarihçesi
Node.js Ryan Dahl tarafından 2009 yılında Google Chrome tarayıcısının JavaScript komutlarını çalıştırmak için kullandığı V8 JavaScript motoruna çeşitli eklemeler yaparak JavaScript komutlarının sunucu tarafında çalışması için geliştirilmiştir. V8 motoru C/C++ ile geliştirilmiş JavaScript komutlarını makine diline çevirmek için kullanılan bir ara yazılımdır. Komutların makine koduna çevrilmesi JavaScript komutlarının daha hızlı ve performanslı çalışmasını sağlar.Node.js Neden popüler
Node.js popüler olmasının sebebi hızlı ve performanslı olmasının yanında JavaScript komutlarının esnek oluşu, komutların bloklanmadan işlenmesi ve olay tabanlı çalışması, ayrıca diğer sunucu taraflı çalışan programlama dilleri gibi ek bir web sunucusuna (apache, iis vb.) ihtiyaç duymamasıdır. Diğer sunucu taraflı çalışan programlama dilleri (php, asp.net) ile yazılmış uygulamalar web sunucu (apache, iis, nginx vb.) denilen istemci ve sunucu arasında bağlantıyı kuran ek yazılımlara ihtiyaç duyar. Web sunucusuna gelen istekler daha sonra sunucu taraflı çalışan programlama dillerine iletilir ve istenilen komutlar çalıştırılır. Node.js içerisinde gelen çekirdek modülleri sayesinde ek bir web sunucusuna ihtiyaç duymadan komutların çalıştırılmasını sağlar.Node.js Farkı
Diğer sunucu taraflı çalışan programlama dillerine herhangi bir kullanıcı istekte bulunduğunda sunucu sadece o isteğe cevap verir ve diğer istekler kuyruğa alınır. Bir isteğin uzun sürmesi diğer kullanıcıları etkiler ancak Node.js komutları bloklamadan işlediğinden işlemi uzun süren komut sistemi yavaşlatmaz ve Node.js diğer kullanıcılara da cevap verir. Bununla ilgili en güzel örnek yemek sipariş sistemi diyebiliriz. Klasik sunucu taraflı programlama dilleri bir yemek siparişi geldiğinde sırada duran diğer müşteriler siparişin hazırlanmasını bekler. Node.js ise herhangi bir yemek siparişi geldiğinde siparişi arka tarafa bildirir ve not alır ve daha sonra sıradaki müşterinin siparişini alır. Verilen yemek siparişlerinin hangisi daha önce hazırlanırsa o yemek siparişine cevap verir. Böylece müşteri daha önce ve hızlı hazırlanacak bir yemek için sırada fazladan beklemez. Bloklamadan işlem yapılmasına non-blocking I/O, ölçeklenebilir uygulama geliştirme vb. çeşitli isimler verilmiştir. Bu yapı sayesinde anlık mesajlaşma, oyun sistemleri vb. gerçek zamanlı uygulamalar kolaylıkla ve daha az maliyetle yapılır.Node.js ile Ne yapılabilir
Node.js modüler yapısı ve NPM paket yöneticisi sayesinde diğer geliştiriciler tarafından hazırlanmış modülleri projenize kolaylıkla dahil edebilmenizi ve daha hızlı uygulamalar geliştirmeyi sağlar. Örneğin; veritabanlarına bağlanmak için oluşturulmuş modülleri projenize dahil ederek mysql, sqlite, mongodb, postgresql vb. veritabanı sistemlerini kullanan uygulamaları kolaylıkla geliştirebilirsiniz.Kaynak : http://www.yusufsezer.com.tr/node-js-nedir/