大海Online的博客

Looking for Interest

关于平台

所谓“平台”就是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境。 (来自百度百科)

越来越多的平台出现了

  1. 操作系统层面: PC, MAC, IOS, Android,
  2. 技术体系层面: HTML5, Flash
  3. 语言层面: java, .net, python
  4. 业务开放平台: webbo, qq, baidu, taobao 开放平台
  5. ….

每个大公司都在制造自己的大平台, 各方各面的大平台 很多程序也在不断完善着自己的产品, 在每个平台上, 推出自己的产品

如:

  1. 很多云盘都在不断扩充自己的战线, 支持着越来越多的平台
  2. 音乐听歌软件,也是pc, mac, web, ios, mp3, 甚至不少开放平台上

继续:

  1. 如果有着各色各样的虚拟机,模拟器, 我们就可以将另一个平台的软件迁移至新的平台
  2. 但是移植并不是那么容易的,很多软件移植时,必须作更改,甚至是界面,操作上的更改
  3. 平台的差异同时也决定着移植的难度, 如PC上软件,迁移至触摸屏上
  4. 当然:平台的迁移也有着自己的复杂度

考虑一类迁移

  1. FC游戏机上软件的迁移,我们会统称这类软件为模拟器,我们会建立各种各样的模块器
  2. windows上的模拟器,mac上,flash的,html5版的
  3. 我们不需要,一个游戏一个游戏的迁移, 我们只需要一个模拟器就可以了

然后:

  1. 各色各样的模拟器出现了
  2. FC的,GBA的,DOSBOX, 然后是IOS的
  3. 最重量级的, 就是虚拟机了, 直接模拟硬件,连各类操作系统也模拟了

好了

  1. 你可以在一个终级模拟的PC上玩着,各色各样的终端的产品
  2. 现在触模的笔记本也出来,你可以模拟更多的终端了

  1. 突然想通了GOOGLE的本质,google就是想在web上,搭建着更加终极的终端,其它终端能干的事,他也要做出来,做不出来,就模拟一个终端出来
  2. 想想这个可能性: a) web版linux b) web版模拟器,有flash版本的,也有nacl版本的 c) web版远程连接,有vnc, 有RDP的,还有chrome与chrome的 d) web版的云盘,相当于硬盘 e) web版的操作系统, chromeOS f) web版的。。。。
  3. 一流的企业做平台啊~~~

  1. 我们经常在代码中,设计一些中间层,借此来统一各类解决方案
  2. 如JDBC接口的出现,就是JAVA当年为了统一存取各种关系数据库
  3. 而这样一来,带来了相当多的好处,上层使用方面了,中间层可以各类扩展,底层也有一依据,大家都很愉快
  4. 同时,成功与失败都在于接口的设计的好与坏
  5. 类似这样的设计有很多:opengl, 各类图片视频格式,tcp/ip, 等等。。
  6. 硬件也是同理的,像USB, wifi, 都是这样的例子

用于实际中

  1. 我们平时的软件开发过程中,也需要加入这样的思考
  2. 一是采用业界通入的解决方案,这样会有很多的第三方的技术,工具支持
  3. 二是从中抽象出自己的中间平台来,让别人帮你丰富起来
  4. 在中间平台上,作更多的文章

平台的成功与失败

  1. 平台的成功有时不在于平台的技术实力,接口的完善
  2. 更多的还是在于,支持者的实力,以及平台对应工具的实力了
  3. 只有用户看到平台真正带来的好处,才会明白过来

举例:

  1. 之前还是ant+cvs的年代的时候,并没有感觉到,会被新的maven+svn取代,但是周边工具丰富起来时,慢慢的大家也就接受了
  2. 再想想现在的git与svn,有人喜欢有人讨厌,但git支持的人多,有很多人共同努力,替代svn估计也是迟早的事情了
  3. 等到svn最后一个让你挽留的特性也被git模仿超越的时候,你就会改变你的想法了
  4. 早点尝试,多学习下,对你有好处
  5. 更多的趋势正在进行,你捕捉到了吗? 要不要提前学习下

有人说,变化每天都在继续,说不定,将来谁笑到最后 而且变化那么多,哪有办法都学的过来,实在太多了 提高自己的开发效率,从手头相关的工具,框架,平台开始吧

  1. IDE,开发语言,编程框架,浏览器,操作系统,文件共享,版本管理,知识管理
  2. 太多的基础平台,多研究下,改进下效率吧
  3. 如果有兴趣,可以找一个方向,大胆深入底层去看看
  4. 别忘了,找志同道合的人去一起研究