为什么国外程序员的创造力比中国程序员强?

news2024/12/23 15:34:50

1

川口耕介是个日本程序员,他曾在Sun公司从事Java、XML和Solaris相关的开发。

439462458ac564734e2370de2f4c9232.png

2004年,他用Java写了叫做一个Hudson的开源工具,专门做持续集成(CI)。

Hudson安装、配置、使用都非常方便,并且支持用插件的形式扩展,深受程序员的喜爱。 

2009年,Oracle 收购了Sun公司,并且打算用Hudson注册商标,进行商业开发。

以川口耕介为首的主要贡献者们不同意这种做法,他们与Oracle进行了谈判,虽然很多地方达成了一致,但是Oracle依然声称拥有Hudson商标的权利。

2011年,Hudson社区投票,把项目名从Hudson改为Jenkins继续开源。

从此,没有人关注Hudson,Oracle最后把Hudson的剩余资产捐赠给了Eclipse基金会。 

Jenkins成为开源持续集成领域的领导者,插件达到1500+,你想要的功能都能在其中找到。

c47721ae2ee55d55a58f2f2293558f58.png

讲Jenkins的故事是想说一个现象,开源的持续集成工具早在2004年就已经被国外的程序员开发出来了。

实际上,还有一个更早的,叫CruiseControl,ThoughtWorks 于2001年已经发布了。

2004年的时候我不知道大家在干嘛,我刚入行,还在用ASP、JSP、Applet这些古老的技术写网页,J2EE就是最先进的技术,刚听说过敏捷软件开发,根本没有做过持续集成,因为每次发版本都是手工Copy的。

写《Borland传奇》的李维受机械工业出版社邀请,在国内做了一次演讲,当他讲到O/R Mapping的时候,问台下有多少人用过,几乎没有人举手,因为很多人还在用JDBC,ADO去访问数据库。

当时中国做不出Hudson、CruiseControl很容易理解,那时候真是落后啊。

国外互联网起步早,的确有先发优势。

不过,反正有开源的、强大的Jenkins,直接用就好。

2

随后十几年,国内的互联网就开始狂飙突进,诞生了几大巨头,外加一批独角兽。

国内的IT技术水平和国外基本保持同步,由于人口基数庞大,大流量,高并发,分布式等技术有更多的应用场景,使用反而更加广泛。

2012年左右,出现了一个颠覆性的技术:Docker。 

应用程序的开发、测试和部署被彻底改变。

3324a40663bfc1138e888c303e38f8b5.png

在使用Docker上,我们和国外基本上是处于同一起跑线的。大家都在热火朝天地在项目中采用Docker,各种文章、最佳实践,演讲层出不穷,铺天盖地。

但是,我们似乎都停留在使用层面,没人想到把Docker和持续集成关联。

美国有个叫做Brad Rydzewski的小哥,在GE工作了八年,对企业技术需求非常了解,他想做一个PaaS平台,把Heroku引入企业开发。 

9973114bcb64e0830c39347cbcf74442.png

于是他从GE辞职,去参加Y Combinator 这样的创业训练营,但是并没有成功。

在开发自己平台过程中,他使用了Jenkins,意识到用起来还是太复杂了。于是他就把重点转向了构建一个更加易于使用的CI产品。

这时候,他想到了Docker。

经过四个月全靠咖啡支撑的疯狂编程,他开发了一个基于Docker的持续集成工具,把持续集成的各个步骤放到各个Docker容器中去执行,持续集成一下子变得清爽了好多。

2014年,Brad Rydzewski把产品开源,写文章到HackerNews宣传。

结果出乎意料,在两天的时间内就收到了2500个GitHub star,随后,Pull Request 从HP, VMWare, Google, and Pivotal源源不断而来。

这个工具就是著名的Drone。 

无数的赞誉铺面而来:

哇,这就是我梦想的容器化的CI。

Drone  vs  Jenkins 就像 IntelliJ vs Eclipse

有了 Drone,我们终于可以抛弃 Jenkins!

