language and conceptualization

"Tôi rơi vào chiếc bẫy làm bằng ngôn ngữ" -- Al-Bayati

Ngôn ngữ, ôi ngôn ngữ!

Từ những ngày học tiếng Anh trên tivi, tôi mơ hồ yêu thích cái đẹp của ngôn ngữ. Từ ngày học tiếng Nhật rồi đi làm, tôi khám phá sức mạnh của ngôn ngữ. Còn với tôi của U40 ngày hôm nay, ngôn ngữ vẫn đẹp và đầy sức mạnh, nhưng cũng có rất nhiều "vấn đề".

Bạn đã bao giờ tham dự những cuộc họp sử dụng cả ba thứ tiếng Anh, Việt, Nhật, mỗi đoạn dịch chệch một chút thôi là thành cái vòng luẩn quẩn hỏi một đằng trả lời một nẻo, xác nhận lại nẻo thứ ba chưa? Bao nhiêu thông tin thừa sinh ra và bao nhiêu thông tin chính yếu bị nghiền nát trong cái vòng xoáy ngôn ngữ đó. Và vì tình cờ hiểu cả ba thứ tiếng đó, hiểu cả những context quá khứ và hiểu sự thật là mình bất lực để đem lại trật tự cho mớ hỗn độn này, bạn cảm nhận một thứ đau khổ, một thứ "language pain".

Công việc giúp tôi trải nghiệm nhiều loại ngôn ngữ nữa: các ngôn ngữ lập trình. Tuần nào cũng tham dự vài progress report, rồi quality report, thế nào cũng gặp vài báo cáo bugs, issue liên quan đến mis-communication, thêm một vài "communication pain", "programming pain".



Một điểm chung dễ nhận thấy là bất kỳ một diễn đạt bằng ngôn ngữ tự nhiên hay ngôn ngữ lập trình đều có thể có lỗi do hiểu lầm (miscommunication). Với đặc tả (spec), bao nhiêu hiểu lầm xẩy ra vì nhiều từ hóa ra chỉ cùng một thứ, hoặc ngược lại, cùng một từ ở những chỗ khác nhau hóa ra lại chỉ những thứ khác nhau!
 Và tôi còn thấy một sự tương đồng thú vị khác nữa liên quan đến nền tảng của cả hai.
