9 xu hướng code và framework trong năm 2018 mà bạn cần phải để mắt tới

7505

Năm 2017 là một năm đầy biến động cho các nhà phát triển. Đối với một số hệ sinh thái thì năm nay cũng vô cùng bận rộn. Thậm chí C ++ còn phát hành một phiên bản tiêu chuẩn mới vào năm 2017. Chính vì vậy mà chúng ta phải xem lại những thay đổi lớn này và nhận thức được ảnh hưởng từ chúng tạo ra.

TechBeacon đã phỏng vấn các chuyên gia về microservices, dữ liệu khoa học, Java, JavaScript và Android để tổng hợp những thay đổi của hệ sinh thái – ecosystem đã xảy ra trong năm ngoái cũng như các xu hướng trong năm 2018.

Tập trung nhiều hơn vào cấu trúc mới và microservices data distribution

Mark Richards, tác giả của Patterns Architecture Patterns, cho biết kiến ​​trúc mới (Evolutionary architecture) và tự động hóa quản lí và phân tích cấu ​​trúc sẽ là trọng tâm chính của các công ty phần mềm vào năm 2018. Để hiểu rõ thêm về xu hướng cấu ​​trúc phần mềm mới nhất, ông khuyên bạn nên đọc  Building Evolutionary Architectures của Ford.

Nó không chỉ là thúc đẩy việc chuyển đổi sang các microservices. Mà nó là về tập trung vào sự phát triển của kiến ​​trúc có thể xử lý và bất chất những thay đổi khác nhau theo thời gian. Miễn là cấu ​​trúc nó có thể thõa mãn 3 tiêu chí sau …

  •    Mô đun và khớp nối mở
  •    Phù hợp với khả năng phát triển và kinh doanh của công ty
  •    Chi phí vận hành ít tốn kém

… Nó không chỉ là microservices mà là một cấu trúc với khả năng tiến hóa.

Richards cho biết, về sự phát triển của microservices, nhiều tổ chức đã tìm ra cách làm chúng. Tuy vậy, việc phân bố dữ liệu (data distribution) vẫn là một khía cạnh khó khăn trong việc phá vỡ kiến ​​trúc khối.

Ông cho rằng nhiều công ty công nghệ sẽ gặp trở ngại này vào năm 2018. “Hầu hết các công ty đều đã tìm ra phần chức năng và kỹ thuật của các microservices bây giờ”, ông nói, “nhưng phần khó khăn nhất của các microservices vẫn là dữ liệu.”

Serverless sẽ tiếp tục phát triển với AWS Lambda thống lĩnh thị trường

Bradley Holt, cố vấn phát triển và kỹ sư cấp cao của IBM, cho rằng năm 2018 sẽ là năm mà serverless sẽ được các developer chào đón. “Các chức năng như một dịch vụ (FaaS) cho phép các developer soạn các ứng dụng và dịch vụ với khả năng mở rộng công suất và điều chỉnh chi phí dựa trên nhu cầu”, ông nói.

AWS Lambda là lựa chọn tốt nhất khi nói tới serverless platform cho hầu hết các developer. Và mặc dù công nghệ serverless vẫn còn mới, AWS sẽ tiếp tục chiếm lĩnh thị trường serverless trong năm 2018, giống như nó thống trị trong các lĩnh vực của Cloud.

Data scientist – ngành khoa học dữ liệu sẽ trở nên quan trọng hơn

Holt cho biết: “Các developer đang bắt đầu nhận ra tiềm năng to lớn của khoa học dữ liệu cũng như các công nghệ như machine learning, artificial intelligence, và xử lí ngôn ngữ tự nhiên”. Ông dự đoán sự tăng cường trong hợp tác giữa các nhà phát triển ứng dụng và các nhà khoa học dữ liệu, để tiếp tục cải thiện machine learning và các công nghệ liên quan.”

