关于混合应用开发的未来的一些思考

当其欣于所遇,暂得于己,快然自足,不知老之将至,及其所之既倦,情随事迁,感慨系之矣

有序而又混乱的时代

现在是2017年11月9日。即使努力仅仅去关注编程技术的我,也依然感觉到了混乱。混乱之后,必然潜伏着机遇;混乱之后,也可能一着错,几年辛苦付诸流水。

几年之前,我偏执的认为没有开源精神的微软,不值得自己追随,毅然决然地完全摒弃了 .net 系的学习之后。现在单一 .net 技术栈的人,可能工作都很难找到了吧。

但是,没有谁会一直有好运气。说不定,我现在沉浸的语言,不久之后就成了明日黄花。如果自己真的是只会某个语言的专家,真的就是要一切从零开始了。你的所有荣誉,都被清零。纵然可以自我安慰说一些有基础学其他的也很快一类的话。

如此,或许能理解我现在为何付出极大的时间和精力,同时并行推进多个语言的学习和实践了。

当然,现在(估计未来也是)还是一个技术软文丛生的时代。准确分辨出软文和趋势,真的需要些许智慧了。

对一些编程语言的观察和思考

1. C/C++ 永生

过去几十年的编程语言之争,C/C++ 似乎一直置身事外,但又以无可争议的方式讲述着自己的威严。不同的语言,大都将能兼容 C/C++ 库,作为语言本身必须的一个 feature 实现。感觉自己那本 Boost 库书,该燥起来了!

2. JVM 系会继续活的很好

原来一直以为 jvm 系的语言,普遍都很慢;但是看了 go 相关的评测后,才发现在大多数情况下,因为有一个优化的很好的解释器, jvm 系的效率是非常高的。路转粉。Java 是 JVM 的亲儿子,但是我现在看 Kotlin,呼哈哈~~

3. Python 可能是最合适的贴身脚本语言

目前技术栈中,真正充当日常脚本语言的是 nodejs。正在逐步往 Python 方向过渡。暂且不论大数据或者人工智能一类的场景对Python的良好支持;单是 Mac 和 Linux 系统内置 Python 支持这一项,就已经决定了 Python 几乎无可撼动的江湖地位。

4. JavaScript 可能不是跨平台应用开发的良好选择

在我看来 Virtual DOM 真正的价值从来都不是性能,而是它 1) 为函数式的 UI 编程方式打开了大门;2) 可以渲染到 DOM 以外的 backend,比如 ReactNative。

根据 @尤雨溪 的分析,未来的涉及到 UI 呈现的应用开发,Virtual Dom是一个很重要的趋势。对此,我也很认同。毕竟有一个目前为止取得空前成功的 ReactNative 背书。但是,我无法认同使用 JavaScript 作为中间语言来进程跨平台开发。我在想,如果不是 ReactJS 的历史原因,有没有可能, Facebook 会专门为 ReactNative 用其他语言写一套类似 ReactJS 的库。C/C++ 实现跨平台开发,我总觉得,它会是一个更好的选择。

5. 未来的应用,会更加追求品质和体验

这一点纯属吐槽吧。对于那些很 LOW 的客户端,我是很拒绝打开的。真的看着糟心,还不如看网页。未来,随着技术的进步,土豪的增多,大家在功能之外,应该会更加注重体验和品质吧。反正我是觉得,一些恰到好处的动画,是非常酷的。所以,有事没事读读 Material Design,也是极好的

小福利

如果有研究 iOS/Android 如何和 WebView 同步异步通信的,可以看下这两个库: https://github.com/wendux/DSBridge-IOShttps://github.com/wendux/DSBridge-Android 。本来想自己写下相关的文章的,但是既然已经有童鞋封装好了,也不用再重复说了,方法就是网上常讨论的那些同步异步通信策略,源码值得一看。

参考文章