[oeasy]教您玩转python - 0006 - 自由软件运动和开源运动
顺序执行 🥊
回忆上次内容
上次写了10000行代码
10000行代码 都是写在明面上的
人家一下载
py
文件就能看个明明白白
修改或者运行程序都很方便
这程序全都这么公开出来
大家随意修改
好么?
编写程序的人怎么挣钱呢?🤔

软件授权
很多的商业软件的软件
用户不能看见源代码
更不能改写源代码

c4d 或者 photoshop
都看不到源代码
只能下载可以运行的安装包

软件是随着计算机从无到有的
这种可以无限复制的东西怎么会成为商品呢?
公开信
比尔·盖茨给计算机爱好者写了一封公开信
他把私自拷贝软件的人定义为盗窃者
雇佣人手写Basic程序
把爱好和乐趣变成了雇佣关系

软件公司越来越多
软件制作逐渐从爱好者的分享
变成了商业公司盈利的手段
利润确保商业软件公司可以扩大雇佣规模
使得软件行业进化加速
销售的对象是许可证
序列号(licence)
成就了最大的软件公司
微软(microsoft)
这种许可证是什么时候有的呢?
许可
由软件商进行授权
用户通过付费得到使用的授权许可

python不一样
python是开源的
直接就能看到源代码的
开源的软件有利于
分享
传播
演化
python也有许可证
现代的许可证 license
给用户更多权利
而不是向用户索取利益
比如 GPL 许可证
GPL
GPL 又称为 Copyleft
这是从 Copyright 来的
copyright 有多个含义
copy 是复制
right 是权利
copyright指的就是复制的权力
图书时代复制靠的是雕的版
所以copyright也指
版权
那copyleft呢

copyleft 后面是 left
表示这是和 copyright 完全相反的
著佐权
这是谁提出来的呢?
stallman
理查德·马修·斯托曼出生在纽约
从小喜欢计算机

