Herkese merhabalar,
mobilhanem.com üzerinden anlattığımız Angular Dersleri yazı serimizin ikincisi olan bu dersimizde sizlere neden angular sorusuna cevap vermeye ve diğer client-side web teknolojilerine göre avantajlarına değineceğiz.
Yazının yeni sürümü için tıklayınız.
Evet arkadaşlar bir önceki dersimizde sizlerle front-end development’ın ne olduğu, nasıl bu kadar önem kazandığı ve angular’ın programlama dilinin typescript olduğu konularından bahsetmiştik. Ancak bu dersimizde angular’ın ayrımını yapabilmemiz için bu dilin programlama dillerinin sınıflandırılmasında nerede durduğuna biraz açıklık getirmenin elzem olduğunu düşünüyoruz.
Angular, TypeScript, Javascript nerede yer alıyor?
Programlama dilleri ana çerçevede ikiye ayrılırlar. Low Level and High Level Programming Languages (Düşük Seviye ve Yüksek Seviye Programlama Dilleri). Low Level programlama dillerine Assembly örnek gösterilebilir. Bu sınıftaki dillerin anlamlandırılabilirliği, sürdürülebilirliği ve hata ayıklaması zordur. Ayrıca fiziksel hafıza adreslerinin hatırlanmak zorunda olması ve de en önemlisi farklı instruction set (buyruk kümesi)’ lere sahip makinalar arasında taşınması mümkün değildir.
Bunun yanında High Level programlama dilleri ise makina bağımsızdır ve bu sayede sadece yapılması buyrulan probleme odaklıdırlar. Problemi çözmesi tasarlanmış program çeşitli ara elemanlar (lexical analyzers, syntax analyzers, intermediate code generator ve semantic anayzers vs.) yardımıyla makina diline çevirilir. Detaylı bilgi edinmek için https://en.wikipedia.org/wiki/Compiler linkini veya Robert W. Sebasta ‘nın Concepts of Programming Languages kitabını incelemenizi tavsiye ederiz.
Yüksek Seviye Programlama Dilleri genel olarak iki ana başlık altında toplanırlar.
- Imperative (Emirli)
- Declarative (Bildirimsel)
Declarative diller bilgisayara belirli bir görevi ne şekilde yapacağı tanımlamıştır ve temel olarak iki başlıkta toplanabilirler.
- Logic (Rule-Based, Mantık, Kural Tabanlı) : Imperative dillerdeki gibi kurallar belirli bir sıra ile tanımlanmamıştır. Dili uygulayan sistem istenilen çıktıyı sağlamak için kendi bir işlem sırası belirler. Örnek olarak Prolog gösterilebilir.
- Functional (Fonksiyonel) : Programın çıktısı cümleler (statements) yerine matematiksel fonksiyonların hesaplanması ile elde eden programlama dilleri. Örnek olarak Lisp ve Haskell gösterilebilir.
Imperative dillerde bilgisayar belirli bir görevi nasıl yapacağı tanımlanmıştır ve Imperative diller üç ana kategori altında toplanabilirler:
- Procedure-Oriented (Procedural, Süreç-Tabanlı) : Program akışını nesnelerle kapsülleyen (encapsulation) Object-Oriented yaklaşımın tam tersidir. Örnek C programlama dili
- Object-Oriented (Nesne-Tabanlı)
- Scripting (Betik) Diller : Özel bir run-time ortam üzerinde çalışan dillere betik diller denir. Her adımı kullanıcı etkileşimi ile gerçekleşir. Örnek olarak JavaScript, PHP, Ruby, Python, TypeScript, AppleScript ve CoffeeScript gösterilebilir.
Neden Angular Tercih Etmeliyiz
- Angular 2+ ‘nın en önemli özelliklerinden birisi modüler yapısıdır. Herşeyi tek bir uygulama içerisinde kodlamaktansa, farklı fonksiyonaliteleri gerçekleştiren modülleri kodlamak daha kolay olacaktır. Bu yapısı ise okunabilirliği arttırdığı gibi browser a gönderildikten sonra her zaman en basit ve yalın haliyle kalacaktır. Bu durum da Angular 2 platformunun hızlı bir şekilde çalıştırılmasını mümkün kılıyor. Angular2+’nın modüler yapısı geliştiricilerin rahatlıkla unit test yapabilmelerine olanak sağlıyor.
- Ayrıca Angular Framework’de Html template‘leri angular formunda oluşturursunuz. Bunları kontrol etmek için component sınıfları yazarsınız, uygulama mantığını ise servislerde işletirsiniz ve nihayetinde yazdığınız Servisleri ve Component’leri modüller içerisinde servis edersiniz. Buradan da anlaşılacağı gibi sade bir yapısı vardır ve unit test için çok uygundur.
- Bir diğer önemli özelliği ise JavaScript’in static programlama dili olarak üzerine dizayn edilmiş bir versiyonu olan TypeScript dilini kullanıyor olmasıdır. Angular’ın bu özelliği ise developer’a döküman okumak yerine uygulamayı geliştirmeye başlaması için daha çok zaman tanıyor.
- TypeScript ise JavaScript in üzerine inşa edilmiş bir dildir ve ayrıca TypeScript dili yine TypeScript tarafından JavaScript’e derlenir. Bu özelliği sayesinde tüm mevcut JavaScript uygulamalarını yorulmadan Angular’a göç ettirebilmemize olanak sağlıyor.
- Angular’ın içerisinde barındırdığı TypeScript dili sınıf-tabanlı Nesne Yönelimli Programlama mantığına sahiptir.
Bu yazımızda Neden Angular? sorusuna cevap vermeye çalıştık, ayrıca TypeScript ve JavaScript in programlama dilleri arasında nasıl bir yerde durduğuna değindik. Bir sonraki yazımızda sizlere “Angular Genel Yapısı” konusu ile devam edeceğiz. Bir sonraki dersimizde görüşmek dileğiyle…
Konu hakkındaki görüş ve sorularınızı Konu altından ve ya Soru&Cevap sitemizden sorabilirsiniz.
Tüm Angular Derslerimiz için tıklayınız.
2