三个顶尖程序员,居然过得这么惨!

01

三个顶尖程序员

第一位,Jordan Harband

9699f08e2e3355200071900232c3c774.jpeg

Jordan是JavaScript 规范贡献者,他开发了众多开源小项目,例如Query String解析器qs,用于操作和查询ECMAScript规范摘要的JavaScript库es-abstract等,数量有上百个,这些项目在npm下载中占流量的5%到10%。

曾经在Airbnb、Twitter、Coinbase等公司工作,2022年被Coinbase解雇,健康福利保险也随之到期。

他说:如果我找不到全职工作,就必须自己缴保险,对于为如此多的公司提供经济价值的人来说,不应该有这种压力......我不能将所有的时间都花在开源项目上,这会扰乱我的生活和家庭。

第二位,Josh Goldberg 

203592ff9d667d47213d3ec91e3db68b.png

TypeScript 社区知名人物,typescript-eslint作者,《Learning TypeScript》的作者,微软MVP。

2022年3月成为独立的全职开源程序员,他对收入的期待是这样的:

2022年:达到纽约最低工资标准(每年3.5万美元)

2023年:达到纽约可维持生计的工资(每年6万美金)

2024年:达到基本的软件工程师收入水准(每年10万美金)

在他的GitHub主页上,能看到热心人的赞助,真心不多。

a4b70db72b769461d9ec0ab97d89bb02.png

第三位,Caleb Porzio

727ed130997ea6aee18ceb60d6ccf407.jpeg

著名开源项目Laravel Livewire和AlpineJS的作者,Livewire 让程序员能够使用PHP、Laravel 和Blade 编写高度交互式的Web 应用程序,无需再向客户端JavaScript 框架低头。

对于这两个项目,Caleb Porzio觉得非常烦恼,他已经辞去了年薪9万美元的工作,把所有的时间都花在了这些开源项目上,但是没有任何收益。

项目一旦开源,就意味着永远免费维护,如果对软件包收费,会严重限制软件的使用和增长,可能赚不到多少钱。自己也从开源中受益匪浅,设置付费墙有点不妥。

这三个人都是开源社区顶尖的程序员,如果连他们都过得这么惨,没有办法从开源中赚到钱,那其他人就更难了。

难道只有那些大的开源基金会可以拿到钱,而个体开源开发者只能增加自己的履历,让自己的简历更好看一些吗?

02

开源赚钱

开源社区还是有人赚到钱的。

刚提到的Caleb Porzio,他就想了一个新路子:专门为那些赞助自己的人开发软件,当赞助商达到一定数量以后,将软件完全开源,让所有人使用。

这个点子似乎不错,作者可以赚钱,赞助商可以立刻获得价值,项目未来的潜在增长又不受限制。

果然,两天之内,他就有了75位赞助商,月赞助收入就达到了1560美元。

当然,他也用了一些小技巧:在讲解这些开源项目的视频中,把基础的视频设为免费的,当用户想看那些高级的视频时,就需要成为“赞助商”了。

4a68a17361994aeddc329227b7265282.png

用这种办法,到了2020年6月,年赞助收入达到了11.2万美元,已经超越之前的工资了。

c29c2bd63cc155a6dbeaabb112a05c70.png

到2024年8月,他的赞助费收入达到了100万美元!

38a3a1eb4f99d883d60039eb5b738e11.png

另外一个程序员Filippo Valsorda,他是一个安全专家,之前在Google 的 Go 团队负责 Go 安全相关工作。

310217595cd59d0ce2b19987b3dca128.png

Filippo维护 Go 标准库中的加密软件包 (crypto/… 和 golang.org/x/crypto/…) ,其中包括 TLS、SSH 、RSA 等重要功能。他还开发和维护了一套加密工具,包括文件加密工具age,开发证书生成器mkcert,以及SSH代理yubikey-agent。