Richards cũng đồng ý rằng “khoa học dữ liệu đang ở khắp mọi nơi”, bằng chứng là sự phát triển của R (một ngôn ngữ lập trình thống kê) và các thư viện khoa học dữ liệu của Python vào năm 2017. Sự tăng trưởng này sẽ tiếp tục vào năm 2018, nhờ vào tầm ảnh hưởng mạnh mẽ của công nghệ trí thông minh nhân tạo (AI).

Java sẽ trở nên sôi động hơn bao giờ hết

Martijn Verburg, lead của cộng đồng Java London, cho biết năm 2017 là một năm đáng nhớ đối với quá trình phát triển của Java.

Với Java SE chuyển sang chu kỳ phát hành 6 tháng, các component JDK của Oracle sẽ chuyển sang OpenJDK nguồn mở và Java EE chuyển sang Eclipse. Verburg nói. “Chúng ta sẽ thấy Java SE phát hành thường xuyên, với nhiều tính năng hơn.”

Những thay đổi này dẫn tới một cuộc tranh cãi lớn xảy ra năm ngoái, khi đa số ủy ban điều hành cộng đồng Java đã bỏ phiếu chống lại dự án Jigsaw, một đề xuất thực hiện mô-đun Java. Verburg và những người khác lo lắng rằng Jigsaw sẽ làm hại Java, vì vậy họ đã yêu cầu sửa đổi.

“Mark Reinhold và Oracle đã lắng nghe chúng tôi và thực hiện những thay đổi,” ông Verburg nói.

Không lâu sau đó, Oracle đề nghị OpenJDK chuyển sang phát hành hai lần mỗi năm cho các phiên bản Java mới, một biện pháp mà cộng đồng hoan nghênh. Việc phát hành chậm – thường mất một năm hoặc nhiều hơn để hoàn thành – là một vấn đề chết người của Java.

Java EE (bây giờ là EE4J) sẽ lên cloud-native

Sự đóng góp của Oracle cho Java Enterprise Edition (Java EE), với Eclipse đổi tên thành EE4J, là một thay đổi lớn khác cho Java vào năm 2017.

Quỹ Eclipse cũng phát hành MicroProfile, một platform tối ưu hóa EE4J cho các microservices. Cùng nhau, EE4J và MicroProfile sẽ nâng cao các API Java EE vào năm 2018, biến chúng thành các API tương thích với đám mây, không đồng bộ và phù hợp với microservice.

Theo trang web của MicroProfile, cộng đồng MicroProfile không muốn áp dụng một tiêu chuẩn khô khan vì nó sẽ làm chậm lại sự đổi mới. Thay vào đó, nó muốn cho phép các dự án trong MicroProfile để đổi mới.

MicroProfile nên giúp các nhà phát triển Java chuyển sang các dịch vụ microservice – đặc biệt là những người vẫn thích triển khai Java EE / EE4J (ví dụ CDI) qua Spring Framework (Spring DI). Tuy nhiên, các developer không quan tâm đến việc sử dụng Spring ecosystem cũng như Spring Boot, một framework xây dựng microservice cho các nhà phát triển Java, đã được ra mắt từ nhiều năm trước.

Java 10 sẽ kèm theo những cải thiện hiệu năng lớn

Năm ngoái, Verburg dự đoán rằng Java 9 sẽ không có tác động nhiều như Java 8, và cho đến nay đã thực sự đó là những gì đã xảy ra. Java 9 có những thay đổi lớn sẽ có thể làm chậm lại việc áp dụng, vì nó buộc các nhà phát triển phải cập nhật một số ứng dụng của họ để sử dụng hệ thống mô-đun mới. Đó cũng là một trong những nguyên nhân cho việc công ty phải phát hành ngôn ngữ thường xuyên hơn đến năm 2018.

Tuy nhiên, Java 10, với nhiều cải tiến hiệu năng, mà các developer chắc chắn sẽ không thể bỏ qua, Verburg cho biết. Sau đây là những điểm nổi bật trong phiên bản Java 10:

