ควรแปลซอร์สโค้ดในตำราและสิ่งที่คล้ายกันไหม


16

ไม่กี่สัปดาห์ที่ผ่านมาชั้นของฉันได้รับมอบหมายให้แปลภาษาโปรตุเกสเป็นหนังสือ Real World Haskell เมื่อฉันแปลข้อความและความคิดเห็นฉันเริ่มสงสัยว่าฉันควรแปลรหัสด้วยหรือไม่ตามที่ผู้สอนแนะนำ ตัวอย่างเช่น:

data BookInfo = สตริง Int ของหนังสือ [String]
              แสดงที่ได้รับ

จะกลายเป็น

data InfoLivro = สตริงสตริง Livro [สตริง]
               แสดงที่ได้รับ

เนื่องจากฉันไม่ได้อ่านหนังสือที่เกี่ยวข้องกับซอฟต์แวร์ในภาษาโปรตุเกสฉันไม่ทราบว่าเป็นวิธีปฏิบัติทั่วไปหรือไม่และควรทำเช่นนี้หรือไม่ ในท้ายที่สุดรหัสคือการผสมผสานภาษา (บางทีตัวอย่างใน Haskell อาจไม่ดีเพราะคุณสามารถสร้างคำพ้องความหมายได้อย่างรวดเร็วเหมือนtype CadeiaDeCaracteres = Stringแต่คุณได้ประเด็น) ดังนั้นไม่สำคัญว่าคุณจะพยายามอย่างหนักเพียงใดคุณจะต้องพึ่งพาผู้อ่านก่อนหน้านี้ด้วยคำศัพท์พื้นฐานบางอย่าง

รู้สิ่งนี้ฉันไม่เห็นจุดในการแปลรหัสเนื่องจากเราเรียนรู้ในวันแรกของชีวิตการเข้ารหัสของเรามันควรจะเขียนในภาษาสากล อย่างไรก็ตามหากจำเป็นต้องแปลข้อความโดยรอบ (ความเห็นตัวอย่างและข้อความในหนังสือ) สิ่งใดที่เป็นไปได้และเป็นไปได้ในเรื่องนี้ คุณสามารถให้คำแนะนำฉันเกี่ยวกับสิ่งที่ต้องทำ


9
ผู้สอนคาดหวังให้คุณเรียนรู้อะไรจากสิ่งนี้ ใช่คุณอาจเรียนรู้เล็กน้อยเกี่ยวกับ Haskell แต่ดูเหมือนว่าส่วนใหญ่จะเป็นการทดสอบทักษะการแปลภาษาอังกฤษของคุณ เขาต้องการคำแปลสำหรับชั้นเรียนในอนาคตและเขาคิดว่าการเสียเวลาของนักเรียนทุกคนในชั้นเรียนนี้เป็นวิธีที่จะทำให้สำเร็จหรือไม่? เดิมพันของฉัน: สิ่งที่คุณจะได้เรียนรู้คือเหตุใดการแปลจึงเป็นเรื่องพิเศษที่ผู้เชี่ยวชาญทำ
Dori

คำถามที่เกี่ยวข้อง: programmers.stackexchange.com/questions/1483/…
David_001

@Dori ฉันเห็นด้วยอย่างสมบูรณ์ น่าเสียดายที่มหาวิทยาลัยของฉันทำงานอย่างน้อยในสาขา CS
rapfaria

คุณควรบอกเขาบางอย่างเช่นนี้: "" "ศาสตราจารย์, vocêestá realmente louco. Eu preferiria dormir com sua mãe do que fazer isso. Aprenda Inglês perecer." "
งาน

คำตอบ:


13

ในความคิดของฉันไม่มี โปรแกรมเมอร์ส่วนใหญ่ถูกบังคับไม่ว่าพวกเขาต้องการหรือไม่เรียนรู้ภาษาอังกฤษและทุกวันนี้มันเป็นภาษากลางของโลกซอฟต์แวร์

