Нужно ли переводить исходный код в учебники и тому подобное?

16

Несколько недель назад моему классу было поручено перевести на португальский язык книгу «Real World Haskell». Когда я делал перевод текста и комментариев, я начал задаваться вопросом, должен ли я также переводить код, как предложил преподаватель. Например:

data BookInfo = Book Int String [String]
              производное шоу

станет

data InfoLivro = Livro Int String [String]
               производное шоу

Поскольку я не читал никаких книг по программному обеспечению на португальском языке, я не знаю, является ли это обычной практикой, и не следует ли делать это таким образом. В конце концов, код представляет собой смесь языков (возможно, пример на Haskell не очень удачный, поскольку вы можете быстро создавать синонимы, например:type CadeiaDeCaracteres = String , но вы понимаете, в чем дело). Поэтому не имеет значения, как сильно вы стараетесь, вам придется полагаться на предыдущий опыт читателя с какими-то простыми английскими словами.

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

rapfaria
источник
9
Что инструктор ожидает от вас этому? Да, вы можете немного узнать о Haskell, но похоже, что это в основном проверка ваших навыков перевода на английский. Хочет ли он просто перевод для будущих классов, и он думает, что тратить время всех учеников в этом классе - это способ сделать это? Моя ставка: все, что вы узнаете, это то, почему перевод является специализированной областью, лучше всего выполняемой экспертами.
Дори
Связанный вопрос: programmers.stackexchange.com/questions/1483/…
David_001
@ Дори, я полностью согласен. К сожалению, так работает мой университет, по крайней мере, в сфере КС.
Rapfaria
Вы должны сказать ему что - то вроде этого: "" "Профессор, você está realmente louco Eu preferiria Dormir ком зиа Mãe сделать дие Fazer ISSO Aprenda Inglês НУ perecer..." ""
Работа

Ответы:

13

На мой взгляд, нет. Большинство программистов вынуждены, хотят они этого или нет, изучать английский язык, и в настоящее время это является языком общения в мире программного обеспечения.

Однако, по моему опыту, книги, написанные авторами на одном из более сильных языков, имеют тенденцию делать это - до сих пор я видел практику в книгах на немецком, французском и русском языках (ну, русский немного отличается от случай, так как они используют другой алфавит). Это практическое правило, которое зависит от зависимости страны от английского.

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

Извините, если это не решило вашу дилемму, но до сих пор нет единого мнения по этому вопросу: - /

ладья
источник
11

Я бразилец (мы здесь говорим на португальском, оф) и, когда я могу выбирать между оригинальной или переведенной версией, я всегда беру оригинал, поскольку почти каждая книга переводится людям, которые не являются программистами, поэтому команды и выражения теряют их первоначальное значение после перевода.

Еще одна причина, по которой вам нужны книги на английском языке, заключается в том, что все в Интернете [или лучшие вещи, такие как этот сайт] написаны на английском языке, поэтому вы ознакомитесь с английским термином и сможете лучше понимать код других людей ... [поскольку хороший программист будет писать код на английском языке, по крайней мере, из моего POV]

Если вам нужно читать книги на португальском [или другом языке], предпочтите те, которые написаны на этом языке [не переведены].

Чтобы было понятно: если вы собираетесь переводить эту книгу, постарайтесь сохранить весь код на английском [комментарии могут быть переведены, но не в виде переменных или функций] и не пытайтесь переводить такие вещи, как «массив», в «аранжировку» или «мышь» - «рато» [по крайней мере, я предпочел бы английский термин, люди в Португалии предпочли бы второй, я думаю].

JulioC
источник
3
+1 за потребность в эксперте во всех трех (исходный язык, целевой язык, программирование)
Фрэнк Шиарар
2

