每天都会有很多新语言、数据库等的炒作。但是究竟实际在使用的技术有哪些?好的初创企业使用的技术会不会跟不那么好的那些所使用的技术有所不同呢?
AngelList 的自我报告可以为我们揭示部分答案。从里面你可以发现,Robinhood 用 Python、Django 和 iOS;Secret 用 Java、Go、Python、JavaScript、HTML5、CSS、iOS 及 Android 等。
AngelList 把这些企业分成 3 档,一档是 “过得去”,其使用的技术用蓝色表示;一档是 “好”,用红色表示;最后一档是 “极好”,用橙色表示。然后分析了各档公司在编程语言、前端技术、数据库 / 存储 / 缓存、移动技术、基础设施、DevOps、API 集成、先进技术、大数据软件等方面的使用情况。从中可以看出,各类技术的总体趋势是:
最热门编程语言:Ruby on Rails
最热门前端技术:JavaScript/Node.js
最热门存储技术:MySQL、MongoDB
最热门移动技术:iOS
最热门基础设施:AWS
最热门 DevOps: Chef
最热门搜索技术:Elastic search
最热门 API 集成:Facebook API
最热门先进技术:大数据
最热门大数据软件:Hadoop
编程语言
JavaScript/Node.js、Ruby/Ruby on Rails、Java 是各类公司都喜欢使用的技术;PHP 和 Python 则在好中差三类公司间形成反差:越 “好” 的公司越喜欢用 Python,越 “差” 的公司越喜欢用 PHP。
前端技术
除了最火的 Ruby on Rails 技术以外,HTML5 和 CSS 技术也是被大量采用的技术。而 Bootstrap 这个框架则是越好的公司越少采用。
数据库 / 存储 / 缓存
MySQL、MongoDB、Postgres SQL 统治了数据库领域,相比之下,SQL Server 和 Oracle 的使用则少很多。
移动技术
iOS 稍微比 Android 热门一点,而且越好的公司越多采用 iOS,WindowsMobile 由于体量太小(小 30 倍到 50 倍),所以连图都不上了。
基础设施 / 托管
AWS 和 Heroku 占据了统治地位,越好的公司越倾向于采用 IaaS(如 AWS)而不是 PaaS(如 Parse),也许是出于自身技术实力和更好定制调优的需要?
DevOps 工具
除了 Chef 以外,其他的工具在各类公司的使用热度不一,但 Docker 和 Puppet 表现出较高的流行度。
搜索技术
API 集成
先进技术
大数据和机器学习技术已经成为技术公司普遍采用的技术。
大数据软件
当然,因为这份报告涉及的初创企业仅是交通领域的,而所谓的企业好坏则是靠 AngelList 的 Signal 分数来评判的,但是这个分数究竟是怎么出来的还不好说,看起来似乎是公司质量与流行度的结合,但未必就是公司好坏的合理评判,而且使用技术与公司表现未必就有直接关系,所以说报告仅供参考。
个人总结
既然是创业团队,想必初始团队成员不会很多,但基本上至少会有1~2个人负责技术。我相信选择创业的每一个起初都是满怀希望,胸有大志的。但是,一个月后呢?这里我首先想所的就是团队的执行力,作为创业团队都知道这比什么都重要。“设计师已经迭代了3个版本了,结果第一个版本都还没上线”,这种事情在创业团队似乎很常见,如果你做了3个月连一个Demo都没上线,你还如何创业?
天下武功为快不破,创业者需要具备的基本技能之一就是快,快速迭代,快速成长。这里想到白鸦的逛guang.com,4天就上线了,虽然只有4张静态页面,但至少表达出了自己的产品。不知道是不是受苹果的影响,很多创业者非得做的把产品做到非常完美才愿意上线,我就经常听到某些团队工作一年多了,产品还未上线,以至于我们以为他们早就洗手不干了。所以,我这里说的快指的不仅仅是没日没夜的工作,也要讲究一些方法,要有取舍,要丢得起面子,大不了第二个版本再完善。
从技术角的选择来看,尽量选择开源且有良好社区支持的技术,这样万一在使用过程中出现问题也可以快速找到解决方案,就如现在Unix/Linux占领服务器大半市场,必尤其合理性。微软的产品虽然刚开始的时候入门门槛低,但是它其实并不简单,如果真的碰上什么问题,这个风险和成本很难控制,如果你不小心已经上了微软的贼船,是否破釜沉舟掉头就另当别论了。但初创团队,在决定自己技术之前,我觉得你可以大胆的使用开源技术。但这时候问题又来了,开源技术就像大海一样广阔,人人都可以从中分享和获取资源。很多人在大海中拼命的探索最新最酷的技术,我也是一枚Coder,我很能理解作为程序员的这种满足感,但是这是在创业,做公司,不是一个释放自己满足感的地方,很新很酷技术可以研究,以备将来之用,但不要用在自己的产品上,这样会浪费本多不必要的时间,就如当初在决定小恩爱xiaoenai.com的技术时,Ruby on Rails 也是我能接受的最大尺度。Go、NodeJS、Opa什么的了解了解就可以了。
在研发的过程中,也会遇到这样的问题,我们希望把代码写得尽量简洁,美观。有时候我们会为了把一个50行的代码优化成30行清晰、具有维护性的代码花去半天甚至一天时间,这样的错误我相信所有阅读这篇文章的Coder们都犯过。在产品还没有稳定前,不要急于重构代码。这点不细说,大家应该都明白。但换个角度估计会有很多人想不明白,在产品研发初期,我们是否需要在效率问题上话太多时间?有些人一开始就用100w用户的标准做一个网站我觉得是不适合的,在我看来在初期只要考虑能承受上线后3个月内用户增长规模的标准就可以了,甚至第一版、第二版压根不儿用考虑什么效率问题,肯定跑不死。
有了这些技术和素质,作为创业公司在技术应该80%以上可以站稳了,剩下的就是活动你的双手,用代码构建产品的灵魂。