กูเกิลประกาศออกเฟรมเวิร์ค Angular เวอร์ชัน 18 ซึ่งถือเป็นเวอร์ชันแรกหลังประกาศแผนการระยะยาวว่าจะควบรวม Angular กับเฟรมเวิร์ค Wiz ที่กูเกิลใช้ภายในบริษัทเอง
ความแตกต่างของ Angular กับ Wiz คือ Angular เน้นใช้สำหรับเว็บที่มีลูกเล่นเยอะๆ ไม่เน้นประสิทธิภาพมากนัก ส่วน Wiz ใช้กับเว็บที่คนเข้าเยอะๆ เน้นประสิทธิภาพสูง แต่เมื่อเส้นแบ่งของงานกลุ่มนี้จางลงเรื่อยๆ กูเกิลจึงตัดสินใจควบรวมเฟรมเวิร์คสองตัวเข้าด้วยกัน
กูเกิลเขียนโพสต์ประกาศควบรวมเฟรมเวิร์ค Angular และ Wiz อย่างเป็นทางการ หลังประกาศไปก่อนหน้านี้บนเวทีงาน NG Conf 2024
คนทั่วไปรู้จัก Angular กันอยู่แล้ว แต่ Wiz เป็นเฟรมเวิร์คที่ใช้กันเฉพาะภายในกูเกิลเองเท่านั้น ตัวอย่างผลิตภัณฑ์ที่ใช้งาน Wiz อยู่แล้วมีทั้ง Google Search, Google Photos, Google Payments รูปแบบการทำงานของ Wiz คือเรนเดอร์หน้าเพจที่ฝั่งเซิร์ฟเวอร์ (server-side rendering) แล้ว "สตรีม" เพจมายังเครื่องของผู้ใช้ เพื่อลดการเรนเดอร์ JavaScript ที่ฝั่งไคลเอนต์ให้มากที่สุด
กูเกิลประกาศควบรวมเฟรมเวิร์ค Angular เข้ากับเฟรมเวิร์คภายในบริษัทอีกตัวชื่อ Wiz
Wiz เป็นเฟรมเวิร์คที่ถูกใช้งานภายในกูเกิลมานานแล้ว แต่ไม่ได้เปิดเผยต่อคนนอก แนวทางการใช้งาน Wiz มักเป็นแอพฝั่งคอนซูเมอร์ เช่น Search, Workspace, YouTube ที่ต้องการประสิทธิภาพสูง ตอบสนองเร็ว ในขณะที่ Angular ใช้กับแอพฝั่งองค์กร แต่ภายหลังความแตกต่างของเฟรมเวิร์คสองตัวนี้ก็น้อยลงเรื่อยๆ ทำให้ทั้งสองทีมมาหารือกัน และตัดสินใจควบรวมมันเข้าด้วยกัน
ไมโครซอฟท์เขียนบล็อกอธิบายเบื้องหลังการแก้ปัญหาระดับโลก (ระดับผู้ใช้ 250 ล้านคนต่อเดือน) เปลี่ยนสถาปัตยกรรมเบื้องหลัง Microsoft Teams บนวินโดวส์เป็นตัวใหม่ที่ดีขึ้น เร็วขึ้น กินแรมน้อยลง
ไมโครซอฟท์เล่าว่าไคลเอนต์ตัวเดิมของ Teams เริ่มเขียนในปี 2015 (Teams เปิดตัวครั้งแรกปลายปี 2016) ตั้งเป้าหมายเรื่องการทำงานข้ามแพลตฟอร์มระหว่างเว็บ-เดสก์ท็อปเป็นสำคัญ จึงเลือกใช้เทคโนโลยีที่มีในตอนนั้นคือ Electron เป็นโฮสต์, AngularJS เป็นเฟรมเวิร์คเว็บ และสร้าง custom controls ของตัวเองขึ้นมาด้วย HTML/CSS
Angular ออกเวอร์ชัน 14.0 ตามแนวทางการออกรุ่นปีละ 2 ครั้ง เวอร์ชันนี้มีการเปลี่ยนแปลงสำคัญ 2 อย่าง ได้แก่
เฟรมเวิร์ค AngularJS เวอร์ชันแรก 1.x ที่เปิดตัวตั้งแต่ปี 2010 หมดระยะซัพพอร์ตแล้วเมื่อสิ้นปี 2021 ถือเป็นการปิดตำนาน AngularJS เวอร์ชันแรกที่เขียนด้วยภาษา JavaScript
เมื่อปี 2015 กูเกิลจับมือกับไมโครซอฟท์สร้างเฟรมเวิร์ค Angular (ไม่มี JS) ด้วยภาษา TypeScript ขึ้นมาใหม่แทนการพัฒนา AngularJS เวอร์ชันแรกต่อ และยังใช้งานมาจนถึงปัจจุบัน (เวอร์ชันล่าสุดขณะที่เขียนคือ 13.x ออกเมื่อปลายปี 2021)
การที่ Angular ทั้งสองเวอร์ชันมีชื่อคล้ายกัน (แต่ใช้ด้วยกันไม่ได้) ทำให้เกิดความสับสนไม่น้อย เพื่อให้แยกแยะได้ง่าย หลายคนเลือกเรียกโครงการใหม่ว่า Angular 2 หรือ Angular 2+ แทน
เฟรมเวิร์ค Angular ออกเวอร์ชัน 12.0 ซึ่งเป็นเวอร์ชันแรกของปี 2021 ของใหม่ที่สำคัญคือเอนจินเรนเดอร์ตัวเดิม View Engine ถูกเปลี่ยนสถานะเป็นล้าสมัย (deprecated) และเตรียมออกออกอย่างถาวรในเวอร์ชันหน้า
Angular เริ่มกระบวนการเปลี่ยนเอนจินเรนเดอร์และคอมไพล์ตัวใหม่ชื่อ Ivy มาได้สักพักใหญ่ๆ แล้ว (เริ่มทดสอบใน Angular 8 เปิดใช้จริงใน Angular 9) และจากสถิติของ Angular เองก็พบว่าปัจจุบันมีแอพพลิเคชันที่ใช้ View Engine เดิมน้อยมากๆ แล้ว
การเปลี่ยนแปลงอื่นใน Angular 12 คือเลิกใช้ฟอร์แมตข้อความ i18n แบบเดิม, หยุดรองรับ IE 11, รองรับโอเปอเรเตอร์ nullish coalescing (??) ของ TypeScript เป็นต้น
ความนิยมของ Visual Studio Code กลายเป็นจุดอ่อนของไมโครซอฟท์ เพราะส่วนขยายของภาษาสำคัญๆ กลับมีใน Visual Studio Code มากกว่า Visual Studio ตัวหลัก
ล่าสุดไมโครซอฟท์ทยอยแก้ปัญหานี้ ด้วยการออก Angular Language Service ตามมาให้ Visual Studio แล้ว ทำให้นักพัฒนาบน Visual Studio สามารถใช้ฟีเจอร์ของ editor พวก auto-completion, rename กับภาษา Angular ได้เต็มรูปแบบ
Ryan Cavanaugh หัวหน้าทีมวิศวกรรมที่ดูแลการพัฒนาภาษา TypeScript ของไมโครซอฟท์ให้สัมภาษณ์กับ StackOverflow บอกว่าจุดเปลี่ยนสำคัญที่ทำให้ TypeScript ได้รับความนิยมอย่างมาก เป็นเพราะกูเกิลตัดสินใจนำไปใช้ในโครงการ Angular 2
Cavanaugh ร่วมทีมพัฒนา TypeScript มาตั้งแต่ก่อนเปิดตัวในปี 2012 (ผู้สร้าง TypeScript คือ Anders Hejlsberg ซึ่งเป็นผู้สร้าง Turbo Pascal, Delphi, C#) เขาเล่าว่าตอนนั้นไมโครซอฟท์ต้องการนำ JavaScript มาสร้างแอพพลิเคชันขนาดใหญ่ แต่ติดปัญหาเรื่องขาดฟีเจอร์ตัวแปรแบบ static typing
Angular เฟรมเวิร์คสำหรับพัฒนาเว็บของกูเกิล (เป็นการเขียน AngularJS ใหม่ในภาษา TypeScript) ประกาศออกชุด Component Dev Kit (CDK) เพื่อให้นักพัฒนาสร้างคอมโพเนนต์ใช้งานได้ง่ายขึ้น
โลกของการสร้างเว็บยุคใหม่หันมานิยมการสร้างคอมโพเนนต์ (หมายถึง UI พิเศษที่นักพัฒนาสร้างเพิ่มจาก UI มาตรฐาน) ทำให้ Angular หันมาอำนวยความสะดวกให้นักพัฒนา เตรียมเครื่องมือพื้นฐานที่ใช้บ่อยๆ สำหรับการสร้างคอมโพเนนต์ไว้ให้แต่แรก ไม่ต้องเสียเวลามาสร้างเองใหม่ทั้งหมด
วันนี้ไมโครซอฟท์จัดงาน Connect(); 2015 ที่นครนิวยอร์ก ได้เปิดตัวผลิตภัณฑ์ด้านโปรแกรมมิ่งมากมาย (ดูจากข่าวหมวดไมโครซอฟท์) และระหว่างการพูด keynote ได้เปิดวิดีโอที่ไม่มีใครคาดถึง นั่นคือวิดีโอจากทีมวิศวกรของกูเกิลกล่าวยกย่องทีมวิศวกรของไมโครซอฟท์ ซึ่งถือว่าเป็นคู่แข่งกันโดยตรง
Brad Green ผู้อำนวยการฝ่ายวิศวกรรมของโครงการ Angular ระบุในวิดีโอว่าเขานับถือวิศวกรของไมโครซอฟท์เป็น "คู่หู" (soulmate) เลยทีเดียว "มันชัดเจนมากว่าพวกเรามีจิตวิญญาณเดียวกัน เราทำงานเข้าขากันได้ดีมาก" Green กล่าว
โครงการ Angular (ชื่อเดิมคือ AngularJS) เป็นเฟรมเวิร์คสำหรับพัฒนาเว็บที่สร้างโดยกูเกิล ตัวไลบรารีรุ่นแรกสุดถูกเขียนด้วย JavaScript แต่ปีที่แล้ว กูเกิลก็ประกาศว่าจะพัฒนา Angular 2.0 ด้วยภาษา AtScript ซึ่งเป็นซูเปอร์เซ็ตของ JavaScript/ECMAScript แทน
แต่ล่าสุด กูเกิลกลับลำโดยประกาศความร่วมมือกับไมโครซอฟท์ (ถือเป็นของแปลกสำหรับสองบริษัทนี้) โดย Angular 2.0 จะเปลี่ยนมาใช้ภาษา TypeScript ของไมโครซอฟท์แทนการใช้ AtScript ของตัวเอง และจะเริ่มจาก TypeScript 1.5 เวอร์ชันใหม่ที่จะออกในเร็วๆ นี้
ที่งาน ng-europe 2014 กูเกิลเปิดโครงการ AtScript ภาษาสคริปต์ที่ขยายมาจาก ECMAScript 6 หรือจาวาสคริปต์รุ่นต่อไป โดยเพิ่มฟีเจอร์ annotations ทำให้ AtScript ถูกเรียกอีกอย่างหนึ่งว่า +A
ภาษา AtScript ทำให้นักพัฒนาสามารถเขียน directive ใหม่ๆ เข้าไปใน AngularJS ได้ง่ายขึ้น
กูเกิลระบุว่า AngularJS 2.0 เองพัฒนาด้วย AtScript อยู่แล้วและ "แปลง" (transpile) ให้ทำงานใน ECMAScript 5 ที่เบราว์เซอร์ส่วนใหญ่รองรับ และเมื่อเบราว์เซอร์รองรับ ECMAScript 6 การทำงานก็จะดีขึ้น
กูเกิลระบุว่าต้องใช้ ECMAScript 6 เพราะฟีเจอร์ที่เพิ่มขึ้นมาหลายอย่าง เช่น class ถูกปรับปรุงให้เขียนตรงไปตรงมาเหมือนภาษาอื่นๆ, และระบบโมดูลที่ AngularJS เคยต้องทำขึ้นใหม่เอง