编程语言与思维:科技公司如何自我重构?

当日本计算机科学家松本行弘决定创造一种名叫 Ruby (这种技术支撑了 Twitter、Hulu 以及其他许多现代 Web 流行网站) 的程序语言时,他是从 1966 年一部名为 Babel-17 的科幻电影中获得了灵感。这本书主要讲的是一种新发明的语言能够让那些使用它的人升级自己的头脑思维。“Babel-17 是一种极精确的分析语言,几乎可以确保任何情况下的技术优势。”影片中的主人公有这样一句台词。通过发明 Ruby,松本行弘希望实现同样的效果:重编并改进程序员思考的方式。

这目标听起来很宏大,但他的想法是一种主流。软件开发者做为一个工种,普遍认为程序语言对于思维有影响力,大到足够可以改变你解决问题的方式——甚至是你选择解决哪些问题。这也是他们如何扩大公司规模、改进产品、招聘团队的方式:“你用什么编程语言?”

明白这一点能够让圈外人了解软件公司的运作,尤其是在它们变得如此强大又赚钱,制造的产品和服务进入我们生活各个角落的今天。如 果你想知道为什么 Facebook 的外观和工作方式是现在这个状态,Facebook 未来能为我们或对我们做什么,你就需要知道一些关于 PHP 的知识,因为这是马克•扎克伯格 (Mark Zuckerberg) 最初打造 Facebook 使用的程序语言。

在 程序员当中,PHP 可能是所有编程语言中最不被“仰视”的一种。有人在博客文章里评价其为“糟糕的设计”,而那些愿意使用 PHP 的人则被看作是业余选手。“有这种传奇的事,那些去 Facebook 工作的顶尖工程师,他们在 Windows XP 上写 PHP 代码,”程序问答网站 Stack Overflow 创始人杰夫 (Jeff Atwood) 说道,“他们可是那种毁三观级的黑客。”在近 10 分钟的谈话中,杰夫用如下的词语描述 PHP:“一个消瘦的怪兽”,“一场大瘟疫”,一个鬼屋里的住客爱上了幽灵。

大 部分得到承认的程序语言都有一个总体的设计哲学或是指导原则,用来组织关键字和语法——也就是交给程序员使用的指令集合——并形成一个逻辑上的整体。 PHP 没有。其设计者 Rasmus Lerdorf 主动承认他当初是东拼西凑的。“我不知道该怎么停止,”2003 年他在接受一次采访时说到,“我根本不知道要如何写一个程序语言——我只是一边用一边增加新的逻辑模块。”

程序员最 爱用的一个例子是 PHP 函数“mysql_escape_string”,该函数能够将一段混合字符剔除掉之后再提交数据库。(混合字符的例子可以参考一般网站会要求你输入电邮 地址之类,黑客能够嵌入一段代码,从网站获得你的密码。) 当这个函数的一个漏洞被发现时,一个新的版本出现了,叫做“mysql_real_escape_string”,但是原有的版本并没有被替换。这种结果 就好像在飞机驾驶仓上有两个外观接近的按钮并列排放一样:一个用来把起落架放下,另一个用来把起落架安全地放下。这可不是什么友好的操作——这是导致灾难的原因。

但 是尽管对 PHP 的嗤之以鼻随处可见,如今的 Web 网络有许多都是基于 PHP 设计,全网有 39% 的网站使用 PHP。Facebook、Wikipedia 和 WordPress 都是 PHP 项目。这是因为 PHP 虽然有许多缺陷,但是上手很快。PHP 这个名字来自最初的“个人主页”,可以很容易地让用户在静态 HTML 页面中添加诸如日期和用户名之类的动态内容。PHP 实现了从设计一个网站到编写一个 Web 应用程序的飞越,而投入却很小,你完全不需要成为专业人士就可以做到。

而 PHP 这种“即刻运行”的特性对于 Wikipedia 的成功至关重要,维基媒体基金会的总软件工程师奥瑞 (Ori Livneh) 这样认为。“我一直讨厌 PHP,”他对我说。维基百科过于依赖 PHP,导致了大规模的设计缺陷。(这也是为什么直到 2008 年维基百科才推出移动端版本,直到 2013 年编辑界面才变得友好起来。) 但 PHP 让那些不是——或几乎刚刚是——软件工程师的人能够提交新功能:这也是为什么维基百科词条可以在古埃及文明页面显示象形文字,并且可以处理五线谱的原因。

但 是你用 PHP 设计不了 Google,因为 Google 之所以成为 Google 需要把一件事做到最好——搜索结果。设计 Google 的是更加精炼和强大的语言,比如 Java 和 C++。而 Facebook 恰恰相反,更像一系列的小试验:按钮、信息流、信息模块等等只是为了抓住你的注意力。PHP 是为了快速制造新东西而生的。

