ก่อนที่จะพูดถึงทางเลือกอื่นสำหรับ js และที่มันใช้ JavaScript เป็นหนึ่งในภาษาที่ง่าย หลากหลาย และมีประสิทธิภาพ ซึ่งใช้ในการขยายฟังก์ชันการทำงานในเว็บไซต์ บริการพัฒนา JavaScript ช่วยในการแสดงผลภาพบนหน้าจอ ตลอดจนการประมวลผลและการคำนวณข้อมูลบนหน้าเว็บได้อย่างง่ายดาย ภาษาการเขียนโปรแกรมยังช่วยขยายฟังก์ชันการทำงานไปยังเว็บไซต์ที่ใช้สคริปต์ของบุคคลที่สามท่ามกลางคุณสมบัติที่มีประโยชน์อื่นๆ มากมาย แต่ตัวเลือกของผู้คนนั้นแตกต่างกัน มาดูเทคโนโลยีที่กำลังมาแรงกันดีกว่าหากคุณไม่สะดวกใจที่จะใช้ js

ก่อนหน้านั้น เรามาดูกันว่าทำไมบางคนถึงเกลียด js

เดิมควรจะเป็นภาษาสคริปต์ง่าย รวดเร็ว และเข้าใจง่ายสำหรับเว็บ มันควรจะเป็นเครื่องมือที่จะช่วยคุณในการเขียนเว็บไซต์ของคุณ บางทีคุณอาจต้องทำไดนามิกลูปแทนที่จะเขียนอะไรหลายๆ ครั้ง หรือบางทีคุณอาจต้องการมีกรณีพิเศษสำหรับการกดปุ่มลัดบางปุ่ม พฤติกรรมบางอย่างของภาษาสะท้อนให้เห็นสิ่งนี้: คุณแทบจะไม่มีข้อผิดพลาดใดๆ จนกว่ามันจะต้องเกิดขึ้นอย่างแน่นอน (แทนที่จะเป็นข้อผิดพลาดในช่วงต้น/ก่อนรันไทม์ของคอมไพเลอร์ C) ตัวอย่างเช่น มีโหมดที่ไม่เข้มงวดอยู่ เป็นต้น

สิ่งแรกที่ไม่ควรละเลยเมื่อพัฒนาเว็บแอปพลิเคชันคือประสิทธิภาพ ขณะนี้ ข้อจำกัดของ JavaScript ทำให้การคำนวณจำนวนมากช้าลง นั่นทำให้ประสบการณ์ผู้ใช้แย่ลงอย่างมาก

JavaScript มีข้อบกพร่อง คำตอบอื่น ๆ ให้รายละเอียดมากเกี่ยวกับพวกเขา ทำให้หลาย ๆ คนพูดเกินจริงไปมาก ดังนั้นฉันจะไม่ไปยุ่งกับพวกเขาที่นี่ ได้รับการออกแบบอย่างรวดเร็วเพื่อเหตุผลทางการตลาด (เพื่อให้พวกเขาสามารถพูดได้ว่า "เรามีภาษาสคริปต์ในเบราว์เซอร์!")

และคุณสามารถเลือกภาษาการเขียนโปรแกรมที่แตกต่างกันเพื่อวัตถุประสงค์ในการพัฒนาของคุณ เช่น java, c# ฯลฯ… แต่คุณสมบัติบางอย่างที่นำเสนอโดย js และจากเฟรมเวิร์กของมัน ไม่สามารถรับได้จากภาษาการเขียนโปรแกรมอื่นหรือเฟรมเวิร์กของมัน นั่นเป็นเหตุผลที่เราควรมองหาทางเลือกอื่นที่คล้ายกับ js

เหตุใด JavaScript จึงสมควรได้รับความรักมากกว่าความเกลียดชัง

มาดูกันว่าเราจะสำรวจทางเลือกอื่นอะไรบ้าง

ตัวพิมพ์

เรามีภาษาที่คอมไพล์เป็น JavaScript เช่น Coffeescript หรือ TypeScript

Typescript คืออะไร

Typescript เป็นภาษาการพัฒนา Javascript ยุคใหม่ เป็นภาษาที่คอมไพล์แบบคงที่เพื่อเขียนโค้ด Javascript ที่ชัดเจนและเรียบง่าย สามารถทำงานบน Node js หรือเบราว์เซอร์ใดๆ ที่รองรับ ECMAScript 3 หรือเวอร์ชันที่ใหม่กว่า

Typescript จัดเตรียมการพิมพ์แบบสแตติก คลาส และอินเทอร์เฟซเพิ่มเติม สำหรับโปรเจ็กต์ JavaScript ขนาดใหญ่ การใช้ Typescript จะทำให้คุณได้ซอฟต์แวร์ที่มีประสิทธิภาพมากขึ้นและปรับใช้กับแอปพลิเคชัน JavaScript ทั่วไปได้อย่างง่ายดาย

หากคุณต้องการเหตุผลเพิ่มเติมในการใช้ TS บน JS ที่นี่