Drone成功以后,Google也推出了基于Docker的开源CI Tekton,即使是CI的老大Jenkins也要拥抱云原生,在Tekton之上构建新的Jenkins X。

8a7036fbd09ea845a05f9e373fb295e5.png

在云原生时代,在CI这个细分领域,美国人又跑到了前面。

3

Docker是革命性的创新,美国人积累深厚,他们先搞出来,可以理解。

Drone是改进性的创新,用Docker改进了CI,此时中国互联网业发展火热,中国程序员的技术能力肯定也能做到,为什么这样的创新没有率先发生在中国呢?

是国内的程序员想不到吗? 这么多人在使用Jenkins,肯定也像Brad Rydzewski一样感受到了Jenkins的不爽之处啊。

但是没有人率先迈出用Docker的这一步,也许我孤陋寡闻了,但我确实没有看到国内率先做出像Drone一样的产品,并且对云原生的CI 产生了重大影响。

难道是习惯了一个工具,对它的问题也麻木了?是不擅长打破常规,做跨领域的创新?

是我们更喜欢在别人创造的产品上改进?根本不想去搞创新? 

是天才程序员们被现实巨大的生活压力压迫,被无尽的需求折磨,没有时间,没有精力去创造一个新东西?

是多年的应试教育扼杀了个性,考试天下第一,一旦进入开放性领域,就不知道该怎么办了?

......

点击下方图片,查看更多精彩

2bbbd96bb66fd8f7d47433c10cb8e789.png

8b510e8909e965ee52fd426e44d005ee.png

061df200fea41ef78fa5ddafdc6d9c54.png

f03198ca5cc8127e06b26ca973913bab.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有求必应 | 听说这个管线排布,横竖都行?

大家好,今天还是被 yi 情反复拿捏的建模助手。 拿捏归拿捏,企微客服还是很认真得在给大家答疑解惑记bug,刚好有求知若渴的盆友问到管线排布这个角度,是否能有小数点,比如1.2,或者0.8。 对待此类问题&#x…

无线传感器网络:排队论(Queueing Theory)模型

文章目录The arrival ProcessQueueing SystemThe M/M/1 queueThe M/M/1/N queueReferences排队理论已被用于评估通信网络的性能很多年了。早在1917年,丹麦数学家 Erlang 就将该理论用于电话交换机的设计,并开创了现在著名的 Erlang-B 和 Erlang-C 公式&a…

DevData Talks | 知乎艾辉:从工具建设到运营,千人团队研发提效最佳实践

在千人级别的组织层级提升研发效能,是一种什么体验?可以确定的是,千人级组织的效能提升,并不是百人级团队的等比放大。 在数十人乃至小百人的团队,统一规范研发工具与流程的门槛相对较低,参与方也比较简单…

07 索引

1.索引 概述 1. 简介 索引是一种帮助数据库高效获取数据的数据结构;通过索引可以快速获取到符合条件的数据的内存地址,避免全表扫描 2. 索引的优缺点 优点: 可以快速地检索数据,降低数据IO成本通过索引可以对数据进行排序&…

jenkins 共用宿主机中的docker自动化部署

目录 第一节 jenkins 共用宿主机中的docker自动化部署 1.docker命令安装启动jenkins 2.查询jenkins内是否可以执行宿主机中的docker 第二节.jenkins 配置自动化部署 1.界面配置 1.配置mave 2.配置gitee 第三节 创建springboot多模块项目 1.相关配置 1.pom 2.编写docke…

【面试题】作用域和闭包

1. 作用域 作用域是指变量的合法使用范围。 例如下图中,函数fn3内定义的变量a3,无法在函数fn3以外的区域使用。 作用域分为全局作用域,函数作用域,块级作用域(ES6新增) 全局作用域:变量没有受…

HTML+CSS+JS个人网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

MYSQL索引数据结构----B+树