JEP 286: Local-Variable Type Inference– Nó sẽ làm cho mã Java rõ ràng và ngắn gọn hơn.

JEP 296: Hợp nhất các JDK vào thành một Repository – cải thiện quá trình phát triển của OpenJDK.

JEP 304: Garbage-Collector Interface– Giúp Shenandoah và các garbage collection hoạt động dễ dàng hơn.

JEP 307: Parallel Full GC cho G1-Giúp tăng hiệu suất rõ rệt cho garbage collection.

JEP 310: Application Class-Data Sharing – Một tính năng nâng cao hiệu suất khác.

JEP 312: loại bỏ Native-Header Generation Tool (javah)– Do javac là phiên bản tốt hơn.

JEP 313: Xóa công cụ tạo tiêu đề gốc (javah) – Loại bỏ công cụ javah vì javac, có mục đích tương tự, có chức năng vượt trội.

JEP 314: Thêm Unicode Language-Tag Extensions – Áp dụng thêm các Unicode extension trong Unicode Locale Data Markup Language (LDML) specification.

JEP 316: Giúp Phân bổ các thiết bị bộ nhớ thay thế-Mở rộng nơi mà Java có thể chạy.

JEP 317: Dự án Java-Based JIT Compiler-Chuẩn bị cho dự án Graal, điều này sẽ làm cho việc viết một chương trình lập trình và tối ưu hóa thời gian chạy trong Java.

JEP 319: Chứng nhận gốc (Root Certificates)- Tăng cường bảo mật.

JEP 322: Time-Based Release Versioning– Lược đồ các phiên bản update hợp lý hơn.

Kotlin sẽ nhận được sự hỗ trợ nhiều hơn từ Android

Như dự đoán, ngôn ngữ lập trình Kotlin đã đạt được nhiều đột phá trong năm ngoái. Từ khi trở thành ngôn ngữ chính thức cho các ứng dụng của Android tại Google I / O, việc sử dụng nó trong các developer Android đã tăng lên đáng kể. Do đó, nhà phát triển Android và nhà phân phối TechBeacon Aritra Roy cũng hy vọng Kotlin sẽ tiếp tục tăng trưởng mạnh vào năm 2018.

Ông nói: “Vẫn còn rất nhiều tài liệu Java đang chờ được chuyển đổi sang Kotlin. Ông cũng mong muốn Google đầu tư nhiều nguồn lực hơn vào Architecture Components library.

“Một nhân tố khác cũng sẽ mang tính đột phá trong Android vào năm 2018 là AI”, Roy nói. “Sẽ có nhiều AI phức tạp, hoạt động trên chính Android OS, cho phép các developer có thể tận dụng chúng.”

Mong đợi sự phát triển của CSS và cải tiến liên tục trong JavaScript

Theo ông Ryan Lewis, kỹ sư phần mềm của Kuali, contributor và diễn giả của Node.js, tuy JavaScript sẽ không có tính năng mới thú vị mỗi năm, nhưng ít nhất nó cũng bổ sung đều đặn hàng năm.

“Phiên bản ESMA7 [ES2017] của ECMAScript đã không có nhiều điều mới mẻ với tính năng chính là async/await“, ông nói. Bản phát hành cũng bao gồm một vài bổ sung nhỏ cho API, chẳng hạn như các function mới.

Thật tốt là async/await đã được cộng động chào đón và tiếp nhận, đặc biệt là trên Node.js, ông Axel Rauschmayer cho biết. Ông cũng thích các bổ sung công cụ cho hệ sinh thái JavaScript, như Prettier, giúp đưa automatic source code formatting sang JavaScript.

Các tính năng trong phiên bản tiếp theo của JavaScript (ES2018) vẫn chưa được hé lộ chi tiết rõ ràng, Rauschmayer cho biết, nhưng ông khá phấn khích về những tính năng tiềm năng này:

  Rest/spread properties

  Lặp không đồng bộ

  Dynamic import() của modules

  Đặt tên capture groups cho các biểu thức thông thường

  BigInt (số nguyên chính xác)

  Các fields riêng cho objects

  Các phương thức array mới: .flatMap () và .flatten ()

