Chuyện Lập Trình Dịch Hay Không Dịch
Tuy dịch là một khái niệm rất rộng, bao hàm nhiều lĩnh vực, tuy nhiên trong bài viết hôm nay mình chỉ muốn thảo luận về vấn đề dịch...
Tuy dịch là một khái niệm rất rộng, bao hàm nhiều lĩnh vực, tuy nhiên trong bài viết hôm nay mình chỉ muốn thảo luận về vấn đề dịch trong công nghệ thông tin. Giữa hai lựa chọn là nên dịch từ ngữ chuyên ngành hay không nên.
Ở cái thời điểm mà nước Mỹ đã có hệ điều hành và Internet thì Việt Nam vẫn đang chìm đắm trong chiến tranh và sau đó là những khốn khó trong xây dựng đất nước. Vì thế sự tụt hậu về công nghệ so với nước Mỹ là điều mà ai cũng thấy. Và nó dẫn đến một vấn đề là sự nghèo nàn từ ngữ chuyên ngành công nghệ thông tin của tiếng Việt so với tiếng Anh. Trong quá trình học tập và tìm hiểu tư liệu, mình quan sát thấy những trường hợp mà từ tiếng Anh không được dịch sang tiếng Việt thường nằm ở hai trường hợp là: dịch không rõ nghĩa và có thể dịch nhưng khó tư duy.
Dịch không rõ nghĩa
Ở đây mình chọn từ framework vì nó là ví dụ tiêu biểu nhất. Dù bạn có tìm mù mắt trên Facebook hay Google bạn cũng sẽ không thể tìm thấy một bài viết hay khoá học nào mà họ dịch từ framework sang tiếng Việt. Nếu theo Google Translate ta có thể dịch nó thành khuôn khổ, vậy tại sao không ai gọi nó như thế cả, chẳng phải người ta vẫn thường gọi thư viện thay vì library hay nền tảng thay vì platform sao? Lý do chính là nó không hoàn chỉnh nghĩa. Nếu là dân lập trình mọi người đều biết framework không chỉ đơn giản là một cái khuôn mà nó còn có các nguyên lý, và quy tắc khi làm việc trên nó. Không giống như các thư viện, rất khó để có thể kết hợp hai framework trên cùng một dự án vì những mâu thuẫn và xung đột về nguyên lý của cả hai. Thế nên nếu dịch là khuôn khổ thì chỉ đúng ở từ frame thôi, từ work vẫn chưa dịch được. Nếu dịch là khuôn khổ làm việc thì vừa dài vừa khó hiểu hơn.
Bên cạnh từ framework, còn có từ server. Server thường được dịch là máy chủ, tuy nhiên nó vẫn chưa chính xác về nghĩa, bản thân từ server trong tiếng Anh là danh từ của từ serve mang nghĩa phục vụ, đáp ứng. Từ server chính xác sẽ là chỉ một thành phần phục vụ, đáp ứng các yêu cầu từ các thành phần khác. Còn từ chủ trong tiếng Việt chỉ thành phần quản lý, cai trị hay giám sát các thành phần khác. Ngoài việc thiếu chính xác về nghĩa nó còn có vấn đề là xung đột nghĩa, cả từ server và host đều được dịch thành máy chủ ở tiếng Việt, vậy nếu hai từ này xuất hiện trong cùng một tài liệu làm thế nào để phân biệt được chúng. Ta cũng có cái cặp từ đồng nghĩa khi dịch sang tiếng Việt nhưng ở tiếng Anh lại khác hoàn toàn như buffer/cache: bộ đệm, encode/encryption: mã hoá, stream/thread: luồng...
Các vấn đề này xuất phát từ nguyên nhân tiếng Việt nghèo nàn từ ngữ chuyên công nghệ thông tin so với tiếng Anh, mà nguyên nhân sâu xa hơn của nó là sự tụt hậu công nghệ quá xa giữa cả hai, đã đề cập ở đầu bài.
Có thể dịch nhưng khó tư duy
Ở trường hợp này, ta có từ tiêu biểu là serialization. Trong lập trình từ này mô tả quá trình chuyển đổi một đối tượng thành một mảng các byte có thể lưu trữ trong bộ nhớ hay cơ sở dữ liệu. Còn trong tiếng Việt nó được dịch thành tuần tự hoá. Và rõ ràng là khi đọc cụm từ tuần tự hoá sẽ khiến các lập trình viên đau não hơn hẵn so với serialization. Và một rắc rối đi kèm là từ deserialization mô tả quá trình ngược lại chuyển các mảng byte thành đối tượng, song nó gần như không thể dịch trong tiếng Việt. Ở đây các từ này không đến nỗi quá khó để dịch mà là khi dịch nó ra sẽ khiến việc tư duy về cách công nghệ đó hoạt động trở nên khó khăn hơn so với để nguyên bản gốc. Ta cũng có các trường hợp tương tự như từ render - kết xuất, container - vùng chứa hay index - chỉ mục.
Có thể giải thích lý do là do các lập trình viên tiếp xúc chủ yếu với các trình biên dịch, phầm mềm hay công cụ đều là tiếng Anh. Điển hình như với các lập trình viên làm việc với React sẽ quen với từ render hơn là kết xuất dẫn đến việc khi nghe các từ gốc họ tư duy nhanh hơn so với từ dịch.
Tâm lý né tránh việc dịch
Các vấn đề trên dẫn đến tâm lý né tránh việc dịch từ ngữ thậm chí là dịch tài liệu sang tiếng Việt. Mọi người có xu hướng để nguyên từ tiếng Anh thậm chí ở cả những từ dễ dàng dịch và cũng không ảnh hưởng nhiều đến tư duy như request - yêu cầu, database - cơ sở dữ liệu, application - ứng dụng hay browser - trình duyệt,...
Vậy việc không dịch từ ngữ chuyên ngành liệu có thực sự nên.
Về phần ý kiến của mình, mình cho rằng nên dịch kể cả các từ ngữ chuyên ngành. Lý do là các ngôn ngữ ở thế giới thực cũng giống như các ngôn ngữ lập trình, không phải từ trên trời rơi xuống mà nó được sáng tạo bởi người dân địa phương, nên nó có thể mở rộng và phát triển trong tương lai. Do đó các vấn đề về thiếu hụt từ vựng hay môi trường tư duy hoàn toàn có thể khắc phục được. (Giống như cái cách mà ngôn ngữ JavaScript đã phát triển và khắc phục hầu hết hạn chế của nó trong quá khứ)
Và hơn hết là mục đích cho các ngôn ngữ là để lưu trữ và truyền tải kiến thức. Việc né tránh và giữ nguyên tiếng Anh như một sự ngầm thừa nhận rằng tiếng Việt không thể lưu trữ hay truyền tải kiến thức về công nghệ thông tin. Điều này vừa kìm hãm sự phát triển tiếng Việt vừa kìm hãm luôn sự phát triển của cộng đồng lập trình viên ở Việt Nam. Bởi việc đòi hỏi tất cả những người sinh ra ở Việt Nam và nói tiếng Việt từ nhỏ phải thông thạo và có thể đọc tài liệu tiếng Anh vừa xa vời vừa vô lý.
Thế nên tuy có nhiều khó khăn mình vẫn ủng hộ việc dịch từ ngữ chuyên ngành sang tiếng Việt. Song mình viết bài này nhằm mục đích thảo luận hơn là thuyết phục mọi người . Thế nên mình mong các bạn sẽ để lại ý kiến và lý do về việc nên dịch hay không.
Quan điểm - Tranh luận
/quan-diem-tranh-luan
Bài viết nổi bật khác
- Hot nhất
- Mới nhất