所谓“平台”就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。 (来自百度百科)
越来越多的平台出现了
- 操作系统层面: PC, MAC, IOS, Android,
- 技术体系层面: HTML5, Flash
- 语言层面: java, .net, python
- 业务开放平台: webbo, qq, baidu, taobao 开放平台
- ….
每个大公司都在制造自己的大平台, 各方各面的大平台 很多程序也在不断完善着自己的产品, 在每个平台上, 推出自己的产品
如:
- 很多云盘都在不断扩充自己的战线, 支持着越来越多的平台
- 音乐听歌软件,也是pc, mac, web, ios, mp3, 甚至不少开放平台上
继续:
- 如果有着各色各样的虚拟机,模拟器, 我们就可以将另一个平台的软件迁移至新的平台
- 但是移植并不是那么容易的,很多软件移植时,必须作更改,甚至是界面,操作上的更改
- 平台的差异同时也决定着移植的难度, 如PC上软件,迁移至触摸屏上
- 当然:平台的迁移也有着自己的复杂度
考虑一类迁移
- FC游戏机上软件的迁移,我们会统称这类软件为模拟器,我们会建立各种各样的模块器
- windows上的模拟器,mac上,flash的,html5版的
- 我们不需要,一个游戏一个游戏的迁移, 我们只需要一个模拟器就可以了
然后:
- 各色各样的模拟器出现了
- FC的,GBA的,DOSBOX, 然后是IOS的
- 最重量级的, 就是虚拟机了, 直接模拟硬件,连各类操作系统也模拟了
好了
- 你可以在一个终级模拟的PC上玩着,各色各样的终端的产品
- 现在触模的笔记本也出来,你可以模拟更多的终端了
- 突然想通了GOOGLE的本质,google就是想在web上,搭建着更加终极的终端,其它终端能干的事,他也要做出来,做不出来,就模拟一个终端出来
- 想想这个可能性: a) web版linux b) web版模拟器,有flash版本的,也有nacl版本的 c) web版远程连接,有vnc, 有RDP的,还有chrome与chrome的 d) web版的云盘,相当于硬盘 e) web版的操作系统, chromeOS f) web版的。。。。
- 一流的企业做平台啊~~~
- 我们经常在代码中,设计一些中间层,借此来统一各类解决方案
- 如JDBC接口的出现,就是JAVA当年为了统一存取各种关系数据库
- 而这样一来,带来了相当多的好处,上层使用方面了,中间层可以各类扩展,底层也有一依据,大家都很愉快
- 同时,成功与失败都在于接口的设计的好与坏
- 类似这样的设计有很多:opengl, 各类图片视频格式,tcp/ip, 等等。。
- 硬件也是同理的,像USB, wifi, 都是这样的例子
用于实际中
- 我们平时的软件开发过程中,也需要加入这样的思考
- 一是采用业界通入的解决方案,这样会有很多的第三方的技术,工具支持
- 二是从中抽象出自己的中间平台来,让别人帮你丰富起来
- 在中间平台上,作更多的文章
平台的成功与失败
- 平台的成功有时不在于平台的技术实力,接口的完善
- 更多的还是在于,支持者的实力,以及平台对应工具的实力了
- 只有用户看到平台真正带来的好处,才会明白过来
举例:
- 之前还是ant+cvs的年代的时候,并没有感觉到,会被新的maven+svn取代,但是周边工具丰富起来时,慢慢的大家也就接受了
- 再想想现在的git与svn,有人喜欢有人讨厌,但git支持的人多,有很多人共同努力,替代svn估计也是迟早的事情了
- 等到svn最后一个让你挽留的特性也被git模仿超越的时候,你就会改变你的想法了
- 早点尝试,多学习下,对你有好处
- 更多的趋势正在进行,你捕捉到了吗? 要不要提前学习下
有人说,变化每天都在继续,说不定,将来谁笑到最后 而且变化那么多,哪有办法都学的过来,实在太多了 提高自己的开发效率,从手头相关的工具,框架,平台开始吧
- IDE,开发语言,编程框架,浏览器,操作系统,文件共享,版本管理,知识管理
- 太多的基础平台,多研究下,改进下效率吧
- 如果有兴趣,可以找一个方向,大胆深入底层去看看
- 别忘了,找志同道合的人去一起研究