1 điểm bởi GN⁺ 2024-01-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Elixir chính thức chuyển thành ngôn ngữ định kiểu dần dần đúng vào thời điểm tròn 13 năm kể từ commit đầu tiên
  • Hiện tại đã thực hiện suy luận kiểu và kiểm tra kiểu cho bitstring, đồng thời hỗ trợ mọi kiểu dữ liệu (tuy nhiên vẫn chưa hỗ trợ kiểu con (sub-typing) giữa các kiểu)
  • Cột mốc đầu tiên là thực hiện suy luận cho patternguard
  • Cách suy luận này hoạt động theo hướng bắt lỗi mà không cần thay đổi ngôn ngữ hay codebase hiện có
  • Đặt mục tiêu hoàn tất suy luận cho mọi pattern và guard vào Elixir v1.17

Công bố chuyển sang ngôn ngữ định kiểu dần dần

  • Nhân dịp tròn 13 năm kể từ commit đầu tiên của repo Elixir, Elixir chính thức công bố là một ngôn ngữ định kiểu dần dần
  • Phạm vi triển khai kiểm tra kiểu ở thời điểm hiện tại
    • Thực hiện suy luận kiểu và kiểm tra kiểu cho bitstring
    • Đã hỗ trợ mọi kiểu dữ liệu (all types), nhưng chưa hỗ trợ kiểu con bên trong hệ thống kiểu

Mục tiêu sắp tới và cột mốc đầu tiên

  • Đặt mục tiêu đến Elixir v1.17 sẽ thực hiện suy luận cho toàn bộ patternguard
  • Cột mốc đầu tiên là thực hiện suy luận cho pattern và guard
    • Theo cách có thể bắt lỗi trong mã mà không cần thay đổi ngôn ngữ hoặc codebase của người dùng
    • Hướng tới việc để bước đầu tiên này trở thành win-win cho tất cả mọi người

1 bình luận

 
GN⁺ 2024-01-09
Ý kiến trên Hacker News
  • Lời cảm ơn dành cho Jose

    • Bày tỏ lời cảm ơn tới Jose vì những nỗ lực của anh cho Elixir và cộng đồng.
    • Sự cẩn trọng và trình độ của anh đối với ngôn ngữ và cộng đồng được đánh giá rất cao.
    • Đây là một ví dụ tuyệt vời cho thấy sự ổn định và chăm chỉ của Jose, đồng thời cảm ơn một cá nhân đã tạo ảnh hưởng lớn đến niềm vui trong cuộc sống hằng ngày.
  • Sự quan tâm đến ngôn ngữ có kiểu dần dần

    • Có thiện cảm với các ngôn ngữ được gán kiểu dần dần, nhưng ở đây còn thiếu thông tin.
    • Cung cấp liên kết tới một bài báo được công bố vào đầu năm 2022 và đang tìm thêm thông tin về hệ thống kiểu này.
  • Ý kiến về việc Elixir thiếu kiểu

    • Việc Elixir không có kiểu từng khiến một số người cảm thấy khó chấp nhận.
    • Việc thêm kiểu khi ngôn ngữ gần như đã hoàn thiện là thời điểm hoàn hảo.
    • Từng không bị thuyết phục bởi Sorbet trong Ruby vì cảm thấy nó đi ngược triết lý của ngôn ngữ động, nhưng vẫn thích nó như một phương tiện bổ sung để tăng độ an toàn.
    • Bày tỏ sự tự tin rằng Elixir sẽ triển khai hệ thống kiểu một cách đúng đắn.
  • Niềm tin dành cho Jose Valim và Anders Hejlsberg

    • Jose Valim là một trong số rất ít người trong ngành mà họ tin có thể triển khai hệ thống kiểu một cách đúng đắn.
    • Anders Hejlsberg cũng là người mà họ tin tưởng trong việc triển khai hệ thống kiểu.
  • Phản ứng trước việc Elixir bổ sung hệ thống kiểu

    • Gần đây đã chuyển công ty và bắt đầu dùng Elixir, đồng thời rất nhớ những lợi ích của ngôn ngữ có kiểu từng được hưởng trong TypeScript.
    • Việc có thể truy cập mô hình dữ liệu ở bất kỳ đâu trong dự án là một ưu điểm lớn của Elixir.
    • Rất vui khi Elixir vốn đã tuyệt vời nay còn được cải thiện hơn nữa, và gửi lời chúc mừng đến đội ngũ tham gia công việc này.
  • Tầm quan trọng của hệ thống kiểu

    • Phoenix và trước đó là RoR (Ruby on Rails) đã chứng minh năng suất rất cao, nhưng cũng dễ phát sinh vấn đề do kiểu và lỗi thời gian chạy.
    • Kiểu giúp chuyển phần lớn lỗi thời gian chạy thành lỗi tại thời điểm build, mang lại lợi ích lớn cho việc phát triển phần mềm đáng tin cậy.
  • Điều cần học từ việc PHP áp dụng kiểu dần dần

    • Cho rằng việc PHP áp dụng kiểu dần dần là rất thực tế, và hy vọng có những điều đáng để học hỏi từ đó.
  • Ý kiến về việc các lập trình viên Ruby chuyển sang Elixir

    • Từng mong những nỗ lực như thế này được tích hợp sẵn trong Ruby, và hiện nay nhiều lập trình viên Ruby đã dùng Elixir.
    • Chỉ ra rằng Elixir đang phát triển thành một ngôn ngữ đáng kinh ngạc.
  • Cách tiếp cận của đội ngũ Elixir và Jose đối với việc đưa vào hệ thống kiểu

    • Nên xem các bài nói chuyện của đội ngũ Elixir và đặc biệt là Jose.
    • Họ đang tiếp cận việc đưa vào hệ thống kiểu một cách rất thận trọng và kỹ lưỡng, đồng thời nỗ lực xây dựng một hệ thống kiểu tốt.