编写法律很像编程

在过去的一年中,我担任了副总理内阁的一名顾问职务 ,因此,我可以选择起草立法。 我一直在和一位具有深厚技术背景的同事一起做这件事,事实证明我们对此还不错。 通过的大多数“我们”法律,包括“开源法” ,电子识别法和对选举法的电子投票修正案(当然,在此过程中,我们得到了法律专业人士的帮助,就像初级开发人员得到了高级开发人员的帮助)。

法律起草与程序设计有很多共同之处,因此“我们的”法律简洁明了,结构合理且“切题”,涵盖了所有用例。 起初,听起来有些奇怪,未经法律专业培训的人完全可以做到这一点,但是编写法律实际上是“法律程序”。 这是两个过程的共同点:

  • 两者都依赖于形式化语言。 编程语言更严格,但是“合法”也相当形式化,某些事物通常以预定义的方式用词来表达,即“关键词”。
  • 有关于如何使用形式化语言以及其行为方式的规范。 “规范行为法”是用于草拟法律的JLS(Java语言规范),它定义了允许的内容,法律的结构方式以及相互之间的参照方式。 它还定义了立法过程。
  • 法律具有预定义的结构,例如,就像类文件一样。 还有其他法律的章节,文章,参考和修改条款(就像在另一个对象上调用状态更改功能一样)。
  • 尽量减少重复是两种起草工作中的重要主题。 无需复制粘贴共享的代码/部分,只需通过其唯一标识符引用它即可。 您可以在单个法律或多个法律中执行此操作,从而重复使用定义和声明。
  • 两者都定义了用例–法律试图覆盖与给定问题相关的一组用例的所有边缘情况,就像编程一样。 当然,法律也定义了原则,可以说它具有更重要的功能,但是定义是用例非常普遍。
  • 两者都具有if子句和循环。 您从字面上说“如果是X,请执行Y”。 您可以说“对于所有X,做Y”。 当然,这是合乎逻辑的,因为这些编程结构来自现实世界。
  • 有版本和差异。 首次出现(“被推向法律界”)之后,所有更改都以对原文的修正形式进行,形式相当正式。 添加或删除文章,替换单词,句子或整个部分。 然后,您可以在原始文档的顶部重播所有修订,以查找当前的现行法律。 听起来很像git。
  • 有“代码审查” –您将草稿发送给所有其他机构,它们的专家会为您提供反馈,您可以接受或拒绝。 然后,“拉取请求”被议会合并为主人。
  • 有很多“旧版代码”。 50年前的法律很少被修改,您必须应对它们。

最后,您会得到一段“代码”,该代码可以解决实际问题,也不能解决现实世界中的问题,因此必须对其进行修复/修改。 通过编程,执行指令的是CPU,可能是虚拟机,而通过法律,则是执行部门(在某些情况下是司法部门)。

似乎整个法律框架都可以用规则引擎或Prolog编写。 好吧,这不可能,因为它定义的原理以及法官必须做的解释(道德和道德)。 但这并不能消除过程中的相似之处。

但是有一个明显的区别。 在编程中,我们有很多工具可以使我们的生活更轻松。 构建工具,IDE,(D)VCS,问题跟踪系统,代码审查系统。 法律专家几乎没有。 在大多数情况下,他们使用Microsoft Word,有时甚至没有“跟踪更改”。 他们从法律信息系统或在许多情况下甚至从法律的印刷版本中获取文本的当前版本。 协作是一场噩梦,因为Word文档通过电子邮件飞来飞去。 具有更多技术知识的人可能会选择与Google Docs或Office365共享文档,但这很少见。 人们必须根据曲目更改手动编写“ diff”,然后手动应用diff以获得最终的合并版本。 咨询过程(“代码审查”)基于发送纸质邮件和获取纸质回复的基础。 更不用说一旦草案获得议会批准,就会有工作组和委员会使这一过程变得更加乏味。

其中大多数可以优化和自动化。 例如,英国在legal.gov.uk上已经向前迈出了一步,该法律中的每条法律文本均使用LegalXML(afaik)存储,因此至少可以轻松地处理引用和版本控制。 但是草拟法律的法律专家很乐意拥有我们程序员所拥有的工具。 他们只是不知道它们的存在。 从构思,工作组,磋商到议会的多次阅读,整个过程可以电子化。 如果需要,可以使用法律的GitHub,它具有良好的客户端工具,可以在文本上进行协作。 自动完成引用并为您进行微调搜索。 实际上,我们已经定义了要在两年内构建的“事物”,并且它必须是开源的,因此,即使实践和规则因国家/地区而异,但我希望可以重用它。

总之,我认为编程(实际上是软件工程)及其良好定义的结构和过程不仅可以在许多不同的环境中提供帮助,还可以为您提供有关如何优化它们的想法。

翻译自: https://www.javacodegeeks.com/2016/08/writing-laws-quite-like-programming.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值