Ngôn ngữ tự nhiên nào có lợi thế khi lập trình? [đóng cửa]


21

Thuyết tương đối ngôn ngữ là ý tưởng mà ngôn ngữ định hình cách chúng ta suy nghĩ. Câu hỏi của tôi là, bao nhiêu, và ở mức độ nào, điều này có áp dụng cho lập trình không?

  • Là một số ngôn ngữ tự nhiên, bản địa phù hợp hơn để suy nghĩ về lập trình hơn những ngôn ngữ khác? Chẳng hạn, những điều sau đây có thể được nói chính xác hơn bằng một ngôn ngữ không phải tiếng Anh không? Select a pivot. Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side.
  • Liệu một lập trình viên nói tiếng Trung Quốc xem chương trình trong một lăng kính hoàn toàn khác so với một lập trình viên nói tiếng Anh, hay sự khác biệt sẽ biến mất khi cả hai đắm chìm trong chủ đề?
  • Là một số ngôn ngữ lập trình và miền dễ nghĩ hơn trong ngôn ngữ này hay ngôn ngữ khác. Chẳng hạn, có dễ dàng hơn để mò mẫm Ruby nếu bạn là người Nhật vì người tạo ra Ruby là người Nhật?

Lưu ý rằng câu hỏi này không tập trung vào "làm thế nào để ngôn ngữ lập trình ảnh hưởng đến cách mọi người nghĩ về lập trình", mà là "làm thế nào để ngôn ngữ tự nhiên ảnh hưởng đến cách mọi người nghĩ về lập trình".

Để giải quyết vấn đề này, một ngôn ngữ rõ ràng có lợi thế thực dụng là tiếng Anh . Tôi nghĩ lợi thế có ít để làm với các ngôn ngữ lựa chọn từ khóa tiếng Anh như lập trình if, for, while, và do, giống như nhạc sĩ người không nói tiếng Ý không vấp lên bởi những từ như sở trường . Nó liên quan nhiều hơn đến việc giao tiếp ý tưởng với các lập trình viên khác, vì tiếng Anh là ngôn ngữ chung trong những ngày này, ít nhất là trong thế giới lập trình. Ví dụ, để đặt câu hỏi trong StackOverflow, bạn thực sự cần biết tiếng Anh và biết nó khá tốt nếu bạn muốn có câu trả lời tốt. Mặc dù điều này nghe có vẻ như là một thái độ của đế quốc, nhưng nó thực sự đúng trong thực tế.

Điều đó sang một bên, làm thế nào để các thuộc tính nội tại của ngôn ngữ ảnh hưởng đến cách các lập trình viên nói họ nghĩ về cấu trúc dữ liệu, thuật toán, v.v.? Có ngôn ngữ nào đặc biệt súc tích khi nói về logic và lập trình, cho phép người bản ngữ của những ngôn ngữ đó suy nghĩ nhanh hơn không?


2
Bạn có thể nói rằng rất đơn giản cho bất kỳ lập trình viên có thẩm quyền. Implement quick sort.
Josh K

Câu trả lời:


3

À, giả thuyết Sapir-Whorf so với giả thuyết Chomsky Deep Architecture ...

Lập trình là toán học. Toán học là triết lý ứng dụng. Câu hỏi sau đó trở thành, ngôn ngữ tự nhiên nào có thể mô tả chính xác các khái niệm toán học mà không cần phải gãi đầu. Nói cách khác, ngôn ngữ nào có thể đối phó với siêu hình học Aristoteles một cách dễ dàng?

Ngôn ngữ 'man rợ' tục ngữ có thể gặp khó khăn ban đầu khi diễn đạt các khái niệm trừu tượng bậc nhất được yêu cầu. Tuy nhiên- tuy nhiên! - con người có thể học từ mới, và khái niệm mới. Hy Lạp cổ đại đã không bắt đầu với các thuật ngữ triết học; chúng phải được phát minh và sau đó chuyển sang các langau khác.

Xét rằng toán học là phổ quát, tôi cho rằng giả thuyết Sapir-Whorf mạnh là sai.


"Toán học là triết lý ứng dụng" Giải thích?
Frank Shearar

1
@Frank: Trong lịch sử, đó là trường hợp. Khi bạn thực hiện một cái nhìn khó hiểu về 'nền tảng của toán học', nó trở nên rõ ràng rằng nó có cơ sở triết học. Ví dụ, toàn bộ lập luận trực giác.
Paul Nathan

