开发平台战争
此文是 TC 的 Jon Evans 撰写的文章。他认为现在的软件开发环境有点像文艺复兴
现在写软件很简单。如果你是微软的开发者,可以有一整套 Visual Studio CD 协助;如果你是 Java 开发者,你可以有 LAMP 可用,IBM、SAP 等也有自己的专利软件栈和工具。
但是现在的问题是做软件的选择令人眼花缭乱。假设你要做 web 服务,开发该选什么?Ruby On Rails?Node.js?Python 加 Django?还是 PHP+Drupal?.NET?……然后还得考虑代码放在哪里托管?Amazon?Heroku?App Engine?Joynet?EngineYard?Force.com?然后还有 app,app 做哪个平台的呢?写原生代码?还是混合 HTML5?用 Xamarin 交叉编译?数据库呢?
这种战国时代令人怀念起微软统治的日子。虽然只是中规中矩,但是有一项统一规范是不是要好过群雄并起?有个独裁的政府是不是要好过四分五裂的城邦纷争不断?难道好的软件不应该是令生活变得更加简单的吗?
当下的问题是大家都想做平台,但却没有人能够鹤立鸡群。
就拿云计算平台服务商 Heroku 而言,其支撑的项目已成千上万。Heroku 开始是一项 Ruby ON Rails 的服务,但是现在它们已经支持 Node.js、PHP、Python 等。Heroku 提供有免费服务。部署到服务器上可以简单到只敲“git push heroku master”一句话。类似数据库连接、电子邮件等等之类的附件几乎是自动实现的。Heroku 带给我们是基本上是愉快的体验。
但是 Heroku 也有问题。支撑的规模不大是个问题。时不时会出现一些晦涩棘手的配置错误,需要数天调试是个问题。最近 Rap Genius 披露 Heroku 私改路由机制来圈钱更是将这家公司推向风口浪尖。
然后是工具丰富的 Google App Engine(GAE)。它的全副武装令测试、部署、版本控制轻而易举。令 Heroku 头痛不已的异步任务在 GAE 这里就是小菜一碟。更不用说 GAE 还有全文搜索以及 MapReduce 工具。之前 Google 只提供强大但古怪的 BigTable 数据存储,但现在你很容易就可以接入 Cloud SQL。GAE 的免费服务也已经很能干了,且还支持 Java、Python 或者 Go。
不过 GAE 也会很费钱,但这不是问题。问题在于其他人没有这些工具。因此,一旦你开始用上 GAE,你就会因为其强大易用而被锁定。可是却正是因为这一点,令许多主管望而却步。
当然,还有许多其他选择。微软对其 Azure 平台寄予厚望。对于 Android 和 iOS 应用来说,它的 Parse 是一个简单又强大的内置后台。用了 Parse 之后,你根本就不需要去写(一般功能的)后端服务器了。
但出于这样或那样的原因(有的是因为成本),许多项目都退而求助于像 Amazon Web Service 这样的基础设施,这些解决方案不能让你简单部署到云端就了事,你还得提供运行 Linux 或 Windows 的独立服务器并进行配置。
而像这样的基础设施也是层出不穷,Google 已经引入了类似 AWS 的 Google Cloud Platform,还有比 AWS 差一点的 Rackspace 和 Savvis 等。
AWS 本身没什么问题。有问题的是 Amazon 想成为平台的尝试—在 JON EVANS 看来,Elastic Beanstalk 实在是太糟糕了。不过 Amazon 的 Elastic Compute Cloud 则非常出色—便宜、强大、可扩展至企业级,还提供了许多有用高效的工具。实际上,Heroku 和 Parse 都是基于 AWS 的。
问题是,在使用了 GAE 和 Heroku 等平台服务之后,配置服务器给人的感觉实在太慢、太复杂、太痛苦了。
更好—但尽管如此,也许这就是生活吧,他借用了电影《第三人(The Third Man)》里面的台词说,也许这样的乱是好的、是必要的:
你知道那家伙怎么说—在意大利波吉亚家族统治的三十年时间里,虽然充斥着战争、恐怖、谋杀和流血,但也产生了米开朗基罗、达芬奇这样的巨匠,带来了文艺复兴。而在瑞士,人人情同手足,有着长达 500 年的民主和平时期—但那里又诞生了什么呢?布谷鸟钟。
VIA: techcrunch.com