写完发现行文思路很不理智... 就当睡前看看开心一下吧 :P
数据同步
在看过 React China 上同学推荐的 SwarmJs 之后, 渐渐一个想法的轮廓浮现出来
细节我看得似懂非懂, 严谨的同学戳下边的链接自己去看:
http://stackoverflow.com/a/27494397/883571
https://news.ycombinator.com/item?id=9020318
https://news.ycombinator.com/item?id=7904220
大概意思就是 CRDT 和 OT 是两套分布式计算领域数据同步的算法
我之前只关注 Diff/Patch 方案, 回过神来采发现这个问题被研究好多年了
已经淡出人们视野的 NowJS, Google Wave 做的不就是这事情吗?
数据同步是给非常大的问题, 按 SCIP 说的大概是并行计算的问题
函数式编程的代码对于处理确定时序的操作解决得挺不错
但是到了并行计算, 抽象出的对象就自然而然具备私有状态
结果就是大量的状态, 各种不确定的执行顺序, 编程就不会简单了
站在前端开发的立场上, 数据同步的问题我认为是这样一些:
数据库 -> 服务器 runtime -> 浏览器 JavaScript runtime -> DOM
如果不是技术上的限制, 我们甚至不需要分层, 开发成本小得多
但现实是. 即便 React 搞定了 JS 到 DOM 的同步, 其他问题依然艰巨
我最初学做网页从来没想到有一天我还要解决数据同步问题
而现在感觉兼职就是前端面临的两个巨大的难题之一
当然多终端的场景下数据同步有大量实验, 前端跟进也只是时间问题
但从另一个角度, 我希望将来开发成本要尽可能低, 不知道能否达成
图形界面
用代码一行一行去写图形界面, 我感觉已经成了巨大的误区
这种做法最大的问题当然是时间, 很简单的图形界面, 却花那么多时间
把我们年轻的时间投入在这上边, 心里的感觉只是比搬砖好一点
对应图形界面来说, 好看, 容易调整, 才是第一位的, 代码只是其次
但是看网页开发这边图形化工具那么初级, 真的只能感慨了
编写代码带来的漫长的反馈循环也是限制创造力的巨大的因素
不用去思考代码实现, 只思考哪些因素怎样改变? 效率会高得多, 想法也多得多
在 Paper by Fiftythree 上画画才是正常的途径, 随手涂涂改改
作为工程师去研究怎么改进图形化编程远比手码 CSS 更有意义
这种繁琐的编程方式消耗的是全世界 Web 开发者的精力
上边我好多都是气话. 现实当然是一切正在不断变好, 工具越来越多
我最近浏览了一些东西, 越来越在意那些同时精通精通设计和编程的人
前端的工作, 又算工程师, 又写界面, 但两者依赖不同的思维方式
或者说是一种既不纯是工程师也不纯设计师的, 特别的思维方式
新技术推进, 各种利弊重新权衡, 被时间淘汰的工种本来就很多
我目前的观点是, 单页面应用, 在 Store 和 DOM 两者之间应该分开
Store 与后端按照分布式计算思路, DOM 部分纯粹用界面组件化思路
Google 的 Polymer 真心是在 UI 组件化的问题上推进了一大步
React 实现的 material-ui 我想也算得上一大步, 但需要时间考验
CSS 估计是前端主要进攻的难题, 它那套编程模型有二十年了吧
虚拟现实
先说网上看到一个观点很有意思, 细节我忘了, 大意是说
新技术的产品需要等待每一个部件的成熟, 制作工艺, 使用难度,
只有全部突破, 才能, 甚至可能给世界带来巨大的改变
说的就是 VR 的问题, 从前我看 TED 上"第六感科技"的视频觉得很赞
就以为新的产品已经来了, 然而到这两年才有 Glass, Hololens, Oculus 进展
人气很高的 Magic Leap 奇怪没什么声响. 总体感觉已经只差最后几步了
周六追了一些 Oculus 发布会的演示视频, 这个主要是游戏
我不喜欢游戏以前是觉得游戏太难玩, 但是 VR 也许就不一样了
或者因为我没玩过 VR 所以抱好感, 总之, VR 看上去大不一样
更重要的是, VR 带来以后, 交互方式将发生巨大的改变
键盘, 鼠标, 届时面临语音识别和三维空间中手势识别的挑战
虽然短期看来不大可能, 但可以想象一下在三维空间中交互会怎么样
捕捉语音和手势的技术逐渐会有成熟, 然后, 怎么样编程?
很有可能现在的文本编辑器会被淘汰掉, 被 3D 的图形替代
比如说语法树直接在办公室展开, 不断造词, 添加到树上, 完成编程
有了更强大的操作方式, 就能同时处理更多的数据, 带来很多可能性
上边的想法基于人工智能和交互技术, 本来也是 VR 沉浸式的体验必备的
确实估计不清楚人工智能究竟什么时候能提升到什么程度
但是考虑其加速技术自身进化的可能性, 我想还是保持乐观吧
另外如果对编程的改进真的那么大的话, 真也值得敬畏了
交流的方式
从古代的信件, 到电话, 到视频, 现在已经能在手机上视频通话
VR 和 AR 按照 Facebook 的估计, 会更加容易被人用于交流
而且一些概念的视频里也描绘了远程通过 VR 一起工作的场景
不过没有展示的是, 如果有上百上千人同时在一起交流呢?
甚至于那么多人同时做一件事情? 并且时刻看到同伴的进展?
记得 Youtube 看到过演讲, 演示上千人唱歌的视频被制作成和声
现实当中我们组织不到那么多人, 可是在网络当中就实现了
我忘了哪还看到个例子, 很多个人同时用手机控制大屏幕上的乒乓球拍
可能是个乒乓球游戏, 集体控制球拍的测试吧, 总之觉得挺有趣的
但是再想象一下几千人一起画画, 一起开发软件? 结果是什么样子?
在 Paper by Fiftythree 的 Mix 里我看到很多人基于一副画想象和创作
在豆瓣线上或者我看到同一个想法, 被各种截图照片和句子来丰富
在 GitHub 上同一套语法, 被开发成为各种不同的代码, 还能拼在一起工作
微博一张照片被转发上万次挖出几十个一连串的笑点, 一千个哈姆雷特
那么当一千个人通过 VR 聚集在一起创造, 他们会创造出什么?
再比如书籍本来是一代人一代人传播知识的方式, 现在换成了网络
很快, 视频技术发展, 再运气好的话, 制作动画的技术跟着 VR 突飞猛进
我是说人机交互上一个台阶之后, 我们会更容易控制动画的大量参数
那么知识从文字的形式变成动画形式, 传授知识的速度立马上一个台阶
再后面的事情照着科幻电影随便来就好了, 反正外国人早就想那样了
总结
当然上边这些胡思乱想都建立在 Web 和 VR 技术高速发展的前提下的
只是假如微软, 谷歌, Facebook 在这两块方面进展缓慢的话..
那么五年或者十年以后, 我可能还是在 SF 上写写牢骚给人笑笑而已
总之我的问题也摆在这了, 五年十年以后, Web 跟 VR 会发展到什么程度?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。