openplanning

Giới thiệu về AngularJS và Angular

  1. AngularJS là gì?
  2. Lịch sử AngularJS & Angular
  3. Ai đứng đằng sau AngularJS?
  4. AngularJS vs Angular

1. AngularJS là gì?

AngularJs là một Javascript Framework được tạo ra để xây dựng các ứng dụng web động (dynamic web app), nó thường được sử dụng để tạo ra các ứng dụng một trang (Single Page Application - SPA). Và hoạt động dựa trên việc mở rộng thêm các thuộc tính (attribute) cho các thẻ của HTML (Các thuộc tính theo quy tắc của Angular). AngularJS là một nền tảng miễn phí và được hàng ngàn lập trình viên trên thế giới ưa chuộng.

2. Lịch sử AngularJS & Angular

AngularJS được phát triển từ năm 2009 bởi Misko Hevery và một người bạn của anh là Adam Abrons. Nó chỉ được coi là một dự án riêng (Side project) nằm ngoài các công việc chính của họ.
Thời gian sau đó Misko Hevery tham gia vào một dự án có tên Google Feedback (Phản hồi Google) với tư cách một lập trình viên làm việc bán thời gian. Misko Hevery và 2 lập trình viên khác đã viết 17.000 dòng mã cho dự án Google Feedback trong vòng 6 tháng. Số lượng mã ngày càng lớn và Misko Hevery nhận thấy rằng nó ngày càng khó để sửa đổi và kiểm soát các lỗi phát sinh.
Vì vậy Misko Hevery đã đánh cược với người quản lý của mình rằng anh có thể viết lại toàn bộ mã cho Google Feedback bằng cách sử dụng dự án GetAngular của mình trong 2 tuần. Hevery đã thua cuộc, thay vì 2 tuần anh đã mất 3 tuần để hoàn thành công việc, tuy nhiên mã của dự án đã giảm từ 17.000 dòng xuống còn 1.500 dòng.
Nhờ sự thành công của Hevery, người quản lý của anh ấy Brad Green đã chú ý và phát triển AngularJS. AngularJS đã thực sự tăng tốc trong thời gian đó.

3. Ai đứng đằng sau AngularJS?

Google!!
Một trong những người sáng tạo ban đầu, Adam Abrons ngừng làm việc trên AngularJS nhưng Misko Hevery và người quản lý của mình, Brad Green, chuyển dự án GetAngular ban đầu thành một dự án mới, đặt tên là AngularJS và xây dựng một nhóm để bảo trì nó tại Google.
Một trong những chiến thắng lớn đầu tiên của AngularJS tại Google xảy ra khi công ty DoubleClick được Google mua lại và họ bắt đầu viết lại một phần ứng dụng của họ bằng AngularJS. Do thành công ban đầu của DoubleClick, Google dường như đã đầu tư nhiều nguồn lực hơn vào AngularJS và đã ban phước cho AngularJS để nó được sử dụng nội bộ lẫn bên ngoài.
Bởi vì điều này, nhóm Angular bên trong Google đã phát triển nhanh chóng.

4. AngularJS vs Angular

Thực tế là Angular có 2 phiên bản hoàn toàn khác nhau, phiên bản 1 và phiên bản khác 1.
Version 1:
Phiên bản 1 có tên chính thức là AngularJS, hiện tại nó vẫn đang được phát triển. Ngày 9 tháng 8 năm 2018 phiên bản 1.7.3 được phát hành. Dưới đây là các mốc thời gian:
Version
Release Date (dd/MM/yyyy)
1.7.3
09/08/2018
1.7.2
12/06/2018
1.7.1
08/06/2018
1.7.0
11/05/2018
1.6.10
18/04/2018
1.6.9
02/02/2018
1.6.8
22/12/2017
1.6.7
25/11/2017
1.6.6
18/08/2017
Phiên bản Angular1 thực sự dựa trên Javascript, các lập trình viên sẽ viết mã theo ngôn ngữ Javascript, vì vậy có vẻ là dễ học dễ làm và các nhà tuyển dụng dễ tìm được ứng viên. Nhưng về mặt hiệu năng nó đang bị cộng đồng lập trình viên mang ra so sánh với ReactJS. Nhiều công ty phát triển phần mềm muốn xây dựng một sản phẩm mới thường cân nhắc sử dụng Angular phiên bản khác 1.
Version 2, 3, 4, ..
Bắt đầu từ phiên bản 2 nó có tên chính thức là Angular. Ngày 4 tháng 5 năm 2018 phiên bản 6 chính thức được phát hành. Dưới đây là các mốc sự kiện:
Version
Release Date (dd/MM/yyyy)
7.0.0
12/2018 (?)
6.0.0
05/05/2018
5.0.0
01/11/2017
4.0.0
12/12/2016
2.0.0
23/10/2014 (*)
Angular phiên bản 2 trở lên có tư duy thay đổi hoàn toàn so với Angular1. Sự thay đổi này được tạo ra với tham vọng sẽ giúp Angular đánh bại ReactJS.
Một số cải tiến của Angular theo tư duy mới:
Component:
Ý tưởng chủ đạo của Angular4 mới là Component (Thành phần), Component không có gì xa lạ trong ReactJS, nhưng Component là khái niệm mới mà Angular1 (AngularJS) không có. Component được Angular4 áp dụng để tạo cấu trúc code rõ ràng và có khả năng tái sử dụng lại các component có sẵn.
Typescript:
Typescript được Miscrosoft phát triển để viết mã Javascript mang phong cách tính hướng đối tượng (Object-oriented). Bản thân Javacript nguyên thủy được thiết kế rất đơn giản và đi theo hướng lập trình chức năng (Functional programming) nên sẽ không có tính năng kế thừa, đa hình,...
Typescript mang một số tính năng cho Javascript như: kế thừa, kiểu dữ liệu, hàm khởi tạo,… Có thể nói, Typescript làm cho javascript mang phong cách rất "Java". Về mặt bản chất nhiều cú pháp của Typescript không được trình duyệt hiểu, vì vậy nó không thể chạy trực tiếp trên trình duyệt, vì vậy cần 1 bước đó là biên dịch (compile) mã Typescript thành Javascript thông thường. Vai trò của Typescript như là một ngôn ngữ trung gian, nó thường được biết tới như là Language specification (Đặc tả ngôn ngữ).