Comments 137
Для псевдокода выделение ключевых слов не имеет смысла — в нем нет никаких ключевых слов, потому что не существует языка, который способен их интерпретировать. Не понимаю, почему все так ратуют за выделение ключевых слов, в некоторых языках (привет, Форт) их вообще не существует.
+4
Что же касается того, на каком языке писать сам псевдокод, то здесь момент такой. В настоящее время любой специалист по IT, не владеющий английским языком, является ущербным и подлежит самоустранению из профессии. Так что вопрос языка — это вопрос вкусовщины. Английский в среднем короче, в нем отсутствуют падежи, так что если вам хочется, чтобы программы читались как синтаксически верные предложения — пользуйтесь английским.
Но тогда на английском нужно писать абсолютно все. Либо, если вы используете русский — то все на русском.
Но тогда на английском нужно писать абсолютно все. Либо, если вы используете русский — то все на русском.
+21
Вы это армии 1С-ников расскажите, про самоустранение из профессии =)
+5
Я не думаю, что это их сильно расстроит — большинство и так прекрасно представляет свою нишу.
+2
Простите, но я не вижу существенной разницы между 1Сниками и какими-нибудь занятыми в сфере бизнес-процессов шарпистами или джавистами. Ну разве что у первых производительность труда раз так в надцать повыше благодаря отсутствию оопухолей мозга.
И задачи у них, как правило, интереснее и масштабнее, чем клепать стопицотый сайт-визитку или унылое приложение для телефона.
И задачи у них, как правило, интереснее и масштабнее, чем клепать стопицотый сайт-визитку или унылое приложение для телефона.
-8
1С-ники — совершенно отдельный класс, девелоперами в нормальном понимании они, как правило, не являются. IMHO. Кстати, GOTO (или, как там по-русски, ИДИНА?) в 1C есть? Если нет — надо добавить, думаю оно обретёт там бешенную популярность.
+1
ИДИНА для 1С не требуется, достаточно функций процедур и различных обработок. На русском пишут не из любви к извращениям, а потому что это оказывается удобно и вовсе не так ужасно, как представляют себе «тру-девелоперы»
+5
Есть, по крайней мере в 7.7:
~НужнаяМетка
// куча непонятного кода, у которого невозможно отыскать логические начало и конец
Перейти ~НужнаяМетка
Популярностью кстати не пользуется — ибо нагадить в коде есть другие 100500 способов.
~НужнаяМетка
// куча непонятного кода, у которого невозможно отыскать логические начало и конец
Перейти ~НужнаяМетка
Популярностью кстати не пользуется — ибо нагадить в коде есть другие 100500 способов.
+6
[sarcasm]Ага, а все PHP-шники бэдлокодеры[/sarcasm]. Разработчиков, которым надо руки оборвать, хватает во многих языках программирования. Но, признаюсь, в вашем высказывании есть доля истины. Сам являюсь разработчиком 1С уже более 7 лет, но последние два года в качестве хобби пишу Java-приложения для Android. И, узучая Java, был удивлен что среди разработчиков 1С не изучают такие вещи как оформление кода, алгоритмы, рефакторинг, повторное использование. Теперь мой код и подход к разработке совсем изменились. Но, в то же время, стало тесновато, так как жутко не хватает нормальных инструментов для разработки. Даже больше, инструментов для разработки совсем нет, а то что есть не намного лучше текстового редактора с подсветкой синтаксиса и браузера файлов. Совместно же работать над одним проектом вообще невозможно.
Уверен, если бы при изучении кроме языка 1С давали бы ещё знания о написании кода, повторном использовании кода, алгоритмы, то многие из 1С-ников дали бы вам фору. Но пока действительно, хорошего разработчика среди 1С-ников найти сложно.
Уверен, если бы при изучении кроме языка 1С давали бы ещё знания о написании кода, повторном использовании кода, алгоритмы, то многие из 1С-ников дали бы вам фору. Но пока действительно, хорошего разработчика среди 1С-ников найти сложно.
+2
Ага, а все PHP-шники...
Я разве сказал «все»? Я сказал «как правило», то есть большинство. Разумеется достаточно и исключений, но их поди найди (а им поди найти работодателя, который их поймёт и оценит по достоинству).
был удивлен что среди разработчиков 1С не изучают такие вещи как оформление кода, алгоритмы, рефакторинг, повторное использование.
Вот-вот…
+1
Вы так говорите, как будто GOTO это что-то плохое
+2
Согласен, что либо всё на английском, либо всё на русском: об мешанину языков глаз жутко ломается.
+19
Да и я согласен. Но вот 70% голосуют за английский…
0
А еще на хабре технически грамотные, но сложные статьи получают гораздо меньше внимания(сиречь плюсов) чем новости и статья для «школьников». Как Вы думаете, стоит ли после этого слушать «большинство» хабра?
+1
Думаю, что нет смысла так обобщать. =) В очередной раз есть куча противоположных мнений. Заранее ясно, что как бы я ни перевёл, найдутся люди, которым перевод очень не понравится. И всё-таки максимизировать хочется как раз кол-во людей, которым книжку будет читать удобно. Ну, и, наверное, здесь не весь хабр высказывается, а подписанные на блог «Алгоритмы», в основном?..
0
Во-первых, не ясно, насколько аудитория хабра пересекается с той, для которой создается эта книжка. Типичный хабражитель уже владеет языками программирования и привык видеть код на английском, а типичный школьник или студент-первокурсник — нет.
Во-вторых, люди мыслят штампами: «я учил программирование по книгам на английском языке, поэтому нужно писать на английском», «код на русском используется в 1С, 1С — это плохо, значит, код на русском — это плохо». Именно такими суждениями, мне кажется, руководствуются те, кто просто отвечает на опрос и перескакивает к следующему топику. Если вы почитаете комментарии, то окажется, что в них доля отписавшихся против перевода составляет уже не 90%. И при этом логично предположить, что те, кто писал комменты, потратили больше времени на обдумывание статьи, чем те, кто просто поставил галочку в опроснике.
Во-вторых, люди мыслят штампами: «я учил программирование по книгам на английском языке, поэтому нужно писать на английском», «код на русском используется в 1С, 1С — это плохо, значит, код на русском — это плохо». Именно такими суждениями, мне кажется, руководствуются те, кто просто отвечает на опрос и перескакивает к следующему топику. Если вы почитаете комментарии, то окажется, что в них доля отписавшихся против перевода составляет уже не 90%. И при этом логично предположить, что те, кто писал комменты, потратили больше времени на обдумывание статьи, чем те, кто просто поставил галочку в опроснике.
+2
Вероятно, дело в том, что большинство на Хабре (как и на рынке труда в целом) считают мастерством программиста — владение синтаксисом ЯП и стандартными библиотеками.
Они искренне считают, что задача учебника программирования — приучать студента к синтаксису ЯП.
Я это к тому, что выражающими предпочтения потенциальных читателей вашей книги — они не являются.
Они искренне считают, что задача учебника программирования — приучать студента к синтаксису ЯП.
Я это к тому, что выражающими предпочтения потенциальных читателей вашей книги — они не являются.
0
Да и я согласен. Но вот 70% голосуют за английский…
Это выглядит как противоречие только по тому, что Вы подразумеваете, что неключевые слова всё-равно будут на русском. Я проголосовал за английский, имея ввиду, что предпочёл бы, чтобы на английском был весь код.
0
Но как школьники, например, будут читать английский псевдокод? Если вы готовы читать псевдокод на английском, то, наверное, и сам учебник осилите в оригинале.
+1
Когда я был школьником я легко, осиливал псевдокод и нормальный код и вообще весь софт на английском, но читать и усваивать полноценный текст на английском мне тогда удавалось заметно медленнее русского и, как правило, со словарём. Лексикон и грамматические конструкции в псевдокоде, обычно, на порядки проще, чем в повествовании.
0
А по большому счёту не принципиально, по-моему показанный код в любом варианте (по части языков) читается вполне нормально.
0
Я, например, голосовал за перевод хотя хорошо владею английским. Дело в том что я математик по образованию и привык алгоритмам мат. методов вида:
1) Устанавливаем G(us)=0, и выбираем вершину us как текущую (uc=us);
2) для u(uc) и ul определяем:
G(u)=Len((u,uc))+G(uc)
и добавляем u к закрытому списку L;
3) включаем uc в закрытый список lc, удаляем uc из открытого списка Lc;
4) если L — пустое множество, работа алгоритма закончена, если нет – выбираем новую вершину uc такую, что G(uc)=minuLG(u) и переходим к пункту 2).
П.С. извините, формулы немного поламались но суть не в них…
1) Устанавливаем G(us)=0, и выбираем вершину us как текущую (uc=us);
2) для u(uc) и ul определяем:
G(u)=Len((u,uc))+G(uc)
и добавляем u к закрытому списку L;
3) включаем uc в закрытый список lc, удаляем uc из открытого списка Lc;
4) если L — пустое множество, работа алгоритма закончена, если нет – выбираем новую вершину uc такую, что G(uc)=minuLG(u) и переходим к пункту 2).
П.С. извините, формулы немного поламались но суть не в них…
+14
Поддерживаю. Математическая запись — хорошая и отработанная форма записи как доказательств, так и алгоритмов. Не нужно относиться к псевдокоду как к языку программирования. Это объяснения, предназначенные исключительно для людей.
И добавлю: никаких ключевых слов в псевдокоде нет! Это просто обороты речи, не более.
И добавлю: никаких ключевых слов в псевдокоде нет! Это просто обороты речи, не более.
+3
Кстати, «для всех» (for all) записывается одним символом ∀ (U+2200). Непонятно почему в оригинале используется «for all», если дальше используется математический знак принадлежности ∊ (U+220A).
+1
Знак принадлежности мы в 7-8 классе школы проходили, когда про множества нам немного рассказывали на уроках математики. Квантор всеобщности — это уже универ, из области формальной логики штука (у нас было вроде на первом курсе матанализа). Мне кажется, теорию множеств значительно больше людей знает, чем формальную логику. + Если человек знает, что такое «принадлежать множеству», то он с большой вероятностью знает символ принадлежности — в случае с утверждением «для всех» и квантором всеобщности это не так.
0
Возможно, потому, что for all — это цикл с определённым порядком перебора, а квантор предполагает мгновенное независимое вычисление? Кроме того, квантор ∀- это просто логическая операция «и», примененная к элементам множества. А цикл — последовательность действий. Совершенно разная семантика.
В исходном коде, например, «for all», идущий после Output: — это квантор. А остальные два — нет.
В исходном коде, например, «for all», идущий после Output: — это квантор. А остальные два — нет.
+2
Если это книжка для студентов, которые только входят в профессию, то они вполне могут еще не знать английский. Часто сначала изучается программирование, а потом уже — по необходимости — подтягивается английский.
-2
Если студент плохо знает английский, то самое время исправлять это одновременно с получением образования по программистской специальности, а не потом.
+5
Не у всех найдется время. Кто-то, например, учится на вечернем, а днем работает. К тому же это большая нагрузка — вникая в предмет, изучать побочную информацию. Но все же в идеале лучше, конечно, оригинал.
-4
Это странно учить языки программирования и не знать что такое print, echo, и т.д. Айтишник без базовых знаний английского? Как это?
+4
Конечно, самое время, однако незнание языка не должно тормозить изучения программирования.
Не забывайте, что студент может совершенно не знать английского, например, потому что изучал другой иностранный язык в школе. Слова же
Не забывайте, что студент может совершенно не знать английского, например, потому что изучал другой иностранный язык в школе. Слова же
directed, edge, vertex(из описания) — не самый базовый уровень.
0
И вы полагаете, что обучение студента английскому — это задача книжки по алгоритмам?
А книжки по матану, наверное, следует тогда писать на русско-французском?
А книжки по матану, наверное, следует тогда писать на русско-французском?
+3
Если студент свободно читает по-английски, тогда зачем ему перевод книги? В подлиннике без затруднений прочтёт.
А если студент читает по-английски не свободно, тогда фрагменты псевдокода на чистом английском будут только затруднять понимание материала, а не облегчать.
А если студент читает по-английски не свободно, тогда фрагменты псевдокода на чистом английском будут только затруднять понимание материала, а не облегчать.
0
Разумно, да.
0
Если студент свободно читает по-английски, тогда зачем ему перевод книги? В подлиннике без затруднений прочтёт.
В общем мало кто владеет языком на столько, что ему действительно нет разницы, большинству людей всё же комфортнее воспринимать повествование на родном языке. Тем не менее бывают и тяжёлые случаи неудачного перевода, когда и такому человеку легче читать оригинал. Например пытался я, когда ещё русский был для меня несколько роднее английского, читать книгу «Thinking in Java» и поймал себя на том, что регулярно натыкаюсь в русской версии на непонятные места, заглядываю в английский оригинал и всё понимаю — в результате плюнул на перевод и читал дальше по-английски.
0
Вам комфортнее воспринимать повествование на русском, но при этом псевдокод комфортнее воспринимать на английском?
А код на C# вам, наверное, воспринимать ещё комфортнее, чем псевдокод?
А код на C# вам, наверное, воспринимать ещё комфортнее, чем псевдокод?
0
Вам комфортнее воспринимать повествование на русском, но при этом псевдокод комфортнее воспринимать на английском?
Да. Хотя касательно первой части сейчас уже одинаково, иногда даже наоборот.
А код на C# вам, наверное, воспринимать ещё комфортнее, чем псевдокод?
Смотря какой псевдокод. Тот, что здесь в статье приведён мне нравится. Если псевдокод в стиле первобытного бэйсика с метками — то само-собой C# лучше.
0
Не только для студентов. Хочется, чтобы и школьники могли читать.
0
Да. Смесь русского и английского как-то напрягает. Но если написать всё на русском, то мозг будет тормозить на интерпретации ключевых слов. Так что лучше всё на английском.
+7
UFO just landed and posted this here
Поскольку речь о ПЕРЕВОДЕ книги, странно было бы писать всё на английском. Это получится перевод с английского на pigeon английский :)
+1
Те, кто владеют английским, вполне могут оригинал почитать. А перевод хочется сделать доступным, в частности, для школьников.
+2
А какая разница Вам как человеку, читающему код, существует ли интерпретатор того, что Вы читаете? По-моему, на читабельность это никак не влияет.
А вот выделение конструкций (функции, циклы, условия), которые Вы ожидаете встретить, поможет ориентироваться в коде.
А вот выделение конструкций (функции, циклы, условия), которые Вы ожидаете встретить, поможет ориентироваться в коде.
+6
Вам — с маленькой буквы, пожалуйста. Не глумитесь над русским языком, он и так страдает.
В коде поможет ориентироваться понимание проистекающих процессов, а не выделение ключевых слов. Мне ваша позиция кажется крайне сомнительной.
В коде поможет ориентироваться понимание проистекающих процессов, а не выделение ключевых слов. Мне ваша позиция кажется крайне сомнительной.
-6
Вас слишком мало, чтобы обращаться на вы :-)
Википедия:
Понимание у Вас в голове, а код на бумаге. Именно выделение ключевых слов поможет зрительно быстро находить блоки, соответствующие пониманию.
Википедия:
В письменной речи местоимение «Вы», адресованное конкретному собеседнику, пишется с заглавной буквы
Понимание у Вас в голове, а код на бумаге. Именно выделение ключевых слов поможет зрительно быстро находить блоки, соответствующие пониманию.
0
Пожалуйста, запомните (а лучше запишите), что Википедия — не авторитетный источник, в ней тоже бывают ошибки.
«Вы» с большой буквы пишется только в одном случае — в личной переписке с высокоуважаемым вами собеседником. Ни в публичной переписке, ни при обращении с незнакомцем или малознакомым человеком, ни при обращении к неограниченному кругу лиц, «вы» с большой буквы не пишется никогда.
Выделение ключевых слов нисколько не поможет в понимании сути приведенного кода, просто потому, что эти ключевые слова — лишь самая незначительная его деталь.
Читабельность кода без выделения ключевых слов и с выделением таковых одинакова. Правда, в случае с выделением все может быть куда хуже, так как глаз будет цепляться именно за управляющие конструкции, уводя человека от понимания сути кода.
Внизу был предложен компромиссный вариант — делать выделение курсивом.
«Вы» с большой буквы пишется только в одном случае — в личной переписке с высокоуважаемым вами собеседником. Ни в публичной переписке, ни при обращении с незнакомцем или малознакомым человеком, ни при обращении к неограниченному кругу лиц, «вы» с большой буквы не пишется никогда.
Выделение ключевых слов нисколько не поможет в понимании сути приведенного кода, просто потому, что эти ключевые слова — лишь самая незначительная его деталь.
Читабельность кода без выделения ключевых слов и с выделением таковых одинакова. Правда, в случае с выделением все может быть куда хуже, так как глаз будет цепляться именно за управляющие конструкции, уводя человека от понимания сути кода.
Внизу был предложен компромиссный вариант — делать выделение курсивом.
-4
Позвольте с Вами не согласиться. А ещё я бы Вам рекомендовал посетить уроки русского языка в начальной (или средней) школе, там этот вопрос разъясняют достаточно подробно. Думается, и Вам расскажут, если Вы попросите.
-3
Не позволяю, простите.
Не могу видеть этого надругательства над языком, вынужден вырвать себе глаза. Это на вашей совести.
Не могу видеть этого надругательства над языком, вынужден вырвать себе глаза. Это на вашей совести.
-7
Это не надругательство. Надругательство — игнорировать вполне нормальные нормы языка. Кстати, Вы вот не видели, как в некоторых других славянских языках принято «ты» писать с большой буквы, если человек давно и хорошо знаком. Просто из уважения к нему.
-2
Мы говорим на русском, меня мало волнуют нормы, которые существуют в других языках.
«Вы» с большой буквы воспринимаю как личное оскорбление, простите.
«Вы» с большой буквы воспринимаю как личное оскорбление, простите.
-4
Я просто привёл пример. Тем не менее, как бы Вам это глаза не резало, написание «Вы» с большой буквы при обращении к одному собеседнику — норма русского языка.
0
Перестаньте, пожалуйста, цитировать википедию и обратитесь к нормальным источникам.
Спасибо.
Спасибо.
0
Я не цитировал Википедию, Вы меня с кем-то путаете.
-3
Тогда к вам адресована вторая часть воззвания.
+2
Нормальный источник (Грамота.ру) процитирована ниже. Там явно указано на необходимость употребления «Вы» при обращении к одному лицу. Для Вас это всё ещё недостаточно авторитетно?
0
Позволяю вам сгинуть в пучине собственной безграмотности, раз вы не способны прочитать более одного абзаца.
+1
Не передергивайте!
0
А разве вы написали вашему оппененту персональное личное письмо? Покажите пальцем — не вижу. Где обращение по имени-отчеству? Вводные слова? Проявление уважения? Нет? Вижу только неграмотную надпись на заборе.
Так что если бы я вам послал письмо в бумажном конвертике или, как минимум, по электронной почте, что-то такое:
Милостивый государь, Andrew Sh!
Позвольте выразить Вам своё почтение и засвидетельствовать неуважение по поводу некорректного использования Вами моего родного языка.
То это было бы правильно. «А так — нэт»
Так что если бы я вам послал письмо в бумажном конвертике или, как минимум, по электронной почте, что-то такое:
Милостивый государь, Andrew Sh!
Позвольте выразить Вам своё почтение и засвидетельствовать неуважение по поводу некорректного использования Вами моего родного языка.
То это было бы правильно. «А так — нэт»
-2
Товарисч bobermaniac прав, а вы — не переходите на личности. Давайте пойдем к Грамоте.ру и почитаем тут. Таким образом (не читая «заметки на полях»), мы можем сделать далеко идущие выводы, что указывая «Вы» не в личной переписке или ином «Вы-дозволенном» жанре, собеседник как бы провоцирует и фамильярничает.
-2
Цитата:
Одно лицо? Одно. Вы с большой буквы, иного не дано. Ну и на личности я не переходил.
Местоимения Вы и Ваш пишутся с прописной (большой) буквы при обращении к одному лицу; при обращении к нескольким лицам следует писать вы и ваш со строчной буквы.
Одно лицо? Одно. Вы с большой буквы, иного не дано. Ну и на личности я не переходил.
0
Ну зачем вы выдергиваете из контекста? Там же ясно сказано в выводах, когда именно рекомендуется использовать «Вы». Цитирую:
Как вы считаете, какой жанр у нас тут, на Хабре? Личная переписка или официальный документ?
А переходом на личности я посчитал фразу с предложением пойти в школу, поучиться. Это же оскорбление чистой воды.
<...>при обращении к одному лицу в текстах следующих жанров:
а) личное письмо (адресат – конкретное лицо; при этом само по себе употребление местоимения Вы вместо ты является выражением вежливости по отношению к адресату);
б) официальные документы, адресованные конкретному лицу;
в) анкеты (адресат – неконкретное лицо).
Как вы считаете, какой жанр у нас тут, на Хабре? Личная переписка или официальный документ?
А переходом на личности я посчитал фразу с предложением пойти в школу, поучиться. Это же оскорбление чистой воды.
0
Это примеры, а не выводы, они никак не противоречат тому, что я процитировал. Здесь не сказано, что «Вы» используется только в этих ситуациях; напротив, приведены примеры таких ситуаций.
+1
Извините, слова «таким образом» совершенно четко выделяют, что нижеследующая часть статьи является заключительной, в ней подводятся итоги, и делаются выводы. Черном по светло-синему написано, что айнц-цвай-драй, см. выше. Повторяться не буду.
0
Именно. Написано, что в этих ситуациях пишется «Вы». Не написано, что в других — не пишется.
0
Молодой человек, ну сколько можно, 10 раз обсуждали. www.nartov.ru/you-you.htm ознакомьтесь, особенно с последним абзацем, надеюсь что институт РАН вам авторитетнее, чем школьные учителя.
+2
Ну вот ознакомьтесь. Там речь идёт, если вчитаться, о ситуации «неопределённое количество лиц», в которой без сомнения используется «вы». При обращении же к одному лицу «Вы» — норма, что там и указано.
Непонятно только, почему элементарные правила русского языка вызывают в интернетах такой лютый баттхёрт вплоть до восприятия слова «Вы» как оскорбления.
Непонятно только, почему элементарные правила русского языка вызывают в интернетах такой лютый баттхёрт вплоть до восприятия слова «Вы» как оскорбления.
0
Это не оскорбление, это предложение обратиться к специалистам. В школе этому учат, так почему бы там и не поинтересоваться?
0
Товарищ linuxoid, что-то я в упор не вижу, чтобы в приведенных Вами статьях подтверждались Ваши слова. Эти статья как минимум можно трактовать в том ключе, что «Вы» в интернет переписке можно заменять на «вы». Там не написано, что использование «Вы» в подобном ключе некорректно. Нет там этого.
Если там рекомендовано 3 или 4 пункта, это не значит, что других пунктов нет. Это значит, что там рекомендовали 3 пункта. Вот и всё.
Ну и напоследок, как Вы считаете, что означаете следующая фраза, точнее к какому количеству людей она обращена? «вы всё делаете не правильно», а эта «Вы всё делаете неправильно»? Не кажется ли Вам, что вторая фраза менее двусмысленна?
Если там рекомендовано 3 или 4 пункта, это не значит, что других пунктов нет. Это значит, что там рекомендовали 3 пункта. Вот и всё.
Ну и напоследок, как Вы считаете, что означаете следующая фраза, точнее к какому количеству людей она обращена? «вы всё делаете не правильно», а эта «Вы всё делаете неправильно»? Не кажется ли Вам, что вторая фраза менее двусмысленна?
+2
Ну и не стоит, конечно, воспринимать слова наших академиков РАН всерьез, после подобных заявлений: сообщения электронной почты не являются личными письмами в традиционном смысле слова
Сообщения электронной почты являются личной перепиской. Более того, ни в Российской империи, ни в СССР не было никакой другой адресной переписки кроме личной. Именно поэтому я считаю вполне правомочным экстраполировать понятие личной переписки на любую адресную переписку, коей являются: мессенджеры, форумы(читай хабр) и прочие места где люди обращаются друг к другу непосредственно.
Сообщения электронной почты являются личной перепиской. Более того, ни в Российской империи, ни в СССР не было никакой другой адресной переписки кроме личной. Именно поэтому я считаю вполне правомочным экстраполировать понятие личной переписки на любую адресную переписку, коей являются: мессенджеры, форумы(читай хабр) и прочие места где люди обращаются друг к другу непосредственно.
+1
Ну и да, употребление «Вы» никак не может быть «фамильярничанием» (уверены, что есть такое слово?). «Ты» — да, именно этим и является. «Вы» с маленькой — или неуважение, или безграмотность.
0
Ну да.
0
На мой взгляд:
Ключевые слова следует выделять, т.к. они служат своего рода якорями при чтении текста. Т.е. можно быстро понять, что следующий блок — это тело цикла, и найти следующую инструкцию (в случае монотонного текста это существенно сложнее).
Ключевые слова должны быть на английском, т.к. их немного, и они приближают псевдокод к настоящему коду.
Блоки, считаю, должны выделяться только отступом. end'ы избыточны, да и отступы для выложенных блоков —хороший единственно верный способ их оформления.
Ключевые слова следует выделять, т.к. они служат своего рода якорями при чтении текста. Т.е. можно быстро понять, что следующий блок — это тело цикла, и найти следующую инструкцию (в случае монотонного текста это существенно сложнее).
Ключевые слова должны быть на английском, т.к. их немного, и они приближают псевдокод к настоящему коду.
Блоки, считаю, должны выделяться только отступом. end'ы избыточны, да и отступы для выложенных блоков —
+7
Код должен быть на одном языке. Если на английском, то и условия и управляющие конструкции должны быть агнлийскими. Если же условие в управляющей конструкции на русском, то и определения управляющих конструкций должны быть на русском. Иначе при чтении это абзац.
+3
> Ключевые слова должны быть на английском, т.к. их немного, и они приближают псевдокод к настоящему коду.
Псевдокоду незачем быть приближенным к настоящему коду. Его же не машина читает, а человек.
Пусть лучше будет приближен к осмысленному человеческому тексту.
Псевдокоду незачем быть приближенным к настоящему коду. Его же не машина читает, а человек.
Пусть лучше будет приближен к осмысленному человеческому тексту.
+5
Так а «for всех вершин» не режет? =)
+2
Только «for всех вершин» плохо выглядит. Нужно «for все вершины» и «for все рёбра».
+5
Господи, за что?!
Пожалуйста, не издевайтесь над кодом и над психикой читателей. Не думаю, что среди пользователей учебника найдутся люди, для которых одного разъяснения, что if = если, then = то, etc, будет недостаточно :)
п.с. попадись мне в ранней стадии обучения то, что изображено на предпоследнем рисунке, я начал бы убивать людей и грызть тапочки… (1С не в счет)
Пожалуйста, не издевайтесь над кодом и над психикой читателей. Не думаю, что среди пользователей учебника найдутся люди, для которых одного разъяснения, что if = если, then = то, etc, будет недостаточно :)
п.с. попадись мне в ранней стадии обучения то, что изображено на предпоследнем рисунке, я начал бы убивать людей и грызть тапочки… (1С не в счет)
+2
Думал псевдокод, а оказался python :)
Успехов в переводе, книги по алгоритмам всегда ценны!
Успехов в переводе, книги по алгоритмам всегда ценны!
+4
Я бы не стал выделять ключевые слова. Это же не код, а довольно связанный текст. Если выделить ключевые слова, то акцент смещается на них, что не нужно.
Вот, например:
Если и выделять, то курсивом, а не жирным:
А вот перевод я бы сделал. Но тогда и название используемых функций и переменных надо переводить, наверное. Или переводить только комментарии, а все остальное — на английском. Иначе получается мешанина русского и английского текста, что не хорошо.
Заканчивать ли блок отдельным словом — сложный вопрос. Если аккуратно работать с отступами и умещать весь код на одной странице, то можно использовать одни отсутпы.
Вообще оригнинал выглядит горяздо лучше, два языка, куча стрелочек и неаккуртаные отступы создают кучу шума.
Вот, например:
для всех вершинВыгладяит так, как будто для — самое важное.
Если и выделять, то курсивом, а не жирным:
для всех вершинНе так бросается в глаза.
А вот перевод я бы сделал. Но тогда и название используемых функций и переменных надо переводить, наверное. Или переводить только комментарии, а все остальное — на английском. Иначе получается мешанина русского и английского текста, что не хорошо.
Заканчивать ли блок отдельным словом — сложный вопрос. Если аккуратно работать с отступами и умещать весь код на одной странице, то можно использовать одни отсутпы.
Вообще оригнинал выглядит горяздо лучше, два языка, куча стрелочек и неаккуртаные отступы создают кучу шума.
+4
«for all» — это всё-таки одно ключевое слово, как мне кажется. То же самое, что foreach в различных ЯП.
«for всех» — это кошмар >_<
«for всех» — это кошмар >_<
+14
Вообще-то, вы пишете не свой учебник, а перевод. Поэтому самым правильным было бы сохранять стилистику и текст примеров автора. Максимум — переводить комментарии / пояснения. Не надо бы за автора переписывать.
+4
Ключевые слова не выделять или не выделять жирным — слишком отвлекают от сути, особенно неискушенных в чтении чужого кода новичков.
Ключевые слова на английском — гораздо понятнее при прочтении, если перед этим видел хоть какой-нибудь исходный код. Если не видел, то что русский, что английский, а значит сразу приучаем к правильному языку.
Возможно, для понимания стоит перевести ключевые слова алгоритма, который описывается: название переменных и операций (функций), но это влечет за собой мешанину русского и английского в коде — что ни есть хорошо. Возможно, заранее описать на русском логическое значение всех переменных и функций.
Вывод: сам алгоритм на английском, выделение ключевых слов языка не жирным (курсивом, скажем).
Да, комментарии в самом коде тоже лучше на английском, с отдельным русским переводом при разборе алгоритма по кусочком, и вот по чему: очень часто начинающие запоминают зрительно всю конструкцию исходного кода и стараются писать так же. То есть, если есть грамотные отступы и английские комментарии, — будут стараться писать так же. А иначе могут сразу начать писать «грязно», а потом тратить силы на переучивание.
PS: если что, junior, любимый и основной — python.
Ключевые слова на английском — гораздо понятнее при прочтении, если перед этим видел хоть какой-нибудь исходный код. Если не видел, то что русский, что английский, а значит сразу приучаем к правильному языку.
Возможно, для понимания стоит перевести ключевые слова алгоритма, который описывается: название переменных и операций (функций), но это влечет за собой мешанину русского и английского в коде — что ни есть хорошо. Возможно, заранее описать на русском логическое значение всех переменных и функций.
Вывод: сам алгоритм на английском, выделение ключевых слов языка не жирным (курсивом, скажем).
Да, комментарии в самом коде тоже лучше на английском, с отдельным русским переводом при разборе алгоритма по кусочком, и вот по чему: очень часто начинающие запоминают зрительно всю конструкцию исходного кода и стараются писать так же. То есть, если есть грамотные отступы и английские комментарии, — будут стараться писать так же. А иначе могут сразу начать писать «грязно», а потом тратить силы на переучивание.
PS: если что, junior, любимый и основной — python.
0
Либо переводите всё, либо переводите только комментарии. конструкция вида «for всех вершин» выглядит уё^Wочень страшно.
Ключевые слова возможно стоит выделать чтобы этим отделить операцию от условия.
Ключевые слова возможно стоит выделать чтобы этим отделить операцию от условия.
+8
Я считаю, надо переводить. Это не язык программирования, это описание алгоритма на человеческом языке, пусть и слегка формализованном и оформленном табуляциями.
0
А я бы оставил все как есть. Псевдокод важен для понимания излагаемого материала и если авторы сделали его таким, значит, они посчитали, что он выполняет свою задачу. Но это касается, в основном, форматирования и нотаций. Т.е. я был бы не против (если качество не пострадает) перевода обычных слов на русский. В книге Мориса Баха «Архитектура операционной системы Unix» псевдокод перевели и я считаю удачно получилось:
алгоритм bwrite /* запись блока */ входная информация: буфер выходная информация: отсутствует { приступить к записи на диск; если (ввод-вывод синхронный) { приостановиться (до завершения ввода-вывода); освободить буфер (алгоритм brelse); } в противном случае если (буфер помечен для отложенной записи) пометить буфер для последующего размещения в "голове" списка свободных буферов; }
+6
На мой взгляд:
- Ключевые слова выделять стоит, это действительно помогает как-то лучше ориентироваться в описанном алгоритме (его псевдо-коде).
- Нужно не только оставить ключевые слова на английском, но и вообще переводить на русский разве что комментарии и описания входа-входа алгоритма. Как уже писали, конструкции вида «for всех» выглядят не айс :) Не даром в Кормене так и сделано (на русский переведены только комментарии и описания входа-входа).
- Про окончания блоков — с одной стороны, с ними нагляднее видна структура кода, с другой — они занимают место, загромождают код, и без них код тоже выглядит нормально. Так что здесь на усмотрение :)
+1
В классическом талмуде Кормена-Ривеста про алгоритмы, точнее в его переводе, псевдокод полностью на английском, и это смотрится нормально. У Кнута — вообще псевдоасм. Так что есть смысл продолжить традицию.
Главное не мешайте теплое с мягким, в смысле два языка в кучу.
Главное не мешайте теплое с мягким, в смысле два языка в кучу.
+1
В каком из переводов? Их два: www.ozon.ru/context/detail/id/83808/ и www.ozon.ru/context/detail/id/2429691/. В первом в псевдокоде используется следующий стиль: for (для).
0
Держу в руках первый, никаких «для» не вижу.
0
Естественно, надо использовать перевод под редакцией Шеня :-)
Тем не менее, я (слабо) за русский вариант, иначе зачем вообще переводить книжку. Но главное — всё выделять, для читаемости.
Тем не менее, я (слабо) за русский вариант, иначе зачем вообще переводить книжку. Но главное — всё выделять, для читаемости.
0
Спор на пустом месте, как будто псевдокод — последний в жизни язык программирования. Совершенно неважно на каком языке псевдокод, если он простой и понятный — это его главная цель.
Лично мне логичным выглядит не только выделение, но и подчеркивание ключевых слов. Есть замечательный учебный алгоритмический язык из учебника Кушниренко с русскими ключевыми словами.
Если хочется ближе к оригиналу — русский как минимум упростит понимание материала. Цель учебника — подать материал просто и понятно, поэтому логичнее использовать русский. Споры на тему «без английского никак» оставьте читателю — если ему надо будет английский, он не за ваш учебник возьмется. Как вариант — сделайте маленький словарик в приложении и дело с концом.
Лично мне логичным выглядит не только выделение, но и подчеркивание ключевых слов. Есть замечательный учебный алгоритмический язык из учебника Кушниренко с русскими ключевыми словами.
Если хочется ближе к оригиналу — русский как минимум упростит понимание материала. Цель учебника — подать материал просто и понятно, поэтому логичнее использовать русский. Споры на тему «без английского никак» оставьте читателю — если ему надо будет английский, он не за ваш учебник возьмется. Как вариант — сделайте маленький словарик в приложении и дело с концом.
0
Учебник замечательный, читал в оригинале (на сайте Стэнфордского университета нашел электронный экземпляр в свободном доступе).
Насчет псевдокода — лучше его оставить в полностью неизменном виде, русский текст его только портит. Переводить следует только пояснения (ну и возможно добавить свои, от переводчика)
Насчет псевдокода — лучше его оставить в полностью неизменном виде, русский текст его только портит. Переводить следует только пояснения (ну и возможно добавить свои, от переводчика)
0
Если вас не затруднит, смените зачёркнутый ноль на
. Это, всё-таки, разные символы. Ну и проследите за корректностью остальных матсимволов.
В частности, не ясно зачем вы перекрасили "=" на "
"
![image](https://habrastorage.org/getpro/habr/comment_images/de1/0fc/691/de10fc691f3354e8fa569cdbe278822f.png)
В частности, не ясно зачем вы перекрасили "=" на "
![image](https://habrastorage.org/getpro/habr/comment_images/c30/d9d/a8a/c30d9da8a417fd6983fa22ed1bebc295.png)
+2
Да я и не зачёркивал ноль, а написал там \emptyset =)
0
Значит софт не настроен или глючит.
-1
В общем, вы не первый, кому хочется, чтобы пустое множество обозначалось более круглым нулём:
tex.stackexchange.com/questions/22798/nice-looking-empty-set
Прямо там же, однако, и альтернативные мнения высказываются:
I use \emptyset and don't like \varnothing, which is more a symbol for plumbers than mathematicians. :)
tex.stackexchange.com/questions/22798/nice-looking-empty-set
Прямо там же, однако, и альтернативные мнения высказываются:
I use \emptyset and don't like \varnothing, which is more a symbol for plumbers than mathematicians. :)
0
Я думаю что не важно как будет это выглядеть — умный разберется, а дураку не поможет
Делайте как считаете нужным, главное — единый стиль по всей книге и технически корректный перевод
Делайте как считаете нужным, главное — единый стиль по всей книге и технически корректный перевод
-2
UFO just landed and posted this here
Посмотрите, как сделано в Кормене. Там ключевые слова английские, но для for делается дублирование на русском (для), чтобы было удобнее читать.
0
Спасибо, Кэп! =)
0
Ну как видно из опроса не всем очевидно посмотреть, как сделано там.
0
Если уж переводите, то переводите все на русский. Ключевые слова выделять, конец блока не отмечать. Это все таки учебник. У человека может не быть опыта программирования ни в одном языке. Следовательно понять смысл алгоритма ему будет проще если используются русские ключевые слова. Тем более текст состоящий из слов одного языка воспринимается быстрее и легче, чем из разных. ИМХО
0
Выскажусь немного не по теме: без моноширинных шрифтов, да еще и в бумажном варианте, сложно отличать на глаз уровни отступа (в том же Кормане у меня с этим были проблемы). Предлагаю как-то их обозначать. Например так:
(mad skillz)![image](http://i.imm.io/VQhp.png)
![image](http://i.imm.io/VQhp.png)
+2
Подумаю, да. Хотя мне вот легко увидеть. Ну, и половина проголосовавших говорит, что выравнивания достаточно. =)
0
Следуйте первому (Шеневскому) переводу Кормена.
0
Мы как раз с Сашей и думаем сейчас, как лучше. =) Он говорит, что перевёл бы все ключевые слова на русский, но общественность при этом обычно не слишком довольна. А так, вторая картинка — это почти так же, как в переводе Кормена. Осталось только "(для)" после «for» написать.
0
Моё имхо:
1.
2. Либо переводите только комментарии, либо всё (включая английские имена объектов — существительными, — а методов — глаголами в императиве).
3. Лучше не выделять «ключевые слова», т.к. это не код, а псевдокод. Он предназначен, не что бы в нём ориентировались, а что бы его прочитали несколько раз как параграф обычного текста.
4. Вместо ноля используйте символ пустого множества, либо (что имхо лучше, словами «не пусто»). Непонятно также, зачем вы заменили = на < — ? Использование = для императивного присваивания — общераспространено.
5. Если будете всё переводить на русский язык, то ключевые слова должны быть согласованы (в частности, лучше «для каждого», а не «для всех»).
6. Опять же, если всё переводите на русский, имеет смысл закупить/одолжить несколько классических изданий (см комменты выше) и скопировать наиболее популярный/нравящийся лично вам стиль целиком (а не генерировать франкенштайл). Имеет смысл написать алгоритм попроще, вроде Евклида для НОД и протестировать разные варианты на фокус-группе в виде студентов начальных курсов или школьников.
1.
Моноширинный шрифт подчёркивает, что это псевдокод
.2. Либо переводите только комментарии, либо всё (включая английские имена объектов — существительными, — а методов — глаголами в императиве).
3. Лучше не выделять «ключевые слова», т.к. это не код, а псевдокод. Он предназначен, не что бы в нём ориентировались, а что бы его прочитали несколько раз как параграф обычного текста.
4. Вместо ноля используйте символ пустого множества, либо (что имхо лучше, словами «не пусто»). Непонятно также, зачем вы заменили = на < — ? Использование = для императивного присваивания — общераспространено.
5. Если будете всё переводить на русский язык, то ключевые слова должны быть согласованы (в частности, лучше «для каждого», а не «для всех»).
6. Опять же, если всё переводите на русский, имеет смысл закупить/одолжить несколько классических изданий (см комменты выше) и скопировать наиболее популярный/нравящийся лично вам стиль целиком (а не генерировать франкенштайл). Имеет смысл написать алгоритм попроще, вроде Евклида для НОД и протестировать разные варианты на фокус-группе в виде студентов начальных курсов или школьников.
+2
for всех вершин, for всех рёбер… мои глаза! Сделайте меня развидеть это! Это же псевдокод: пишите уже по-русски все, зачем это извращение?
+2
Варианты с «for всех вершин » плохая идея. Либо всё писать на русском, либо переводить только комментарии
+5
Больше всего сломала глаза замена `while H is not empty` на значок <не равно>
Это даже читается не так.
Вместо- «пока H не пусто», спотыкаешься и произносишь про себя «пока H не равно… ой, не пустое множество..» и только на третий раз «пока H не пусто»
Это даже читается не так.
Вместо- «пока H не пусто», спотыкаешься и произносишь про себя «пока H не равно… ой, не пустое множество..» и только на третий раз «пока H не пусто»
0
Я программировал 30 лет назад на Эль-76.
Сейчас смешно, а тогда привык к русскоязычным операторам.
Сейчас смешно, а тогда привык к русскоязычным операторам.
0
Sign up to leave a comment.
Псевдокод на русском