Filippo也看到了开源的弊端:开源软件主要是由志愿者或者公司员工来维护的,前者没有收入,很容易懈怠,后者由于公司的限制,可投入的资源不会随着开源项目的成功而扩展,最终导致团队精疲力竭。

他离开了Google,成为了一名全职的、独立的开源维护者,打算为开源维护者找到一条可持续发展的道路。

Filippo的想法是:对那些深度依赖自己开源项目的公司,提供长期的、深度的服务,这些服务包括:

(1) 帮助公司使用全新的功能

(2) 帮助开发人员正确地使用API

(3) 帮助公司解决废弃的API问题

。。。。。。

利用这种办法,2023年Filippo和6个公司签署了服务协议,收入基本上达到了在Google的水平。

9671d6eb36523c3c2e3f4317c49d5509.png

03

开源承诺

除了这些个体努力之外,Sentry公司的Chad Whitacre发起了一个叫做“开源承诺”(Open Source Pledge)的运动,希望能改变开源维护者的悲惨境地。

这个运动的目标非常简单:根据公司使用开源项目的情况,向开源维护者捐款。

但是公司使用的开源项目可能很多,到底怎么捐款呢?

按人头捐款!

例如你的公司有10个全职开发人员,那么你每年应该至少捐赠10*2000 = 20,000美元。

至于要捐给哪个项目,由公司自主选择,每年发布一篇博客文章描述下捐款情况。

开源承诺运动发布以后,有27家公司加入,作为发起者,捐款最多的也是Sentry公司。

Sentry有129名工程师,2024年捐赠了75万美元,相当于每个工程师的预算是5813美元,远超2000美元的标准,相当良心。

db81f3d6d688b1bf0275b52108a81ec0.png

这75万美元有近30%捐给了这些大项目:

9dfe56f708fd4d5d92e7d96201b77e2d.png

其他的50多万美元则通过Thanks.dev和GitHub Sponsors 分配给了更小的项目和个体开发者。

“开源承诺”运动刚刚发起了一个多月,目前的20多个成员都是规模很小的创业型公司,它们本身就是以程序员为主,与开源项目高度契合。

2758e0618ae62ad3af248fdaa7fc4776.png

Chad Whitacre希望把这个活动坚持下去,他说“五年后那些大公司,如微软、谷歌和 Facebook 都会加入进来”。

只有这些大厂加入,把它们利用开源软件赚到的钱反馈出来,开源维护者的收入情况才真的能改善,才可以把开源开发作为一项长久的职业。

那些大公司会加入吗?我很怀疑。

大厂人数众多,动辄10万,20万,按75%的研发人员比率算,参与开源承诺每年需要付出的分别是1.5亿美元和3亿美元,这可不是一笔小数目。

这么一大笔钱发出去,短期没有丝毫商业利益,只能得到一个好名声,那些公司会好好算这笔账的。

“开源承诺”未来会怎么样,我们拭目以待吧!

全文完,觉得不错的话点个赞或者在看吧!

近期爆文

世界上最幸福的程序员

世界上最厉害的协作软件,让程序员痛不欲生,最后被印度人搞走了

1970年以来技术的发展趋势,怪不得程序员35岁就被裁......

这个大学生写了个免费软件,全世界网民抢着给他送钱,每月10万美元

全世界流浪的程序员,用最原始的技术,每月赚17.6万美元!

开源软件的叛徒,加入了微软

这两个程序员要花100万,彻底重写世界上最复杂的软件

被哈佛扫地出门,他发明了让无数程序员痛不欲生的编程语言,获得了计算机最高奖!

这两个大龄程序员,打算搞垮一个世界软件巨头!