Tôi sẽ không tranh luận rằng một số câu hỏi toán học là triết học, như bạn nói. Đối với tôi, dường như có một bước nhảy vọt khi nói rằng "Toán học là triết lý ứng dụng".
Frank Shearar

@Frank: tốt, nếu nền tảng của toán học là triết học, thì có vẻ như cái bắt nguồn từ nền tảng cũng là triết học. Không? Vâng?
Paul Nathan

1
@Frank: Kinh khủng hả? Một số chuyên gia nghệ thuật tự do đang cười khúc khích từ latte của anh ấy bây giờ, tôi cá là vậy. :)
Paul Nathan

13

Tôi không biết rằng bất kỳ ngôn ngữ tự nhiên cụ thể nào cũng cho vay để lập trình tốt hơn (ngoại trừ có thể là tiếng Latin?). Tôi biết rằng biết nhiều hơn một ngôn ngữ là khá mạnh mẽ.

Dijkstra đã nói trong một trong những cuộc phỏng vấn cuối cùng của mình (như được in lại trong CACM Tập 53 số 8, trang 44):

Có một sự khác biệt rất lớn giữa một người đơn ngữ và một người ít nhất biết rõ ngôn ngữ thứ hai, bởi vì nó khiến bạn ý thức hơn nhiều về cấu trúc ngôn ngữ nói chung. Bạn sẽ khám phá ra rằng các công trình nhất định trong một ngôn ngữ mà bạn không thể dịch.


6

Tiếng Thổ Nhĩ Kỳ là một ngôn ngữ rất thú vị vì nó có các quy tắc nghiêm ngặt mà không có ngoại lệ (mà tôi biết), gần như hoàn toàn không có dư thừa, không có giới tính ngữ pháp và trên từ có thể diễn đạt nhiều như một câu trong tiếng Anh.

Trong quá khứ "Çekos Tuyênyalılaştıramadıklarımızdan mısınız?" có nghĩa là "Bạn có phải là một trong những người mà chúng tôi không thể giống với Tiệp Khắc không?" đã rất phổ biến và được chấp nhận là từ dài nhất trong tiếng Thổ Nhĩ Kỳ. Tuy nhiên, hậu tố câu hỏi (mısınız trong trường hợp này) được viết riêng, vì vậy mặc dù nó là một từ, nó có vẻ giống như hai từ khi từ được viết. Ngoài ra, các phiên bản dài hơn của từ này có thể được thực hiện dễ dàng, chẳng hạn như "Çekos Tuyênyalılaştırabildiklerimizden miydiniz?". Vì những lý do này, từ này đã mất đi sự phổ biến của nó, nhưng nó vẫn là một twister lưỡi phổ biến ở Thổ Nhĩ Kỳ.

nói chuyện bằng tiếng Thổ Nhĩ Kỳ làm cho tôi suy nghĩ về những gì tôi muốn đạt được, những thông tin tôi muốn truyền tải và ít hơn về những từ để sử dụng.

chỉnh sửa
Tất nhiên tiếng Thổ Nhĩ Kỳ có từ để thể hiện giới tính sinh học. Nhưng nó không có sự tách biệt với anh ấy / cô ấy - trong tiếng Thổ Nhĩ Kỳ "o".

Hoặc trong tiếng Tây Ban Nha, bạn sẽ nói "profesor / profesora" và tiếng Đức "Lehrer / Lehrerin". Trong tiếng Thổ Nhĩ Kỳ, bạn phải sử dụng thêm từ để chỉ giới tính - tương tự như tiếng Anh.
Trong tiếng Thổ Nhĩ Kỳ giáo viên là öğretmen. Để chỉ ra một giáo viên nữ mà bạn nói "kadın öğretmen" - giáo viên nữ. Nhưng bất chấp tiếng Đức, nơi - nếu không được nữ hóa bằng cách thêm "-in" - mặc định là nam, ğğretmen không có giới tính, vì không có giới tính.

Một thứ khác không có sẵn trong tiếng Thổ Nhĩ Kỳ là các bài viết như "el / la", "the", "der / die / das" - vì nó thường chỉ là thông tin đã có sẵn trong bối cảnh.
Nhưng có những từ để diễn tả "này", "este / esta", "diee / diees / diee", ví dụ "bu".
Đây là thông tin bổ sung, vì nó đang chỉ vào một đối tượng nhất định.