Các thay đổi trong JavaScript / ECMAScript đang bắt đầu ít  dần sau vài năm liên tục cập nhật những tính năng mới. Trey Huffine, người sáng lập Gitconnected cho biết, nhưng ông cũng hy vọng CSS sẽ có bước tiến lớn vào năm 2018.

Ông nói: “Chúng ta sẽ thấy một sự tiến triển nhanh chóng trong CSS giống như những gì JavaScript đã trải qua trong vài năm trước. Với sự ổn định của JavaScript, các developerhầu như đồng ý rằng component architecture là cách tốt nhất để xây dựng các ứng dụng web hiện đại, cộng đồng front-end sẽ cố gắng giải quyết các vấn đề với CSS và hướng tới một giải pháp chung phù hợp với cách chúng ta “tái cấu ​​trúc “”.

WebAssembly cũng có thể có tác động lớn đến hệ sinh thái của JavaScript. Huffine nói: “Trong khi tôi không chắc chắn về những ảnh hưởng của nó, tôi tin rằng chúng ta sẽ thấy WebAssembly được nói về và sử dụng nhiều hơn vào năm 2018”. Ông tin rằng “Nó cung cấp những cải tiến mạnh mẽ cho web.”

Node.js sẽ sống khỏe trong thị phi khi các cải thiện hiệu suất được đưa ra

Node.js sẽ vẫn tiếp tục được phát triển, với kế hoạch release hai lần mỗi năm, bao gồm một bản phát hành dịch vụ dài hạn hàng năm. Có thể nới đây là một lợi ích lớn cho người dùng doanh nghiệp. Node cũng cung cấp hầu hết các tính năng trong ES2017, và trình Node.js package manager (NPM) cũng đã được cập nhật thường xuyên.

Năm 2016, Facebook tung ra Yarn Node.js package manager, cực kì thành công tới mức nó đe dọa các NPM máu mặt khác. Vào thời điểm đó, Lewis nghĩ rằng NPM sẽ không bị đẩy sang một bên, nhưng thay vào đó sẽ chấp nhận các tính năng tốt nhất của Yarn.

Hóa ra ông đã nói đúng. Vào năm 2017, NPM đã đưa ra bản cập nhật chính với các tính năng của Yarn.

Tuy nhiên, Rauschmayer vẫn có một mong muốn với NPM năm 2018: “cộng đồng sẽ thiết lập các quy tắc tốt nhất được xác định rõ ràng để xuất bản các NPM modules được tạo ra thông qua các compiler sang JavaScript, chẳng hạn như Babel hoặc Typescript.”

Node.js đã có một năm đầy khó khăn. Khi các serverless platforms đã trở nên phổ biến hơn, việc liên tục cập nhật các bản patch bảo mật trở nên quan trọng hơn đối với các nhà cung cấp dịch vụ Cloud.

“Khi Node.js lan truyền đến các góc khác nhau của web, việc nâng cấp trở nên khó khăn”, Lewis nói. “Google đã nâng cấp phiên bản Node.js cho Cloud Functions trong vòng một tuần sau khi những lỗ hổng nghiêm trọng nhất được tiết lộ năm ngoái, nhưng Amazon thì mất tới hàng tháng trời”, ông nói.

Ngoài ra, các vấn đề trong cộng đồng của Node.js đã dẫn đến sự tan rã của Node.js Core Technical Committee (CTC) vào năm 2017. “Điều này dẫn đến một số kẻ xấu trong cộng đồng hành hoành, nhưng cũng mang lại một số kết quả tích cực”, Lewis nói. “Nhóm kiểm duyệt đã được thành lập, với tôi là chủ tịch tạm thời, để làm rõ và tiêu chuẩn hóa các hoạt động kiểm duyệt”. Mục tiêu được đặt ra là đảm bảo rằng cộng đồng Node.js là một nơi an toàn cho mọi người thảo luận về công nghệ và đóng góp cho nền tảng.