จากประสบการณ์ของฉันหนังสือที่เขียนโดยผู้เขียนในภาษาที่แข็งแกร่งกว่ามีแนวโน้มที่จะทำอย่างนั้นจนถึงตอนนี้ฉันได้เห็นการฝึกฝนในหนังสือเป็นภาษาเยอรมันฝรั่งเศสและรัสเซีย (ดีรัสเซียก็แตกต่างกันเล็กน้อย กรณีเนื่องจากพวกเขาใช้ตัวอักษรที่แตกต่างกันเช่นกัน) เป็นกฎง่ายๆที่ขึ้นอยู่กับการพึ่งพาภาษาอังกฤษของประเทศ

ข้อความมีการแปลแน่นอนความคิดเห็นที่ยิ่งใหญ่กว่า (หนึ่งที่อธิบายการทำงานของโปรแกรมในรายละเอียดมากขึ้น) จากนั้นค่อนข้างหายากมากขึ้นความคิดเห็นขนาดเล็กและชื่อตัวแปร ฉันเคยเห็นกรณีที่ชื่อตัวแปรถูกแปลแล้ว แต่ความคิดเห็นเล็ก ๆ ถูกทิ้งไว้เป็นภาษาอังกฤษ ฉันเชื่อว่าผู้แต่งอย่างไรก็ตามโดยเฉพาะอย่างยิ่งในกรณีนั้นก็นับว่าผู้ชมของเขามีความรู้ภาษาอังกฤษที่ใช้งานได้

ขออภัยถ้าสิ่งนี้ไม่สามารถแก้ไขปัญหาของคุณได้ แต่ก็ยังไม่มีฉันทามติในเรื่องนี้: - /


11

ฉันเป็นชาวบราซิล [เราพูดภาษาโปรตุเกสที่นี่, ofc] และเมื่อฉันสามารถเลือกระหว่างฉบับดั้งเดิมหรือฉบับแปลฉันมักจะนำต้นฉบับมาด้วยเนื่องจากหนังสือเกือบทุกเล่มจะถูกแปลให้กับคนที่ไม่ใช่โปรแกรมเมอร์ดังนั้นคำสั่งและการแสดงออกจึงสูญเสียไป ความหมายดั้งเดิมของพวกเขาหลังจากการแปล

อีกเหตุผลที่ต้องการหนังสือเป็นภาษาอังกฤษก็คือทุกอย่างบนเว็บ [หรือสิ่งที่ดีที่สุดเช่นเว็บไซต์นี้] เขียนเป็นภาษาอังกฤษดังนั้นคุณจะคุ้นเคยกับคำศัพท์ภาษาอังกฤษและคุณจะสามารถเข้าใจรหัสของคนอื่นได้ดีขึ้น ... [เนื่องจากโปรแกรมเมอร์ที่ดีจะเขียนโค้ดเป็นภาษาอังกฤษอย่างน้อยจาก POV ของฉัน]

หากคุณจำเป็นต้องอ่านหนังสือในภาษาโปรตุเกส [หรือภาษาอื่น] ควรเลือกหนังสือที่เขียนด้วยภาษานั้น [ไม่แปล]

เพื่อให้ชัดเจน: หากคุณกำลังจะแปลหนังสือเล่มนั้นลองเก็บรหัสทั้งหมดเป็นภาษาอังกฤษ [ความคิดเห็นอาจถูกแปล แต่ไม่ใช่ vars หรือ funcs] และอย่าพยายามแปลสิ่งต่าง ๆ เช่น 'array' เป็น 'arranjo' หรือ 'mouse' to 'rato' [อย่างน้อยฉันต้องการคำศัพท์ภาษาอังกฤษผู้คนในโปรตุเกสจะชอบคำที่สองฉันเดา]


3
+1 สำหรับการต้องการผู้เชี่ยวชาญในทั้งสามของ (ภาษาต้นฉบับภาษาเป้าหมายการเขียนโปรแกรม)
Frank Shearar

2

