Rust — Cơn sốc văn hoá cho lập trình viên
Hôm qua sau giờ làm, mình ngồi đọc lại Rust book — mà thiệt tình lần nào mở ra cũng có cái mới để học. Nhân tiện hôm nay rảnh, mình lên đây viết vài dòng cảm nhận về Rust, coi như một lời khuyên nếu bạn đang phân vân có nên học hay không.
Ảnh: Lukas Blazek — Pexels
Hồi trước mình làm full-stack JavaScript, TypeScript, .NET — nói chung là quen với môi trường có garbage collector lo hết chuyện dọn dẹp. Code xong deploy, chẳng cần nhớ tới memory. Rust tới như một cú sốc văn hoá thiệt sự.
Mới đọc syntax thấy quen quen, như TypeScript pha C#. Dễ chịu phết. Nhưng khi động vô borrow checker — trời ơi, đúng cái thứ làm bao nhiêu người chửi Rust dở hơi nhất. Mình cũng không ngoại lệ. Có hôm ngồi fix cái lỗi ownership cả buổi chiều, cay tới mức muốn tắt máy đi ngủ.
Nhưng tính mình là càng cay càng ghiền, càng ghiền càng học.
Qua cái đoạn struggle ban đầu, mình mới thấm cái hay của Rust. Nó không phải loại ngôn ngữ bạn học xong rồi bỏ đấy — nó thay đổi cách bạn suy nghĩ về code. Cái compiler nó gắt, nhưng mà nó gắt có lý. Thiệt tình mình chưa thấy cái compiler nào mà error message thân thiện như Rust: chỉ đúng chỗ sai, giải thích tại sao sai, gợi ý cách sửa — khác hẳn mấy đống template triệu chữ của C++ ngày xưa mình từng vật lộn.
Học Rust xong, quay qua code TypeScript mình tự nhiên cẩn thận hơn. Bắt đầu để ý tới Option vs null, Result vs try/catch, ownership của data trong function — mấy thứ trước giờ mình code theo thói quen mà không hiểu tại sao nó lại design vậy.
Ảnh: ThisIsEngineering — Pexels
Nói chung thì Rust không phải để thay thế JavaScript hay TypeScript — mỗi thằng một thế mạnh riêng. Công việc hằng ngày mình vẫn code TS với .NET là chính. Nhưng mà nếu bạn có thời gian rảnh, mình nghỉ học Rust là một trong những cách đầu tư tốt nhất cho tư duy lập trình của mình. Không cần phải trở thành Rust expert hay gì đâu — chỉ cần hiểu borrow checker, ownership với lifetimes là đã thấy khác liền.
Còn mấy bạn, có ai đang học Rust hay đã từng thử chưa? Hông biết borrow checker làm bạn ức chế cỡ nào ha? 😄