React vs Angular

Altan Emre Demirci
ucuncubinyil
Published in
4 min readNov 1, 2022

Frontend dünyasında en popüler konuların başında gelen bu karşılaştırma için bir şeyler söylemeden önce gelin iki ezeli rakibi de tanıyalım.

JavaScript denildiğinde akla gelen en popüler iki dev… React en popüler kütüphanelerden biridir, Angular ise en popüler framework’lerinden biridir. Şimdi daha derine inmeden önce framework ne demek kütüphane ne demek?

Hem framework’ler hem de kütüphaneler, başka programcılar tarafından yazılmış olan ve sizi satırlarca kod yazmaktan kurtaracak kodlar bütünüdür.

Örneğin, String (metin) ile çalışmayı planladığınız bir programınız olduğunu varsayalım. Aşağıdaki gibi temiz kod yazmak istiyorsunuz:

function KelimeAl(str) {
const kelimeler= str.split(' ');
return kelimeler;
}
function CumleOlustur(kelimeler) {
const cumle= kelimeler.join(' ');
return cumle;
}

Tebrikler! Bir kütüphane oluşturdunuz.

Frameworkler veya kütüphaneler sihirli değildir. Frameworkler ve kütüphaneler başkası tarafından yazılmış yeniden kullanılabilir koddur. Amaçları, ortak problemleri daha kolay yoldan çözmenize yardımcı olmaktır.

Diyelim ki eviniz var ama mobilya ya ihtiyacınız olduğunu düşünelim. Sıfırdan ihtiyaç duyduğunuz mobilyayı mesela masayı yapmak istemezsiniz. Bunun yerine Ikea ya gidip istediğiniz mobilyayı istediğiniz renkte ve opsiyonda alarak evinizin eksiklerini giderdiniz, kontrol yine sizdedir. İşte bu metaforda ki Ikea kütüphane oluyor.

Öte yandan framework bir ev inşa etmek gibidir. Mimari ve tasarım söz konusudur. Bir dizi tasarıma ve sınırlı seçeneklere sahipsinizdir ve Müteahhit ve plan kontrol altındadır. Ne zaman nelere ihtiyacınız olduğunu size zamanı gelince söyler.

Şimdi biraz daha derinine inelim. Günümüz yazılım dünyasında gelişmişlik düzeyi artan yeni kütüphane ve frameworklerde yazılım mimarisi avantajlarından oldukça faydalanılmakta. Bunlardan örnek vermek gerekirse ölçeklendirilebilirlik, esneklik ve kolay kullanım bağlamında tercih edeceğimiz teknolojinin yürüteceğimiz yazılım operasyonuna doğrudan etkisi olacağını söylemek makul olacaktır.

React Nedir?

React kütüphanesi 2013 yılında çıkışıyla birlikte popülerliğini hiç kaybetmedi. Arkasında FACEBOOK yazılım ekibinin olması sebebiyle hem popülaritesi azalmadı hem de açık kaynak olması sebebiyle gelişimi devam etmektedir. Şimdilik Angular framewrok’ünün üzerinde bir popülerliği olduğu söylenebilir. Angular’a nispeten daha dar bir source code (kaynak kod) sahip olmasına karşı daha çok geliştiriciye sahiptir. Tercih edilmesi bize daha geliştirilebilir olduğunu gösterir.

Önceden kullanılan farklı web programlama ve farklı JQuery sistemleriyle web sitemiz anlık mesajlaşma gibi reaksiyonlara istenildiği kadar hızlı cevap veremiyordu ve anlık bildirimleri yeterince hızlı alamıyorduk. React JS ile component’leri daha verimli ve daha özgür şekilde modellemek mümkün hale geldi ve web geliştirme alanında çok büyük değişime yol açtı. Öyle ki Angular JS 2 ‘nin Google tarafından geliştirilmeden önce React JS incelenerek işe başlandığı bilinen bir gerçek. Dinamik yapılardaki değişimler ile web programlama alnında bambaşka bir pencere açıldı. Global değişkenleri düşünün React bu değişkenleri anlık olarak değiştirip birbirleri yerine yazarak daha hızlı reaksiyon alabiliyor.

Tabi ki NATIVE desteği ile mobil geliştirme sağlaması ve REACT NATIVE ile Cross platform çalışma ve publish(yayınlama) ile neredeyse rakipsiz bir kütüphane gibi şu an.

Angular Nedir?

Facebook tarafından geliştirilen ve pazar payı çok güçlü olan React dan bahsettik, ancak unutmamalıdır ki Angular JS de Google şirketi tarafından geliştirilmiş bir framework tur. Rakibinden 3 yıl sonra 2016 da duyrulan Angular JS gelişimini devamlı versiyon güncellemeleri ile gerçekleştirir. Angular JS in ikinci versiyonu yüzlerce geliştirici tarafından çok ilgi gören ve varlığını hala iddaalı bir şekilde devam ettirmektedir. Bu framework ana tabanında TypeScript dili kullanılmış bir JavaScript framework’üdür. Angular bazı kodlama yapılarından dolayı TypeScript öğrenme zorunluluğu doğurmaktadır ve bu durum yeni junior developer’lar için öğrenme hızını oldukça düşürüyor. Bunun yanı sıra Angular framework ü bize modüler, servis ve component yapıları bakımından farklı bir yaklaşım getiriyor. Bu yaklaşım da öğrenme hızını temelde oldukça düşürüyor.

Peki Farkları Nedir?

Angular framework u Model View Controller mimarisine dayanan bir JavaScript framework udur. Buna karşın React JS JavaScript temelli bir User Interface kütüphanesidir. Angular’ın modüler bir yapısı vardır, cross-platform bir yapısı vardır böylece mobil, web veya desktop uygulaması geliştirilmeye müsaittir. Ancak React JS in yapısı daha başkadır yukarıda da sözünü ettiğimiz üzere farklı destekler için farklı geliştirmelere ihtiyaç duymaktadır, örneğin geliştirilen React Native ile ancak mobil geliştiricilik yapılabilir, React JS in standart yapısı buna uygun değildir. Ayrıca two-binding yapısı sayesinde aynı değişkene bağlı farklı yapılar da tetiklenir. React in ise component bazlı çözümleri daha farklıdır. Ayrıca Angular mevcut paketleriyle birlikte gelir ve uygulama geliştirmek için tüm gereksinimleri içerisinde barındırır oldukça kapsamlı olduğundan söz edilebilir. Ancak React in farklı destekler için yeni geliştirici çözümlerine ihtiyaç olduğundan bahsetmiştik. Örneğin, kapsamlı bir web uygulaması geliştirmek adına redux, react router, axios gibi ek kütüphaneleri de deneyimlemek gerekecektir React JS ile geliştiricilik yaparken. Bunun yanısıra, React JS i öğrenmek nispeten daha kolay sayılabilir şahsına münhasır yapısını çözümlemek dışında JavaScript yapısına hakim olmak yeterli olacaktır. Ancak Angular için gereksinim TypeScript yapısı olacağından bu hususta ise React JS e artı bir puan diyebiliriz.

--

--