Как не носитель английского языка, я не люблю переведенный код.

  1. Создает хорошую практику. Как профессионал, не только английский является основным языком в этой области, но люди с разным опытом имеют общий код и работают над одним и тем же кодом. Написание вашего кода на другом языке значительно сокращает количество людей, которые могут работать с вашим кодом - я немного повеселился с кодом, написанным на другом языке, и это ужасно. Итак, почему бы не поощрять хорошие привычки?

  2. Это выглядит некрасиво. Большинство языков программирования используют ключевые слова на английском языке, и при хорошем выборе идентификаторов чтение программы может быть опытом, близким к естественному языку. Если вы не используете другой язык для идентификаторов, что делает его похожим на чтение на 2 языках одновременно.

  3. Я не верю, что это очень помогает. Даже для не говорящего по-английски человека, английский, используемый для идентификаторов в обычной программе, довольно прост и может быть выучен очень быстро.

Paul92
источник
2

Хорошим аргументом против перевода примеров кода является то, что, если вы это сделаете, вам придется их проверять , поскольку ожидается, что переведенные примеры кода будут правильными, как и исходные.

Включено ли тестирование в стоимость перевода? Я думаю, нет, в большинстве случаев.

Если вы не протестируете переведенный код, вы рискуете сломать его или быть неверным, нанося ущерб репутации как переведенного материала, так и исходного.

Если вы не хотите заниматься тестированием примеров кода, вам следует только переводить комментарии, но никак не изменять код.

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

Тулаинс Кордова
источник
0

Я не говорю ни на каком другом языке, кроме английского. (Ну, я учусь на латыни в старшей школе. Полезно, если я когда-нибудь приеду в Латинскую Америку. :-) На этом фоне я бы сказал:

Как уже отмечали другие, много информации о программировании, в Интернете и в книгах, на английском языке, так что это, безусловно, поможет, если вы изучаете английский язык.

Некоторые компьютерные языки используют много английских слов, например, Visual Basic. Другие используют в основном символы, такие как C / C ++ / C #. Поэтому, если вы собираетесь программировать, вам придется выучить НЕКОТОРЫЙ английский. Но я не думаю, что это много. IF, WHILE, RETURN и т. Д. В зависимости от языка может быть от 10 или 20 слов до нескольких десятков. Visual Basic - самый многословный язык, о котором я только могу подумать, и я только что проверил список, в котором, по быстрому счету, около 160 зарезервированных слов, но там много дублирования. Как END и WHILE, а затем END WHILE, перечисленные в виде трех отдельных «слов». Я вижу, что это неудобно для не говорящего по-английски, но эти слова часто используются со значениями, только слабо связанными с их общими английскими значениями, поэтому я думаю, что во многих случаях это ' не намного сложнее для не говорящего по-английски, чем для говорящего по-английски. Например, значение HANDLER или CAST, вероятно, не более очевидно для нового программиста, говорящего по-английски, чем для нового программиста, говорящего по-португальски. Если бы вместо этого некоторые из этих вещей были названы словами, которые не имеют смысла в английском языке, например, если бы вместо того, чтобы сказать CAST, мы сказали FOOBAR, от этого мне стало бы труднее изучать программирование? Я сомневаюсь, что это имело бы большое значение. не мешало ли бы мне научиться программированию? Я сомневаюсь, что это имело бы большое значение. не мешало ли бы мне научиться программированию? Я сомневаюсь, что это имело бы большое значение.

Вы упоминаете, что в некоторых языках есть варианты определения альтернативных слов для ключевых слов тем или иным способом. Так что да, вы можете определить слова из вашего собственного языка как синонимы для английских ключевых слов. Я бы не стал. Теперь у ваших программ есть куча нестандартных терминов, которые вы составили. Кто-то, кто пробует то же самое, вряд ли будет использовать тот же набор слов, что и вы. Итак, теперь, читая чужую программу, вы должны выяснить, что он имел в виду под своими «переводами». Я полагаю, если бы все в компании использовали один и тот же набор, вы бы выучили их и могли бы легко работать над программами друг друга. Но что происходит, когда вы переходите в другую компанию или загружаете программное обеспечение из Интернета? Мне кажется, что вы просто ставите ловушку для себя. Лучше просто выучить стандартные слова.

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

сойка
источник