MySQL 创始人:写代码比打游戏爽,程序员应多泡开源社区

根据StackOverflow的最新调查,MySQL仍然是全世界最流行的数据库,受访的开发者中有44.3%的人在使用,超过了第二位的SQL Server 10多个百分点。可是你知道MySQL是怎么诞生的吗?openocean 的一篇有关MySQL开发者Michael “Monty” Widenius的传记为我们揭秘

大学计算机专业的数量总是会随着技术公司的兴衰而起伏,而现在,计算机科学正处在全盛时期。这意味着,不管怎样,计算机科学专业的毕业生绝大部分可能都会去敲2年的代码,再转到产品管理,然后过渡到企业、创业或者商学院,接着再转为既有公司的中层管理,32岁的时候结婚,有了2个孩子,一个儿子,一个女儿,一条狗,还有一栋2层的漂亮房子。对于大多数人来说,成为程序员就是一份朝九晚五的工作,一份有保障的6位数薪水来偿还高昂的学费,一种达到目的的手段,没人应该为此受到责备。但对于千千万万无论好坏的程序员来说,只有一个Monty Widenius。

Monty是一位编程天才。19岁的时候,他从赫尔辛基理工大学辍学开始全职工作,因为大学已经没有什么东西可以教他了。在独自一人写完除了一个库以外的全部代码之后,33岁时,他发布了MySQL,后来后者成为了全世界最流行的开源数据库。55岁时,他藐视着对老年人的歧视,仍然是自己公司最好的程序员。

Monty1962年出生于赫尔辛基,1978年他用暑假铺沥青挣来的钱买下自己的第一台个人计算机的。Monty迅速意识到自己相当擅长写代码——对于别人来说很复杂的事情他却觉得很简单,而且他对工作非常投入。Monty用一种在讲瑞典语的芬兰人中常见的浓厚口音说:“基本上这就像是在阅读一本真的非常非常好的书。或者像在玩视频游戏。你知道开始玩游戏然后嘣一声3小时的时间就过去了的那种感觉吗?写代码对我来说就是这种感觉。”

当别人跑去聚会的时候,Monty却呆在家里编程。他把计算机从里到外都摸透了。他把BASIC的能力推到了极限。Monty说:“学校并不理解编程不是像语言或者历史这样的东西,它不是靠学就能学来的。所以学校是不够的。拔尖的黑客是万里挑一。他们奉献了所有能用的时间,10小时,16小时,每一天,年复一年周而复始。大多数人都不愿意做这样的事情。大多数人宁愿好好生活。”在Monty眼里,好的代码是写过一次就永远不需要再碰的那种。从性能角度来看它已经是最优化了,你可以不断增强,但永远都不需要重写。

到1980年,17岁的Monty痴迷编程已经无法自拔,他需要把自己计算机的内存从8KB扩到16KB。由于芬兰没有商店卖他想要的东西,于是他弄了一条船去到瑞典Allan Larsson的计算机商店。通过Allan,Monty结识了David Axmark,三人沟通交流了多年,就各自项目互相帮忙,偶尔也会一起协作。1995年,他们一起成立了MySQL AB。Monty负责编程,David和Allan负责干完其他的事情。自1981年以来,Monty就一直以芬兰公司Tapio Laakso Oy程序员的身份在写MySQL前身的代码,他和Allan一起创办的数据仓库公司也要用到那个东西。然而,知道1995年,在Allan和David的游说之后Monty才决定在他写的东西之上增加一个SQL层。1996年10月,MySQL终于发布了,它得到了广泛的欢迎。MySQL快速、可靠并且易学,这主要是因为在多年的开发中Monty总是不断把正是客户的反馈整合进来。

MySQL的初衷是存储和管理大数据。如果有人想要跟踪不同的数据点,他们互使用数据库,也就是有点像微软Excel那样的东西。然而,随着数据变得越来越大,查找Excel这样的数据库就会变得慢多了,也不再可靠。MySQL有能力存储大量数据,并且返回搜索结果极其迅速。“My”来自Monty女儿的名字,而“SQL”就是结构化查询语言(Structured Query Language)的意思,是一种跟数据库沟通的语言。

对MySQL开源的决定出自1985年的另一次芬兰到瑞典的乘船旅行,这一次是在一场开源大会上。Monty说:“讨论没花多少分钟。我们都希望回馈给开源社区一点东西。哪怕有人想拷贝或者偷盗我们的代码,我们认为自己能挣的钱也不会比现在少。”开源项目使得开发者社区帮助把软件做得更好,但从商业角度来看不好的是货币化就要困难多了。为了避免这一点,Monty补充了一个条款,那就是如果任何企业用MySQL来赚钱的话,就需要付费授权。对此MySQL的代码里面并没有进行任何限制,但就靠这一荣誉制度MySQL实现了扩张并开始赚钱。Monty说:“我认为开源是开发软件的更好方式。但你仍然需要赚够钱来招聘员工,成立公司去跟闭源社区竞争。MySQL是第一款做到这一点的产品。”

