Có nên dịch mã nguồn trong sách giáo khoa và những thứ tương tự?


16

Vài tuần trước, lớp tôi được chỉ định dịch sang tiếng Bồ Đào Nha cuốn sách Real World Haskell. Khi tôi dịch văn bản và bình luận, tôi bắt đầu tự hỏi liệu tôi có nên dịch mã không, như người hướng dẫn đề xuất. Ví dụ:

data BookInfo = Book Int String [Chuỗi]
              dẫn xuất

sẽ trở thành

dữ liệu InfoLivro = Chuỗi Intro [Chuỗi]
               dẫn xuất

Vì tôi chưa đọc bất kỳ cuốn sách nào liên quan đến phần mềm bằng tiếng Bồ Đào Nha, tôi không biết liệu đó có phải là một thông lệ hay không, liệu nó có nên được thực hiện theo cách này không. Cuối cùng, mã là một hỗn hợp ngôn ngữ (có lẽ ví dụ trong Haskell không phải là một ngôn ngữ tốt, vì bạn có thể tạo từ đồng nghĩa nhanh chóng như thế type CadeiaDeCaracteres = String, nhưng bạn có được điểm). Vì vậy, việc bạn cố gắng thế nào không quan trọng, bạn sẽ phải dựa vào trải nghiệm trước đây của người đọc với một số từ tiếng Anh cơ bản.

Biết điều này, tôi thực sự không thấy điểm nào trong việc dịch mã, vì chúng ta học trong những ngày đầu của cuộc đời mã hóa, nó nên được viết bằng ngôn ngữ phổ quát. Tuy nhiên, nếu văn bản xung quanh (ví dụ như bình luận, và chính văn bản trong một cuốn sách) cần được dịch, điều gì là có thể và khả thi trong vấn đề này? Bạn có thể cung cấp cho tôi một số hướng dẫn về những gì để làm?


9
Người hướng dẫn mong đợi bạn học được gì từ điều này? Vâng, bạn có thể tìm hiểu một chút về Haskell, nhưng có vẻ như đó chủ yếu là một bài kiểm tra kỹ năng dịch tiếng Anh của bạn. Có phải anh ta chỉ muốn một bản dịch cho các lớp học trong tương lai, và anh ta nghĩ rằng lãng phí thời gian của tất cả các sinh viên trong lớp này là cách để hoàn thành nó? Đặt cược của tôi: tất cả những gì bạn sẽ học là tại sao dịch thuật là một lĩnh vực chuyên ngành được thực hiện tốt nhất bởi các chuyên gia.
Dori


@Dori Tôi hoàn toàn đồng ý. Đáng buồn thay, đó là cách trường đại học của tôi hoạt động, ít nhất là trong lĩnh vực CS.
rapfaria

bạn nên nói cho anh ta một cái gì đó như thế này: "" "Giáo sư, Voce esta realmente louco Eu preferiria dormir com sua Mae làm que fazer isso Aprenda Inglés ou perecer..." ""
công việc

Câu trả lời:


13

Theo tôi, không. Hầu hết các lập trình viên đều bị ép buộc dù muốn hay không, để học tiếng Anh, và ngày nay, đó là ngôn ngữ chung của thế giới phần mềm.

Tuy nhiên, theo kinh nghiệm của tôi, những cuốn sách được viết bởi các tác giả bằng một trong những ngôn ngữ mạnh hơn , có xu hướng làm điều đó - cho đến nay tôi đã thấy thực tiễn trong sách bằng tiếng Đức, tiếng Pháp và tiếng Nga (tốt, tiếng Nga có một chút khác biệt của một trường hợp, vì họ sử dụng bảng chữ cái khác nhau là tốt). Đó là một quy tắc của ngón tay cái mà nó phụ thuộc vào sự phụ thuộc của đất nước vào tiếng Anh.

Các văn bản tất nhiên được dịch, các bình luận lớn hơn (một mô tả hoạt động của một chương trình chi tiết hơn), sau đó hiếm hơn, bình luận nhỏ hơn và tên biến. Tôi cũng đã thấy trường hợp tên biến được dịch, nhưng những bình luận nhỏ hơn được để lại bằng tiếng Anh. Tôi tin rằng tác giả, tuy nhiên, trong trường hợp cụ thể đó, đã dựa vào khán giả của mình để có kiến ​​thức tiếng Anh làm việc.

Xin lỗi nếu điều này không giải quyết được vấn đề nan giải của bạn, nhưng vẫn không có sự đồng thuận về vấn đề này: - /