你可以想象扎克伯格在哈佛宿舍里完成 Facebook 的情景。互联网发展如此之快,用户多变,唯一能够抓住机会的办法就是快。无论他做的是一团泥也好,或者是一盘意粉,甚至是什么都好。他把东西做成了,人们可以用。他当时没有考虑什么优雅代码的问题;他想的是让好友们可以登陆 Thefacebook 去看他们认识姑娘的图片。

如 今 Facebook 已经是价值超 2000 亿美元的公司了,办公室里到处可以见到标语“完成要比完美更重要”;“快速推进,打破常规”。这就是 Facebook 的“黑客”文化,但也恰恰是 PHP 的价值观。快速推进打破常规实际上正是 PHP 的本质,任何使用这种语言的人都会这样思考。可能你会说,正是这种编程语言,打造并维系了 Facebook 的文化。

2010 年末,Facebook 迎来了一场危机。PHP 并不是一种性能优化的设计,但是现在要求提升性能。Facebook 发展速度太快,如果没有重大的调整,看起来可能会出现问题。

整 体更换程序语言并不是一个可选的方案:Facebook 有数百万行 PHP 代码,上千名 PHP 工程师专家,超过 5 亿用户。Facebook 的做法是,由资深工程师组成的一个小团队被分配到一个特别的任务。其中之一就是设计一个编译器,能够将 Facebook 的 PHP 代码转换成运行更快的 C++ 代码。另外一个任务则是由计算机语言专家完成,他们要让 Facebook 的程序员保持 PHP 风格文化,但是编写更可靠的代码。

于是 PHP 的一个分支版本 Hack 应运而生,这种语言是带有可选的类型系统的 PHP。也就是说,你既可以用老式的方法快速编写 PHP 代码,或者选择让类型系统检查你的代码正确度。Facebook 希望他们的程序员用自己熟悉的语言继续快速推进,但是不想让他们像之前那样打破东西。(去年扎克伯格宣布了一个新的工程师口号:“快速推进,稳定架构”。)

当 创业公司终于解决了营收问题而“变成熟”之后,他们可以聪明地利用编程语言的威力来操纵企业组织的文化。曾经在 Google 供职 7 年的程序语言设计者罗桑 (Guido van Rossum) 认为,一旦软件公司发展到一定的体积,解决混乱局面的唯一方式,就是使用一种要求程序员在一线做更多工作的语言。“感觉上就好像你被拖慢了一样,因为你要 把每件事说三次。”这也是为什么许多创业公司在更换语言之前希望能等越久越好。你会失去一些最初帮你起步的牛逼黑客,也会失去小团队突击新功能的可能性。但是一种更精确的语言会帮助公司的其他人了解彼此的代码,获得产品稳定性,这也是公司每天运作所必须的。

软 件创业公司能够做到这一点调整,或许能够帮助解释为什么他们如此强大。计算机不端扩张的触及领域也是如此。这些软件公司同样具有独特的能力,重新构建自 我。随着变化和发展,它们能够做的不仅仅是组织机构调整,因为它们基于代码设计,所以能够实现更加巨大的变化。它们能够重编自身,它们的文化,以及它们思 考的方式。

时间: 2024-11-07 08:12:18

编程语言与思维:科技公司如何自我重构?的相关文章

十年一场云之战,重建这些科技公司与人的技术信仰

2006年是一个开始,当时一个叫做Amazon Web Service的小业务,掀起了一场十年之久.席卷全球的云计算狂潮. 从2000左右年开始的互联网大潮已经让很多科技企业对互联网盲目崇拜,然而自2006年由亚马逊开始的一场云之战,才让更多的传统科技企业彻底失去了方向.因为源自亚马逊的AWS云计算模式,彻底颠覆了微软.IBM.VMware.Oracle.Cisco.HP等一系列曾经的科技巨头,这些曾经被全球其它所有科技公司视为风向标的公司终于风光不在,转而各自寻找新生存与发展方向. 2017年

一份价值上万的年终总结 —— 自我重构

??点  Stephen 关 注 我    这是 Stephen 的第 69 篇原创文章 这是一份价值上万的年终总结. 1.萌生灵感 2018 年下半年突然有了一个灵感:不止做内容的消费者,还做内容的生产.提供者!并把这句话写下来,记录下了这个特别重要的灵感.这句话应该是可以当成一种理念,一种思想的. 有了这思想,要怎么去执行呢?这是个无比宏大的问题,太难了!冥思苦想了很多个日夜,有时想得辗转难眠.在编程知识领域里,有个 “重构” 的概念,用它就很合适. 重构思路:健身练脑,广泛阅读,提高认知,