ถึงกระนั้น TypeScript ก็เป็นเพียงส่วนเสริมของ JavaScript

ความแตกต่างที่สำคัญ

  • JavaScript เป็นภาษาสคริปต์ที่ช่วยคุณสร้างหน้าเว็บเชิงโต้ตอบในขณะที่ Typescript เป็นส่วนเสริมของ JavaScript
  • จำเป็นต้องรวบรวมโค้ด Typescript ในขณะที่โค้ด JavaScript ไม่จำเป็นต้องคอมไพล์
  • Typescript รองรับคุณสมบัติการสร้างต้นแบบในขณะที่ JavaScript ไม่รองรับคุณสมบัตินี้
  • Typescript ใช้แนวคิดเช่นประเภทและอินเทอร์เฟซเพื่ออธิบายข้อมูลที่ใช้ในขณะที่ JavaScript ไม่มีแนวคิดดังกล่าว
  • Typescript เป็นระบบประเภทที่ทรงพลัง รวมถึงคุณสมบัติทั่วไปและ JS สำหรับโครงการขนาดใหญ่ ในขณะที่ JavaScript เป็นตัวเลือกที่เหมาะสำหรับโครงการขนาดเล็ก

Webแอสเซมบลี

ขณะนี้ ข้อจำกัดของ JavaScript ทำให้การคำนวณจำนวนมากช้าลง นั่นทำให้ประสบการณ์ผู้ใช้แย่ลงอย่างมาก

นี่เป็นหนึ่งในเหตุผลหลักที่ทำให้ WebAssembly ได้รับความนิยมเพิ่มขึ้น ด้วยเทคโนโลยีนี้ โค้ดในภาษาการเขียนโปรแกรมใดๆ ก็สามารถคอมไพล์เป็นโค้ดไบต์ ซึ่งทำงานในเบราว์เซอร์ได้

WebAssembly เป็นมาตรฐานแบบเปิดที่กำหนดรูปแบบไบนารีโค้ดแบบพกพาสำหรับโปรแกรมที่ปฏิบัติการได้ และภาษาแอสเซมบลีที่เป็นข้อความที่สอดคล้องกัน ตลอดจนอินเทอร์เฟซสำหรับอำนวยความสะดวกในการโต้ตอบระหว่างโปรแกรมดังกล่าวและสภาพแวดล้อมโฮสต์

ข้อดี:

  • ไม่ขึ้นอยู่กับภาษาและแพลตฟอร์มการเขียนโปรแกรม
  • เป็นอิสระจากฮาร์ดแวร์
  • รันโค้ดอย่างรวดเร็ว
  • ให้ความปลอดภัยระดับสูง

ทั้งหมดนี้มาอยู่ที่สามเหลี่ยม — รอยเท้าขนาดเล็ก การเขียนสคริปต์ข้ามแพลตฟอร์ม และความเร็ว องค์ประกอบทั้งสามนี้เป็นองค์ประกอบสำคัญในการพัฒนาเว็บไซต์สมัยใหม่ นี่คือสาเหตุที่กรณีการพัฒนาเว็บส่วนใหญ่ไม่ได้ขาด WebAssembly ในปัจจุบัน

หากคุณต้องการเจาะลึก "รายละเอียดเพิ่มเติม" เกี่ยวกับ WebAssebly

เชิงมุม 2

เมื่อพูดถึงการเลือก frontend framework คุณสามารถเลือก Angular 2 ได้ตลอดเวลาเพราะมันใช้ typescript

Angular เป็นเฟรมเวิร์กแอปพลิเคชันเว็บโอเพ่นซอร์สที่ใช้ TypeScript ซึ่งนำโดยทีมงาน Angular ที่ Google และโดยชุมชนของบุคคลและองค์กร Angular เป็นการเขียนใหม่ทั้งหมดจากทีมเดียวกับที่สร้าง AngularJS

ความแตกต่างที่สำคัญอย่างหนึ่งระหว่าง "Angular" กับ "AngularJS" « "คือ AngularJS เป็นแบบ "JavaScript" ในขณะที่ Angular เป็นแบบ TypeScript เฟรมเวิร์กทั้งสองนี้มีความคล้ายคลึงกันในฐานะส่วนหน้า ซึ่งเป็นแพลตฟอร์มโอเพ่นซอร์สที่สร้างสปาแบบไดนามิก

ข้อมูลเพิ่มเติม- ตอนนี้เฟรมเวิร์กส่วนหน้ายอดนิยมอื่น ๆ เช่น ReactJs และ VueJs ก็รองรับ typescript เช่นกัน

หากคุณต้องการเจาะลึก​​รายละเอียดเพิ่มเติมเกี่ยวกับ Angular

เดโน่