长大了之后加入了哈佛和MIT
成为一名计算机工程师
在mit的人工智能研究所工作
当时的mit是黑客文化的核心所在
stallman 被称作 rms
自由软件
面对商业软件公司的崛起
软件从爱好者的玩具
变成了商人谋利的工具
软件行业由于商业利益而变得封闭
1983 年
30+岁的时候rms辞了 MIT 的工作
发表了著名的 GNU 宣言
目标是创建一套完全自由的操作系统
GNU (GNU's not unix)
当时他说「软件的自由就是人类的自由」

这里面说这自由包括 4 个层面的概念
自由运行软件
自由学习和修改软件源代码
自由再发布软件
自由发布修改后的软件产品
这就是最开始的自由软件运动
根据这些原则发布了新的许可证类型
许可证
典型的新许可证就是GPL

GPL 授权对被授权者是有要求的,重点强调:
和大部分开源软件一样,作品放在这里,你可以用,作者不为任何物理损失负责
如果你,基于这个作品衍生了新的作品,那么这个新的“作品”,必须符合 GPL 协议,否则你就失去原作品的授权
符合 GPL 协议的作品,在提供给它的使用者的时候,必须同时提供该作品的 GPL 源代码,不能对使用者做出限定
为什么会有GPL呢?🤔
媒介变化
这是由软件本身的媒介特性决定的
我们先看看之前的媒介
报纸、杂志、书籍
都需要具体的纸张和油墨的原子做成产品

需要造纸厂、印刷厂
也需要邮局、书店、图书馆
视听媒体
黑胶、磁带、cd都需要物理原子的制造
和物理原子的存储和物流

胶片拷贝、录影带
也是如此

原来都得有个物理介质
存储、运输都有费用
所以唱片公司、影视公司需要经营这些
计算机时代
现在内容都是计算机中的0101
不需要物理的原子作为介质了
也不需要专门的空间存储
更不需要专门的运力做物流

基本单位从原子变成了电子
就连打开这些媒体的软件
也一样都是0101
就连这些软件所用的系统
也一样都是0101
就连开发这些软件的工具
也一样都是0101
复制传播的成本几乎为零
大公司视图收取软件许可证的思路被自由软件运动抵抗
很多软件开发者把源代码公开出来
开源运动
自由软件运动有很强的人文色彩
开源运动对于软件就事论事

吸引着大量用户参与其中
linux内核
一个大二的学生叫 Linus
对编程很感兴趣

开发出来了 Linux 内核

在 0.02 版后
来自世界各地的程序员加入到了 Linux 内核的开发中
Linux 也是用 GPL 协议开源
传染性开源
是因为只要用它你也得开源
著作
1997 年
出了一本非常有名的书——《大教堂与集市》
被誉为说是开源界的圣经
开源运动的宣言
作者 Eric Ryamond

Eric Ryamond 把普通的这种商业公司和包括 GNU 的这种开发模式
比作教堂
有详细的蓝图、模板,有一步一步的操作流程
把 Linux 这种开发模式比作是集市
没有强制性的分工
任何人也可以随时离开
这些是在大公司里面没有的
Eric 实际上觉得这种 Linux 的开发模式
比大公司的官僚主义的模式先进自由得多
这也就是他成功的原因
他把这种模式和通过这种模式产生出来的代码叫做开源软件
自由软件运动逐渐变成了开源运动
开源运动比自由软件运动现实
但是开源软件可以被社会和法律所接受吗?
法律
开源协议最终被在法律上面被承认了
通过 Jacobsen vs Katzer 这个案子
Bob jacobsen 在开源网站 Source Forge
建立了 JMRI (java modell railrode interface)
该项目的部分源代码被 Matt Katzer 与其公司 KAMIND 利用到产品中
但没有遵循条款
该产品没有提及原作者的名字
没有说明源代码来源
没有将所开发的新版本软件放在指定的开源网站上供公众下载
也没有在软件包中说明该版本软件与 Jacobsen 开发的标准版软件的区别

2006 年
Jacobsen 向旧金山联邦法院起诉 Katzer 与 KAMIND 公司侵害著作权
并据此向法院提出临时禁令的申请
要求法院下令禁止 Katzer 与 KAMIND公司继续发布、销售侵害著作权的产品

最终胜诉
形成判例
国内的现状如何呢?
国内现状
目前国内市场定制开发软件的需求越来越少
现在更多的是网站和移动应用
把代码藏起来是没有用的
源代码的开放是发展的趋势
开放源代码可以让更多人才参与开发、修改和传播
linux、debian、vim、python、firefox、blender、unreal 都是开源的
已经形成潮流

这样的个人软件开发者主导的开源项目获得了巨大成功
参与的人越多
知名度越高
项目就越多人参与
参与的人越多
知名度越高
项目就更多人参与
开发者和参与者因为项目的活跃
有大量的赚钱机会
从而有更多时间可以投入项目
软件之外
不但软件
硬件、游戏、甚至虚拟角色歌姬等等方面
开源项目也越来越多
甚至riscv的cpu架构都已经出现了
我们所学的python就是完全开源的软件
python3的这个程序的源程序在哪里呢?
cpython
https://github.com/python/cpython
python游乐场 的源代码是完全公开的
不过时代的洪流是从最早的水滴开始的
在开源没有兴起之前 python 是如何发展的呢?
看到上图中的这个人了么?
更新代码最多的人
也是最早写python代码的人
他就是python语言之父
他叫什么名字呢?
他是怎么把自己的python项目做成世界第一的语言的呢?
总结
计算机本身的特性决定
计算机保存传递的是电子
而不是原子
这就使得存储和分发的成本几乎为零
在这样的物理基础上
出现了自由软件运动
从rms提出的free software 开始
到gnu研发的各种软件
自由软件运动之后出现了开源运动
提倡把源代码开放
也被大量的商业公司所跟随
python其实是
一个典型的开源项目
自由软件标志性的语言
是谁制作出了python这个语言呢?
我们下次再说!👋
github:https://github.com/overmind1980/oeasy-python-tutorial
gitee:https://gitee.com/overmind1980/oeasypython 作者:oeasy