程序员将面临再次洗牌,你作何选择?
记得那大概是
2009
年,
Java
因为在网络互联网开发和跨平台的优势,开始盛行。当时几乎铺天盖地都是对
Java
语言的褒奖和对
C/C++
的贬低,以至于微软都得整出
C#
来对抗它。虽然很多文章的观点很幼稚,分析方向也不对,甚至根本对
Java
特性都没搞懂。然而,对很多初涉编程的程序员来说,这些文章对他们还是产生了相当深远的影响,外加一些小企业转向的灵活性,引领了学习
Java
的一个高潮,这可以说是程序员在语言选择上的第一次洗牌。
再往后,乔布斯的出现,从感官和定义上改变了人们对手机的认识,智能手机开始在人们的生活中占据越来越主导的地位,基于
MacOS
的
Object C
和基于安卓
OS
的
Java
开始大力发展,逐步击退
C++
,进入到编程语言排行榜的前三强。
我从开始至今,一直选择
C/C++
而没有更换过,其原因有四。首先:这是因为在第一次洗牌开始时我已经从事了将近五年的编程开发,对
C/C++
语言有了较为深入的研究,随着对其精髓的一步步窥探,我是越来越爱这门语言,其他语言的吸引力也就相对笑了很多,而且我也深信他会长时间在语言市场上占据一定的空间,所以我没有必要去更换语言;其次:随着编程经验的逐步增长,在每个项目中地位的不断提高,给予项目的关注也从点到面再到整体,对技术掌控能力也在逐步提高,要思考的问题和思考方式也已变换,已经超越了语言本身;再次:一个大的平台,并非用一种语言编写,我要做的是根据项目的不同需求和功能特点,从编程效率、运行消耗、性能考量,依据每种编程语言的优缺点,拍定用不同的语言来进行开发,以达到最佳开发效率和质量保证,很多时候,除了核心代码架构和构思外,也不需要自己亲力亲为的去写大量代码。因此也就更没有更换语言的想法。
而更多的程序员是:要么刚加入程序员大军一两年,要么正准备加入程序员行列,亦或编程仅仅是为了生计,没有太多的兴趣,那么这些程序员,在编程语言的选择上,就必然会经历一番折磨,当然,如果不想从事程序开发另当别论。
为什么说程序员将再次面临洗牌呢?首先要明白的是:每种编程语言的背后,归根结底是和支撑他的公司有很大关系。
Object C
之所以能火,那时因为苹果,
C#
是因为微软,
Java
是因为谷歌,数据库脚本语言是因为
Oracle
。所以这几个公司只要不会倒闭,那这些语言就不会消失。当然也有不完全依托一两家公司的。如
C++
虽然没有所具体依托的公司,但是他却是很多语言依托的基础。基于
Linux
的开发,特别是服务器开发,他还是具有当仁不让的优势的。
C++
虽然竞争不过火爆的
Java
、
ObjectC
甚至
C#
,但因为有
IBM
、
HP
、华为、中兴等做服务器的公司的存在,也因为
Linux
系统在服务器方面德天独后的优势,
C++
的市场占有率在下降到一定程度后就会稳定。
C
语言依然会强势则,因为嵌入式上没有操作系统,驱动开发要相对接近底层的语言,没有操作系统的地方就是他的用武之地。不可能任何科技领域的东西都非要用操作系统,比如电饭锅、电瓶铛等而生产这些的厂商不在少数,因此它仍会强势存在。
既然和公司相关,公司会千方百计的发展自己,打击敌人,所以这些语言支撑背后的公司的兴衰,也就决定了语言的兴衰。
在理解了上面的这些分析后,再回到核心话题上。
首先:微软最近的动作频繁,
Win10
马上就要发布,该系统的强大在于,他的上线发布,将使
Windows
系统第一次真正的像苹果的
MaxOS
一样,在
PC
、平板、移动终端通吃。这意味着应用程序几乎可以直接在这三者上面运行。
PC
机一直是
Windows
独霸的场面,外加
Windows
系统是可以向任何公司授权,而苹果为了自我更大的盈利,将
MacOS
系统紧握在手,几乎不怎么对外开放。何况
MacOS
是给予
Linux
系统开发而来的,针对
PC
机来说,对用习惯了
Windows
系统的用户来说,相当不习惯苹果的
MacOS
。依据在
PC
上的优势,微软借助
Win10
的特点,在平板上的发力会越来越大。更何况苹果在移动领域本身就是定位为高端市场的,这就很难有扩大的可能,随着用户的饱和和后续产品的乏力及无特点,定会有一些人抛弃苹果,转投
WinPhone
的怀抱,毕竟他也是高大上。
其次:微软收购诺基亚手机业务,推出了
Lumia
手机,从此有了自己的手机业务,苹果相对于微软的优势几乎荡然无存了。诺基亚,就仅仅这个响当当的牌子,就是质量和性能的保证, 用这样的手机绝对不会被人鄙视为山寨。而
Androd
系统,虽然他的系统底层也是基于
Linux
,但因为要用
Java
进行开发,就会引入虚拟机,而为了好看的
Ui
,必然内存虚耗大,性能和内存消耗以及虚拟机这些原本是优点的东西,却同时成了其固有的缺点。一个安卓的
2G
内存的机子,在使用平顺性上几乎连
WinPhone 512M
的都不如,外加因为系统而引起的应用程序打开关闭后并非真正关闭,还在虚耗内存和流量。这些造就了安卓操作系统本身就不高大上,而目前市场上,几乎
80%
的智能手机又都是安卓的,用户越多负面影响就会越大,缺陷也会越发扩大。如果一直用安卓的手机,必然会烦,下次换手机,大多数会想换个操作系统来体验吧。苹果遥不可及的卖肾名声,让大家首先想到的肯定是
WinPhone
系统的手机。而对于其占有率已经到了极限的安卓,物极必反,接下来肯定会下降无疑,此消彼长,
WinPhone
的市场占有率就会越来越高。
再次:微软宣布
VS2015
不但会同时支持
MacOS
,
Linux
和
Windows
三种系统下的软件开发,而且会支持安卓应用的开发,这在
IDE
市场,引起了渲染大波,有夸有骂以骂为主,想必这些人在骂的时候,已经明白开发语言此消彼长已不可避免了。特别是
Java
,其开发者的奶酪会被大踏步分割。原因是,除了微软发布
VS2015
外,安卓应用的饱和,外加谷歌安卓之父的出走,谷歌、三星、小米、华为等推出的由安卓演化来的新系统,都对其造成了不小的打击,让从事安卓应用开发的人无所适从。又有新闻说华为、中兴、三星甚至小米等都将推出
WinPhone
系统的手机,这样,安卓系统占有率下滑成为必然并且下滑应该还不小。
最后:仅仅
2014
年一年,给予
WinPhone
系统开发的程序员从
20
万变为了
57
万,应用软件从不足
15
万个到现在的近
40
万个。那如果
Win10
系统通用,程序员会更多,应用也会更多,体验
WinPhone
的用户也会随着应用的增加而增多。这必然造成更多的公司加入到
WinPhone
系统下
App
的开发,而这些公司在语言选择上,恐怕会优先考虑
C#
吧。个中原因,不肖多说。这对使用一种语言相对较长时间的人来说,不会造成太大影响,但对初学者或者刚刚开始编程语言不久的人来说,可能会更倾向于选择
C#
了。
综上所述,因为操作系统在移动终端的市场占有率的变化,程序员在编程语言的选择上,将再次面临洗牌,未来几年,格局应该会逐步演变为这样的:安卓系统市场占有率第一,但会比现在下降很多,
WinPhone
系统超越
Iphone
上升至第二,三强鼎立的局面将会形成。