Чи слід переводити вихідний код у підручниках тощо?


16

Кілька тижнів тому моєму класу було призначено перекласти на португальську книгу «Реальний світ Хаскелл». Коли я робив переклад тексту та коментарі, я почав замислюватися, чи не слід також перекладати код, як запропонував інструктор. Наприклад:

дані BookInfo = Книга Int String [Рядок]
              Показ Шоу

став би

дані InfoLivro = Livro Int String [Рядок]
               Показ Шоу

Оскільки я не читав жодної книги, що стосується програмного забезпечення, португальською мовою, я не знаю, чи це звичайна практика, ні якщо це слід робити так. Зрештою, код - це мовна суміш (можливо, приклад у Haskell не є хорошим, оскільки ви можете швидко створювати синоніми type CadeiaDeCaracteres = String, але ви розумієте). Тож насправді не важливо, наскільки ви намагаєтеся, вам доведеться покладатися на попередній досвід читача з якимись основними англійськими словами.

Знаючи це, я дійсно не бачу сенсу в перекладі коду, оскільки ми дізнаємося в перші дні нашого кодування життя, що він повинен бути написаний універсальною мовою. Тим не менш, якщо навколишній текст (наприклад, коментарі та сам текст у книзі) потребує перекладу, що можливо в цьому питанні і здійсненному? Чи можете ви надати мені якісь вказівки, що робити?


9
Що викладач очікує, що ви навчитесь цьому? Так, ви можете трохи дізнатися про Haskell, але це здається, що це здебільшого перевірка ваших англійських перекладацьких навичок. Чи він просто хоче переклад для майбутніх занять, і він думає, що витрачати час всіх учнів цього класу - це спосіб його виконати? Моя справа: все, що ви дізнаєтесь, - це те, чому переклад - це спеціалізована галузь, найкраще виконана експертами.
Дорі

Питання, пов’язані з цим: programmers.stackexchange.com/questions/1483/…
David_001

@Dori Я повністю згоден. На жаль, так працює мій університет, принаймні в галузі КС.
rapfaria

Ви мусите сказати йому щось подібне: "" "Професоре, você está realmente louco. Eu preferiria dormir com sua mãe do que fazer isso. Aprenda Inglês ou perecer." ""
Job

Відповіді:


13

На мою думку, ні. Більшість програмістів змушені хочуть цього чи ні, вивчати англійську мову, і в наш час це lingua franca світу програмного забезпечення.

Однак, на моєму досвіді, книги, написані авторами однією з сильніших мов, мають тенденцію до цього - до цих пір я бачив практику книг німецькою, французькою та російською мовами (ну, російська мова трохи відрізняється від випадку, оскільки вони також використовують інший алфавіт). Це емпіричне правило , що це залежить від країни залежно від англійського.

Текст, звичайно, перекладений, більший коментар також (той, який детальніше описує роботу програми), потім дещо рідкісніші, менші коментарі та назви змінних. Я також бачив випадок, коли імена змінних були перекладені, але менше коментарів залишилось англійською мовою. Я вважаю, що автор у цьому конкретному випадку розраховував на те, що його аудиторія матиме знання англійської мови.

Вибачте, якщо це не вирішило вашу дилему, але щодо цієї проблеми досі немає єдиної думки: - /


11

Я бразильський [ми говоримо португальською тут, ofc], і коли я можу вибрати між оригіналом або перекладеною версією, я завжди беру оригінал, оскільки майже кожна книга перекладається людям, які не є програмістами, тому команди та вирази втрачають їх первісне значення після перекладу.

Ще одна причина бажати книг англійською мовою - це те, що все в Інтернеті [або найкращі речі, як, наприклад, цей веб-сайт] написано англійською мовою, тому ви ознайомитесь з англійським терміном, і зможете краще зрозуміти код інших людей ... [оскільки хороший програміст кодує англійською мовою, принаймні з моєї POV]

Якщо вам потрібно читати книги португальською мовою [чи іншою мовою], віддайте перевагу тим, які написані на цій мові [не перекладено].

Щоб було зрозуміло: якщо ви збираєтесь перекладати цю книгу, спробуйте зберегти весь код англійською мовою [коментарі можуть бути перекладені, але не вар або функцій] і не намагайтеся перекладати такі речі, як 'масив', на 'arranjo' або 'миша' до 'рато' [принаймні, я вважаю за краще англійський термін, люди в Португалії віддають перевагу другому, я думаю].


3
+1 за те, що потрібен експерт у всіх трьох (мова оригіналу, мова мови, програмування)
Frank Shearar

2