Tin nổi bật nhất của Node.js là sự hỗ trợ cho các mô-đun ES6 (các mô đun được chuẩn hóa trong ngôn ngữ ECMAScript / JavaScript) trong Phiên bản 9. “Đây là một quyết định có ảnh hưởng rất lớn, với nhiều người phàn nàn tranh cãi về việc thực hiện đúng các mô-đun ES6” Lewis nói. “Nhiều người cho rằng phần mở rộng tập tin mới này sẽ gây phân mảnh hệ sinh thái Node.js.”

Rauschmayer nói ông hy vọng các môđun ES cuối cùng sẽ làm việc liên tục trên các nền tảng. “Đối với Node.js, quá trình chuyển sang mô-đun ESD khó khăn hơn nhiều so với các trình duyệt khác vì hệ thống mô-đun của nó phải hoạt động đồng bộ”, ông nói.

Node.js cho ra hai phiên bản mới vào năm 2018: 10 LTS và 11. Lewis không mong đợi nhiều tính năng mới, nhưng thay vào đó là nhiều cải thiện về hiệu năng.

React thống trị hôm nay; ReasonML có thể là kẻ tiếp theo

React vẫn duy trì vị trí độc tôn của nó trên thị trường cho các frame-work front-end, theo State of JavaScript. Angular tiếp tục trên đà giảm, trong khi Vue tiếp tục phát triển (đặc biệt là ở Trung Quốc). React phiên bản 16, được phát hành vào năm ngoái, tăng hiệu năng bằng cách viết lại nội dung bên trong framework đồng thời giữ cho API thống nhất.

Mặc dù vậy, framework front-end đã có một cuộc khủng hoảng năm ngoái khi Apache Software Foundation đã cho React và các phần mềm khác do Facebook sản xuất vào danh sách các dự án mà nó không xem là nguồn mở vì các mô hình yêu cầu giấy phép. Do đó mà Facebook đã quyết định loại bỏ các điều khoản gây tranh cãi từ giấy phép của nó.

React bây giờ có vị trí tốt để thống trị vào năm 2018 và hơn thế nữa, Rauschmeyer cũng lạc quan về các công nghệ phát triển web khác xuất hiện trên Facebook.

Ông nói: “Tôi rất vui mừng về ReasonML, một ngôn ngữ lập trình chức năng mới”. “Tôi thích thiết kế sạch sẽ của nó dựa trên ngôn ngữ lập trình OCaml và cũng như khả năng tương tác tốt với JavaScript.”

Facebook phát hành ReasonML vào năm 2017, và Axel dự đoán sẽ có thêm nhiều phát hành mã nguồn mở từ Facebook trong năm nay. “Hãng sẽ phát hành các dịch vụ mới trong những lĩnh vực khác nhau, chẳng hạn như các framework web Node.js”, ông nói.

Lời kết

Dưới đây là những điều sẽ có tác động lớn nhất đối với các developer trong năm 2018:

Tìm các công ty mà bạn tin cậy để xử lý những vấn đề về an ninh ảnh hưởng đến bạn sẽ là một thách thức quan trọng.

Cộng đồng developer sẽ tiếp tục gây áp lực nhiều hơn cho các tổ chức và công ty không tạo ra môi trường toàn diện.

Hãy chẩn bị tinh thần cho một sự thúc đẩy to lớn trong việc áp dụng mô đun, vì cả Java lẫn JavaScript đều hỗ trợ các module.

Data science và machine learning sẽ trở nên càng quan trọng hơn với các công ty công nghệ.

Các developer sẽ nhận ra có nhiều lợi ích từ việc sử dụng serverless platforms.

Techtalk via techbacon