- SSH daemon mặc định vô hiệu hóa các dịch vụ shell và exec, nên nếu không cấu hình rõ ràng thì người dùng đã xác thực sẽ không thể thực thi mã Erlang tùy ý
- Khi khởi động SSH daemon, SFTP subsystem cũng không còn được bật mặc định, giúp tăng cường các giá trị mặc định về bảo mật
- Thuộc tính
-unsafe được bổ sung để đánh dấu các hàm không an toàn, và trình biên dịch mặc định tạo cảnh báo khi gọi các hàm mà Erlang/OTP luôn biết là không an toàn
xref có thể tìm các lời gọi hàm không an toàn và các hàm không có tài liệu, đồng thời việc lọc thuộc tính ignore_xref cũng được chuyển sang xử lý ngay trong xref
- Trong cấu hình mặc định của SSL, x25519mlkem768 trở thành nhóm trao đổi khóa được ưu tiên cao nhất, và thuật toán trao đổi khóa mặc định của SSH cũng được đổi thành
mlkem768x25519-sha256, kết hợp ML-KEM-768 và X25519
- Trong đường dẫn mã mặc định của hệ thống Erlang, vị trí của thư mục làm việc hiện tại
. được chuyển từ đầu xuống cuối, làm thay đổi thứ tự nạp
- Bản dựng Erlang/OTP 32-bit cho Windows không còn được cung cấp
- Native records của EEP-79 đã được triển khai và trong Erlang/OTP 29 được xem là tính năng thử nghiệm
- Đã bổ sung guard BIF
is_integer/3, comprehension đa giá trị dựa trên EEP 78, và cơ chế gán biến bên trong comprehension thông qua tính năng compr_assign
- Trình biên dịch bổ sung cảnh báo mặc định cho
catch, việc xuất biến ra ngoài biểu thức con, and/or, và các mẫu match alias như {a,B} = {X,Y}, đồng thời cung cấp tùy chọn tắt riêng cho từng loại
- Các guard test cũ sẽ bị loại khỏi ngôn ngữ trong Erlang/OTP 30, và cảnh báo hiện có về việc dùng obsolete guard vẫn tiếp tục được áp dụng
- Có thể dùng
io_ansi để xuất ANSI/Virtual Terminal Sequence ra terminal, và dùng ct_doctest để kiểm thử các ví dụ trong tài liệu mô-đun Erlang và trong các tệp tài liệu
1 bình luận
Ý kiến trên Hacker News
Các cải tiến trông khá ổn. Việc SSH daemon bị vô hiệu hóa mặc định và SFTP cũng bị vô hiệu hóa mặc định là thay đổi tốt về mặt bảo mật
Module io_ansi cũng trông khá hay. Hiện tại Erlang chưa có nhiều câu chuyện thật sự nổi bật khi làm ứng dụng dòng lệnh phức tạp, nên nếu nó vào thư viện chuẩn thì có vẻ sẽ rất hữu ích về sau. Cách
fwritehoạt động tự nhiên giữa các node cũng đúng là kiểu ưu điểm người ta mong đợi ở ErlangViệc bổ sung Native Records cũng rất thú vị. Hiện tại trong Elixir có cảm giác record, tuple và map bị dùng lẫn tùy tình huống, nên khá tò mò xem sau này nó sẽ được tận dụng ra sao. Như EEP có nói, record hiện có sẽ không bị loại bỏ hoàn toàn, nhưng đây có vẻ là một cải tiến đáng kể
https://www.erlang.org/doc/apps/ssh/ssh.html
https://www.erlang.org/docs/29/apps/stdlib/io_ansi.html
https://github.com/erlang/eep/pull/81
SSH daemon giờ đây mặc định tắt shell và dịch vụ exec, tuân theo nguyên tắc secure by default. Nếu không cấu hình rõ ràng thì người dùng đã xác thực sẽ không thể thực thi mã Erlang tùy ý
Hệ thống con SFTP cũng không còn được bật mặc định khi khởi động SSH daemon nữa
Để giải thích cho ai thắc mắc OTP trong Erlang/OTP là gì, ban đầu đây là một bộ thư viện và nguyên tắc giúp chuẩn hóa cách xây dựng các ứng dụng độ tin cậy cao, chịu lỗi, dành cho lĩnh vực viễn thông
Ý tưởng cốt lõi thì phần mở đầu của “OTP Design Principles” là một đoạn ngắn rất đáng đọc
https://www.erlang.org/doc/system/design_principles.html
Nếu ứng dụng production của bạn vẫn đang dưới bản 29 thì có lẽ nên cập nhật càng sớm càng tốt lên bản này hoặc bản vá mới nhất. Tôi vừa triển khai lên production và hệ thống quét bảo mật tự động đã báo 2 CVE mức CRITICAL với ngày tháng 2~5/2026 cùng nhiều mục rủi ro HIGH
Tôi vẫn tự hỏi còn ai dùng Erlang cho dự án mới nữa không
Tôi biết ở đây có nhiều người thích Elixir, nhưng tôi đang nói đến Erlang thuần
Nếu vẫn dùng Erlang, tôi tò mò vì sao bạn thích nó hơn Elixir
Elixir không mang lại cho tôi lợi thế thực tế nào so với Erlang. Chắc chắn nó có thể có ưu điểm riêng, nhưng Erlang hợp với cách tôi suy nghĩ hơn. Tôi cũng muốn thử học hay tìm trợ giúp theo kiểu tụ tập cộng đồng, nhưng chưa tìm được chỗ nào thật sự hợp với mình
Có ai giải thích được nội bộ của nó không?
https://blog.stenmans.org/theBeamBook/
Khá tò mò xem record sẽ định vị thế nào trong hệ sinh thái
Khá thú vị. Tôi tự hỏi có khi nào sẽ có một thế giới mà Elixir biên dịch map thành native records không
Có ai biết WhatsApp vẫn còn dùng Erlang không?
Họ đã dùng Erlang từ đầu những năm 2010, và vào khoảng đó giới công nghệ biết rằng WhatsApp có thể phục vụ hơn 400 triệu người dùng hoạt động chỉ với khoảng 30 kỹ sư
Khi đó tôi đã liên hệ với một kỹ sư bên đó, và lúc còn sống ở Mỹ tôi đã nhận được email trả lời rất nhiệt tình cho vài câu hỏi. Cuối cùng còn đi uống cà phê nữa, và đến giờ vẫn giữ liên lạc
Có thể nói Erlang vẫn là một phần quan trọng của WhatsApp
Có thêm hỗ trợ cho thuộc tính
-unsafe, đúng là thời điểm hoàn hảo để viết lại bằng Rust /sTôi thật sự không hiểu ai dùng Erlang nữa. Tôi từng dùng Rails rồi thử Phoenix, và cảm thấy làm được việc gì đó khó hơn nhiều
Tôi không hiểu nổi sự cuồng nhiệt dành cho Phoenix
Với người phát triển một mình thì Rails có lẽ là hệ thống web app năng suất nhất. LLM cũng viết mã Ruby on Rails rất tốt. Dù tập dữ liệu huấn luyện Python lớn khủng khiếp, theo trải nghiệm của tôi thì nó vẫn viết tốt hơn Django rất nhiều
Tôi viết app thử nghiệm bằng Rails, rồi khi ổn định thì viết lại bằng Go. Khi phạm vi ứng dụng còn chưa rõ mà lao ngay vào Go thì sẽ tốn token hơn rất nhiều, còn Rails thì cực kỳ hiệu quả
Dạo này React hay Angular cũng không còn cần thiết nữa, với Rails thì tôi dùng Hotwire còn với Go thì dùng HTMX
Ngay cả diễn đàn Erlang cũng dùng Discourse viết bằng Rails
Có lẽ bạn nên mở rộng góc nhìn hơn một chút
method_missing, và mất thêm thời gian để hiểu hệ thống hoạt động ra saoElixir/Phoenix rõ ràng hơn nhiều ở điểm đó, nên về bảo trì lâu dài, tức là sau tuần đầu tiên, nó dễ chịu hơn hẳn. Không có trạng thái ẩn, không phải lần mò xem
ModuleName.method(params)đến từ đâu, cũng không cần dựng sẵn thứ gì chỉ để chạy được method đó; chỉ cần truyền đúng tham số là xong. Điểm yếu chủ yếu là hệ sinh thái package sẵn có nhỏ hơnEcto cũng không tệ
Claude Code viết mã Elixir rất tốt
Thật bất ngờ là dù có hay không có LLM, người ta vẫn năng suất hơn khi dùng công nghệ mình đã quen