开源复兴运动 ——代码从来就不是护城河

2023-10-21 19:38

本文主要是介绍开源复兴运动 ——代码从来就不是护城河,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开源复兴运动 ——代码从来就不是护城河

在这里插入图片描述

早在 2008 年,Sun Microsystems(后来被 Oracle 收购)以10亿美元的价格收购了 mySQL。当时,我深信这个价格代表任何开源公司所能获得的最大收益。这笔交易使软件业将开源视为一种商品。

再看看过去几年发生了什么。我们有 Cloudera、 MongoDB、 Mulesoft、 Elastic 和 GitHub,它们都是数十亿美元的 IPO 或并购交易的一部分。当然,还有 RedHat。1999 年,它以 36 亿美元的价格上市,去年,它以 340 亿美元的价格卖给了 IBM。

在这里插入图片描述

一旦开源业务达到一定的成熟度,某些公有云的威胁和许可的话题就可能出现。授权是一个备受争议的话题,虽然它很重要,但我看到很多公司在早期花费了太多的时间来讨论授权。

我还认为我们对一些公有云的威胁反应过度了。尽管这些供应商可能拥有开源项目,但是到目前为止,我所知道的还没有一家开源公司被云厂商完全取代。

对于一个开源公司来说,更重要的问题是: 如果代码不是一条有竞争力的护城河,那么什么才是?

这个问题的答案可以追溯到使开源如此强大的原因:社区以及你如何看待开发。独立的开源公司有三大竞争优势:

1.企业客户不希望供应商锁定。

2.他们想从编写代码的人那里购买。

3.大公司没有您的专业知识。

当你把这三个因素结合起来,我认为这是一个真正具有竞争力的附加值,也是为什么我们还没有看到大云完全取代独立开源公司的原因。

这时可以回答刚才提出的问题,如果代码不是一条有竞争力的护城河,那么什么才是?答案就是:社区。

面对市场:开源是漏斗的顶端

在这里插入图片描述

开源社区是由开发人员驱动的顶级活动。建立业务就是将开源漏斗顶端连接到一个强大的价值驱动的商业产品。漏斗这个概念并不新鲜,但对于开源公司来说,它确实有不同的表现。在这一部分,我想要介绍开放源码的努力是如何集成和编织到不同阶段的商业努力中的,以及如何让每个阶段与其他阶段和谐地工作。

开源进入市场的渠道分为四个阶段和关键的组织职能。

•开发者社区管理提高了对开源产品的认识和兴趣。
•有效的产品管理可以为您的免费开源产品吸引大量用户。
•潜在客户的产生和业务发展会评估这些用户确定企业中潜在价值和销售机会的意图。
•自助服务(自下而上)和销售服务(自上而下)的动作为企业提供并扩展了付费产品或服务的价值。
在这里插入图片描述

OSS 3.0-开源是每个软件公司的一部分

随着软件吞噬了世界,开源正在吞噬软件。

今天,几乎所有主要的科技公司,从 Facebook 到 Google,都是在开源软件的基础上发展起来的。这些公司越来越多地建立自己的开源项目,例如 Airbnb 有 30 多个开源项目,Google 有 2000 多个。

在未来,良性循环将继续下去。技术上,人工智能、开源数据和区块链都是新兴创新的例子。下一代商业模式可能包括广告支持的 OSS,如大型专有企业支持开源项目; 数据驱动的收入; 以及通过区块链货币化的加密代币。

我相信开源3.0将扩展我们对开源业务的看法和定义。开源将不再是 RedHat、Elastic、Databricks 和 Cloudera;它至少将是 Facebook、Airbnb、Google 和其他任何将开源作为其主要内容的业务。当我们以这种方式看待开源时,正在进行的复兴可能只是处于起步阶段。开源软件的市场和可能性远远超出我们的想象。

源头:来自开源社翻译的Peter Levine的一场有关开源和商业化的演讲,笔者做了一定的编辑。

Peter Levine 是风险投资公司 Andreessen Horowitz 的普通合伙人,他专注于企业投资,曾任 Citrix 数据中心和云部门的高级副总裁和总经理,负责收入、产品管理、业务发展和战略方向。Peter Levine 于 2007 年加入 Citrix,当时他以 5 亿美元收购了企业级开源虚拟化软件的领先供应商 XenSource,并担任 CEO。

这篇关于开源复兴运动 ——代码从来就不是护城河的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/256519

相关文章

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例