Як мовець, який не є носієм англійської мови, мені не подобається перекладений код.

  1. Вибудовує добру практику. Як професіонал, не тільки англійська мова є основною мовою в галузі, але люди з різним походженням діляться і працюють над одним кодом. Написання коду на іншій мові значно зменшує кількість людей, які можуть працювати з вашим кодом - я повеселився з деяким кодом, написаним іншою мовою, і це жахливо. Отже, чому б не заохочувати добрі звички?

  2. Це виглядає некрасиво. Більшість мов програмування використовують ключові слова англійською мовою, і, маючи хороший вибір для ідентифікаторів, читання програми може бути досвідом, близьким до природної мови. Якщо ви не використовуєте іншу мову для ідентифікаторів, що робить її подібною до читання двома мовами одночасно.

  3. Я не вірю, що це дуже допомагає. Навіть для осіб, які не говорять англійською, англійська мова, яка використовується для ідентифікаторів у звичайній програмі, є досить простою і її можна вивчити дуже швидко.


2

Хороший момент проти перекладу прикладів коду - це те, що, якщо це зробити, вам доведеться їх перевірити , оскільки, як очікується, перекладені приклади коду будуть правильними так само, як оригінали.

Чи включено тестування на вартість перекладу? Гадаю, ні, в більшості випадків.

Якщо ви не перевірите перекладений код, ви ризикуєте розірвати код або помилитися, пошкодивши репутацію як перекладеного матеріалу, так і оригінального.

Якщо ви не хочете домагатися тестування прикладів коду, вам слід лише перекладати коментарі, але ні в якому разі не змінювати код.

Інша річ, яку слід врахувати, - це той факт, що оригінальний автор, швидше за все, мав кодову базу, можливо, повне додаток або бібліотеку, яка складається в цілому. Приклади коду витягуються з такої бази коду і поширюються по всій книзі. У вас цього не буде, тож ви могли, переклавши приклади коду, закінчити приклади коду, які в перекладеній книзі суперечать один одному через різні рішення перекладу в різних частинах книги, тоді як в оригінальній книзі вони не тому, що вони були вилучені з тієї ж бази коду.


0

Я не розмовляю жодною іншою мовою, крім англійської. (Ну, я латинь у середній школі. Корисно, якщо я коли-небудь відвідую Латинську Америку. :-) З цього приводу я б сказав:

Як зазначають інші, багато інформації про програмування, в Інтернеті та книгах, є англійською мовою, тому, безумовно, допоможе, якщо ви вивчите англійську мову.

Деякі комп'ютерні мови використовують багато англійських слів, наприклад, Visual Basic, наприклад. Інші використовують в основному символи, наприклад C / C ++ / C #. Тож якщо ви збираєтесь програмувати, вам доведеться вивчити ДЕЯКУ англійську мову. Але я не думаю, що це багато. ЯКЩО, УВАГА, ПОВЕРНЕННЯ тощо. Залежно від мови, може бути від 10 до 20 слів на кілька десятків. Visual Basic - це найсміливіша мова, про яку я можу придумати, і я просто перевірив список, і він, швидким підрахунком, містить близько 160 зарезервованих слів, але там багато дублювання. Як END і WHILE, а потім END WHILE вказані як три окремих слова. Я можу бачити, що це незручно для мовця, який не говорить англійською, але ці слова часто вживаються зі значеннями, лише слабко пов'язаними зі своїми загальними значеннями англійської мови, тому я думаю, що у багатьох випадках це ' s не так важче для не-англійського, хто виступає. Мовляв, значення HANDLER або CAST, мабуть, не очевидніше новому програмісту, який розмовляє англійською, ніж новому програмісту, який розмовляє португальською. Якби замість того, щоб деякі з цих речей називались безглуздими англійською мовою, наприклад, якби замість того, щоб сказати CAST, ми сказали FOOBAR, чи це би ускладнило мені вивчення програмування? Я сумніваюся, це мало б значення. чи могло б це ускладнити мені вчитися програмуванню? Я сумніваюся, це мало б значення. чи могло б це ускладнити мені вчитися програмуванню? Я сумніваюся, це мало б значення.

Ви згадуєте, що в деяких мовах так чи інакше є варіанти визначати альтернативні слова для ключових слів. Так що так, ви можете визначити слова з власної мови як синоніми англійських ключових слів. Я б не став. Тепер у ваших програмах є купа нестандартних термінів, які ви склали. Хтось інший, хто пробує те саме, навряд чи вживатиме абсолютно той самий набір слів, який ви робите. Отож, читаючи чужу програму, ви повинні зрозуміти, що він мав на увазі під своїми «перекладами». Я думаю, якби всі в компанії використовували один і той же набір, ви дізналися б їх і могли легко працювати над програмами один одного. Але що відбувається, коли ви переходите до іншої компанії або завантажуєте програмне забезпечення з Інтернету? Мені здається, ти просто встановлюєш пастку для себе. Краще просто вивчити стандартні слова.

Якщо ви пишете програму португальською мовою, і єдині люди, які, ймовірно, читають її, - це інші бразильці, і всі, імовірно, ви говорите португальською, але, можливо, не особливо добре володієте англійською мовою, просто має сенс робити змінні імена португальською. Я не бачу, що можна отримати, намагаючись зробити імена змінних на мові, до якої ти не особливо хороший.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.