ในฐานะผู้พูดภาษาอังกฤษที่ไม่ใช่เจ้าของภาษาฉันไม่ชอบรหัสที่แปล

  1. สร้างแนวปฏิบัติที่ดี ในฐานะที่เป็นมืออาชีพไม่เพียง แต่ภาษาอังกฤษเป็นภาษาหลักของภาคสนามเท่านั้น แต่ผู้ที่มีภูมิหลังต่างกันจะใช้รหัสเดียวกันร่วมกัน การเขียนโค้ดในภาษาอื่นช่วยลดจำนวนผู้ที่สามารถทำงานกับรหัสของคุณได้อย่างมาก - ฉันสนุกกับการเขียนโค้ดในภาษาอื่นและมันแย่มาก ดังนั้นทำไมไม่ส่งเสริมนิสัยที่ดี?

  2. มันดูน่าเกลียด ภาษาโปรแกรมส่วนใหญ่ใช้คำหลักเป็นภาษาอังกฤษและด้วยตัวเลือกที่ดีสำหรับตัวระบุการอ่านโปรแกรมอาจเป็นประสบการณ์ที่ใกล้เคียงกับภาษาธรรมชาติ นอกจากว่าคุณใช้ภาษาอื่นสำหรับตัวระบุซึ่งทำให้มันคล้ายกับการอ่านใน 2 ภาษาในเวลาเดียวกัน

  3. ฉันไม่เชื่อว่ามันช่วยได้มาก แม้แต่คนที่ไม่ได้พูดภาษาอังกฤษภาษาอังกฤษที่ใช้สำหรับตัวระบุในโปรแกรมปกตินั้นค่อนข้างง่ายและสามารถเรียนรู้ได้อย่างรวดเร็ว


2

จุดที่ดีสำหรับตัวอย่างโค้ดการแปลคือสิ่งนี้หากคุณทำคุณจะต้องทดสอบพวกเขาเนื่องจากตัวอย่างโค้ดที่แปลนั้นคาดว่าจะถูกต้องเช่นเดียวกับต้นฉบับ

ความพยายามในการทดสอบรวมอยู่ในค่าใช้จ่ายการแปลหรือไม่? ฉันเดาไม่ได้ในกรณีส่วนใหญ่

หากคุณไม่ทดสอบโค้ดที่แปลคุณกำลังเสี่ยงที่จะทำให้โค้ดแตกหรือไม่ถูกต้องซึ่งสร้างความเสียหายต่อชื่อเสียงของทั้งเนื้อหาที่แปลและต้นฉบับ

หากคุณไม่ต้องการให้เกิดความพยายามในการทดสอบตัวอย่างโค้ดคุณควรแปลความคิดเห็นเท่านั้น แต่ไม่ควรเปลี่ยนรหัสในทางใดทางหนึ่ง

สิ่งที่ควรพิจารณาอีกประการคือความจริงที่ว่าผู้แต่งดั้งเดิมส่วนใหญ่อาจมีฐานรหัสอาจเป็นแอพหรือไลบรารีที่สมบูรณ์ที่รวบรวมทั้งหมด ตัวอย่างโค้ดจะถูกแยกออกมาจากฐานของรหัสและกระจายไปทั่วทั้งเล่ม คุณจะไม่มีสิ่งนั้นดังนั้นหลังจากที่คุณแปลตัวอย่างรหัสจบลงด้วยตัวอย่างของรหัสที่ในหนังสือที่แปลแล้วขัดแย้งกันเนื่องจากการตัดสินใจแปลที่แตกต่างกันในส่วนต่าง ๆ ของหนังสือในขณะที่ในหนังสือต้นฉบับพวกเขา ไม่ใช่เพราะมันถูกดึงมาจากฐานรหัสเดียวกัน


0

ฉันไม่พูดภาษาอื่นนอกจากภาษาอังกฤษ (ดีฉันลาตินในโรงเรียนมัธยมมีประโยชน์ถ้าฉันเคยไปละตินอเมริกา :-) ด้วยพื้นหลังนั้นฉันจะพูดว่า:

ดังที่คนอื่น ๆ ระบุไว้ข้อมูลมากมายเกี่ยวกับการเขียนโปรแกรมบนเว็บและในหนังสือเป็นภาษาอังกฤษดังนั้นมันจะช่วยได้แน่นอนถ้าคุณเรียนภาษาอังกฤษ