AspNetPager7.2分页控件及Demo源码 分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,而且有时候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将分页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现分页导航功能的地方,如为GridView、DataList以及Repeater等数据绑定控件实现分页、呈现自定义的分页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要分页的数据可以来自任何数据源,如SQL Server、Oracle、Access、mysql、DB2等数据库以及XML文件、内存数据或缓存中的数据、文件系统等等。 AspNetPager 7.2 版发布 新增属性 PagingButtonLayoutType,可设置分页导航元素(数字页索引、上页、下页、首页和尾页)的布局方式,该属性值是一个PagingButtonLayoutType枚举,通过设置该属性为PagingButtonLayoutType.UnorderedList或PagingButtonLayoutType.Span,允许将这些分页导航元素包含在 与或与标签之间,以便于为这些分页元素应用CSS样式。 新增 PagingButtonClass 与 PagingButtonStyle 属性,可以单独为分页导航按钮(数字页索引、上页、下页、首页和尾页)设置CSS样式; 新增 FirstLastButtonClass 与 FirstLastButtonStyle 属性,可以单独为首页和尾页分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则首页和尾页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增 NextPrevButtonClass 与 NextPrevButtonStyle 属性,可以单独为上页和下页分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则上页和下页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增 MoreButtonClass 与 MoreButtonStyle 属性,可以单独为更多页(...)分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则上页和下页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增属性 ShowMoreButtons ,可以指定是否显示更多页按钮; 新增属性 CurrentPageButtonPosition ,可设置在每次分页后,当前页数字索引在所有的数字页索引中的显示位置,该属性值是一个PagingButtonPosition枚举,对应的值及说明如下: Beginning:当前页数字索引总是显示在所有数字页索引的最前面; End:当前页数字索引总是显示在所有数字页索引的最后面; Center:当前页数字索引总是显示在所有数字页索引的中间; Fixed:默认值,固定不变; 控件的CssClass属性仅应用于控件的窗口元素(div),将不再应用于下属分页元素; 废止属性CenterCurrentPageButton,可以用CurrentPageButtonPosition属性取代; 修改CurrentPageIndexn属性,允许在程序中任何地方以编程方式设置CurrentPageIndex的值来动态指定当前页,直接设置该属性的值时将同时引发PageChanging和PageChanged 事件,实现和点击分页按钮一样的分页功能; 修正了7.1版中设置SubmitButtonImageUrl属性后,Postback回发分页方式情况下点击数字页索引按钮不引发分页事件的bug; 修正了使用Url分页时,如果页面上没有服务器端form控件时无法注册客户端脚本的bug,从7.2版起如果使用Url分页并且ShowPageIndexBox属性没有设置为Never时, AspNetPager控件必须放在 与 标记之间,若使用Url分页并且ShowPageIndexBox为Never时,页面上可以不使用服务器端form控件。 AspNetPager的主要功能: 1、支持通过Url进行分页: AspNetPager除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户通过在浏览器地址栏中输入相应的地址即可直接进入指定页面,也可以使搜索引擎搜索到所有分页的页面的内容,因此具有用户友好和搜索引擎友好的优点,关于Url分页与PostBack分页方式的差异,请参考Url与PostBack分页方式的对比。 2、支持Url分页方式下的Url重写(UrlRewrite)功能 Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url格式,实现Url重写; 3、支持使用用户自定义图片做为导航元素: 您可以使用自定义的图片文件做为分页控件的导航元素,而不仅仅限于显示文字内容。 4、功能强大灵活、使用方便、可定制性强: AspNetPager分页控件的所有导航元素都可以由用户进行单独控制,从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件,AspNetPager只需要编写短短几行代码,甚至无需编写任何代码,只需设置几个属性就可以实现分页功能。 5、增强的 Visual Studio 2005/2008设计时支持 增强的设计时支持使控件在设计时更加直观,易于使用,开发快捷方便。 6、兼容IE6.0+及FireFox 1.5+等浏览器 7、丰富而完整的控件文档和示例项目: 控件附带的完整的帮助文档及示例项目能够帮助您快速上手,熟悉AspNetPager控件的使用,您还可以通过给作者留言以及论坛提问等方式解决控件使用中遇到的问题。 AspNetPager72Src下为AspNetPager组件源码 作者:webdiyer
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值