11

Tôi là người Brazil [chúng tôi nói tiếng Bồ Đào Nha ở đây, ofc] và, khi tôi có thể chọn giữa phiên bản gốc hoặc phiên bản dịch, tôi luôn lấy bản gốc, vì hầu như mọi cuốn sách đều được dịch cho những người không lập trình nên các lệnh và biểu thức bị mất ý nghĩa ban đầu của chúng sau khi dịch.

Một lý do khác để muốn sách bằng tiếng Anh là mọi thứ trên web [hoặc những thứ tốt nhất, như trang này] được viết bằng tiếng Anh, vì vậy bạn sẽ làm quen với thuật ngữ tiếng Anh và bạn sẽ có thể hiểu mã người khác tốt hơn ... [vì một lập trình viên giỏi sẽ viết mã bằng tiếng Anh, ít nhất là từ POV của tôi]

Nếu bạn cần đọc sách bằng tiếng Bồ Đào Nha [hoặc ngôn ngữ khác] thích những cuốn sách được viết trên ngôn ngữ đó [không được dịch].

Để làm rõ: nếu bạn định dịch cuốn sách đó, hãy cố gắng giữ tất cả mã bằng tiếng Anh [ý kiến ​​có thể được dịch, nhưng không phải là vars hoặc funcs] và đừng cố dịch những thứ như 'mảng' sang 'arranjo' hoặc 'chuột' thành 'rato' [ít nhất tôi thích thuật ngữ tiếng Anh, mọi người ở Bồ Đào Nha sẽ thích từ thứ hai hơn, tôi đoán vậy].


3
+1 vì cần một chuyên gia trong cả ba (ngôn ngữ nguồn, ngôn ngữ đích, lập trình)
Frank Shearar

2

Là một người nói tiếng Anh không phải là người bản xứ, tôi không thích mã dịch.

  1. Xây dựng thực hành tốt. Là một người chuyên nghiệp, không chỉ tiếng Anh là ngôn ngữ chính của lĩnh vực này, mà những người có nền tảng khác nhau cũng chia sẻ và làm việc trên cùng một mã. Viết mã cho bạn bằng ngôn ngữ khác giúp giảm đáng kể số người có thể làm việc với mã của bạn - Tôi đã có một số niềm vui với một số mã được viết bằng ngôn ngữ khác và thật tệ. Vì vậy, tại sao không khuyến khích những thói quen tốt?

  2. Trông nó thật xấu xí. Hầu hết các ngôn ngữ lập trình sử dụng từ khóa bằng tiếng Anh và, với một lựa chọn tốt cho các định danh, đọc một chương trình có thể là một kinh nghiệm gần với ngôn ngữ tự nhiên. Trừ khi bạn sử dụng ngôn ngữ khác cho mã định danh, điều này làm cho nó giống với việc đọc bằng 2 ngôn ngữ cùng một lúc.

  3. Tôi không tin rằng nó giúp được nhiều như vậy. Ngay cả đối với một người không nói tiếng Anh, tiếng Anh được sử dụng để nhận dạng trong một chương trình thông thường khá đơn giản và có thể học rất nhanh.


2

Một điểm tốt chống lại việc dịch các ví dụ mã là điều này, nếu bạn làm thế, bạn sẽ phải kiểm tra chúng , vì các ví dụ mã được dịch được dự kiến ​​sẽ chính xác như bản gốc.

Là nỗ lực thử nghiệm bao gồm trong chi phí dịch thuật? Tôi đoán là không, trong hầu hết các trường hợp.

Nếu bạn không kiểm tra mã được dịch, bạn có nguy cơ mã bị hỏng hoặc không chính xác, làm tổn hại đến uy tín của cả tài liệu dịch và tài liệu gốc.

Nếu bạn không muốn phải nỗ lực kiểm tra các ví dụ mã, bạn chỉ nên dịch các bình luận chứ không thay đổi mã theo bất kỳ cách nào.

Một điều khác cần xem xét là thực tế là tác giả gốc có lẽ có một cơ sở mã, có thể là một ứng dụng hoặc thư viện hoàn chỉnh để biên dịch toàn bộ. Các ví dụ mã được trích xuất từ ​​một cơ sở mã như vậy và lan truyền khắp cuốn sách. Bạn sẽ không có điều đó, vì vậy bạn có thể, sau khi dịch các ví dụ mã, kết thúc với các ví dụ mã, trong cuốn sách được dịch, mâu thuẫn với nhau, do các quyết định dịch khác nhau trong các phần khác nhau của cuốn sách, trong khi trong cuốn sách gốc, chúng không bởi vì chúng được trích xuất từ ​​cùng một cơ sở mã.


