我们先来看一下MySQL的版权问题。当前,MySQL采用双重授权(Dual Licensed),他们是GPL和MySQL AB制定的商业许可协议。如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。否则,你需要购买 MySQLAB制定的那个商业许可协议。这里最重要的一点就是要想免费使用MySQL,你所开发的软件必须是遵循GPL的自由(开源)软件,虽然被批准的自由(开源)许可协议有很多个。
        MySQL是一套客户端/服务器(C/S)结构的系统。双重许可机制对两大块同时进行约束,但是并不绝对。MySQL AB(MySQL的出品公司)考虑到便于人们使用,客户端是完全遵循GPL许可。也就是说,在事实上MySQL的双重许可机制这一双重的特点是对服务器端而言的。我想,我恐怕会把一些人搞糊涂,这里所说的客户端指的是MySQL AB开发的那个命令行下的客户端工具(mysql.exe)。 
        使用MySQL数据库如果按商业授权方式,购买MySQL的许可证按照计算机台数计算,一台机器一个,cluster版(集群版)的按cpu数量计算。如果你将程序部署到一个庞大集群服务器上,势必要付出不少的费用。
      使用MySQL数据库如果服按照GPL协议的授权方式,那么当你开发了一些应用软件,即使是公司内部使用的特殊的系统,你也要遵循GPL协议将你的源代码公布!也就是一旦你的系统被使用,源代码必须公开,不公开就违反了GPL协议,违反了相关法律。

再来看一看Java的版权问题。谷歌的Android操作系统可以说是目前全球最流行的智能手机平台。而甲骨文于2010年起诉谷歌,称谷歌的Android系统侵犯了其Java编程语言专利,并同时要求谷歌赔偿约10亿美元的损失。理由是:甲骨文认为谷歌在安卓系统中侵犯了其Java APIs版权。不过,最后法院判定,甲骨文APIs并不受版权保护,要求甲骨文接受谷歌0赔偿。不过,现在CAFC否决了此前判决,判定甲骨文APIs是受版权保护的。

   甲骨文发言人表示:“我们很高兴联邦法院否决谷歌试图大幅限制计算机编程的法律保护。我们认相信,地方法院未来也将应用‘合理使用原则’(fair use doctrine)。”法院的这项判决是依靠版权保护来激发创新的计算机产业的胜利。

谷歌则坚持认为,软件只能受专利保护,不应受版权保护,这项判决将扼杀计算机科学创新和软件开发。但法官凯瑟琳·奥马利则表示,专利保护同样适用于软件。
        在此,我们可以清晰的看到法院的判决意味着,软件公司未来在编写计算机程序时可能面临侵犯甲骨文版权的风险。你使用了Java语言就要为相应的版权付费!这是一件多么恐怖的事情,编程语言竟然都来谈版权,还能不能让全世界苦逼的程序猿们一起愉快的玩耍啦!难道oracle没有看出为什么这么多年c#语言一直没有被广泛推开吗?如果API能够被认定为版权法保护的对象,那就会引发大量无聊的诉讼,并且不利于开发人员去开发使用API的应用。更重要的是,如果甲骨文胜诉,整个软件行业都会受到其影响,因为如果它们的API模仿了热门计算机程序尤其是Java的API,很多软件公司就会成为版权侵权诉讼的对象。很多公司必须投入大量资源来开发自己的API,而不是免费使用更成熟编程语言的API。
        其实这种战役对双方都造成了相应影响,在美国股市周一交易中,谷歌和甲骨文的股价双双下跌。谷歌股价较上一交易日下跌了约1.91%,至521.52美元;甲骨文股价下跌了约1.39%,至40.42美元。在今年的早些时候,美国最高法院就是否受理谷歌的上诉还征询了奥巴马政府意见,后者建议最高法院不要受理。奥巴马政府表示,由于甲骨文Java编程语言获得版权保护可能对软件开发造成影响,这起诉讼受到有关各方严重关注,但这些问题可以通过谷歌“合理使用”的抗辩加以解决。 
        谷歌的Android操作系统目前支持Java作为其一类语言,据消息来源说,Swift并不是要取代Java,至少在最初阶段。大概与oracle长期进行的诉讼是导致谷歌做出这一决定的可能原因,据说谷歌考虑Swift是认为其可能有比Java更广阔的发展空间。Swift也是开源的,这意味着谷歌可以采用它作为Android的语言,而无需改变自己的开源手机结构。 
        这就引发了我们关于就业培训的思考,假如现在学习Java-Android方向,哪天Google由于版权等原因真的改用了Swift语言作为Android 的开发语言,是不是现在去学Swift走ios方向更好一些。
        总之,oracle收取Java语言版权费用着实令人恶心,搞开发的还是不要把全部精力放到Java上为好。