Monty在MySQL AB的职位是CTO,对于大多数成熟的公司来说,CTO其实已经很少再编程的了。然而,Monty从未停下来过,他的绝大部分时间都是在写代码。这种(很少管理的)做法会导致很多晚期阶段初创企业内爆,但哪怕公司人数已经达到550人,Monty在MySQL AB建立的独特文化也使得他可以避免天天开会的烦扰(事实上,Monty甚至都不接受议事日程邀请)。Monty说:“我总是招会自动驾驶的人进来。所以我不需要告诉他们太多东西。而开源意味着你有开源社区,大家会给你提供代码,你可以看看那些代码的质量,看看他们是怎么跟社区互动的,跟你是怎么沟通的,他们会问什么问题,在这些情况下很容易就能看出一个人是好是坏。在一次面试里面是很难了解清楚编码者有多好的。”

MySQL的成功是CTO Monty与CEO Mårten Mickos通力协作的结果。两人能力都很强且对公司非常重要,但方式不一样。Monty是技术专家,专注于员工生产出尽量完美的代码。Mårten是公司建设者,专注于交付东西并帮助团队发展。正是两人的联合愿景制造出了MySQL。但在一家没有免费洗衣、免费午餐、站立办公桌的公司里,是Monty的个人魅力吸引住了变成人才。Monty不是好交际的筹资人,讨好别人的人,博弈论大师,或者职业沟通者。他会写代码,而且写得很好。在Monty看来赢得开发者尊重是很简单的事情:“你干的是跟他们一样的事,而且干得更好。”

Monty给程序员的建议是,参与到开源社区去,花些时间到个人项目里面(“这些年来我开发了成百上千个程序:MySQL是其中被用得最多的一个,但其他的都只有我自己用。”)。他警告说,改变环境和代码库将意味着哪怕是最好的程序员也要去了解一堆的东西。在Sun被Oracle收购之后,Monty成立了MariaDB,这是MySQL的一个社区版的分支,开发的团队成员很多都是MySQL团队里面的,使用的也是一样的官方语言:“蹩脚的英语”。MySQL的许多热心的开源信徒跟着Monty去到了MariaDB。MariaDB更加面向开发者,允许由外人打补丁这样的事情发生,在很多Linux发行版中它都是默认的数据库。

Monty对开源和开发者的承诺是坚定的——OpenOcean原先是Monty用自己在MySQL的所得成立的,使命是投身于开发者驱动、有技术深度的产品。他仍然在赫尔辛基自己家中主持开发者午餐,很快OpenOcean就将推出一个Slack频道让开发者可以直接向Monty提问。在几十年的时间里,Monty对塑造开源社区无私的形象做出的贡献无可争议的。但这里面大部分的功劳都应该归到成千上万无名的程序员和黑客身上,是他们投入的时间和能力造就了开源的繁荣,也是这批人才能确保开源革命的继续。

稿源/编译:36Kr

原文链接:https://blog.openocean.vc/founder-stories-a-hackers-hacker-6d5054c90564

小编有话说:

国内最好的开源社区是哪?当然是开源中国啦!想玩最地道的代码,码云绝对是不二之选。一起耍起来吧!!

http://www.oschina.net/news/88380/mysql-cto-founder-stories

时间: 2024-10-12 09:17:18

MySQL 创始人:写代码比打游戏爽,程序员应多泡开源社区的相关文章

像写诗一样写代码,玩游戏一样的开心心情,还能领工资!

[软]上海-Qt侠 2017/7/12 16:11:20我完全是兴趣主导,老板不给我钱,我也要写好代码!白天干,晚上干,周一周五干,周末继续干!编程已经深入我的基因,深入我的骨髓,深入我的灵魂!当我解决一个程序问题,比别人玩王者荣耀拿了第一名还开心!你要想想,能干自己感兴趣的事情,像写诗一样写代码,玩游戏一样的开心心情,还能领工资!真他妈爽!没有比这个更爽的事情!

写给在迷茫期的程序员(尤其是Java程序员)入行了一年,感觉不知道接下来该怎么做才能继续进步了,求指教

入行了一年,感觉不知道接下来该怎么做才能继续进步了,求指教(V2EX) @kafka0102 :做技术可以学的东西太多了,只是在不同的阶段做好不同的规划,要结合当前所做的事情去做更深入或广度的学习.以Java Web开发为例,至少可以拓展的点有: 1.Web框架的原理学习,比如Spring.Play等等,最好自己能写出个简易的MVC框架(几千行代码).这样至少对常用设计模式.反射等技术很熟练了. 2.优秀代码研读.比如Java集合类.JUnit.Spring等源码,写出源码分析,会有很多收获.源