0

Tôi không nói tiếng nào khác ngoài tiếng Anh. (Chà, tôi là người Latin ở trường trung học. Hữu ích nếu tôi từng đến Mỹ Latinh. :-) Với nền tảng đó, tôi sẽ nói:

Như những người khác đã lưu ý, rất nhiều thông tin về lập trình, trên web và trong sách, bằng tiếng Anh, vì vậy nó chắc chắn sẽ giúp ích nếu bạn học tiếng Anh.

Một số ngôn ngữ máy tính sử dụng rất nhiều từ tiếng Anh, như Visual Basic chẳng hạn. Những người khác sử dụng hầu hết các biểu tượng, như C / C ++ / C #. Vì vậy, nếu bạn đang lập trình, bạn sẽ phải học MỘT SỐ tiếng Anh. Nhưng tôi không nghĩ đó là nhiều. NẾU, KHI NÀO, TRẢ LẠI, v.v. Tùy thuộc vào ngôn ngữ, có thể 10 hoặc 20 từ đến vài chục. Visual Basic là ngôn ngữ đẹp nhất mà tôi có thể nghĩ ra, và tôi chỉ kiểm tra một danh sách và nó, bằng cách đếm nhanh, khoảng 160 từ dành riêng, nhưng có rất nhiều sự trùng lặp trong đó. Giống như END và WHILE và sau đó END WHILE được liệt kê dưới dạng ba "từ" riêng biệt. Tôi có thể thấy rằng việc gây bất tiện cho người không nói tiếng Anh, nhưng những từ này thường được sử dụng với nghĩa chỉ liên quan một cách lỏng lẻo với nghĩa tiếng Anh thông dụng của họ, vì vậy tôi nghĩ trong nhiều trường hợp nó ' Người nói tiếng Anh không khó hơn nhiều so với người nói tiếng Anh. Giống như, ý nghĩa của HANDLER hoặc CAST có lẽ không còn rõ ràng đối với một lập trình viên mới nói tiếng Anh hơn là một lập trình viên mới nói tiếng Bồ Đào Nha. Nếu thay vào đó, một số trong những điều này được gọi bằng những từ vô nghĩa trong tiếng Anh, như nếu thay vì nói CAST, chúng tôi đã nói FOOebar, điều đó có khiến tôi khó học lập trình hơn không? Tôi nghi ngờ nó sẽ có nhiều khác biệt. điều đó có làm tôi khó học lập trình hơn không? Tôi nghi ngờ nó sẽ có nhiều khác biệt. điều đó có làm tôi khó học lập trình hơn không? Tôi nghi ngờ nó sẽ có nhiều khác biệt.

Bạn đề cập rằng một số ngôn ngữ có các tùy chọn để xác định từ thay thế cho từ khóa theo cách này hay cách khác. Vì vậy, có, bạn có thể định nghĩa các từ trong ngôn ngữ của bạn là từ đồng nghĩa cho các từ khóa tiếng Anh. Tôi sẽ không. Bây giờ các chương trình của bạn có một loạt các điều khoản không chuẩn mà bạn tạo ra. Một số người khác cố gắng làm điều tương tự không có khả năng sử dụng chính xác cùng một nhóm từ mà bạn làm. Vì vậy, bây giờ đọc chương trình của người khác, bạn đã hiểu được ý nghĩa của "bản dịch" của anh ấy. Tôi cho rằng nếu mọi người trong công ty sử dụng cùng một bộ, bạn sẽ học chúng và có thể làm việc trên các chương trình của nhau một cách dễ dàng. Nhưng điều gì xảy ra khi bạn chuyển sang một công ty khác hoặc tải xuống phần mềm từ web? Dường như với tôi rằng bạn chỉ đang đặt một cái bẫy cho chính mình. Tốt hơn là chỉ học các từ tiêu chuẩn.

Nếu bạn đang viết một chương trình bằng tiếng Bồ Đào Nha và những người duy nhất có khả năng đọc nó là những người Brazil khác, và tất cả các bạn có lẽ nói tiếng Bồ Đào Nha nhưng có thể không thông thạo tiếng Anh, thì thật hợp lý khi đặt tên tiếng Bồ Đào Nha. Tôi không thấy những gì đạt được bằng cách cố gắng đặt tên biến bằng ngôn ngữ mà bạn không giỏi lắm.

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.