1
Không có ngữ pháp tình dục, những người Thổ Nhĩ Kỳ nhỏ sẽ đến từ đâu? (By the way, khi tôi thấy câu hỏi nhưng trước khi tìm kiếm ở đây, tôi nghĩ đến Thổ Nhĩ Kỳ Trong khi tôi không nói được nó, tôi đã nghe về cách thường xuyên nó được..)
Randall Schulz

Rõ ràng cú pháp của Smalltalk thậm chí gần với tiếng Thổ Nhĩ Kỳ hơn tiếng Anh: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar

@Frank Shearer: thời gian để học smalltalk!
VikingoS cho biết phục hồi Monica

@Randall Schulz: U đã cho tôi;) Tôi luôn luôn trộn lẫn khác giới hạn và giới tính ...
VikingoS nói Khôi phục Monica

Tôi đã nghe tiếng Phạn có nghĩa là giống ngôn ngữ máy tính nhất theo một số nghiên cứu, bạn có thể google nó. Tôi không chắc nó có thể đúng như thế nào nhưng vì tiếng Phạn không bao giờ được sử dụng như một ngôn ngữ nói chính thống và vì nó được sử dụng trong giới hàn lâm cho các nghiên cứu kỹ thuật thời đó nên nó không giống với ngôn ngữ nói tự nhiên ngày nay. Tiếng Thổ Nhĩ Kỳ nghe rất ngọt ngào đối với tai tôi (chỉ là một cách tự nhiên) nhưng nếu nói tất cả thì nó và tiếng Phạn nói như cậu bé ngôn ngữ lập trình sẽ rất nhàm chán. Điều cuối cùng tôi muốn nghe khi được hỏi: "đó là trai hay gái?" là đúng".
nawfal

2

Tôi nghĩ nhiều khả năng ngôn ngữ lập trình bạn đang sử dụng sẽ định hình cách bạn suy nghĩ về vấn đề, tên biến và tên lớp, v.v., chỉ là các ký tự đại diện cho điều gì đó. Mặc dù rất có khả năng các lập trình viên ở các nền văn hóa khác nhau nghĩ về lập trình khác nhau vì ngôn ngữ nói và cách họ học.


1

Theo tôi, ngôn ngữ tự nhiên hoàn toàn không thành vấn đề (hoặc ít nhất là không quan trọng) khi nói về các phương pháp hoặc ý tưởng mà bạn đang cố gắng thực hiện với mã của mình.

Như bạn đã nói, khi làm việc với chính mã và viết tài liệu về mã tiếng anh là thích hợp nhất. Nhưng bản thân mã chỉ là một thủ công , sức mạnh thực sự của một nhà lập trình / nhà khoa học máy tính nằm ở trên đó với ý tưởng, thuật toán và những thứ như vậy - và sau đó, ngôn ngữ mà những thứ đó được mô tả hoàn toàn không quan trọng đối với nội dung thực tế.


0

Đây là một chủ đề mà tôi rất quan tâm vào một lúc nào đó, vì vậy nỗi buồn lớn hơn (bây giờ) của tôi, rằng tôi không thể tìm thấy các dấu trang mà tôi đã có trước đó.

Tôi đã lưu một liên kết mà tôi đã vấp vào một ngày khác, Do các ngôn ngữ khác nhau có thực tế khác nhau không? tiếp tuyến phần nào vào nó (đọc các bình luận là tốt). Một số thú vị.

Dù sao ...


-1

Tiếng Anh thực sự khá hiệu quả và súc tích. Dịch sang hầu hết các ngôn ngữ sẽ làm cho một ý tưởng dài hơn để thể hiện .

Nó cũng thường chấp nhận rằng không có ngôn ngữ tự nhiên nguyên thủy . Tất cả các ngôn ngữ tự nhiên trong sử dụng tích cực có mức độ biểu cảm như nhau. Điều đó không có nghĩa là những ý tưởng không được hình thành bởi ngôn ngữ, nhưng tôi không nghĩ ngôn ngữ tự nhiên là một ảnh hưởng lớn.


Tôi thấy rằng tiếng Trung có lẽ là ngôn ngữ ngắn gọn nhất mà tôi từng gặp, cả khi viết và nói. Độ dài dịch thường chỉ bằng một nửa tiếng Anh.
Jon Purdy

4
Nhưng không phải sự phức tạp của biểu tượng chỉ cao hơn?
Joeri Sebrechts

Tiếng Trung là APL của ngôn ngữ nói? :)
nawfal 11/07/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.