对硅谷和硅谷科技公司的十四问,全程干货

引用: http://www.36kr.com/p/219345.html 从硅谷公司哪家强,到人人在议的泡沫问题,大数据和人工智能如何结合?2015年的科技前瞻是怎样一副图景?来自硅谷的Coursera软件工程师董飞将其近日在斯坦福公开讲座上的干货和各种场合的问答整理出来和大家分享.文中有他的一手从业经验,也有其对亲身就职或深度研究过的一些公司具体分析,如Hadoop.Amazon.LinkedIn等.董飞的知乎页面在这里,邮箱是[email protected]. 1.目前硅谷最火最有名的高

为何美国科技公司爱去澳大利亚上市?

说起海外上市,人们首先会将其与大公司.大集团相联系.然而,澳大利亚证券交易所(简称:ASX)低门槛的上市要求却颠覆了人们固有的成见,显得更"平易近人",其更精简的上市规则和更多样的上市方式,让中小企业同样具有海外上市的途径和可能. 为什么美国科技公司都爱去澳大利亚上市呢?这些公司不仅可以以更高的价格在澳大利亚筹集资金,还可以更容易地吸引新闻界和分析师的注意力.这一现象在2015年达到顶峰,其中有七项美国科技名单.对澳交所高科技板块来说,2016年是硕果累累的一年.这一年里27家企业完成

从苹果仅为中国市场推红机 看跨国科技公司的温暖战略

对于果粉来说,不管近几年在iPhone上的变革是如何地雷打不动,苹果始终还是在神坛上.其实除了iPhone本身还是有着优异的硬件素质和应用生态圈以外,还在于苹果能够准确地把握住消费者心态,玩转种种温暖战略.甚至面对不同地区的消费者还有着针对性的战略,让受众群体产生情感上的共鸣. 近日有消息称,红色版本iPhone 7 Plus将会在三月份召开的苹果春季发布会上正式亮相.这款机型为iPhone 7 Plus的中国特供版,而且目前富士康正在生产,已经在试产阶段.中国红版iPhone的推出,无疑会引发

Wintone文通科技公司!图文识别技术的应用

"源于清华 服务全球"的国内顶尖OCR图文识别技术,针对文字字符的最新科研计算方法研究的应用     北京文通科技有限公司,是光学中文字符识别的全球领导厂商,具有深厚的技术储备. 文通快档通--扫描识别系统文字识别软件:包含文档扫描.图像处理.ocr识别:条码识别:***识别:公文识别等功能,并提供识别结果的接口,方便用户直接调用. 一.软件功能 (1)文档识别功能 主要作用是普通文档的识别,转出TXT,RTF,EXL,PDF等格式,多用于档案管理软件.资源管理软件等系统集成. (2)

美国一家科技公司毕威拓(Pivotal)规定员工在早上9点06分准时上班,以提高工作效率。

据<英国广播公司BBC>报道,美国科技公司毕威拓(Pivotal)的员工每天都要在9点06分准时报到,在参加5至10分钟的会议后,便开始上班. 毕威拓创办人兼总裁Rob Mee 表示,这是为了提高员工的办事效率. 他说:“我发现软件程序员一般在毫无监视下,通常早上10点才上班,而若他们没有吃饱早餐,他们到11点就饿了.于是,他们会停下手上的工作来找食物,浪费许多时间,效率非常低.” 因此,公司决定在员工9点06分开工前,提供免费早餐给员工,让员工有准时上班的理由. 至于为什么将上班时间设为9点

科技公司钟爱的50款开源工具--转载

本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品. 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开源项目. Black Duck 在 2015 年的一项调查发现,78% 的企业组织使用开源软件,这个比例几乎是 2010 年时候的两倍.此外,88% 的企业表示,它们预计在今后几年,会加大为开源项目贡献

还是寒冬?1月欧洲科技公司要闻

源载于:2017-02-08 猿圈 程序员 上周,欧洲科技媒体报道了包括土耳其和以色列等国在内的17项技术并购交易以及69项投融资项目,总投资额达到2.028亿欧元(约2.18亿美元). 2017的科技界开局并不安静,全球资本寒冬?先看看有哪些. 巴塞罗那智能手机游戏开发商social point以2.5亿美金的价格被美国著名游戏开发商Take-Two收购.这其中包括了1.75亿美元现金以及价值7500万美金的股票. CEO Horacio Martos Social Point成立于2008年