你的思维应该转变,看得出来你对硬件的过度推崇而忽视起到主导作用的软件。Intel x86起初也不见得架构和性能就秒杀其他硬件厂商,当时摩托罗拉生产的微处理器完全可以跟Intel平分秋色,但是Intel自从跟Windows结盟后,什么摩托罗拉、SUN、IBM在Windows及其应用驱动下的x86机器面前,只能慢慢退出历史舞台。所以,不要以为软件是那么容易搞的,从系统内核到开发工具包,就算是苹果、谷歌都不敢自己一家包办,苹果家的Mac和iOS都从FreeBSD和GNU这些自由、开源项目拿了不少东西,而Google的Android就更甚。首先,Android是Google收购的一个系统,Android基于Linux内核开源项目;浏览器(包括桌面的Chrome)核心组件则基于苹果开源的WebKit,而WebKit又是基于德国开源项目KDE的KHTML,可以说是环环相扣,离不开开源;Android的SDK则利用了Oracle Java(JDK),开始的时候开发环境是基于开源Eclipse基金会打造的ADT工具,然后是基于Jetbrains家的产品做出了Android Studio;就算小到一个文件数据库,也就是iOS和Android内置的SQLite都是开源代码,如果要你自己搞一个SQLite这种完整支持ACID的关系数据库,虽然不支持网络访问,但也不不是一件简单的事。所以,你所谓开源技术不受自己控制就不使用完全是大错特错的想法,华尔街说“开源是社会主义”,在社会主义国家的人居然还没有意识到开源软件的重要性,像阿里巴巴,甚至国内的Linux Deepin这个基于Ubuntu/Debian的Linux发行版,都已经加入了Linux基金会(成员中,国内的公司还有华为、移动、中兴)。像WPS、搜狗输入法(基于Fcitx)都已经能跑在Linux上面,国内的Linux Deepin、Ubuntu Kylin都内置了这些组件,加上开源的Chromium、Firefox这些跨平台的浏览器,足以应对日常的使用。另外,还有一个Wine的开源项目,致力于在Linux模拟运行Windows上的程序,国内的Longene团队多次基于WIne把QQ移植到Linux上,不过个人不看好Wine这条路子,真正的出路应该是Web领域,如果一个平台的应用基于Web技术进行开发,那首先,开发门槛就降低了,而且开发者的从业领域也不会变窄,能吸引Web开发者进行桌面应用开发,典型的如国人做的一个Node-Webkit项目,基于Node.JS操作本地系统,基于Webkit(Chromium)使用HTML5/CSS3/JS等Web技术展现界面,内存会多占店,但体验并不差。Node-Webkit的主要缺点是带了WebKit这一整套环境,软件体积比较大,不能重用系统的浏览器,这时可以换一个思路,这里以PHP进行桌面开发为例说一下:除去icudt55.dll,PHP7用7ZIP压缩后不足7MB,而PHP自带了SQLite存储引擎和CLI HTTP Server,用户打开系统的浏览器就能访问PHP开发的应用,像开发一个基于本地SQLite存储的信息管理系统之类的应用,在Linux上,获取系统信息也容易,PHP直接访问对应的文件即可,或者调用系统自带的命令,然后分析结果在浏览器上展示。如果源代码不想被别人看到,可以用国人开发的php-beast之类的工具进行加密。总而言之,就是把B/S开发模式应用到本地桌面应用开发,基于浏览器搞应用生态,门槛,开发者都会更多,而且也不需要自己研制一套浏览器,直接Chromium即可,x86上Flash插件可以直接用Chrome自带的Flash,MIPS上只能发挥HTML5是的实力了,不过HTML5真心强大,Firefox团队甚至搞出了能在Firefox浏览器里运行的多人可联机的FPS 3D游戏BananaBread,基于HTML5 WebGL等技术。浏览器里进行3D编程,也不是难事,看看three.js这个库,实在是炫,所以选择Web技术作为突破口,非常值得一试。 |
|