GPL协议本身就是剥削,oracle维权玩的让人恶心的更多相关文章

  1. GPL协议的MySQL数据库

    网络上多数朋友担心甲骨文会对MySQL软件采用收费模式,多数朋友也不清楚MySQL开源到底是什么模式,开源=免费嘛?是很多的疑问?MySQL是遵守双重协议的,一个是GPL授权协议,一个是商用授权协议( ...

  2. 关于GPL协议的理解(开源与商用、免费与收费的理解)

    编者:请特别注意看暗红色粗体标注的那几句话,总结下来有下面几点: 如果你用了我的 GPL软件,那么你的软件也必须要开源,否则就不能使用我的软件,你是否把你的软件商用和我没关系 Oracle 卖的不是软 ...

  3. GPL协议

    GPL-General Public License 它是自由软件许可(Free Software Licence),保证最终使用者能够自由的引用,学习,拷贝,甚至修改软件.在理解这之前需要了解什么是 ...

  4. 为什么越来越少的开源项目使用 GPL 协议

    原文出处: opensource   译文出处:oschina/王练    前段时间,我在 RedMonk 上看到了一篇来自 Stephen O’Grady 的有趣推文,介绍了开源许可证目前的状态,以 ...

  5. GPL协议中国第一案尘埃落定,相关开源软件应如何风控?

    导读:2019年11月6日,数字天堂(北京)网络技术有限公司(以下简称 “数字天堂公司”)诉柚子(北京)科技有限公司.柚子(北京)移动技术有限公司(以下简称 “柚子公司”)侵犯计算机软件著作权纠纷一案 ...

  6. [转帖]Oracle 裁员史:技术人死于重组,卒于云计算

    Oracle 裁员史:技术人死于重组,卒于云计算 https://www.infoq.cn/article/tm-mcdHCPCI4eEwr6dbY 大厂裁员 我妈妈也总担心我没工作了 怎么还房贷 田 ...

  7. ef6 code first with Oracle 试玩记录

    对于oracle 使用code first 这边文章不错: http://www.cnblogs.com/wlflovenet/p/4187455.html 补充一下: 文章中提到machine.co ...

  8. ORA-12560: TNS: 协议适配器错误(oracle service 已启动)

    如果是安装完 oracle 客户端之后才出现的这个问题,请往下看 安装 oracle client 时,会配置一个客户端的监听,如果电脑上之前安装过 oracle service 就会和服务的监听冲突 ...

  9. http协议本身能获取客户端Mac地址问题

    http 位于网络应用程 应用层 会话层 表示层 传输层 网络层 数据链路层 物理层 数据在最高层开始传输 没经历下面一层加一层的头,然后传入目的电脑再进行一层层的解刨,所以http本来没有mac而接 ...

随机推荐

  1. Hadoop2的HA安装(high availability):JournalNode+ zookeeper

    前面介绍过使用NFS+zookeeper来解决namenode单点失败问题,因为NFS可能也会存在单点问题,所以hadoop提供了一种叫做JournalNode技术,这项技术可以在JournalNod ...

  2. eclipse ${user}和${date}

    在Eclipse中使用类的自动注释时,@author ${user}, 这个值不会随着你更改系统用户名而改变.有的人会将这个 ${user} 变量直接替换为某个固定名称. 以下方法可以修改它的值. 在 ...

  3. 【BZOJ3879】SvT 后缀数组+单调栈

    [BZOJ3879]SvT Description (我并不想告诉你题目名字是什么鬼) 有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n]. 现在有若干组询问,对于每一个询问,我们给出若干 ...

  4. 表达式求值(java)

    今天去面试,考了这个,短时间没想出来... 太笨了! 后来想用栈和递归做 但是看了网上才知道,可以将中缀表达式转为后缀表达式,就极其方便了. import java.util.Scanner; imp ...

  5. 160803、如何在ES6中管理类的私有数据

    如何在ES6中管理类的私有数据?本文为你介绍四种方法: 在类的构造函数作用域中处理私有数据成员 遵照命名约定(例如前置下划线)标记私有属性 将私有数据保存在WeakMap中 使用Symbol作为私有属 ...

  6. 只有ReflectionOnlyLoadFrom才可以拯救与GAC冲突的强命名程序集

    先说结论,如果有两个拥有相同程序集名称的强命名程序集,一个在GAC里,一个不在.怎样动态加载那个不在GAC里的程序集?答案就是只有Assembly.ReflectionOnlyLoadFrom才可以加 ...

  7. 阿里巴巴Java开发规约IDEA插件安装及使用

    技术交流群:233513714   一.通过Jetbrains官方仓库安装 1. 打开 Settings >> Plugins >> Browse repositories.. ...

  8. python相关的报错处理

    1.python3.6编译安装完毕后,使用pip3安装virtualenv,提示找不到ssl模块 原因:因为我们少装了openssl-devel依赖包,所以导致编译后的pip3无法找到ssl模块. 解 ...

  9. pip与apt-get

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  10. 模块 - hashlib/subprocess

    hashlib 模块 加密算法: hash (152位)散列 哈希 不可逆得 密码背后就是 hash 程序退出hash 值就变了 ,hash值得结果有可能重复 MD5 (128位) 讯息摘要演算法 基 ...