索引数据结构的考量 我们在考虑数据结构的时候,应该首先要知道数据存放在哪里? 而MYSQL的数据是持久化的,所以其数据(数据记录索引)应该是保存在磁盘里面的。因此当我们要查询某条数据记录时,就会先从磁盘…

[附源码]计算机毕业设计JAVA某城市参军和退役军人信息管理系统

[附源码]计算机毕业设计JAVA某城市参军和退役军人信息管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xff…

一文理解Linux的基本指令(三分钟学会Linux基本指令)

前沿: 本文小马将把Linux一般比较常见的指令给大家一一列举出来,为了大家忘记某些指令后,可以方便查询记忆,再次小马建议,Linux指令并不需要去特别花时间专门记忆,只需要多进行操作实现就行! &a…

算法图解学习3 选择排序

random recording 随心记录 What seems to us as bitter trials are often blessings in disguise. 看起来对我们痛苦的试炼,常常是伪装起来的好运。 选择排序 内存工作原理 背景引入 假设你去看演出,需要将东西寄存。寄存处有一个柜子,柜子…

Go | 函数注意事项

细节汇总 函数的形参列表可以是多个,返回值列表也可以是多个形参列表和返回值列表的数据类型,可以是值类型、也可以是引用类型函数的命名遵循标识符命名规范,首字母不能是数字,首字母大写表示该函数可以被本包文件和其它文件使用…

在线就能设计电商主图的智能平台工具

商品要上新要如何设计新品主图?想设计简约分的主图素材在哪?下面小编教你使用这个在线工具乔拓云,工具内包含了设计主图用到的所有工具,还有海量的电商模板以及免扣素材,都是可以直接使用到主图设计中,不需…

Linux中线程的介绍

目录 一.线程概念 1.什么是线程 二.Linux进程与线程 三.pthread库 3.1线程创建 3.2线程等待 3.2线程终止 3.4分离线程 四.线程ID及进程地址空间布局 一.线程概念 1.什么是线程 1.在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是&…

2022亚太杯建模B题思路 : 高速列车的优化设计 小美赛数学建模 B题思路

1 B题:高速列车的优化设计 2022年4月12日,中国高铁复兴CR450多机组成功实现单列列车速度435 km/h,相对速度870 km/h,创造了高铁多机组列车穿越明线和隧道速度的世界纪录。新一代标准动车组“复兴”是中国自主研发的具有全知识产权…

外贸线上推广引流的技巧

外贸网站建成后,很多外贸企业通常会面临一个重要的问题。网站装修和产品布局都很漂亮,但是流量很小。由此可见,外贸网站的引流推广是非常重要的。接下来,米贸搜给大家分享一些外贸网站引流推广的技巧,让网站快速获得流…

浙里办微信小程序上架

一、概述 本指南旨在为“浙里办”单点登录组件提供接入指南,“浙里办”单点登陆组件,上架在IRS,为上架在IRS的应用,提供统一的单点登录解决方案,现阶段仅支持微信端的接入。 二、服务创建 IRS 应用管理员在 IRS 应用…

Kali系统MSF模块暴力破解MySQL弱口令漏洞

一、实验环境 1.攻击方: 攻击环境使用KALI系统(使用虚拟机搭建)的Metasploit模块,msfconsole是metasploit中的一个工具,它集成了很多漏洞的利用的脚本,并且使用起来很简单的网络安全工具。 这里要特别强…

代码随想录64——额外题目【哈希表、字符串】:205同构字符串、1002查找常用字符、925长键按入、844比较含退格的字符串

文章目录1.205同构字符串1.1.题目1.2.解答2.1002查找常用字符2.1.题目2.2.解答3.925长键按入3.1.题目3.2.解答4.844比较含退格的字符串4.1.题目4.2.解答4.2.1.使用栈4.2.2.从后往前双指针1.205同构字符串 参考:代码随想录,205同构字符串;力扣…

MySQL数据库的索引

文章目录一、索引是什么?索引的作用二、索引的使用查看索引创建索引删除索引三、索引的底层一、索引是什么? 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型&#…