从立创EDA,Gratipay看中文编程开发环境和推广运营的一个趋势
前不久听说立创EDA,对比之前的讨论: 适合中文用户的编程语言和IDE, 侧重于现有语言/IDE不具备的特性 · Issue #11 · program-in-chinese/overview,觉得颇有共鸣。
库管理和共享
虽然EDA开发和传统软件开发看起来相去甚远,但一个很大的共通点是,硬件库和软件库的管理和共享。软件本来源于硬件,库自然也存在依赖关系,EDA中的元件库,类似于编程语言的标准库和第三方库。
立创的开发环境集成了库管理和分享功能,这是一个降低入门门槛、提高开发效率进而迅速积累人气的强大优势。
现有的英文编程语言,多数是语言与IDE分离,在IDE中同时提供库管理加上开发者共享库功能的并不多见。
-- 7/3 补: 经指点,有类似紧密集成语言和库管理的例子,如微软.NET的NuGet也集成在了Visual Studio。个人认为也佐证这项功能的重要性。
中文编程语言和开发环境,作为后起,需要利用各种加速积累人气的功能。库管理和分享功能看来是其中之一。
运营和筹款
这几天恰好得知一个开放项目在讨论筹资方式,觉得有些共通性,一并说说。
几年前参与过一个很特别的项目Gratipay。它的理念是不仅代码开源,而且运营决策和财务都尽量在公开平台进行。它自身的产品就是一个众筹平台,而且筹款主要通过自己的平台进行。这个公司由于种种原因未能延续,但经验教训可供借鉴。
它的创始人最后写的回顾文章在这里。注意它是曾经有过指数增长期的,但2015年有断崖事故,具体可以自行了解。下面只是我参与后的一些状况。
主要参与的是财务方面,包括预算清理、收支数据整理和可视化等等。在2016年末刚参与时,就想首先了解财务状况。账面余额之外,还需要了解支出的细节,包括办公地点租金、使用第三方服务的开销等等。于是开始了持续了几个月的整理和优化。由于都是通过网络联系,各地的参与者意见整合都使这个过程更久。下面是一些节流效果:
- 有些第三方服务并不属于必需,或者只需基本功能(更便宜的月费)
- 有些服务对开源项目有特别照顾,由于Gratipay的开源性质和历史,往往这些服务都很快通过了免费请求的申请。期间还提出了一个对这些提供”资助“的对开源项目友好的服务商进行推介的想法,可惜没有成型。
省下的经费,一部分投入了其他更需要的服务,或者对其他服务进行捐款(比如Read the Docs)。
在收支数据方面,主要是通过一个基于文本的会计软件BeanCount进行了尝试:Port to Beancount by chadwhitacre · Pull Request #35 · gratipay/finances。
简单说说在预算和收支方面的个人体会:
- 公开平台讨论运营当然有好处,但副效应就是人多嘴杂,能够干实事的在任何时候都是少数。
- 开源项目加开放运营,已经够另类和边缘。这种情况下,需要争取任何可以争取的资源,开源节流必须都要抓。很难想象这个项目开始了四年之久但除了报税之外没有非常规整的流水和定期的预算审核。
- 财务数据虽然一直打算公开,但一直没有合适的软件进行可视化,也没有与主网站进行整合,导致财务透明这一项本来非常独特也很有区别度的产品/企业特色没有起到应有的作用。
- 在筹款方面,单一倚靠众筹。原本的思路是,Gratipay这个众筹平台可供所有开源项目的作者进行众筹,而Gratipay平台本身也是自己的客户。但这就导致,收入完全依赖于众筹平台本身的推广程度。而开源项目毕竟是小众,相对于其他的众筹平台,总用户和捐款数完全不在一个数量级。创始人希望从这其中通过完全平等的身份分得一部分,而不是使用类似”收税“的方式,这也有很大的不确定性。
- 多数项目参与者都是志愿者,由于每周仅有几百美元众筹收入,除了维持服务之外,几乎没有盈余。所以多数人很长时间内都只是非常象征性的拿些”咖啡钱“,包括主创。收入分配方面,话就长了(也是一个独特之处),以后可以另说。
说回立创,对比上面第四点,通过免费版积攒巨大的用户基础,通过收费版本提供更多专业服务。一方面给出了非常明确的”为什么花这钱“的理由,另一方面收费版是通过按人/天收费,给了足够付费灵活度,更关键的是有了相对稳定的收入流(毕竟这月缴费下个月停缴的是少数)。
再说说1-3点,下面想哪说哪。
一旦选择公开运营,就要准备好应对各种不同声音,尤其是牵涉到资金使用的问题。最好一开始就建立一套比较合规的会计流程,为定期讨论预算、收支等等提供基础。
通过网络的合作有很大的延迟,各种讨论经常是等你一天,等他一天,一会就是几周过去。这对项目进度管控是很大的考验。
在GitHub这样的平台讨论有一个好处,就是随时可以@到各种相关服务/工具的开发者。比如在用Beancount的时候,就拉进了它的原作者作为顾问。这样的平台很助力交流。
开源/开放项目的最大优势,在于项目透明度,以及由此形成的相比其他平台更稳固的用户基础(因为有更高的信任度)。上面的收支情况如果公开,也可以进一步增加透明度,因此最好尽可能利用这一优势,比如把收支、盈亏情况在主页进行公示,提供链接了解更多细节等等。
团队都是志愿者的情况下,大家往往图的都不是钱(至少不是眼前的钱)。那么如何激励参与呢?包括原本的团队成员,也需要持续的动力。个人认为,一个“成果单”可以提供非物质激励,比如每月写出团队各人对项目进展的贡献(甚至包括一些代码链接)。对个人来说,可以看到一路以来对项目的投入;对其他人(包括外人)来说,也可以了解团队中其他人都在做什么。有一定影响之后,甚至可以通过公开招聘一些暑假实习生,好处是,他们的贡献都可以直接体现在这份成果单中。而成果单的公开透明也可以保证相对公正。
内部团队建设之外,与合作的第三方联系很重要。尤其是上下游合作者和服务提供商(尤其是提供了某种程度资助的),有条件的话应该借助自身平台和影响力,有忙就帮(包括在网站进行某种感谢/公示),尽量扩大企业/实体层面的朋友圈。
开源和开放,对于中文编程语言和开发环境来说,现在看来是必由之路。上面的经验教训,希望对来者有所裨益。
从立创EDA,Gratipay看中文编程开发环境和推广运营的一个趋势的更多相关文章
- 如何搭建Visual Studio的内核编程开发环境
最近正在看<寒江独钓——Windows内核安全编程>这本书,感觉这本书非常好,有兴趣的朋友可以买来看看,有关这本书的信息请参考:http://www.china-pub.com/19559 ...
- C#脱离Halcon编程开发环境使用方法
在没有安装Halcon开发程序(HDevelop (SSE2))的电脑上面编程,使C#脱离Halcon编程开发环境使用方法,除了按照Halcon与编程环境必须要做的设置步骤外,还需要做如下两个工作: ...
- 如何成为游戏的生产者——第二章:如何开始你的编程(开发环境的搭建、C++语言适应)
如何成为游戏的生产者--文章二章:怎样開始你的编程 小故事:上节说到我六年级打开了那本C语言的书,然后其实我还是没看懂.好像看懂了一些printf语句.之后遇到了史无前例的困难--怎么让代码执行起来. ...
- JavaWeb从开发环境搭建,到第一个servlet程序(图文)
## 开学到今天,已经是第三周了~ 然而这门课的教材还没发~ 滋滋滋 表示很“蓝瘦”~~~ Java Web开发环境搭建 1. 下载安装Tomcat 官网地址:http://tomcat. ...
- Cordova 开发环境搭建及创建第一个app
整理记录使用cordova创建app应用程序并将其部署至Android系统移动设备上操作过程,具体如下: 一.前期安装环境 1. 安装JDK(java开发工具包) 2. 安装gradle 3. 安装A ...
- 二、Go语言开发环境安装与编写第一个Hello World
本系列文章均为学习过程中记录的笔记,欢迎和我一起来学习Go语言. 全文使用环境如下: Go语言版本:1.13 操作系统:deepin 使用工具:Goland开发工具 Go语言追溯历史 Go语言2009 ...
- Java中文编程开发,让Java编写更改复杂
额?what? 在B站无意中看到一张图,无意间已发了自己的好奇,实际上我早就知道Java支持Unicode编码也就是可以使用中文命名规则,但是我们可以包装一下,玩一玩完全使用中文编码也未尝不可,但是经 ...
- 在开发环境中,自己搭建一个ssl环境(小例子)
做项目的时候自己总结的一些小例子 public class Test { public static void setSSLProperty() { Security.addProvider(new ...
- 我的高效编程的秘诀--开发环境的重要性(IOS)
我觉得一个好的开发环境,能够让一个开发者的工作效率提高两倍以上,也能够让一个小白看上去不那么蠢: 开发环境不是仅仅安装一个xcode这种ide就OK了,在我看来开发环境的部署范围比較广泛,以下我来说说 ...
随机推荐
- OpenCV:图像的裁剪
import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image) plt.axis('off') plt.sh ...
- 记录SqlServer安装后局域网无法连接
,如果安装的时候 已经选择 “混合模式(SQL Server 身份验证和Windows 身份验证)(M)”, 并且已经为 SQL Server 系统管理员分配了账户和密码 则不用重新配置. 配置方法如 ...
- SQL高效运行注意事项(四)
为了SQLSERVER能高效运行,SQLSERVER的磁盘子系统是一个重要的方面 Avg. Disk Sec/Read 这个计数器是指每秒从磁盘读取数据的平均值 下面的列表显示这个计数器值的范围,并指 ...
- Makefile 文件格式;makefile伪目标
Makefile包含 目标文件.依赖文件.可运行命令三部分. 每部分的基本格式例如以下: test: prog.o code.o gcc -o test prog.o code.o 当中 ...
- Centos7下的zabbix安装与部署
目录: 1.Zabbix介绍 2.LAMP/LNMP介绍 3.Zabbix安装与部署 1.Zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. ...
- css 知识点,你有可能不知道欧!
1.[定位特性] 绝对定位和固定定位,同时设置left和right等同于隐式的设置宽度. <style> span{ position:fixed; left:30px; right:30 ...
- JVM的类加载过程以及双亲委派模型详解
JVM的类加载过程以及双亲委派模型详解 这篇文章主要介绍了JVM的类加载过程以及双亲委派模型详解,类加载器就是根据指定全限定名称将 class 文件加载到 JVM 内存,然后再转化为 class 对象 ...
- Java Web 学习(5) —— Spring MVC 之数据绑定
Spring MVC 之数据绑定 数据绑定是将用户输入绑定到领域模型的一种特性. Http 请求传递的数据为 String 类型,通过数据绑定,可以将数据填充为不同类型的对象属性. 基本类型绑定 @R ...
- nginx学习(四):nginx处理web请求机制
worker抢占机制 如下图所示,如果有一个请求,各个work进程会进行争锁.谁抢到是谁的.需要注意Nginx 所有worker进程协同工作的关键(共享内存). [accept_mutex的介绍] 当 ...
- C++ int型负数除法取余问题
1:关于除法,不管是正数还是负数都是向0取整的:10/4 = 2,10/(-4) = -2 2:负数取余,通过取模来判定 |小| % |大| = |小| 符号同前 |大| % |小| = |余| ...