ก่อนอื่น Deno ไม่ใช่ทางแยกของ Node แต่เป็นการใช้งานใหม่โดยอาศัยคุณสมบัติสมัยใหม่ของภาษา JavaScript แม้ว่าชื่อจะเป็นแอนนาแกรมของ Node ก็ตาม Deno เป็นรันไทม์ที่ปลอดภัยสำหรับ JavaScript และ TypeScript โดยใช้ V8 ของ Google และแกนกลางของมันถูกสร้างขึ้นใน Rust (การใช้งานของ Node อยู่ใน C ++) ใช้ Tokio สำหรับลูปเหตุการณ์ ซึ่งเขียนด้วยภาษา Rust เช่นกัน

Deno จัดส่งในรูปแบบปฏิบัติการเดียวโดยไม่ต้องพึ่งพา และมาพร้อมกับเครื่องมือในตัวเพื่อทำให้ประสบการณ์ของนักพัฒนาง่ายขึ้น:

Deno ใช้ TypeScript ดังนั้นจึงรองรับได้ทันทีโดยไม่จำเป็นต้องติดตั้งหรือกำหนดค่าเครื่องมือ เช่น การเพิ่มไฟล์การกำหนดค่า tsconfig.json ใน Node แม้ว่าจะมาพร้อมกับไฟล์กำหนดค่าเริ่มต้น แต่ก็สามารถเพิ่มไฟล์ของคุณเองได้

หากคุณต้องการเจาะลึก รายละเอียดเพิ่มเติมเกี่ยวกับ Deno

NestJs

เมื่อ Developer ต้องการ Backend Framework ที่ซับซ้อนน้อยลง พวกเขามักจะเลือก ExpressJs แต่ส่วนใหญ่แล้วเวลาที่ผู้คนเกลียด Js พวกเขาจะเลือกเกลียด ExpressJs เลย

หากมีคำถามในใจว่ากรอบงานใดดีที่สุด ไม่ว่าจะเป็น Nestjs หรือ Express ก็มีประเด็นสำคัญบางประการที่คุณต้องตรวจสอบก่อนตัดสินใจ

Express ดีกว่าที่จะใช้ในการแก้ปัญหาการกำหนดเส้นทาง การแยกวิเคราะห์เนื้อหา ฯลฯ

NestJS ค่อนข้างดีในการจัดโครงสร้างโค้ดของคุณในลักษณะที่มีการจัดระเบียบที่ดีขึ้น ช่วยให้คุณสามารถเขียนโค้ดที่ชัดเจนและนำมาใช้ซ้ำได้ด้วยโครงสร้างระดับที่สูงกว่า เช่น ตัวกรอง ไปป์ ตัวสกัดกั้น ฯลฯ

อย่างไรก็ตาม NestJS ใช้มิดเดิลแวร์ Express

สำหรับผู้เริ่มต้น NestJS ดูเหมือนจะซับซ้อนนิดหน่อย ซึ่งสำหรับแอปง่ายๆ ก็ไม่จำเป็น อย่างไรก็ตาม เนื่องจากคุณสามารถปรับขนาดแอปพลิเคชันของคุณได้ และชอบวิธีที่ NestJS จัดระเบียบโค้ด

NestJS เป็นเฟรมเวิร์ก Node.js แบบก้าวหน้าสำหรับการสร้างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่มีประสิทธิภาพและปรับขนาดได้

ใช้ JavaScript แบบโปรเกรสซีฟที่สร้างด้วย Type JavaScript และเพิ่มองค์ประกอบของการเขียนโปรแกรมเชิงวัตถุ การเขียนโปรแกรมเชิงฟังก์ชัน การเขียนโปรแกรมเชิงโต้ตอบเชิงฟังก์ชันภายใต้ประทุน NestJS ใช้ Express แต่ยังให้ความเข้ากันได้กับไลบรารีอื่นๆ มากมาย เช่น Fastify, TypeORM ฯลฯ

ในทางกลับกัน Node.js เป็นแพลตฟอร์มที่สร้างขึ้นบนรันไทม์ JavaScript ของ Chrome เพื่อสร้างแอปพลิเคชันเครือข่ายที่รวดเร็วและปรับขนาดได้ง่าย และใช้โมเดล I / O ที่ขับเคลื่อนด้วยเหตุการณ์และไม่บล็อกซึ่งทำให้เป็นข้อมูล ทำให้สมบูรณ์แบบและมีน้ำหนักเบาสำหรับ Intensive . แอปพลิเคชันแบบเรียลไทม์ที่ทำงานในอุปกรณ์แบบกระจาย

หากคุณต้องการเจาะลึกใน รายละเอียดเพิ่มเติมเกี่ยวกับ NestJ

หลังจากพิจารณาตัวเลือกอื่น ๆ เหล่านี้แล้ว คุณจะเห็นว่า Typescript ได้กลายเป็นวิธีแก้ไขปัญหา JavaScript บางอย่างที่นักพัฒนาซอฟต์แวร์กำลังประสบอยู่ แต่ปัญหาบางอย่างก็ไม่สามารถหลีกเลี่ยงได้ และเราไม่สามารถเพิกเฉยต่อคุณสมบัติเฉพาะของ JavaScript ได้