写给即将入行的程序员的一封信

首先,欢迎来到程序员的世界.在这个世界上,不是有很多人想创造软件并解决问题.你是一名hacker,属于那些愿意做一些有挑战性的事情的人. 当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题. 对于下面的文字你不必完全接受,所有这些来自一个其貌不扬的程序员.我喜欢把事情做到最好,而不是对原来的东西修修补补. 仅仅是因为爱好开始做一些创新,这是一个很好的开始!如果你说我要先学习一下再开始做那么你永远不会真正开始.每个人都需要从某个地方开始,所以现在打开你的编辑器开始写代码吧. 下面是一些很重

如何写一份优秀的java程序员简历

背景:进入第一家公司已经工作将近两年了,其中闲了一年,在准备自己的简历的时候,有种江郎才尽的感觉,不知道怎么写,看来平时还是要多积累多熟悉. PS:这里面的分享看完还是很受用的. 简历看得比较认真的,也不会多于30秒,实在纠结的,也不会纠结多余1分钟.目前来说,大部分都是网站式的录入简历,基本上都是一个样子.总会有人说,那么我上传附件简历可以吗.你觉得大部分的HR会下载吗? 如果一定要我评价一份电子版简历的排版,那我唯一的要求是简洁大方,标点和分段正确,整篇简历除照片外不多于2种颜色,能让人看明

写代码:制作趣味模板程序

# 制作趣味模板程序# 需求:等待用户输入名字,地点,爱好,根据用户的名字和爱好进行任意显示# 如:敬爱可爱的XXX,最喜欢在XXX地方干XXX username = input("Please enter your name: ")address = input("Usually address for your hobby: ")hobby = input("what kinds of hobbies do you have: ") prin

高效程序员系列(保持写代码的动力)

话不多说,直入正题. 做任何事情都需要动力,只是对于程序员来说,拥有写代码的动力至关重要.程序员不同于会计.出纳等,这些职业所做的事情基本上都是重复的,就像平坦大路上行驶的车辆,并不需要提供很大的动力就能保持前进.程序员所做的事情恰像上坡路上的车辆,需要提供较大的且持续的动力才能保持继续前进.如果在开发一个项目的过程中,工程师不幸失去了动力,多半情况下项目就会半途而废,及时侥幸完成了,那么项目的完成质量值得担忧. 如何才能够在开发的过程中获得持续的动力呢? 程序员在开发的过程中,会遇到各种问题,

为什么程序员喜欢深更半夜写代码

版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 程序员自己也常说,工作效率最高的时候总是在深夜,不是凌晨还在写代码就是凌晨爬起来写代码. 深夜之所以工作效率高是因为不易分心,额!其实仔细想想晚上和白天并无多大区别,但程序员们也总是有自己的理由,大致分为一下三点. 1.生产型时间表 记得曾看过一篇关于时间表的文章,他们把时间基本分为两类:管理型和生产型时间表,所谓的管理型时间表是把一天的时间分成每小时来安排,就算是有别的事打扰到你也只是浪费了这一点时间. 而生产型时间表就不一样了,这段时间

40 岁了还在写代码,是一种幸福,还是一种悲哀?

天光,一檐停风聚天下闲士 半阁藏卷窃古今名家 马上就40了,依然在写代码,写各种代码,从C/C++写到object-c,从java写到lua,乐在其中,享受得很. 当然,我现在基本不是依靠写代码挣钱谋生,事实上,我也几乎也没有纯粹依赖过写代码谋生过.写代码只是一种乐趣,一种爱好. 当然,难道是写代码谋生就一定是痛苦的吗?也未必. 公司有两个同事,都是非常棒的程序员,也是成熟的架构师,一位是77年的,一位是78年的,他们主要的工作内容都是写代码,他们也都乐在其中,事实上,如果不出意外,他们能够在公

分享:40 岁了还在写代码,是一种幸福,还是一种悲哀?

马上就40了,依然在写代码,写各种代码,从C/C++写到object-c,从java写到lua,乐在其中,享受得很. 当然,我现在基本不是依靠写代码挣钱谋生,事实上,我也几乎也没有纯粹依赖过写代码谋生过.写代码只是一种乐趣,一种爱好. 当然,难道是写代码谋生就一定是痛苦的吗?也未必. 公司有两个同事,都是非常棒的程序员,也是成熟的架构师,一位是77年的,一位是78年的,他们主要的工作内容都是写代码,他们也都乐在其中,事实上,如果不出意外,他们能够在公司里继续留下一起合作,我想他们会一直写代码写到