ภาษาคอมพิวเตอร์บางภาษาใช้คำภาษาอังกฤษจำนวนมากเช่น Visual Basic เป็นต้น คนอื่น ๆ ส่วนใหญ่ใช้สัญลักษณ์เช่น C / C ++ / C # ดังนั้นถ้าคุณกำลังจะไปโปรแกรมคุณจะต้องเรียนรู้ภาษาอังกฤษบางอย่าง แต่ฉันไม่คิดว่ามันจะมาก หากในขณะที่ผลตอบแทน ฯลฯ ขึ้นอยู่กับภาษาอาจ 10 หรือ 20 คำถึงไม่กี่โหล Visual Basic เป็นภาษาที่ฉลาดที่สุดที่ฉันสามารถนึกได้และฉันเพิ่งตรวจสอบรายการและนับถอยหลังอย่างรวดเร็วโดยประมาณ 160 คำที่สงวนไว้ แต่มีการทำซ้ำมากมายในนั้น กดปุ่ม END และ WHILE จากนั้น END WHILE ที่ปรากฏเป็น "คำ" สามคำแยกกัน ฉันเห็นว่าการพูดภาษาอังกฤษไม่สะดวก แต่คำเหล่านี้มักใช้กับความหมายที่เกี่ยวข้องกับความหมายทั่วไปของภาษาอังกฤษเท่านั้นดังนั้นฉันจึงคิดว่าในหลายกรณี ไม่ใช่คนที่พูดภาษาอังกฤษได้ยากกว่าคนที่พูดภาษาอังกฤษ เช่นความหมายของ HANDLER หรือ CAST อาจไม่ชัดเจนสำหรับโปรแกรมเมอร์ใหม่ที่พูดภาษาอังกฤษได้ดีกว่านักเขียนโปรแกรมใหม่ที่พูดภาษาโปรตุเกส ถ้าหากสิ่งเหล่านี้บางอย่างถูกเรียกด้วยคำที่ไม่มีความหมายในภาษาอังกฤษเช่นแทนที่จะบอกว่านักแสดงเราบอกว่า FOOBAR นั่นจะทำให้ฉันเรียนรู้การเขียนโปรแกรมยากขึ้นไหม? ฉันสงสัยว่ามันจะสร้างความแตกต่างได้มาก นั่นจะทำให้การเรียนรู้การเขียนโปรแกรมยากขึ้นหรือไม่ ฉันสงสัยว่ามันจะสร้างความแตกต่างได้มาก นั่นจะทำให้การเรียนรู้การเขียนโปรแกรมยากขึ้นหรือไม่ ฉันสงสัยว่ามันจะสร้างความแตกต่างได้มาก

คุณพูดถึงว่าบางภาษามีตัวเลือกในการกำหนดคำอื่นสำหรับคำหลักไม่ทางใดก็ทางหนึ่ง ใช่คุณสามารถกำหนดคำจากภาษาของคุณเองเป็นคำพ้องความหมายสำหรับคำหลักภาษาอังกฤษ ฉันจะไม่ ขณะนี้โปรแกรมของคุณมีข้อกำหนดที่ไม่ได้มาตรฐานซึ่งคุณทำขึ้น คนอื่นที่พยายามทำสิ่งเดียวกันไม่น่าจะใช้คำเดียวกันกับที่คุณทำ ดังนั้นเมื่ออ่านโปรแกรมของคนอื่นคุณต้องเข้าใจความหมายของคำว่า "การแปล" ของเขา ฉันคิดว่าถ้าทุกคนใน บริษัท ใช้ชุดเดียวกันคุณจะได้เรียนรู้และสามารถทำงานในโปรแกรมของกันและกันได้อย่างง่ายดาย แต่จะเกิดอะไรขึ้นเมื่อคุณย้ายไปยัง บริษัท อื่นหรือดาวน์โหลดซอฟต์แวร์จากเว็บไซต์ สำหรับฉันดูเหมือนว่าคุณเพิ่งจะวางกับดักสำหรับตัวคุณเอง ดีกว่าที่จะเพียงแค่เรียนรู้คำศัพท์มาตรฐาน

หากคุณกำลังเขียนโปรแกรมในภาษาโปรตุเกสและมีเพียงคนเดียวที่อ่านภาษานี้เป็นชาวบราซิลคนอื่นและคุณทุกคนพูดภาษาโปรตุเกสได้ แต่บางทีอาจพูดภาษาอังกฤษไม่คล่องนัก ฉันไม่เห็นสิ่งที่ได้รับจากการพยายามตั้งชื่อตัวแปรเป็นภาษาที่คุณไม่ค่อยเก่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.