正好,又发现了另一个有意思的问题:
为什么在中国电子工程师的发展明显不如软件工程师方向?
想在在这里一起回答。原因正是:
软件化 / Software defined。' m: m- L+ y- R
7 E+ y' X6 z, Z6 W0 @首先还是看数据:
6 R2 o3 h8 ^0 i) q9 u' w显然电子工程师的工资增长不仅没有跟上软件工程师的增长速度,甚至还有相当下降。
7 m$ o' i5 W6 [# L
+ p# T4 c" | R5 ^, S! f9 x( M二月份最新的数据:
三种职业的平均工资,还是软件工程师最高。
! p8 I& U, R% {9 m
工资是雇主为员工出的价格。在市场环境下,决定价格的是供求关系。所以电子工程师的工资(价格)下降,说明电子工程师供过于求。事实上,大量传统上由电子工程完成的工作,正在变成软件工程的工作。硬件变成了软件。为什么呢?
. [* m* b" {; S) B5 i, M' A' n* O2 H
首先是硬件处理能力过剩。
0 t0 T) w l- C9 N) O+ }2 G
在远古时代(其实不是很远,15年前),IT行业的硬件初创企业相当普遍。比如,1997年,硅谷的创业传奇华人谢青(Ken Xie)在车库里创办了NetScreen,一个专注于防火墙的网络安全公司。NetScreen后来被Juniper以40亿美元收购。那个时代,包括NetScreen,大部分硬件产品都是以ASIC和FPGA这类高度定制的芯片为核心的。2000年,谢青离开NetScreen以后,又创立了Fortinet,目前市值约38亿美元,在创立初期时的产品也是以ASIC为核心。
" D8 G4 g( l* V& S: ~( e+ _' k对了,谢青1987年毕业于清华电子工程系。
% e7 q( ]8 i3 z- ^! p; b
之所以使用ASIC,当然是因为ASIC这类专用芯片的可定制性,能够专门为某类应用进行优化,实现更高的性能。在性能稀缺的时代,这样的定制是完全不可避免的。谢青的第一家公司,SIS,最终没有获得成功,最大的原因就是当时采用了软件解决方案,而当时的通用处理器能力不足以应对防火墙所需的处理能力。谢青认识到这个问题,自己设计了NetScreen需要的ASIC,仅仅三年就被Juniper收购。
2 d1 o' l6 `5 D5 K1 {
ASIC性能优秀,但缺陷是生产规模很小,并且需要单独设计,设计费用动辄上千万美元,因此每片芯片的平均价格非常高。
7 ]2 ~# |4 z3 C; L G0 G
和ASIC相对的是相对廉价、大规模生产的通用芯片 (Generalpurpose chip or merchant chip),比如英特尔的x86,Broadcom的交换芯片,还有各种基于ARM的SoC芯片。
0 n$ I- Y9 c/ E. b在2007年前,这些通用芯片的性能都在按照每18个月一倍的摩尔定律高速提升。突然有一天,人们发现很多时候芯片的运算能力似乎够了,市场对更高性能处理器的胃口突然变差。随之而来的,是供应商在性能方面的不思进取:过去几年英特尔的主流芯片运算性能提升几乎处于停滞状态:
这是英特尔最近的三款主流处理器,其中i7-2600K 发布于2011年1月,i7-3770K发布于2012年4月,i7-4770K发布于2013年6月。在这个档次上,过去36个月的处理器性能只不过增加了16%。
E0 c1 R2 ?& u4 z* f8 ~即使是三年前的i7-2600K拿到今天来用,一点也不过时:
这是2013年中国大陆销量最高的10个台式机配置。里面主流的Celeron G1610之类,性能大概不到i7-2600K的三分之一吧…
结论呢,是很多时候,人们根本不需要那么强的硬件能力。
/ C% V5 g4 y- p硬件能力过剩的结果之一,就是通用硬件取代专用硬件,由软件提供功能。
3 J3 N. Q! L) Q. I! x8 G* C3 R8 U8 {
时间到了2000这个十年的中后期,慢慢地人们发现,便宜的、可以大规模生产的芯片的性能已经开始够用了,那么为什么要冒险投资上千万美元,设计一个还不知道能不能卖出去的芯片呢?实际上,过去几年,桌面系统和服务器系统的运算能力已经进入平台期。
/ B: y& C7 @" T0 D. a! E- [2 c0 \廉价处理能力过剩的结果之一,就是许多原来需要用专门硬件来实现的功能现在只需要软件加通用芯片就能办到了。现在最热门的软件定义存储(Software Defined Storage, SDS),软件定义网络 (Software Defined Networking,SDN),软件定义数据中心 (Software Defined Datacenter, SDDC),都反映了这一趋势,以后再专门撰文分析。
" y$ P7 }# A% R, s' m相对于专用硬件,软件 + 通用硬件有许多优势:
0 G* O" D, i1 Q, s Y1 U( m
1.费用:相对于专用ASIC动辄几百万上千万美元的开发费用,一个软件 + 通用硬件平台的前期开发费用也许只要几分之一甚至几十分之一。后期通用硬件的成本也相对专用硬件低得多。
& Z2 \# M$ L- M* R9 P/ l
2.风险:低廉的前期开发费用让软件方案能够迅速产品化然后得到用户反馈,用户的反馈能很快帮助决策者确定项目是否继续下去,大大降低了资本的风险。
% ?9 N# u% ^: K. _3.灵活:获得用户反馈后,通常软件方案较专用硬件更容易修改。和灵活相关的,还有更容易定制,更容易提供App。
# ~3 `8 j2 v. v" P% ~0 e3 o
4.扩展性:市场对通用硬件的供应几乎是无限制的,而且软件代码可以无成本复制。如果软件+ 通用硬件产品大受欢迎,他们只需要从开放的市场上采购大量通用硬件就行了;但若是采用专门芯片,通常只能从少数厂商定制,从产品订单到交货之间的时间很长,常常超过一年。
0 J2 J/ O6 w: j+ C( }5.可移植性:相对于专用硬件,软件代码更容易得到重(chong)用,嵌入另一个软件解决方案里,代码中的算法也更容易跨平台使用。
1 \9 c9 I& U6 i1 V' I( [+ j! M6 p
有了这么多好处,大多数初创企业,甚至大型企业,都优先采用软件 + 通用硬件的解决方案。实际上,我们在评估风险投资目标或者收购对象的时候,采用专用硬件的对象是要被扣分的。