Использование инструментов разработки программного обеспечения для законотворческой деятельности
Ожидает приглашения
12 декабря 1993 на всенародном голосовании была принята Конституция России. Одно слово в том, оригинальном тексте Конституции сыграло особую роль в дальнейшей судьбе страны. Это слово было «подряд», в пункте 3 статьи 81 о том, может ли один и тоже человек занимать должность президента Российской Федерации не более двух сроков. Много копий сломано в дискуссиях об этом слове, Конституционный суд разъяснял смысл этого пункта в своем решении. Немногие принимали это во внимание, когда голосовали за или против принятия Конституции.
20 января 2020 президент России Владимир Путин внес в Государственную Думу проект закона с новыми поправками в Конституцию. Большой объем поправок, предложенных в этом проекте закона, не дает возможности обычному человеку разобраться в них. Возникает риск того, что мы повторим историю с словом «подряд», и мы снова будем принимать решение и голосовать за или против принятия Конституции без полной информации о последствиях этих поправок.
В этой статье я рассмотрю, как инструменты, созданные для разработки программного обеспечения, помогают в анализе предложенных изменений.
Законотворческая деятельность имеет много общего с программированием. Оба занятия имеют целью создание правил для некоторой системы: социальной — страны, региона или города, и вычислительной — компьютера или сети компьютеров. Создание законов имеет дополнительные сложности, по сравнению с созданием программного обеспечения. Во-первых, социальная система является менее определенной, детерминированной средой выполнения, чем вычислительная система. Необязательно закон будет исполнен так, как он предписывает, в то время как компьютер всегда исполнит программу точно в соответствии с ее кодом, кроме случаев поломки аппаратного обеспечения. Во-вторых, законы написаны на естественном языке, в то время как компьютеры используют искусственные языки программирования. Естественная эволюция языка в этносе обычно преследует целью создать эффективный язык, то есть язык, способный выразить множество смыслов в наиболее короткой форме. Это делает естественные языки многозначными, а фразы в них сильно зависимыми от контекста. Например, многим со школы известна фраза «казнить нельзя помиловать», смысл которой зависит от места, в котором поставлена запятая. Языки программирования специально проектируются с целью создания конструкций, которые однозначно интерпретируются средой исполнения. Но все равно, изменение одного символа может привести к неожиданным последствиям. Поэтому, в помощь программистам, были созданы инструменты, которые позволяют легче находить изменения в программе. Примером такого инструмента являются системы контроля версий. Так же как они помогают в написании компьютерных программ, они могут помочь справиться со сложностями создания законов, если не со средой исполнения, то есть социальной системой, то с многозначностью и с поиском точных формулировок, которые не оставляли бы места для интерпретаций.
Ниже я рассмотрю поправки в Конституцию, которые В.Путин предложил в проекте закона №885214-7 «О совершенствовании регулирования отдельных вопросов организации публичной власти», и как их можно анализировать с помощью системы контроля версия git и пользовательского интерфейса, предоставляемого сайтом GitHub.
Проекты законов вносятся в Государственную Думу в виде файлов. В тексте законопроектов с поправками указывается, какие разделы, статьи или пункты статей должны быть добавлены, исключены или изменены, при этом в тексте проекта закона дается только новый вариант. Например, вот так выглядит новая формулировка статьи 79: «Российская Федерация может участвовать в межгосударственных объединениях и передавать им часть своих полномочий в соответствии с международными договорами Российской Федерации, если это не влечет за собой ограничения прав и свобод человека и гражданина и не противоречит основам конституционного строя Российской Федерации. Решения межгосударственных органов, принятые на основании положений международных договоров Российской Федерации в их истолковании, противоречащем Конституции Российской Федерации, не подлежат исполнению в Российской Федерации.»
Проект закона не дает оригинальный текст статьи 79, что делает анализ изменения проблематичным. Вы вынуждены искать соответствующую статью в тексте Конституции, который либо есть у вас в бумажном виде, либо доступен на стороннем сайте в сети. Во время написания этого текста статья 79 действует в следующей редакции: «Российская Федерация может участвовать в межгосударственных объединениях и передавать им часть своих полномочий в соответствии с международными договорами, если это не влечет ограничения прав и свобод человека и гражданина и не противоречит основам конституционного строя Российской Федерации.» Сайт GitHub позволяет увидеть оригинальный текст и предложенное изменение рядом.
Вам не требуется тратить время на поиск оригинального текста и переключатся из одного приложения (или страницы в браузере) в другое. Оба текста удобно находятся перед глазами с ясной индикацией цветом, какая часть текста будет удалена — светло-красный цвет, а какая вставлена — светло-зеленый цвет.
В некоторых случаях, когда новый текст отличается от оригинального только небольшими изменениями, GitHub подсвечивает каждое измененное или добавленное слово. Бывает сложно сравнить два текста глазами. Например, вот текст пункта «а» статьи 83 о полномочиях президента Российской Федерации: «а) назначает Председателя Правительства Российской Федерации, кандидатура которого утверждена Государственной Думой по представлению Президента Российской Федерации, и освобождает Председателя Правительства Российской Федерации от должности», а вот оригинальная формулировка: «а) назначает с согласия Государственной Думы Председателя Правительства Российской Федерации.»
Вы можете не заметить то, что «с согласия» поменялась на «утверждена», то есть Государственная Дума, не соглашается с кандидатурой Председателя Правительства, а утверждает ее. Сравнение нового и оригинального тестов этого пункта на сайте GitHub будет выглядеть так.
Яркими цветами выделены слова и фразы, которые поменялись: красным — удаленные слова, зеленым — добавленные слова. Вы можете быстро понять, что именно изменилось, и сосредоточиться на анализе этих изменений, вместо того, чтобы вчитываться в каждое слово, пытаясь выделить изменения самостоятельно.
Важной помощью в принятии информированного решения при голосовании является ознакомление с мнением экспертов о предложенных изменениях в текст Конституции. Вы может найти мнение экспертов в Интернете, но обычно такие статьи написаны с предположением, что читатель знаком с оригинальным текстом Конституции и с предложенными поправками. Приходится все это иметь перед глазами и переключатся с одного текста на другой, чтобы понять аргументацию эксперта. Сайт GitHub позволяет комментировать каждую строчку текста. Вот как выглядит изменение с комментарием.
Есть возможность увидеть оригинальный текст, новый текст и мнение эксперта в одном месте. Более того, если у вас есть профиль пользователя на сайте GitHub, вы можете комментировать изменения сами и вступать в полемику с другими комментаторами.
Сайт GitHub даёт вам возможность легко сравнить оригинальный текст Конституции России с предложенными изменениями, прочитать мнения экспертов к каждому изменению или даже к отдельному слову и участвовать в обсуждении нового текста Конституции, позволяя самостоятельно сформировать мнение о последствиях предложенных поправок.
20 января 2020 президент России Владимир Путин внес в Государственную Думу проект закона с новыми поправками в Конституцию. Большой объем поправок, предложенных в этом проекте закона, не дает возможности обычному человеку разобраться в них. Возникает риск того, что мы повторим историю с словом «подряд», и мы снова будем принимать решение и голосовать за или против принятия Конституции без полной информации о последствиях этих поправок.
В этой статье я рассмотрю, как инструменты, созданные для разработки программного обеспечения, помогают в анализе предложенных изменений.
Законотворческая деятельность имеет много общего с программированием. Оба занятия имеют целью создание правил для некоторой системы: социальной — страны, региона или города, и вычислительной — компьютера или сети компьютеров. Создание законов имеет дополнительные сложности, по сравнению с созданием программного обеспечения. Во-первых, социальная система является менее определенной, детерминированной средой выполнения, чем вычислительная система. Необязательно закон будет исполнен так, как он предписывает, в то время как компьютер всегда исполнит программу точно в соответствии с ее кодом, кроме случаев поломки аппаратного обеспечения. Во-вторых, законы написаны на естественном языке, в то время как компьютеры используют искусственные языки программирования. Естественная эволюция языка в этносе обычно преследует целью создать эффективный язык, то есть язык, способный выразить множество смыслов в наиболее короткой форме. Это делает естественные языки многозначными, а фразы в них сильно зависимыми от контекста. Например, многим со школы известна фраза «казнить нельзя помиловать», смысл которой зависит от места, в котором поставлена запятая. Языки программирования специально проектируются с целью создания конструкций, которые однозначно интерпретируются средой исполнения. Но все равно, изменение одного символа может привести к неожиданным последствиям. Поэтому, в помощь программистам, были созданы инструменты, которые позволяют легче находить изменения в программе. Примером такого инструмента являются системы контроля версий. Так же как они помогают в написании компьютерных программ, они могут помочь справиться со сложностями создания законов, если не со средой исполнения, то есть социальной системой, то с многозначностью и с поиском точных формулировок, которые не оставляли бы места для интерпретаций.
Ниже я рассмотрю поправки в Конституцию, которые В.Путин предложил в проекте закона №885214-7 «О совершенствовании регулирования отдельных вопросов организации публичной власти», и как их можно анализировать с помощью системы контроля версия git и пользовательского интерфейса, предоставляемого сайтом GitHub.
Проекты законов вносятся в Государственную Думу в виде файлов. В тексте законопроектов с поправками указывается, какие разделы, статьи или пункты статей должны быть добавлены, исключены или изменены, при этом в тексте проекта закона дается только новый вариант. Например, вот так выглядит новая формулировка статьи 79: «Российская Федерация может участвовать в межгосударственных объединениях и передавать им часть своих полномочий в соответствии с международными договорами Российской Федерации, если это не влечет за собой ограничения прав и свобод человека и гражданина и не противоречит основам конституционного строя Российской Федерации. Решения межгосударственных органов, принятые на основании положений международных договоров Российской Федерации в их истолковании, противоречащем Конституции Российской Федерации, не подлежат исполнению в Российской Федерации.»
Проект закона не дает оригинальный текст статьи 79, что делает анализ изменения проблематичным. Вы вынуждены искать соответствующую статью в тексте Конституции, который либо есть у вас в бумажном виде, либо доступен на стороннем сайте в сети. Во время написания этого текста статья 79 действует в следующей редакции: «Российская Федерация может участвовать в межгосударственных объединениях и передавать им часть своих полномочий в соответствии с международными договорами, если это не влечет ограничения прав и свобод человека и гражданина и не противоречит основам конституционного строя Российской Федерации.» Сайт GitHub позволяет увидеть оригинальный текст и предложенное изменение рядом.
Вам не требуется тратить время на поиск оригинального текста и переключатся из одного приложения (или страницы в браузере) в другое. Оба текста удобно находятся перед глазами с ясной индикацией цветом, какая часть текста будет удалена — светло-красный цвет, а какая вставлена — светло-зеленый цвет.
В некоторых случаях, когда новый текст отличается от оригинального только небольшими изменениями, GitHub подсвечивает каждое измененное или добавленное слово. Бывает сложно сравнить два текста глазами. Например, вот текст пункта «а» статьи 83 о полномочиях президента Российской Федерации: «а) назначает Председателя Правительства Российской Федерации, кандидатура которого утверждена Государственной Думой по представлению Президента Российской Федерации, и освобождает Председателя Правительства Российской Федерации от должности», а вот оригинальная формулировка: «а) назначает с согласия Государственной Думы Председателя Правительства Российской Федерации.»
Вы можете не заметить то, что «с согласия» поменялась на «утверждена», то есть Государственная Дума, не соглашается с кандидатурой Председателя Правительства, а утверждает ее. Сравнение нового и оригинального тестов этого пункта на сайте GitHub будет выглядеть так.
Яркими цветами выделены слова и фразы, которые поменялись: красным — удаленные слова, зеленым — добавленные слова. Вы можете быстро понять, что именно изменилось, и сосредоточиться на анализе этих изменений, вместо того, чтобы вчитываться в каждое слово, пытаясь выделить изменения самостоятельно.
Важной помощью в принятии информированного решения при голосовании является ознакомление с мнением экспертов о предложенных изменениях в текст Конституции. Вы может найти мнение экспертов в Интернете, но обычно такие статьи написаны с предположением, что читатель знаком с оригинальным текстом Конституции и с предложенными поправками. Приходится все это иметь перед глазами и переключатся с одного текста на другой, чтобы понять аргументацию эксперта. Сайт GitHub позволяет комментировать каждую строчку текста. Вот как выглядит изменение с комментарием.
Есть возможность увидеть оригинальный текст, новый текст и мнение эксперта в одном месте. Более того, если у вас есть профиль пользователя на сайте GitHub, вы можете комментировать изменения сами и вступать в полемику с другими комментаторами.
Сайт GitHub даёт вам возможность легко сравнить оригинальный текст Конституции России с предложенными изменениями, прочитать мнения экспертов к каждому изменению или даже к отдельному слову и участвовать в обсуждении нового текста Конституции, позволяя самостоятельно сформировать мнение о последствиях предложенных поправок.