Các ngôn ngữ ban đầu rất đơn giản, gần với mức xử lý cơ bản nhất của máy tính: chỉ có hai thông tin cơ bản 0 và 1. Các khái niệm (của lập trình: data and algorithm) bắt đầu được phức hợp và mã hóa chỉ từ nhị phân đơn giản đó và cho ra đời các ngôn ngữ lập trình bậc thấp nhất như Assembly, rồi thành phát triển dần dần (thực ra là như vũ bão) thành các ngôn ngữ lập trình bậc cao hơn như C++, Java, rồi gần đây là Scala, etc. Máy tính chỉ có khả năng hiểu rất đơn giản (thực chất chỉ hiểu 0 và 1), thế nên để thực thi được cho dù một xử lý đơn giản nhất như 1+1, người lập trình phải "giải thích" với máy tính rất nhiều, vì thế những program đầu tiên viết bằng Assembly rất dài nhưng xử lý được rất ít (máy tính thực ra cũng không xử lý trực tiếp được Assembly mà mã Assembly phải được compile ra mã máy, thứ ngôn ngữ duy nhất mà máy tính hiều được, mã Assembly mặc dù đã đơn giản hơn rất nhiều so với mã máy, những vẫn hết sức khó hiểu so với ngôn ngữ tự nhiên, khó hiểu đến mức ngày nay rất ít người còn hiểu được Assembly, và hiểu được là do họ phải bắt buộc học nó). Những ngôn ngữ lập trình bậc cao như Java thì cho phép "giải thích"  với máy một cách hiệu quả hơn (có lẽ gấp khoảng 100-1000 lần, sorry tôi chỉ đoán vậy), khiến việc lập trình nhanh và dễ hơn hàng nghìn lần, dẫn đến việc thế giới hiện đại tràn ngập các ứng dụng phần mềm (nhưng thực chất, năng lực hiểu của máy tính vẫn đơn giản như trước:0 và 1, chỉ có năng lực xử lý của các trình biên dịch (compiler) cũng như năng lực xử lý số chỉ thị trong cùng một giây của CPU đã tăng lên ngàn vạn lần theo định luật Moore, và thế giới đã tràn ngập các mã nhị phân). Nền tảng của các ngôn ngữ lập trình là nhị phân.
 Còn nền tảng của ngôn ngữ tự nhiên? Cái nhìn có phần thô sơ của tôi là ngôn ngữ ra đời do nhu cầu cần giao tiếp: trao đổi thông tin và lưu trữ thông tin. Trong cả hai nhu cầu đó, ngôn ngữ đều đóng vai trò là vật trung gian (medium) để mô tả một "thực tại" (thực tại ở đây không có nghĩa "hiện tại", nó có thể là bất kỳ hoàn cảnh nào, quá khứ hay tương lại, hiện thực hay hư ảo) nào đó. Để mô tả, chúng ta dùng một vài từ ngữ, âm thanh hay hình ảnh để trỏ đến một đối tượng của "thực tại" mà về cơ bản là đối tượng đó cụ thể hơn và mang nhiều thông tin hơn hẳn. Khi ta nói "cái nhà", ta chỉ cần đến 6 ký tự, còn một cái nhà trong thực tế cụ thể hơn nhiều và nhiều thông tin hơn nhiều. Điều tương tự đúng cho tất cả cả từ khác : "chạy", "ăn", ... Thế thì bản chất ngôn ngữ là sự mã hóa, sự trừu tượng hóa và rút gọn thông tin của thực tại thành các khái niệm. Vì thế tôi cho rằng, ngôn ngữ là một sự khái niệm hóa (conceptualization). Còn bản thân khái niệm, nền tảng của nó là gì? Quan điểm của tôi: nền tảng của khái niệm là sự phân chia mang tính quy ước, sự phân biệt cái này ở bên này của cái kia, cái kia ở bên kia của cái đó (*).... Nói một cách đơn giản, nền tảng của khái niệm là nhị nguyên (duality).
 Vậy thì, với các ngôn ngữ tự nhiên hay nhân tạo hiện thời, thế giới online đơn thuần là các tổ hợp nhị phân còn thế giới offline đơn thuần là các tổ hợp nhị nguyên. Cái gã tôi trên facebook, blogspot, etc. chỉ là một dạng biểu hiện nhị phân cao cấp, còn cái thằng tôi ngoài đời thực ngập tràn các khái niệm nhị nguyên. Nền tảng của các ngôn ngữ tự nhiên là nhị nguyên..
 Một khả năng cho tương lai: khi các thuật toán và ngôn ngữ có thể tiến đến thời đại lượng tử (phi nhị phân), liệu "thực tại" có thể sẽ được biểu đạt bằng các khái niệm/ ngôn ngữ/ tư duy mới phi quy ước (phi nhị nguyên)?

(*) Để có thêm hình dung về sự khái niệm hóa, tôi xin dẫn một trích đoạn trong cuốn "Biết mình đang mơ" của B. Alan Wallace:
"Tính đối ngẫu của ánh sáng và bóng tối là được tạo lập nên trong bản thân chúng ta. Mặt trời không chiếu sáng, cũng không nóng. Nó chỉ phát ra năng lượng lượng tử và bức xạ nhiệt khiến chúng ta tiếp nhận như sự chói sáng và sức nóng. Bạn sẽ dễ dàng chấp nhận điều này hơn một chút khi nghĩ đến một số loài động vật không có mắt ở dưới đáy biển sâu và trú ngụ trong hang động. Với chúng có vẻ như không có ánh sáng cũng không có bóng tối. Với những người khiếm thị bẩm sinh cũng vậy, họ biết về ánh sáng (và bóng tối) chỉ qua những điều người sáng mắt kể lại. Tương tự như vậy, với người điếc thì không có tiếng động. Hơn nữa, các sinh vật khác nhận được bức xạ, sóng âm và những dữ liệu cảm giác khác theo những cách khác với chúng ta về căn bản (hãy hình dung sự đa dạng trong cảm nhận mùi của loài chó thì sẽ rõ). Vì thế tính chất của các đối tượng chúng ta tiếp nhận nảy sinh tùy thuộc vào sự tương tác giữa tâm trí và cơ thể của chúng ta."

Comments

Popular Posts