听众来信0:00
您正在收听的是 IPN Podcast 网络旗下的 IT 技术主题节目 《 内核恐慌 》。 我们号称 "hardcore",但是也没有干货 , 想听的人听 ,不想听的人就别听 。
内核恐慌的网址是 ipn.li/kernelpanic, 我们推荐大家使用 Podcast 客户端订阅我们的节目 。 如果您不知道该用什么客户端 , 欢迎访问 ipn.li/faq。
欢迎你为我们的节目捐款 , 捐款地址是 ipn.li/kernelpanic/donate。 捐款金额随意 , 只要是能被 8 整除的正整数就可以 。
捐款不会为你带来什么 ,不捐也不会让你失去什么 。 嗯
, 首先欢迎 Rio 回来 。
耶 , 之前病了缺席了一期 。
积劳成疾嘛 。
搬
家嘛 , 就这样子 。
嗯 ,是挺折腾的 。 搬家穷三年 。
呃 , 那个 , 我们今天节目还是先念一下, 就之前我们收到的一些听众反馈的节选吧 。
对 ,其实我们两期没做听众反馈了吧 , 所以可能有一个月没有 , 呃 , 反省一下我们之前犯过什么错误 。
但是最近 , 最近没有听众指出我们读音的错误了 , 我觉得这也是一件好事 。 要么我们读音开始没有错误了 , 要么就是听众们开始放弃了 。
OK。
先开始读一篇听众反馈 。
好 。 就是有一个叫刘春的朋友 , 我应该是叫刘春吧 , 我觉得这么写的话 。
嗯哼 。
啊 ,他这么写的哈 :" 刚刚听了 《 并发与异步 》 这期 , 比较赞同吴涛的点子 , 就是提前公布你们希望讨论的主题 , 让大家可以参与贡献 idea。"
哎 , 你觉得这个怎么样 ?
这 ,但是我那期说了之后就发现 , 好像提前公布我们希望讨论的主题怎么公布啊 ,是我们这一期就要公布下一期的主题吗 ?
好像来 , 好像没有提前准备是吧 。
事实 , 事实上的状况就是 , 我们这一期都不知道下一期要讲什么 。
哈哈 , 所以这件事情不现实啊 。
这样不行啊 , 说实话 。 我们应该一下子就把后半年的主题全都介绍好 。
弄一个列表 , 然后大家去自己去下面填充好了 。
对 , 然后在 kernelpanic 网站上面发出来 , 就是哪些 , 哪一些话题可能可以讲 。 然后如果讲的话 , 可以 , 可以讨论哪方面的问题 。
但是 , 嗯 , 请不要在下面写 " 请谁谁谁当嘉宾 ", 就我们应该是请不到的 。
完全没有办法保证 。
对 。 嗯 , 继续 。
好 , 那我接着念这个刘春这个朋友来的这个反馈哈 。" 说到数据统计和分析 , 或者更宽泛的 data science,其实学数学的人比纯粹的程序员有太大的优势了 , 这一点我深有体会 。
通常一个 data science 项目总是会包括 , 总是会包括数据收集 、 进化 、 转换处理 、 分析建模 。 对程序员来说 , 对数据的操作基本不是事儿 , 再加上像现在像 Azure Machine Learning Studio 这样的工具 , 基本连编程都不用就搞定了 。
可是建模分析就是一个极大的挑战了 , 选择什么样的算法是有效的 , 什么算法是最优的 , 针对特定的问题 , 算法应该如何调整 , 这些问题如果没有足够的数学基础 , 无法回答 。
而模型的好坏 , 直接决定了你的分析是否有效 。" 可惜你们不打算讨论微软技术了 , 否则也许我们可以讨论一下 Azure Machine Learning 比较 , 比较 R 和 Python 在 data science 方面的长短 。
对 , 就是这个他的来信的全文哈 。
对 。
你怎么看 ?
其实 ,其实我们是 , 我们嘴上说不打算讨论微软技术了 。
但本期主要讨论微软技术 。
我们嘴上说不要 , 身体却很诚实 ,是不是 ?
对 , 嗯 , 我们不是不打算 , 对 , 我们是不打算讨论微软技术 ,但是实际上微软技术是绕不开的呀 ,在今天 。
而且 , 嗯 , 我不知道你有没有这种感觉 , 就是挥别了巴尔默的这个中世纪的黑暗时代之后, 微软可能要开始文艺复兴了 。
老树逢春 。
对 。
好吧 。
就 , 很可能微软又要开始大放异彩了 。 但现在说这种话还为时过早 。 不过有一件事情是肯定的 , 就是想要绕开微软 ,其实是很难的一件事情 。
嗯哼 。
那 , 我觉得咱们两个的背景可能都是决定了 , 就屁股决定脑袋嘛 。 就我们两个都是微软阵营之外的人, 所以有时候说起来微软问题总会有那种隔靴瘙痒的感觉 。
但是也没什么办法 , 就 ,也就因为主持人就我俩了 , 对吧 ? 就你也不可能 , 你也不可能指望我们两个去搞微软的什么事情 ,因为毕竟不是混这口饭吃了 , 何必呢 ?
所以当我们讨论微软问题的时候 , 就大家就当娱乐节目来听就好 。 而且事实上我们这一期是要讨论微软技术 。
耶 ,OK。
然后 data science 这个主题 , 呃 , 我们其实计划很久了 ,但是暂时还没有找到一个合适的嘉宾 。 呃 , 我们想把这期做好 , 所以就反正要就多跳几期的票吧 。
对 , 明天我们 。
讲的肯定会讲 。 对 。
呃 , 然后我再来念下一条反馈 。 嗯 , 这是来自一位叫做 Virgil Min 的同学 ,Virgil, 维吉尔 , 就是那个诗人的名字 。
嗯 , 这一期应该是 , 啊 , 这个反馈应该是针对我们提到 I like rabbits 的那一期 。 两位主播 , 虽然 I like rabbits 听起来只是另外一个版本的 freelancer,但是我注意到 , 这个网站声称他们只解决 small well-defined programming tasks。
正如节目中提到的 , 把需求明确到的这种程度 ,其实已经完成了工作中的绝大部分 。 最终只是需要找到胶水 , 让需求的模块跑起来而已 。
而程序员们并不缺胶水 。well-defined 本身作为迁移的概念 , 难以保留原有的严谨 。 数学上, 对于运算符和函数 , 对于是否 well-defined 都有形式上非常精确的判断 。
而产品经理 , 这个用法 , 这个说法可能不是很精确 , 可能客户只需要一个轮子 , 缠不上产品 。 所以产品经理这个 , 呃 , 措辞应该是要加引号的 。
产品经理对于一个功能的定义 , 很难做到形式上的精确 , 如同算法课上我们碰到的代码那样 , 可以用于证明各种的 , 呃 , 可以用于证明正确性 。
我相信他们的客服要和客户来往好几次邮件 , 才能明确具体要做什么 。 但是当然这对客户也是好事 。
而这让我想到了 Wolfram Alpha, 这个服务刚刚出现在媒体报道上的时候 , 引起了不小的关注 。 但是从 Google Trend 我们可以看到 , 它两个月之后的热度就下降 , 下降到了顶点的 10%。
之后它的热度按年呈现周期变化 ,在春季和秋季各达到一次高峰 。 我的 wild guess 是大部分的热度来自于需要完成代数作业的学生 。
他说 , 呃 ,在本校这个 , 这个情况相当的普遍 。
嗯哼 。
而 Wolfram Alpha 通过程序得到结果 ,I like rabbits 则通过人工 。 假定 rabbits 的客户都提出 well-defined 的需求 ,不需要客户问您是不是要怎么怎么样 , 那么为什么不能让程序代办 rabbits 后面的工作呢 ?
尽管 NLP 是一个 natural language processing, 是一个复杂到极点的工作 ,但是应当可以假设 , 描述这些问题的语言只是其中一个很小的子集 。
它不需要 , 或者只需要很少的清洗 , 就能够方便地解析为语法 , 语法树 。 比如抓取我站点上所有每日 page view 超过 100 的页面 , 可以被解析为 fetch mysite.com, 呃 ,is page greater than page view per day one hundred。
它是用 list 的语法写的 , 反正它是写了一个语法树 。 然后, 嗯 , 它说有很多条件 , 比如说生成 Ruby 的目标代码 , 可以从 Google Analytics 去提取 page view, 静态页面统一使用 slash 结尾 , 没有扩展名等等等等。
而这些作为语法树的可选部分 , 肯定要留给默认值 。 然后给这个语法树里面每一个元素写 eval, 然后把它们 , 呃 , 拼接起来 。
这一步才是最难的 , 就该像 , 大概就像那一期 XKCD, 我需要一个国家级的实验室 , 数十个博士 , 数年的时间 , 数以百万计的美元 , 朦胧多的边界约束 , 函数 , 函数逻辑 , 参数类型 。
但至少这是一个很少 ,但至少这是一个可以计算的问题 。 而且很可能 AI 发展到这种程度的时候 , 这一集的逻辑大部分也是由程序生成的 , 可以自适应进化 , 人工只是执行一定的 supervision。Supervision, 呀 ,exactly。
嗯 , 我一直是个人工智能领域的票友 , 我喜欢这种畅想 , 它让我感到放松 。 谢谢两位带来的节目 。
我刚才念的可能有点 , 可能有点乱吧 。 这位听众的主要意思就是 ,他觉得 I like rabbits 其实是可以一个 ,其实是一个可以通过人工智能完成的网站 。
对 。
嗯 , 本质上我觉得他的说法固然没错 ,但是在今天显然是做不到的呀 。 你不觉得吗 ?
呃 , 还是有点远 ,但是我觉得 ,但是起码觉得他至少就指出了上次我们聊的那个 ,他的一个这个东西 ,I like rabbits 这个的一个短板嘛 。
就是你要让客户提出一个 well-defined 的 task,其实是相当困难的 。 所以其实他 ,他那个 well-defined 其实也是只是针对人而言 , 人而言哈 ,他还没有说到一个 , 呃 , 机器能够认为它是一个 well-defined, 它能够直接给出答案的这么一个方案 。
所以 , 嗯 , 这里面就在真正的人工智能实现之前 , 我觉得这样的需求可能还是有的 。 看 , 只是可能是一个逐步缩 , 缩小的过程吧 。
对 。
就好像 , 呃 , 我们觉得这个东西实现起来似乎没有什么太大的困难 。 就至少在如果它实现好的话 ,在它的交互界面上应该不会比 , 呃 ,Cortana 或者是 , 呃 , 那个互联里面的 Jarvis 更难 。
至少在操从操纵者 , 从操作者的角度来看应该不是这样 。 但是实现起来 , 我觉得目前的水准应该是做不到 。
然后 ,但我觉得这正是 I like rabbits 的那个可取之处啊 。 它就是它用一个叫什么人力朋克的方式来帮你实现这种理论上应该由 AI 完成的工作 。
对吧 ? 所以它不是 , 它不是 AI, 它是 , 它是 , 它是 TI,True Intelligence。
对 。
好吧 。 那我来念今天最后一则听众反馈啊 ,也不是最后一则 , 就我们选出来的最后一则 。 这是一位叫 Beal 的朋友 ,他是给我们说 14 期的反馈 。
嗯 , 第一次给 《 内核恐慌 》 写反馈 , 一直挺喜欢你们的节目 。其实最初是从知乎上莫名其妙的知道了这么一档节目 ,也是从此才知道播客这个东西以及 IPN。
但听了几期后觉得还挺有意思的 , 抱着听诗货的心态 , 偶尔还能听到些干货 。其实很多货都听不懂 。
这个还挺蛮好笑的 , 到底是 , 那我们节目到底是诗货还是干货 ?
我觉得 podcast 不可能是干货吧 。 这一棒子打死了所有 podcast 的 ,但我觉得就是这样的 。
就反正我感觉吧 , 就我们节目讲干货的 , 就打引号干货的时候其实挺无聊的 。 就是吹牛 , 吹牛扯淡的时候还蛮有意思的 。
所以我们还是扯淡吧 。
如果从一个市场导向的 , 市场导向的角度来看的话 ,B 节目简直是吹水的那些期反馈都是最好的 。
嗯 , 好 , 我们 , 我们明确了这个方向 。 那我接着念哈 。 呃 ,14 期开头的时候 , 吴涛说到摩托车不代表社会地位的时候 ,Rio 说城乡结合部的青年晚上轰鸣摩托车的时候肯定不是这么想的 。
啊 , 我瞬间感觉被击中了 。 因为我就在 , 就是这个 Beal 哈 ,他说因为我就在这样一个地方听你们的播客 , 每当有这样的青年呼啸而过的时候 , 轰隆声压盖一切 , 只能在心里咒骂一声 。
哎 ,其实我现在不止城乡结合部是这样 ,其实很多大城市你到了晚上交警下班的时候 ,也有这种 。 它不一定轰摩托车 , 它可能轰的是可能什么几百万的跑车 ,但是效果是一样的 。
嗯 , 对 , 轰油门是一种很没品的表现吧 。
轰油门我没有意见 , 我有意见的是它把那个消声器拆了再轰油门 。
OK, 这个是 02。
对 。 啊 , 那我接着念这个反馈哈 。 呃 ,1 小时 09 分的时候 , 吴涛谈到通过像 Arduino 这样的东西控制 LED 的 , 是一个学习编程有成就感的方式 。其实如此 , 作为一个电子类专业的学生 , 我的 C 编程就是这样入门的 。
哎 , 恭喜 。 关于操作系统存储自元年以来经历多少秒数这件事情 , 我还是不太理解 。 这是一个好的方式吗 ?
还是历史原因比较多 ? 节目中也提到了润秒的问题 ,而 2015 年我们将迎来史上第 26 次润秒 。 一些新闻也显示 , 此前的润秒调整对软件造成了一定影响 。Linux 就是那个 Linux 的发明者哈 , 好像也表示过这样的调整对操作系统而言比较麻烦 。
不知道下次节目中有没有兴趣补充讨论一下 。 啊 , 那我们这里可以补一下吧 , 就是为什么要采用这种所谓 , 呃 , 从某一个 epoch, 就是所谓某某元年开始经历多少秒数这种方式来表示时间 。
这种我们一般叫做什么 Unix time 啊 , 就是 Unix 系统时间 , 就是从那么 1970 年 1 月 1 日 0 时 0 分 0 秒开始 , 然后数 。
呃 , 为什么要这种方式呢 ? 简单呀 , 你只是需要 , 你只需要记住一个 , 呃 , 就是外部定义的一个起点 , 之后你是可以就纯数学一个非常简单的预算 。
你不需要考虑任何 , 啊 , 就对于这个软件控制的这个计时来讲 , 它是不需要考虑很多什么润秒啊 , 时间轴啊 , 那个不是 , 就是日历上的那些时间的规范啊 , 日历的不规则那些问题 , 对吧 ?
所以都是很简单很规范的一个方式 , 就是记录这个 , 这个叫什么 , 电子脉冲的这么一个次数而已 。
对 , 就如果你从这个角度来讲 , 反而是人类计量时间的方式其实非常 。
太蠢了 , 简直 。
复杂和不可理喻的 , 就是所有的周期都不能互相同步 , 呃 , 没有一个 , 没有一个叫什么最小公倍数 , 还是最大公约数的这么一个概念在里面 。
就是尤其是每次我看到这个周和 , 呃 , 月份不能 synchronize 的时候 , 都会觉得啊 , 实在是蠢透了 。
就因为本质上我们那种人类的就所谓的叫什么 , 格力高理力算数还是什么的力 , 就我们现在用的这个公列 。
儒略历 。
儒略历 。
啊 , 好 , 儒略历和格力高理力应该是同样一个东西 。
对 , 一个是就是 , 我记得是 Gregory 吧 。
Gregory 历就是儒略历吧 。
对 , 就是只是翻译的写法不一样 , 我记得应该是这样子 。Whatever, 就是我们讲的公历哈 , 我们现在常用的日历 。
它本质上在做一件不可能完成的事情 , 就是它要用 , 它要同步太阳历法和 , 就是太阳历法是这个是按这个每年嘛 , 然后它要同步这个月球的 , 月球的这个 , 这个转 , 就是每个月的这个月相那些 。
它还要再同步每天这个地球的自转 , 就是那个每天的这么一个情况 。 然后这些都是互相有影响的 ,不可能说是一个永恒不变完美的东西 , 对吧 ?
等等 , 公历是阴阳混合历吗 ? 不是吧 ?
不 , 它不是 。
它好像不会是考虑月相吧 ?
但是你每 , 就嗯 , 怎么说 , 它分那个 12 个月 , 它最开始的初衷不就是为了做这件事情吗 ? 就每一个月 , 每一个月的概念不是这么来的吗 ?
嗯 ,但是它后来 , 等等 , 我等等 , 这部分并不重要 ,但是我的印象里面应该是巴比伦人开始了月历 , 呃 , 开始了 , 就是现在用的公历的雏形 。
但是他们后来 ,他们一开始也是纯阴历 , 就世界上大部分 , 包括什么那个回教的历法 ,也都是 , 包括我们国家的历法 ,其实大部分都是纯阴历 。
但是中国人很聪明的就是加了节气这个东西 , 然后用节气来规定农时, 然后日常作息跟着月亮走 。
而不像公历这样比较愚蠢的 , 公历实际上是试图用太阳历 , 呃 ,以为主 , 然后月 , 这个每个月的设置只是一种为了延续历史而已 。
它跟日常没有任何关系 。 对 , 对 。
OK, 那这个没错没错 。OK。
不重 。
但我觉得最主要的一个问题就是说 , 啊 , 这个地球自转 , 它那个时间我们定义为一天 , 转一圈转定义为一天嘛 。
它并不是一个稳定的值 , 这个是最要命的问题 。 然后那个 , 啊 , 就如果我们这样定义一天是地球自转一周的话 , 我们在最后算出来是一年 365 天 ,是肯定是不能严格满足的 ,因为它总是会有点偏差嘛 。
然后就会造成之后的各种各样奇奇怪怪的什么润年啊 , 润秒啊 , 这样的奇奇怪怪的问题 。 所以其实从这个角度来讲 , 我们说计算机里面存储从某一个第三方 , 就外部定义的原点开始的 , 然后经历这一个纯数值的方法 , 经历过多少秒数的方法是相当简单的 。
没错 。
嗯 , 好 , 这个就说多了哈 。 然后他接着那个反馈还有一段没 , 我们没念完 。 嗯 , 单片机系统中记录时间一般会使用一个实时时钟 , 就是 real time clock 的芯片 , 啊 , 使用 32768 赫兹的金振座时钟源 。
啊 , 对 , 呃 , 很多单片机也集成这样的电路 。 如果这样的就是实时时钟芯片配有世纪位的话 , 溢出问题就不大 。
也就是说有的 RTC 这个芯片是没有的 。 嗯 , 好像我印象中单片机的这个 , 那个时钟是比较 , 通常是 16 位吧 , 好像 。
32768 赫兹 , 看起来就是个 16 位的东西吗 ?
不 , 就是它的那个记录的时长只有 16 位 。 那么这必然就少不了的就是所谓的 wrap around 的问题 , 就是你 16 位很容易溢出嘛 , 你溢出了之后怎么办呢 ?
对 。
就通常呢 , 一般的做法就是说 , 反正溢出之后我就从头开始嘛 。 对 , 对我这个系统来讲 , 如果我这个软件设计是 , 呃 , 就是鲁棒性够好的话 , 你就实时这个实时时钟 , 这个 wrap over, 就是溢出 , 从重置归零 , 重新开始记的时候 , 对你系统来讲应该是不受影响的 。
就是你总是说我经过这么一个固定秒数 , 咔哒咔哒咔哒 , 这样不断往前走 。 当然了 , 这都是美好的愿景 , 实际情况永远通常不是这样的 。
刚好最近是上周吧 , 还是前周就发生了这么一个事 ,是那个 , 呃 ,是美国的那个叫什么 , 就是反正航空航 , 就是那个民航的那种 , 就检查到是波音 787 那个什么 Dreamliner 嘛 。
它上面有个 ,有不是有那种飞机上的时候航电系统嘛 , 几套是独立配置的 ,但是他们发现有一个很窘的情况 , 就是他们也会有那个 wrap over 的问题 。
然后 wrap over 大概就是说每这个飞机每连续服役 , 就不关机 , 连续服役超过多少 ,100 多天吧 , 还是几百天 , 就不到一年, 反正这么一个时间内 , 就会出现所有系统都挂掉 , 就是因为这个时钟 wrap over 的那个问题没有处理好 。
就是那个软件觉得那个 。
所以就是要定时重启飞机是吧 ?
对 , 没错 。 所以他们飞机是不能连续开机 , 就是不能连续 ,也不是说连续飞行 , 就是不断电嘛 ,不能就是不间断运行 ,不能超过好像 100 多天还是多少天来着 , 反正是不到一年的时间 。
但你像对于这种所谓现在这种那种大型的航空公司来说 , 它是什么 , 呃 , 人停机不停嘛 , 就是几个航班 , 几个机组轮流换 , 这个但是飞机是一直在飞 , 一直在运行的 , 这样才 ,因为飞机是一个什么资本性的支出嘛 , 那个是没有 , 就是能够尽量利用起来就尽量利用起来呗 。
但是发现有这么一个很窘的问题 , 结果就是什么被发现了这个漏洞 ,也不叫漏洞 , 就 bug, 然后责令回去修改了 。
因为你想 , 飞机飞到半空中, 然后突然所有航电系统都没有反应了 , 你就没有办法 ,因为现在这个飞机是所谓的什么 , 呃 ,control by wire 嘛 , 线控嘛 。
对 。
然后所有的那个线控没有 , 这个芯片 , 电脑芯 , 电脑不工作了 , 那你个没有什么控制这个机翼啊的转向啊 , 什么完全都没有了 , 你这个飞机就是可以直接掉下去的 , 很危险 , 很危险 。
所以怎么讲 , 啊 ,以前我们用 XP 的什么 , 呃 , 定时重启还是有一定的好处的 。
哈哈哈 , 让我想起来就是有一次我从 , 我应该是要飞英国 , 然后一开始从法兰克福飞阿姆斯特丹 , 呃 , 然后在法兰克福的飞机跑道上已经到那个跑道的起点了 , 然后停了大概 30 分钟 。
然后机长说 , 呃 , 我们的飞机上的电脑有点问题 , 啊 , 阿姆斯特丹是合航 , 合航老是出这种幺蛾子 , 然后合航的说 , 合航我们在合航总部的系统工程师有一台一模一样的电脑 ,但是他没有办法复原 , 就是重现我们的这个 bug, 所以他建议我们重新启动一下飞机 , 然后我们现在需要滑回到那个 , 呃 ,gate 那边 , 然后重新启动 , 然后就滑回去重启
, 然后你就坐在飞机上等着飞机重启 , 那种感觉非常的 surreal。
重启的时候是不是会听见一堆 , 会那个重启的时候会听见一个当当当当当的声音 。
哈哈哈 , 然后系统这个时候就惊呆了 ,是不是整个人都不好了 。
没错 , 对 。 好吧 , 呃 , 今天的这个听众反馈就念到这里哈 , 我们先 。
啊 , 刚才那个 787 的事情不是听众反馈 。
啊 , 那个是我们自己加的 。
对 。
啊 , 好 。
呃 , 对 , 感谢各位听众反馈 ,也欢迎你们写信给我们 。 嗯 , 然后如果你写的足够长的话 , 我们是非常愿意把它念出来 。
这样可以填充节目时间吗 ?
哈哈哈 , 哪怕你写信来骂我们或者是批评我们 , 我们也会非常乐意的念出来 。
嗯 , 好吧 。
OK。
狼子野心啊 , 这可是 。
嗯 。
好 , 那我们现在过渡到这个新闻环节哈 , 这个时候应该想起新闻联播的那个开场的声音 。Lawrence 可以插一个 。
今天时间 7 点整 。
也不叫这周哈 , 就这段时间发生了一些不大不小的科技相关 , 我们觉得还挺有意思的新闻 , 我们给大家啊也聊一聊 。
第一个是这个 Ubuntu 那间公司叫什么 ,Canonical 对吧 ?
Snappy24:31
对 。
他们之前搞了一个叫做 Ubuntu Core 这么一个经典的系统 , 然后里面用了一个比较先进的 ,不是比较先进 , 比较现代的 , 就包管理器叫做 Snappy。
然后简单来讲呢 , 它就是一个把我们之前讲的那个 Docker 这个种种 container 的技术用到操作系统本身的这个升级和管理上 ,而不是简单的用这个操作系统上面的应用软件 。
什么意思呢 ? 就是我们通常 , 我们如果你做用过任何一款这个 Linux 的操作系统 , 就你大概会知道它会定期的不断叫你说我有多少多少个包要升级 。
但是如果你运气足够不好呢 , 就可能在升级过程中你电脑就重启死机或者断电了 , 然后这个时候你会进到系统发现 , 哎 , 惨了 , 系统已经叫做 corrupt, 就是它在一个不是一个 , 呃 , 所谓的 。
不是 0 也不是 1 的状态 。
对 , 就是一个薛丁 , 它属于那个猫的状态 。
哈哈哈 。
你说不清楚它是一个什么 , 除非你去看 , 那你一看发现 , 哎呀我靠 , 各种这个文件缺一块 , 那个包又没安装好 , 然后就属于你本来的目标是说你从 A 状态 , 就是可以工作的 A 状态 , 切换到可以工作的 B 状态嘛 , 现在已经是卡在 A 和 B 之中间这么一个不干 , 很尴尬的一个境地 。
怎么解决这个问题呢 ? 啊 , 这个问题其实对普通消费者来说可能还好 , 就现在来说 , 就总体而言吧 , 还是比较少遇到这个系统崩溃 , 就是系统在升级过程中崩溃的情况哈 。
然后断电的话 ,因为现在大部分都是笔记本吧 , 就有自带电池 ,也不太像过去的台式机 , 可能不小心碰到一个线或者就停电 , 或者这种外部原因导致这个系统啊 , 处于这个一个中间状态的情况 ,但是还是会有的嘛 , 我们还是想降低这种样的风险和损失 。
那么 Snappy 它的这么一个核心理念就是说 , 如果我们可以用之前我们讲过的这种 container 集装箱化的技术 , 就是说我们是一个 , 呃 , 叫做什么 , 增量升级 ,也不叫增量升级 , 就是一个升级好了才完全切换过来 , 就在中间过程中出现任何问题 , 我们都是可以回滚的 , 那么这不就解决了这个问题了吗 ?
这个思想还是挺好的 ,但它也不是 , 这个 Snappy 也不是第一个做这种事情了 , 之前有很多这种类似于包管理的 , 就不是从那种东西来做的尝试 ,也有很多 。
可能商用的话 , 最大就最普及的肯定还是那个 , 就是 Chromebook 用那个 ChromeOS 嘛 , 就 ChromeOS 它的这个升级过程中, 呃 , 就它是系统是采用这么一种 , 就是两个系统了 , 就是升级 , 升级 A 系统 , 你用 A 系统的时候它其实在升级 B 系统 , 然后如果你在你切换到 B 系统发现有问题的话 , 它 A 还是可以切换回 A 系统的 , 就是双心 , 两个分区嘛 , 这样子 ,但是同样的 , 同样
的系统呢 , 不同的版本这样 。 然后 。
对 , 这个就比那个有一个 recovery mode 要稍微先进一点 。
没错 。
两套系统都是可以用的 。
对 ,但是它这个力度还是比较粗哈 , 就是说是一个 ,因为只有两个 AB 轮换嘛 , 等于是 。
对 。
就如果我们其实想做得好一点 , 就是说尽量能够说连这个就是每一个系统的小的改动都可以通过这种像 container 的方式 , 就不是 AB 轮换 , 就是 ABCD 可能这样 , 你可以无限增多的这么方式轮换 。
当然我它那个是年初的时候吧 , 出了一个就是可以大家用的这个试玩版 , 我就用了一下, 就 Snappy 啊 , 我觉得还不错 , 挺好的 , 就感觉跟那个 Docker 挺像 ,但是管理系统 。
嗯 。
呃 , 我觉得这个东西在服务器上的优势还是蛮大的 , 就省心嘛 ,在现在的 。
对 , 我觉得这一次最重要的意义就是 Snappy 终于要进入 ,因为它之前只是在 Core 上用嘛 , 然后 Snappy 现在要进入桌面版了 ,Ubuntu 的桌面版 。
是说是 15.04 还是说哪一个叫做 , 还是 15.10?
呃 , 应该是 15.04 吧 。
15.04, 就今年的这个 , 就已经发了这个版本 。
应该它是 , 对 , 它应该是要开始 。
啊 , 它这肯定是一个漫长的过程嘛 。
15.04 我还没有装 , 我觉得可能在 15.10 里面会出现吧 。 对 ,因为它是 5 月 8 日 announce 的 , 所以它应该是 15.10 才会出现 。
OK, 对 ,因为这个 Ubuntu 它那个系统发行版本 , 它是说每隔好像是一年、 两年吧 , 会发一个所谓长期维护版本 , 对 ,long term support。
OTS。
对 ,但是这之间我们现在就现在那个 Snappy 进到这个 Ubuntu 这个正式版 ,而不是之前那个经典版的 Core, 它其实是所谓的中间那个就是非那个长期维护版本的 , 就是简单来说大家做小白鼠嘛 , 就我还是挺鼓励大家去试试 , 看下感觉怎么样 , 然后因为这个毕竟是一个新全新的管理系统 , 我觉得必然是什么坑多路滑哈哈 , 要大家去多踩踩 , 这样后人
才用得爽嘛 , 就鼓励大家去尝试一下 。
嗯 , 然后我觉得它最大的一个特征或者一个特点就是它会 , 它把所有的依赖全都打在一个包里面 , 就是它每一个包都是原子的 , 然后这个包一换上去 , 所有依赖就跟着那个包一起去了 。
嗯哼 。
呃 ,也算是它的一个特点吧 , 就它试图用就有点像 NPM 那样的方式来提供依赖管理 , 就所谓依赖管理就是不管理 , 就你需要什么都全都给你 , 然后但是你也别管 , 你也别去操心这个东西别人用不用得上的问题 。
嗯哼 。
这一点也是 , 就算是现代操作系统发展的一个
一个一个思潮吧 , 就好像我觉得以前之所以会出现 DIY hell 或者是 dependency hell 这种 。
嗯哼 。
呃 , 窘境原因之一也就是以前的硬盘太贵了 , 然后现在 。
想节省空间对吧 。
网速也快了 , 对 , 网速也快了 , 空间也多了 , 那这种依赖的问题也许就可以通过这种简单粗暴的好 , 你要什么我就全都给你包起来 。
嗯哼 。
然后一次性的意图 , 一股脑的给你装上完事 , 这样的方式来解决也挺好 。
但现在我有一个事情我觉得不太清楚 ,但是硬盘我们现在说存储空间不是一个问题 ,但是我觉得可能另外一个就是说这个共享的内存可能还是一个问题 ,因为如果你是通过就比如说你有两个应用都连接到一个包的话 , 如果你两个应用同时开 , 这个包本身是可以就是那个他们共享的那个外部连接的包 , 应该是可以只用加载一份到内存中的 , 然后当然两
边是可以呃共用的吧 。
如果在呃加载本地的包之前 , 加载本地的依赖之前 , 先看一下内存里面有没有 ,有的话就用吧 。
但是这个版本不就有问题吗 ? 就可能两个依赖这个 。
可是即便在 DIY hell 的时代同样有这个问题啊 , 就是你可能需要另外一个版本 , 那那个时候你还是需要再 load 另外一份啊 。
嗯 , 没错 。 嗯 , 就总体来说我觉得就是趋势肯定还是说 , 呃 ,不管以后操作系统也好 , 还是这个应用的这个分发也好 , 可能这种就集装箱化可能还是一个比较好的趋势 , 就起码它对管理哲学上是一个相对呃怎么讲 , 独立啊 , 好维护的一个东西 。
当然也有另外一种就是是这种反对的声音啊 , 反对声音主要就是说从这个软件的这个维护和这个开发的角度上去讲 , 比如说之前我们不是出过那个 SSL 的那个 hard delete 的那个漏洞吗 ?
那出了漏洞肯定大家就要修修补补啊 ,因为很多人都用了那个 open SSL 那个包嘛 , 那大家都要升级到最新版本啊 , 才可以就避免有那个 hard delete 的这种比较严重的安全漏洞的存在嘛 。
如果说整个系统的这个 SSL 就用到 , 凡是用到 open SSL 的这个软件的包 , 都是外联到同样一个 。
全部都是自己的 。
对 , 就只用升级一个嘛 , 就只用一次升级所有人都好了 , 对吧 ? 就那个漏洞就安全漏洞就解决了 。
但是如果采用像呃集装箱化这种方式 , 就是各个 APP 自己是一套独立完整的这么一套 stack 的话 , 那你要遇到这种呃使用面积比较广的 , 然后又比较严重的 bug, 这个的软件库的 bug 的时候就比较痛苦了 , 你可能要挨个挨个 APP 去升级去 , 然后才能保证你整个系统中没有任何部分可以遭受到这种 hard delete 的类似的这么一种漏洞的攻击嘛 。
所以我不太清楚这两边可能还是有一点矛盾的 , 我觉得可能从用户的层面来讲 , 那可能觉得像那种现在说的 APP 那种方式 , 就是装一个然后直接删掉也没什么问题 , 这种方式可能是更加简单易懂和直观的 , 然后维护性更好 , 它不会有残留垃圾什么的 。
但是我觉得像从这个软件开发者的这么一个角度来讲 , 可能还是有会对这个是有比较大的疑义的吧 。
没错 。
嗯 。
对 ,但我也不知道 , 至少从 Ubuntu 的角度讲 , 它作为全球第一的 Linux 发行版 。
嗯嗯嗯 , 它已经是全球第一了 。
是吗 ? 应该是吧 。
我不太清楚 ,因为我 。
我前两天看了一份服务器上的装机量 。
OK。
应该现在应该是全球第一 。
OK,OK。 就我之前老是看到有人说 , 哎呀 , 我们这个 Fedora 多好 , 我们这个 CentOS 多好多好 , 所以也很难讲 。
所以可能企业级和这个全球这个一个总体的水平还是不太一样的 。
对 , 你要说付费的话 , 那现在 Red Hat 仍旧是第一的吧 。
啊 。
Red Hat 应该是应该是第一 ,但如果你考虑所有的 Linux 发行版本的装机量的话 ,Ubuntu 现在应该已经是 ,不是应该已经是 ,是我现在看了一份报道是 。
小白用户太多 , 什么商业知识都不够用了 。
嗯 。
对 , 就好像现在 System D 也已经跟着 15.04 成为 Ubuntu 的默认启动项目了 , 所以启动管理器了 , 所以 。
OK。
呃 。
他们推动力量还是很大 。
哈哈哈 , 没错 。 但也有很多人对这个有什么不爽的声音 , 好像是另外一回事 ,以后找机会再聊吧 。
对 ,他们就无情的被历史的洪流淹没了 。
哈哈哈
。
OK, 呃 , 下一条新闻是一个也不算多重要 , 就是有一个有一个 manifesto 叫做 NoTCP 活动 。 对 。
NoTCP34:38
你这里肯定要解释一下它的主要的诉求是什么 。
对 , 那就其实很简单 , 就是一个网站 , 一个叫 notcp.io, 然后上面有一个大大的 TCP, 然后画了那个就是在上面画了那个禁止的标志 。
嗯哼 。
然后它开宗明义也说了 , 就说好 , 我们也是一个怎么说 ,hipster 的一个宣告 , 就是呃 , 顺应了比如说 Node.js, 呃 , 它这句话写的其实还是挺酸的 , 它说 just as Node.js and NIO provided the world that, uh, proved to the world that bare metal performance is always worth the consequent unreadable code.
就说 Node.js 就 JavaScript 这么丑的东西 ,但是为了 performance, 呃 ,也是可以被人接受的 , 或者是那么多这种莫名其妙的 NoSQL 的 database 也是被呃证明是非常有用的 。
我们现在也要开始就是宣扬一下这个 TCP 其实是非常传统 , 非常老掉牙 , 非常不那么入时的东西 。
我们要宣扬大家来开始摒弃 TCP,在
不该使用 TCP 的地方就不要使用 TCP。 然后对 ,其实它的诉求就是说呃 , 你要尽量去采用 UDP 协议做一些呃本来不该由 TCP 完成或者是使用 TCP 协议会太重的场合之下 。
主要有哪些呢 ? 可以举几个例子吗 ?
对 , 比如说它举的例子像那个 Google 开发了叫 QUIC 吧 。
嗯哼 。
QUIC 协议其实就是一个呃以基于 UDP 的传输协议 。
没错 。
或者是它写了一些比如说 NDNS 或者是 NTP 或者 RTP,其实全都是基于 UDP 的协议 。 然后它说它的这个 manifesto 的要点就是如果你开发一个呃比较依赖实时性 , 呃比较强调不能有 Let's see, 呃但是又能接受丢一些包的 APP 的话 , 那其实用 TCP 是一个很好的选择 。
嗯哼 。
呃 , 它还举了那个 Torrent, 就是 BT 下载的那个公司那个组织所开发的所谓叫什么 , 呃 MUTP 吧 。
OK。
MU 就是一个那个希腊字母的 MU,MUTP 的 transfer protocol,也是基于 UDP 的 。 对 。
MU 这里要解释一下,MU 就是在对应到英文就是 micro 的意思嘛 , 就是微型 。
对 , 就很小 。
微型 CP, 微型 control protocol 这样的一个意思 。 就它网上有这么一段话 , 就说 TCP 的问题是什么哈 , 就说 the problem now is that TCP gives us an ordering guarantee that's much stronger than we need.
All packets are reassembled in order as they are received, but we know that the order in which we interleave them never mattered to begin with. One delayed packet can artificially delay the availability of the data for all streams multiplexed over that connection.
This is one form of ahead-of-line blocking, as before the application knows its specific needs better than TCP. In this case, we've treated startup's latency for a significant steady state latency when neither is necessary. 这段话有点绕 , 然后有点长 , 然后里面又涉及到很多概念 , 可能要解释一下才能够理解啊 。
就很多如果不是学这个网络通信的朋友 ,其实我们也不是学网络通信 , 我们也是半吊子水 ,但是就尽量吧 , 尽量解释一下什么意思 。TCP 的主要问题就是说它有一个 TCP, 我们知道它提供一个所谓的这个排序的保证 , 就说你先发的包一定是先收到的 , 呃 , 后发的包是后收到的 。
但这个是一个非常强的这么一个这个一个 guarantee, 很强的一个保证 。 呃 , 就是因为但实际传输 , 我们的网络传输并不是说严格是先入先出嘛 ,因为跟一直走的那个路径不一样 , 和这个可能一些什么延迟或丢包的情况不一样 。
它是要就是你的操作系统底层 , 就 TCP 这个协议这一层 ,是要做一些额外的工作去把那些可能是乱序来的包重新组合成有序的嘛 。
这样的话会有什么问题呢 ? 就是说呃 , 一个假设你传你发的包顺序是 12345 这样顺序发 , 里面它有这个 TCP 的这个排序保证 , 你收到的也是 12345,但是有可能在传输过程中 2345 都正常过来了 ,但是 1 可能被 drop 掉 , 就是在传输过程中被丢掉或者损坏了 , 这叫重发嘛 。
重发的话你得等那个什么有这个什么这个 ACK, 就是这个叫什么 acknowledgement, 我这个中文叫什么 。 呃 , 确认接受 。
对 , 确认接受这个机制就会导致说你得等那个比较久的时间才能够那个才那个发送方才知道哦 ,A1 那个包已经已经丢 , 已经被 drop 掉了 , 没有对方没有收到 , 我才得还得再重发 。
但这个这个相对延迟的等待的过程中呢 , 对方那边即便他的那个那个 TCP 协议那层是已经拿到了 2345 这么多个包 ,因为他没有 1,他没有办法像上层应用说提供说哎 , 这个数据其实 80% 已经有了 ,但最开始的 20% 是还没收到 , 你是就等着吧 , 反正我现在我什么也不给你 。
你就只能等。
你也只能等着啊 。 这个就是说这是一种叫所谓的 head of line blocking 嘛 , 就是说头部阻塞 。 我不知道这个翻译合不合适哈 , 就是因为一个火车头的前面那节那节没有没有到 , 导致后面的虽然到了 ,但是也没法交货给你 。
但其实这个是很蠢的嘛 , 我们知道对于很多这种实际应用来讲 , 它并不是特别在意说这个一定要按某一个既定的顺序到投递给你的信息 , 对吧 ?
最简单一个我们说呃 , 打开一个网页 , 对吧 ? 传统来说我们我们得等那个那个每一个那个 HTML 代码一个一个字符的传过来 , 我们才可以逐行显示 。
这其实并不是的 , 现在浏览器是很聪明的 , 它可以解析片段嘛 , 对吧 ? 它可以说啊 , 我们先说到后面的 , 看看那里有一个 js, 前面那里有一个呃 ,其他什么东西 , 它也是可以阻塞的 。
可能这个例子还不是很好 , 可能浏览器解析可能还是有一些这个顺序依赖的 。 我们再举一些相对来说比较呃更容易讲的一些例子 , 就是可能图片 , 对吧 ?
你知道像那个像 JPEG 的图片 , 它是就是我们是可以其实可以分块加载的嘛 , 就是假设我们把这个图片 。
或者视频流 , 最简单的视频流 , 你一帧能看到并不重要啊 。
没错 , 没错 , 就是你你甚至可以说你我先收到后面的再 buffer, 就是所以先把先收到我就存起来嘛 , 然后待会再放 , 对不对 ?
就其实会有这么一些问题的 。 但是因为由于这个我们现在这个整个网络就是说是还是以严重以这个 TCP 为主 , 就起码从应用层面的角度来看 , 呃 , 就其实体验是并不好的 。
当然这也和刚刚你提到像那个一些应用啊 , 就说像 Google 新出那个 QUIC 这种协议 , 它就是为了解决这个问题 , 就说我们知道在给定这种应用情况下, 我们如果不保证严格保证这个这个顺序投递 , 我们其实可以获得更好的这个传输的这个一个是传输带宽也好 ,因为它有这个 TCP, 还有一些其他的流控的方法去解决 。
如果遇到丢包 , 它会把那个传输带宽降低嘛 , 对吧 ? 然后再你看逐步恢复这样的一个过程 。 但是其实如果我们见面对现在的一些网络状况 , 特别是像这个移动那个就是手机网络 , 它是一个高度延迟不稳定的啊 , 这种情况其实是对 TCP 这种协议来说是不太适合在这种网络情况下用 。
但是我们没有办法 , 就是说一个有一个历史依赖的 , 对吧 ? 路径依赖的问题嘛 , 现在已经有了 , 你没有办法还记得用 。
但是我们就说现在我们认识到了有这么一些问题 , 那我们就说呃呃 , 从这个协议层面来讲 , 我们以一个更加简单 , 没有那么多包袱 , 没有那么多保证的 UDP 协议的基础上再构建出这么一个呃 , 就是应用层独立的协议 , 然后来满足就提供更低的延迟 , 更好的带宽这么一些 , 就最终得到的是用户是更好的体验嘛 。
对 。
对 , 差不多这个意思 。
当然从 TCP 的角度来看 , 呃 ,也不是没有过就是试图改善 TCP 的这种延迟的尝试 , 比如说呃 , 曾经有过一个叫 TCP Vegas 的项目 , 哎 , 我相信甚至至少 FreeBSD 的内核里面也已经把它呃编译进去了 , 就是现在 BSD 应该已经支持所谓的 TCP Vegas 这样一种呃 , 叫做 congestion avoidance algorithm 的的改善版本 , 就是使用这种 TCP 的怎么说方言 , 你可以获得更好的呃 , 更低的延迟 ,因为它试图
从算法层面上去减少 TCP 所可能产生的网络阻塞 。 但是呃 , 出于历史原因 , 就是 worse is better 的普通 TCP 的大部分时候是大部分时候是足够用的 , 所以这个 TCP Vegas 的这个项目一直没有普及开来 , 至少我相信 Windows 应该是不支持的 。
所以但 UDP 是到处都在 , 所以基于 UDP 来开发这种所谓的 NoTCP 的专门的传输协议 , 呃 , 应该将来会比较成为某种潮流趋势吧 。
当然并不意味着我们要抛弃 TCP, 就好像 NoSQL 并不是真的 NoSQL,NoTCP 也是 not only TCP。
哈哈哈 , 没错没错 。 但是这里面其实我觉得问题还是蛮多的哈 , 就首先一个就是说如果所有的应用层都自己去基于 UDP 来 , 就因为 UDP 不保证一些东西嘛 , 所以它的那个可能延迟和这个带宽就会好一些 。
但其实还是有很多很多问题 ,因为网络并不如我们想象的那么简单啊 , 就是可以随便提几个比较常见的问题 。
第一个是说呃 , 从这个成本上来讲 , 所有的应用都要自己重新发明一遍轮子 , 对吧 ? 本来又说系统可以解决这个 TCP 提供这个这个顺序保证 , 那你写应用的时候你就有一个假设可以做 ,其实可以简化很多事情嘛 。
那现在就是说你没有这一层呢 , 你要自己去 , 要么你自己去所谓就自己发明轮子 , 自己再搞一遍类似这种 QUIC 的协议 , 或者你就直接用现成的 QUIC 协议 。
但是就即便是你用现成的这种 QUIC 协议 , 它还是有一个问题 , 就是说它是一个应用层的东西 。 应用层东西有什么不好呢 ?
就是应用层东西它互相应用互相之间是没有办法直接沟通协调的 ,因为出于这个权限的问题和这个安全的原因嘛 。
对 。
对 , 所以就会导致说造成说同一个系统上面的跑着多个呃 , 基于 UDP 协议的应用会互相打架 。 一个常见的例子就是说可能单机上还不是很明显 ,因为都毕竟是你一个人用嘛 。
但是你像如果你几个人在共用一个路由器 , 比如说你的你在上网打游戏 , 那边你的室友在 BT, 呃 , 然后你的就比较痛苦了 , 呃 , 你没有办法很你没办法去控制他电脑去做一些事情 , 你唯一能做的就是在这个路由器上去做一些流控啊 , 给那个什么 quality of service, 就是呃 , 服务质量的一些控制 。
但是你是并没有直接控制他的电脑的嘛 。 这个情况就可以类比为如果大家都就你在同一台机上的所有就大部分应用都自己搞这么一套 UDP 的话 , 就大家可其实可能会互相抢占资源的嘛 。
对 , 这好像你和你的邻居们只有那么一个油桶 , 然后你每天要自己很多很多信条 , 又很塞满了你的油桶 , 邻居 。
对 。
把信塞不进去了 。
没错 。
我之前想起知乎上有一个人说他们说什么他嫌宿舍里面其他人打游戏太吵 , 然后他把一个网线呃 , 插在墙上的网线接口 , 就是他自己的那个位置上没有接电脑 , 没有接网线 , 然后他呃 , 把网线连到床上, 然后在床上把两网线的两端呃 , 绑在一起 , 这样他只要用大拇脚趾去去踩一下, 整个宿舍就断网了 。
哈哈哈 ,effectively 让所有人都玩不了网游 , 然后可以安心的睡觉 。
太机智了 , 这哥们竟然竟然还活下来 , 没有被室友砍死也是不容易 。
没有没有被发现啊 , 就 。
室友太蠢 。
是 。
好吧 , 如果如果遇到像我这种吹毛求疵的 , 你会去追根到底 , 到底是哪个线那里出了问题呢 ?
就会发现是他干的 。
嗯 , 这是知识改变命运的活生生的例子 , 只有你懂这些呢 , 你就可以去玩弄别人, 对吧 ?
所以什么 knowledge is power 啊 , 什么知识就是权力啊 。 哈哈哈 , 啊 , 对 , 就刚才这个核心问题点就是说呃 ,TCP 还并不是一个完全不好的东西 , 它提供有一些很基本的保证 , 就是说大家这个资源分配是由系统层级来说的 , 然后系统不会说呃 , 特别偏向某一些呃软件 ,而不而放弃另外一些软件 , 这样就是会均衡一点嘛 。
特别是在中国这种大环境下 ,是吧 ? 所以搞指不定哪个流氓软件都给你装上这种东西之后, 你就你就很苦哈哈了 。
哈哈哈 ,但是对 , 所以一个其实说白了 , 最终说到底还是一个权力的呃 , 谁说了算的问题 , 就是系统 , 你相信你的系统是一个更加公平公开公正的一个呃参与者呢 ?
还是说你说我觉得你为了追求某一个用户某一个应用的体验 , 这个快好 , 这个响应低 , 呃 , 愿意放弃其他一些这个应用的这个响应速度还是怎么样 ?
就这里面其实是我觉得还有很多是要要权衡的 ,并不是一个看起来那么简单的纯技术的一个讨论 。
嗯 , 没错 。OK, 呃 , 接下来一条新闻是呃 , 我非常喜欢乐见的 , 就是 Google 呃 ,在研发 Dart language 呃 , 用于开发 Android app。
Dart 安卓49:08
耶 。
为什么不是 go? 为什么不是 go? 我抗议 。
应该还是权衡利弊的结果吧 。 我觉得 go 可能目前看来还是不太适合开发需要写很多界面的东西 。 我也不知道啊 , 就 。
我觉得还是语法太 。
感觉还是非常 。
太弱小了 。
它不是弱小 , 就是 go 太太金刚钻了 。 它它比较精干 , 它太小 。
嗯 ,不过这里可能要先解释一下 Dart 是个是一个什么类型的样子的语言 。
需要解释吗 ?
呃 , 解释一下我觉得并不是所有人都去关注这一块的 。
不知道就 。
哈哈哈 ,anyway, 好 。Dart 其实是就是 Chrome 的 v8 team 开发出来的一种语言 。 嗯哼 , 呃
,他们开发 Dart 的主要原因也就是因为 JavaScript 和 Java 一样就比较老嘛 。JavaScript 也是 95 年,20 一晃 20 年了 ,20 年这么老的一个 JavaScript 的语言 ,他们也希望就好像微软的像微软那个 Type script 一样 ,也希望开发出一种东西来取它取而代之 。
然后 Dart 就是这样一种呃 ,Google 希望它能够成为下一代浏览器语言的语言 。 然后 Dart 现在有两种执行方式 , 一种是直接编译成它自己的虚拟机的呃 IL, 呃 , 另外一种方式是把 Dart 编译为 JavaScript。
我记得当时是当时有过一个 meme, 就是呃 ,Dart 写了一行 hello world, 然后编译出来 JavaScript 好像有 8K。 哈哈哈 , 对 。 有什么 ?
有那个 overhead。
对 ,有一个非常比较严重的 overhead, 就是如果你把它编译成呃 JavaScript 的话 , 它会变得非常臃肿 。 但是相信目前状况已经有大有比较大的改善了 。
然后 Dart 这种语言呢 , 呃 , 接下来即将被推广到 Android 应用开发上面 ,也就是呃 , 之前我们不是提到过 Android app 可以呃 , 直接用 C++ 来写那种比较 performance critical 的呃 app, 比如说尤其是游戏 。
然后现在呢 , 呃 ,Google 决定说好 , 你不写游戏的话 ,也可以采用 Java 之外的语言 , 就是 Dart。 呃 ,而且这个 Dart 最大的特呃 , 一个一个一个优势就是或者他们的理念 ,他们的理想目标就是希望能够用 Dart 写出来的 app 都跑得非常非常快 。他们有个指标是 120FPS。
哈哈哈 , 就是你跑 60FPS 已经不足以满足了 ,是吧 ?
没错 , 就我们之前提到那个哎 ,不是我们之前 ,是你们之前提到的那个 flipboard, 呃 ,在 Canvas 上实现的 app 好像也只有 60FPS。
对对 ,因为不你更快 , 没有用门 , 显示器只有刷 60 次那一秒 。
对 , 然后他们说好 , 我们要用 Dart 来写 120FPS 的 app。 嗯 , 这么多导员 。
不过先浇个冷水啊 ,Dart 本来之前说是刚才也讲了 ,是本来是说在做进这个 Chrome 就替代 , 就不叫替代 , 就是说和这个 JavaScript 作为一个并行 , 就是同时存在支持的官方支持的语言啊 。
但后来好像这事已经说不是了 , 就是说不进那个 Dart 语言 ,不进这个浏览器了 , 它不进 Chrome 至少 。
啊 , 这是什么时候的事情 ?
就就上个月吧 , 就最近也不是就今年的 , 就最近一两个月之内的事情 , 就确认说呃 ,不会了 , 就是就别想 , 你别想在浏览器里面直接用 Dart。
对 , 就这个意思 。
所以将来 JavaScript 还是会继续主宰浏览器吗 ?
没错 ,但他们现在的方向就有点变了 , 就是说其实想法是这样子 , 就是说我们不直接去取代这个 JavaScript,但是呢 , 我们推出一个就跟 Mozilla 的思路有点像 , 就是他们推出一个所谓精简版的这个 JavaScript 子集 , 然后呢 , 就其他的这个语言你是可以就是说 transpile, 就是编译翻译 , 编译成这个 JavaScript 这个子集 , 然后你这个子集是如何选定出来呢 ?
就这个子集能够能够有足够的这种一种 construct, 可以构建 , 就可以支持你上面的语言的那些基础的功能的 , 然后这个这个子集的 JavaScript 是可以很好的被这个什么 Just in time 的编译器优化的这么一个一个子集 。
这样的话就等于是说我们把这个 JavaScript 作为一个怎么说呢 , 类似于 C 或者是类似于汇编的这么一个角色 。
JavaScript is new assembly language for the web。
没错 , 对 , 前阵子一个 hacker news 的标题嘛 。 嗯哼 , 所以所以就其实这个跟现在我们这个新闻里面讲的说 Dart 直接用于这个 Android 里面的 app 的编写还是非常不一样 , 起码你说你用 Dart 的网页版件能够比较畅快的方式 , 还是说先转成这个 JS 再说嘛 。
那现在这个这个玩法就是完全不一样的一个过程 。
OK, 然后 Dart on Android, 呃 , 它的名字不是叫 Dart on Android,而是有另外一个名字叫 Sky。 这有点莫名其妙啊 , 它为什么叫 Sky?
这不光是莫名其妙啊 , 这个简直就是自讨苦吃啊 。 你知道最近是前不是上周吧 , 那个 。
搜不到啊 , 对啊 , 最大的就是搜不到啊 。
搜不到就不说了 , 上周不是那个 Skype 被判欧洲一个哪国哪个国家我忘了 , 被欧洲一个法院说判他那个商标侵权 , 那个 Sky 电视网络嘛 。
理由是因为之前理由是前面都有一个 Sky, 然后大家消费者可能会分不清楚此 Sky 和那个 Skype 是没有关系的 。
法国人里消费者都是傻逼呗 。
那是法国吗 ?
哦 ,sorry, 我我我不确定是不是法国 ,但是但是是你在你们大欧洲的某一个这个法院判决结果 , 就当时大家就觉得 。
德国人老干这种事情 , 就是你知道最开始 Google mail,Gmail 想要进德国的时候 , 德国已经有一个叫什么啊 Gmail 之类的 。
那个我觉得可以理解啊 , 那个是可以注册商标的 。 你说这个 Sky 和 Skype 这差的这十万八千里呢 。 欧洲诡异多 , 欧洲诡异多 , 这也是什么见怪不怪了吧 。
我觉得那个时候再稍后再以后再吐槽 , 我们就先说回这个这个什么 Dart on Android 啊 ,Nickname Sky, 哈哈哈 , 这么一个东西 。
就它其实是一个 , 就它它至于 Java 有什么特别的优势吗 ? 就是用于写这个 Android 应用有什么特别的好处 ?
难道不写 Java 不是最大的优势吗 ?
哈哈哈 , 黑的漂亮 。 嗯 ,但还是 。
我觉得只要你不写 Java, 基本上就可以做到 right less do more。
但是也可能会出现一个比 Java 更烂的语言嘛 , 当然概率比较小 。
Dart 显然不可能比 Java 更烂吧 , 还有什么语言能比 Java 更烂吗 ?
哈哈哈 , 说的也是 。 好吧 , 嗯 , 对啊 ,PHP 比 Java 更烂 , 这个我必须承认 。 它这个还是有一个这个 adoption 的问题啊 , 它之前那个去就撤掉 Dart 原生在 Chrome 浏览器里面支持的这么一个计划 。
我觉得可能最大的一个考虑还是说这个可能会造成这个用户群的割裂嘛 。 就你本来一个浏览器这个写开发小组 , 你就去考虑说怎么去优化 JavaScript 就好了 , 现在叭多出来一个新语言 , 我还要再考虑你这个新语言的模型 , 就并不经济嘛 。
然后这个从这个用户的角度来讲 ,其实也是挺有问题的 。 我跟所有其他浏览器开发都得使用 JavaScript, 哎 , 唯独给你这个 Chrome 开发 , 我再想想那 Dart 是不是更好呢 ?
就其实何必呢 ? 就这样会导致就是说呃 , 保守型的这个用户还是会倾向于选择说一个成熟的这个 JavaScript 的这种语言 , 还有成熟的一些技术来做这个开发 ,他就不会那么倾向于说用 Dart 这种没有经过所谓时间呃考验的新的语言来继续做这种商业开发 。
我觉得这个是不太靠谱的 。
除非有一天 Chrome 的市占率可以达到 90% 以上 。
啊 , 否则基本上还是不要想 。I don't think that they will ever come, but。
对 , 应该不太现实 。
嗯哼 , 现在现在那个呃 ,Chrome 也就 3% 到 40% 的市占率嘛 。 那中国现在就完全不行了 ,因为就是被封锁 , 就没办法下载 , 没办法更新嘛 。
就其实用户觉得这个流程和发现都是肯定是走下坡路的 。 国外可能还行吧 , 对 。
Build 大会58:08
嗯 , 对 , 然后接下来嗯 ,Windows 10 搭载的 , 或者说微软的下一代浏览器也很有可能会替微软抢回一部分掌上 。
嗯 , 这个其实今年就我们现在马上聊到的这个主题 , 就是今年这个已经过了一段时间了 , 我们现在聊的比较晚 , 就是这个微软的 Build 2015 这个大会 , 开发者大会 。他们提到的一些东西 , 嗯 , 你你先说你觉得印象比较深刻的那几个吧 , 你先看了哪些 ?
呃 ,其实我唯一关注的就是 Holland。
其他都没看 。
我不知道你就整个那个 keynote, 我只看了 Holland 那一部分 , 然后就转头打游戏去 。
啊哈啊 , 啊 ,Chrome 就是那个第一天那个主题演讲 , 我还看了除了这个讲 Azure 的中后半节之外 ,其他我都看了 。他先先说那个会吧 , 那个那个主题演讲 ,他前面花了相当长时间讲那个 Azure, 就是那个他们那个云服务 。
我觉得其实挺无聊的 , 就不是很多人都要做这个后台开发嘛 , 你要讲那么多有什么用 ?
对 , 我觉得 Azure 有点就是 over 了 , 推的有点太过头了 。
不过但这个也能够理解 , 毕竟那个谁 Santaya Nadella 是是 Azure 部门头头这样过去的嘛 ,他可能在这个人员部署上可能会有点偏向性 。
但我我觉得那个安排是不太好的 , 起码作为一个主题演讲就是太繁琐 , 太多太多细节东西 , 没有把消费者能够感知的东西啊 , 统统给突出出来 。
当然你可以说这个我们这个 Build 会又不像这个 WDC, 第一天主要是面向这个外媒体和消费者 , 就我们这个 Build 就完全是针对开发者 , 那也可以 ,但起码说从一个呃个人消费者来讲 , 还是说从媒体角度来讲 ,他现在这种方式就这么匆匆发布出来 , 好像感觉是不是会有一点问题呢 ?
呃 , 我觉得 Build 不能呃 , 真正的消费者会有多少 , 真正的开发者会有多少看 Build 的 , 且不说真正的消费者没有几个在看 Build 了 。
消费者我感觉就是微软 , 微软还是有不少这个所谓铁杆粉丝的嘛 , 就是说这个我不怀疑 , 就只是说这个数量上怎么样 。
而这个第二个说他们这帮人到底有多关心 Azure, 值得讲两讲半个小时, 然后换三个人这种方式 , 我觉得也不一定对 。
我是可以理解微软非常迫切的想要抢回服务器端的嗯市场份额的决心 ,但是我觉得在这样一个开发者大会上花这么长的篇幅来介绍这样一个产品 ,有点有点 over。
嗯 ,但
anyway, 这这虽然 B 公司也正在试图呃跟 Azure 呃之前反正开了很多天的会啊 ,但是我没有参与 , 就想把公司的产品做做进 Azure 里面 , 成为他的一个服务 。
哈哈哈 。
但我觉得还是离觉得还是离我很远 。
哈哈 , 嗯 , 就是 Build 这个 keynote 上还展示了一些其他东西 , 另外一个重头戏就是这个 Windows 10 了 。 就反正起码从 demo 角度来看 , 还是蛮激动人心的 。
然后上次我们请小姐姐来讲 , 就她也说这个就确实 Win 10 还是不错的啊 , 虽然现在开发测试版可能不是太稳定 ,但是啊 , 起码从设计上来讲 , 工程上来讲 , 我们看的还是挺好的这么一个过程 。
但有 Win 10 有一个特点 ,Win 10 还是继续延续了这个微软有非常非常多的版本的这个特点 。
哈哈哈 , 对 , 嗯 ,Win 10 将在 190 个国家发售 , 然后有 111 种语言 。 呃 , 然后接下来我可以大概大概说一下 Windows 10 的版本 。
首先 Windows 10 有 Home 版 , 就是呃最普通的 , 大家个最普通的消费者会买的版本 。Windows 10 Mobile 版本是跑在 Mobile device 上,Windows Windows 10 Pro 版本是 Home 版本 , 加上一些可能小的开呃小呃 small business 或者是开发者会需要的一些特性 。
然后有 Windows 10 Enterprise 版本 , 然后有 Windows 10 Education 版本 , 然后还有 Windows 10 Mobile Enterprise 版本 。 这是什么东西 ?
嗯哼 , 就为什么会有一个 Mobile Enterprise 版本啊 ? 这是哎 , 就是细分市场 。
拿来干嘛的 ?
细分市场吧 , 就挺挺古弊的 。
对 , 然后最后还有一个 Windows 10 IoT Core 版本 , 就是 Internet of Things Core 版本 。
啊 , 那个挺有意思的 ,其实那个其实可以先简单说一下, 就是说那那个的主要就是 IoT 是指这个 Internet of Things, 就是物联网 。
它那个什么意思呢 ?
其实就是指非常小的设备了 。
就因为因为物联网里面最最要紧的一个基础设施 , 就是各种各样的传感器 , 各种各样的那种小外设嘛 。
这些小外设通常的一个就是他们的一个共性 , 就是说价格便宜 , 成本低 ,但结果就是说这个处理器很弱 , 然后肯定上面还有这个耗电的这个要求 , 就是功耗有要求 ,不能超过多少 。
对 。
就导致他们那个整个就是一个比较弱小的一个一个机器 , 然后你要在那么弱小的一个机器上运行一个 Windows 系统 , 这想就就没有没有经典过的 Windows 系统 , 这显然是 。
听起来非常疯狂 。
对 , 比较疯狂的一件事情 ,而且不太合适 ,因为那些东西很多都没有屏幕 , 对吧 ? 那么你这个系统加载那些什么显示啊 , 图标啊 , 就是 GUI 啊 , 这它都是完全没有意义的 。
对啊 , 你连个蓝屏都看不到 , 何必呢 ?
对 , 所以说为了把这个 Windows 能够塞进那么小的 、 那么性能差的机器里面 , 当然同时也为了说简化这个结构 ,他们就出了这么一个 Windows 10 的这么个 IoT 版本 。
就简单来说 , 就是把这个 Windows 的这个内核拿出来 , 跟 Linux 一样 , 然后再精简一下, 把这个内核加上一些比较呃简单的周边的工具 , 装到那些小小的这个 IoT 的这种就是物物联网的设备里面去 , 就可以实现说哪怕我这个处理器弱小 , 我好歹也能跑一个 Windows 啊 , 它虽然是精简版 。
对 , 虽然这个念头在目前来看是比较奇怪的 ,因为目前的 IoT 的这些既有产品的开发者基本上全都采用 Linux 的各种形式的 Linux, 呃 , 被裁剪过的 , 甚至 FreeBSD 之类的东西来来来做它的操作 。
对 。
但是这个 Windows 呃 ,Windows 10 IoT Core 版本应该就是为了要抢占这一部分市场了 。
嗯 , 所以它有一个所谓的是一个什么 uphill battle 嘛 , 就是上山打仗 , 就是很难了 。 因为你现在市场上有这么一个免费而且可以更加容易定制化 , 然后市场规模又非常大的这么一个开源的产品 , 那你肯定选那个 , 比选一个闭源自己搞的产品是要来的 , 起码快要好 。
也不一定 , 我觉得也许 Windows 10 它固然要打上山 , 它固然要打上山仗 ,但是你必须承认这一它面对的敌人并没有团结起来对付它 。
然后呃 ,而且它有一个优势 , 就是如果你所有的产品都统一使用 Windows 10 IoT 呃 Core 这个版本的操作系统的话 , 那不管是管理还是和其他的同样使用同一平台的产品交流 , 可能会更方便一点 。
而且我觉得以微软的支持 , 微软的技术能力做技术支持是会比较好
,而且同时可以养活一大批顾问公司 。
嗯 , 就 Windows 10 之后, 我们这个上面就是目前能马上能用的 , 还有一个挺好玩的东西 , 叫做 Visual Studio Code。
对 。
VS Code1:05:59
就之前我们在我在那个 IT 公论和 LoRA 大概就是提及了一下 ,但是并没有展开 ,因为觉得那个并不适合在那个节目讲 。
那这边就是我们这个哈编辑器是我们关注编辑器 , 还有什么键盘啊 , 这些电脑外设也是我们关注的重点 。
我不知道你有用那个这个 Visual Studio Code 的这款编辑器没 ?
有啊 , 就当时看到那个新闻就立刻下载试用了一下, 就感觉还是挺蒙太奇的 , 就是你在 OS 10 上面下载 , 从微软的网站上下载了一个东西 , 然后这个东西的结尾居然不是 MSI 或者是 EXE, 它是个哈哈 , 它它应该是个那个 , 应该也是一个
,anyway, 这不重要 , 就是反正我把那个 Visual Studio 的图标拖进 application 文件夹的时候 , 感觉还是非常蒙太奇的 , 然后哈哈点了点还能跑 。
反过去 , 哎 , 这是哪个世界 ?
对 , 点了点还能跑 , 非常 surreal。 嗯 , 怎么说呢 , 就它还是一个 , 虽然它挂了 Visual Studio 的名字 ,但它本质上还只是一个编辑器而已吧 。
对 , 它是一个呃所谓的 editor。
对 , 它并不是一个 IDE。 它并不是一个呃 editing environment。
Environment, 对 , 就是这两个 E 是不一样的 , 一个是 editor 的 E, 然后那个是 IDE, 那个 E 是指的是 environment, 就是机身开发环境嘛 。
所以就他们在定义上还是区别蛮大的 , 就这个是一个简单的写代码 , 那个可能会加上什么开发 、 调试 、 项目管理这些乱七八糟的功能在里面一起的 , 对吧 ?
对 。
啊 , 然后这个 Code, 就 Visual Studio Code 这个编辑器 , 它是基于这个这个叫做 Electron 的项目做的 。
对 。
Electron 呢 , 简单来讲 , 它是就是用那个 Node 或者是我们现在新版本 , 它叫这个基于 io.js 这么一个引擎 , 加上这个啊 WebKit 或者说 Chromium 这一套的网页展示的东西 , 然后整个呈现出来的跟你这个呃看起来是一个原生应用 ,但其实里面所有的技术都是都是来自于 Web 的 。
对 , 它其实是个浏览器 , 这是很就如果你没有用过的话 , 这可能是个比较神奇的一点 ,但其实这样的浏览这样的编辑器此前已经有过很多例子了 , 比如说呃 GitHub 的 Atom,GitHub 的 Atom 也是基于 Electron, 甚至说我也在想 Electron 之前叫什么来着 , 呃 ,其实想不起来了 ,但之前它叫的那个名字跟 Atom 有点关系 ,Atom 是原子 , 所以它叫电子 , 就是它是组成 , 哎 , 它一开始就是
为了 Atom Atom 而开发的 。 啊 , 然后另外一个叫 Brackets 的编辑器也是类似的 , 基于嗯 Chrome 和 Brackets 应该是 Node.js 做出来的一个编辑器 。
哈哈哈 。
对 , 然后我觉得我试用 Visual Studio Code 最大的呃惊讶之处是 , 它并不仅仅是把 Electron 换了一个 , 就是加了一个皮肤 , 然后加了什么 intelligence, 嗯 。
对 , 它是有定制很多东西的 ,其实 。
的的功能 , 它可以 debug, 我觉得这个是最让我 impressive 的一件事情 , 就是你你写了一个程序 , 你可以在呃 Visual Studio Code 里面调试 ,其实这就已经让它成了一个嗯 , 达到了一个叫什么编辑器以上 IDE 未满的这么一个状态 。
就大部分时候啊 ,其他的编辑器都不会提供呃原代码级别的调试功能 , 你最多最多能做的就是就是把那个呃 Console 的输入输出集成到你这个编辑器的一个一个子窗口里面 , 然后你在这个编辑器的子窗口里面做 , 比如说呃 GDV 或者是 PyDB 的这个呃 debug 功能 。
但是 Visual Studio Code 就把你呃我们最常用的那一批什么单步执行啊 , 跳过啊 , 断点啊之类的 , 全都集成在了这个编辑器里面 , 然后你在跑的时候可以用编辑器来 debug。
我觉得这个是比较了不起的一件事情 。
OK, 呃 , 这其实我是要坦白一下 ,因为最近也比较忙 ,也没怎么用这个编辑器 , 所以没有太多的深刻的感受 , 反正就当时看第一眼就感觉演员还不错 。
嗯 ,不知道你你有用它做一些什么实际的事情吗 ?
啊 , 我最近我也挺忙 。
打开看看玩玩 。
但是我最近挺忙的 ,但是呃我在公司也装了 , 就是它在 Linux 上跑的效果一定好 。
啊 , 对 , 它忘了说它是一个跨平台的哈 。
对 , 这是它最重要的一点 , 就是它试图用呃之前是微软的狼子野心吧 , 就想要用用这个东西来呃让各个平台的开发者都可以呃 。
你做 。
对 , 首首首先是为微软开发东西 , 为你提供一个比较好的工具 , 那你可以在闲暇之余给微软开发点东西 , 这是他们的目的 。
然后对 , 然后从呃网上的反应来看 , 大家还是比较怎么说 , 我觉得大部分人都是叫好的吧 , 就呃他们官方在 5 月 13 日, 就是呃录音的前一天 ,也贴了一个 blog, 就说呃他们收到了反响的好评如潮啊 , 呃他们在推特上有一个 code 账号 , 然后这个账号在现在已经有了 14.3K 的 follower, 然后 。
很高了已经 。
对 ,他们 mention 了 4.8K 次 , 呃 。
太恐怖了 。
对 , 这他们那呃才过了一周多一点吧 , 就已经 。
嗯哼 。
对 , 然后 Visual Studio Code 的右下角有一个小笑脸 , 如果你点一下的话 , 你可以呃跟他们回报一个 bug, 或者是说哎 , 你们做得好 , 就是有一个笑脸一个哭脸 , 呃如果你点哭脸的话 , 就呃可以写一个 bug, 如果你点笑脸的话 , 就是说哎 , 要夸你们写得好 。
然后他们目前为止收到了 6,000 个 send a smile, 哈哈 , 就是有至少有六 。
6,000 个什么 ?
6,000 个 smile, 那个功能叫做 send a smile, 然后他们收到了 6,000 个 ,但是他们没有透露说收到了多少个呃 send a not smile,send a send a send a crying,但 6,000 个至少有 。
8,000 个 。
对 ,不止吧 ,6 万个 。
哈哈哈 , 又黑人家 。
没有 , 没有黑 ,因为这个功能就是这个编辑器的功能 , 它版本号是 0. 几吧 , 我没记错的话 , 就编辑器的功能还是缺很多的 , 比如说嗯 , 我记得呃有人说在里面输入中文有问题 , 就中文输入中中文输入法在 code 里面是不能工作的 ,但是我有点怀疑 , 就是我有点奇怪 , 就是你在一个编辑代码编辑器里面输入中文干嘛 ?
嗯 , 哦对 , 提示 。
呃 ,有些那个写那个注释会用中文写吗 ?
嗯 , 注释用中文就挺好的 ,不过 。
但是国内有很多的那个英文写不好 , 那就用中文写了 , 国内我觉得这个还是蛮蛮常见的 , 就在外面只能写拼音 , 更看着更痛苦 。
啊 , 这让我想起了之前说什么 KDE 有一次版本更新是呃从现在开始代码库里面终于没有德语了 ,有那种类似的 。
哈哈哈 , 这个也是黑的漂亮 。
然后呃在 User Voice 就是一个 feature request 网站上面 ,他们已经收到了 660 个呃 feature request, 嗯 , 然后有呃他们有一个所谓的 insiders program, 就是让你可以更快的获得新的版本 , 或者是更快的得到新的呃新闻更新的这么一个 program,他们在呃短时间内已经收到 1,300 个用户的注册 , 然后在 Stack Overflow 上也已经有了和 code 相关的 195 个问题啊 , 所有这些都是在仅仅一周多一点的时间里面出现的 , 所以反
响还是不错的 。
对 ,OK, 好 , 那个关于那个 Visual Studio Code 我们就差不多聊到这 , 然后之后我们 。
如果能够用它写什么东西的话 , 再来跟大家回报 。
对对 , 毕竟现在还是一个相对比较粗浅的认识 , 然后呃还是需要长期的使用才有结果 ,但是我觉得短期内应该不会发生这件事情 , 就不着急 , 慢慢等吧 。
嗯 ,不管怎么说 , 就是这些厂商们能够开发跨平台的开发工具 , 对程序员来说其实是一个解放 , 就是你可以选择自己喜欢的开发平台 , 用自己喜欢的开发语言呃开发自己喜欢的东西 , 就比如说呃之前我一直说 C# 是我最喜欢的语言 ,但是呃在 Mac 上面就没有机缘去开发 C# 的工具 , 呃开发 C# 的程序 ,因为根本没有工具 ,而现在呃巴尔默的中世纪 , 黑暗
的中世纪过了之后, 这样的机会似乎开始出现在眼前了 , 我觉得这无论如何是一件好事 。 然后反过来其实也是一样的 , 就是这一次 build 最受欢迎的 session 之一 , 就是用 Windows 呃用呃 Visual Studio 2005 编译 Object C 程序 , 哈哈 , 就是如果你是一个呃想要给 iPhone 开发程序的人, 然后你只有 iPhone 和 Windows 电脑 , 那从 Windows 从 Visual Studio 2002015 开始 , 你也可以用 Visual Studio 给 iPhone 开发程序了 , 这也是一件嗯 , 就
是反过来也是一件很好的事情吧 。
我我还没用过那个东西 ,但我现在也我也不做这个移动开发 ,不知道 ,但是如果说因为因为大家对那个 Visual Studio 的评价是不错的嘛 , 然后 Xcode 就是属于那种好看 ,但是可能不是那么好用的时候 , 到时候最最 ironic 最讽刺的就是你在 Windows 开发最好的体验是用 Visual Studio, 这个就搞笑了 。
这很有可能是真的 , 就好像呃 IntelliJ 的那个厂商 JetBrains 出了一个 Object C 的编译器 , 叫 IDE 叫什么我已经忘了 ,但呃就是 Object Code 之类的 , 呃那个东西用起来就已经比 Xcode 要要舒服很多了 ,但是呃它一直没有推广起来吧 ,但很大一个原因是它试图在 OS10 上和 Xcode 争锋 , 这还是比较吃亏的 ,但是像 Visual Studio 2015 它目前还是只有 Windows 版本 , 呃基本上你在 Windows 上开发 Xcode 程序 , 呃开发
Object C 的程序之迄今只有呃之前只有呃那那个工具叫什么 X 开头的 , 叫呃 。
呃 。
应该是叫 Zamarine, 没念没念错的话 。
OK。
那样一个工具 , 然后现在还是可以在呃 Visual Studio 2015 里面做这件事情 , 所以我觉得可能这样会无形中给很多 iOS 开发者呃 wannabe 呃开呃打开一扇大门 。
你至少不用买 Mac 了 , 对吧 ?
对 ,而且至少不用忍受 Xcode。 不是有一句 。
哎 , 等等等等 , 它那个只能编译 , 它能提交吗 ? 不能提交吧 ? 你你提交到那个 App Store 还是得通过 Xcode 来做 , 对吧 ?
呃
, 如果它能编译出一个 IPA 来就可以了 ,因为提交 App 这件事情不是可以在网页上做的 。
啊 , 可以 。
我记得是可以的 , 就是并不一定要在 Xcode 里面验证 , 然后通过 Xcode 那个 Archive 管理器提交 。
嗯哼 , 好 , 那如果如果真这样了 , 我觉得可能很可能这个什么苹果的律师就要给微软的律师寄这个文件了 。
或者苹果会使会耍一些小手段让呃 。
用不了 。
让用户只能通过 Xcode 来提交程序 ,但我觉得这样太二了吧 , 何必呢 , 这不是 。
哎 ,不过这个我觉得还是有一定的意义啊 ,因为这样 Mac 的销量就会受到很大影响 ,因为现在知道很多这种创业团队嘛 ,他就纯粹是为了要开发这个呃 Mac 或者是 iPhone 的应用 ,他才给这个开发 , 就才招聘使用这个嘛 , 然后就如果说这块这块都完全没必要 ,他们就完全可以用 Windows 就是 Visual Studio 就搞定了 , 那就甚至连 Mac 都不需要买了 。
你要按照乔布斯那个德行 , 肯定是不会同意这种事情发生的 , 我觉得 。
说的也对 。 然后呃当然 Windows 呃 Windows 用呃 Visual Studio 用户还有另外一个选择 , 就是用 C# 开发跨平台的移动 App, 就是你用呃 C# 写一个移动 App, 它可以自动被编译成呃 iPhone、Android 和 Windows Phone 的程序 , 这个也是就等于是你如果你不是说只希望在 Windows 上为 iPhone 开发程序的话 , 你甚至可以 , 或者说也许更多的人会选择使用 C# 来开发跨平台的程序 , 然后让呃 Visual Studio 去操心把 C# 转译
成呃平台对应的目标语言 , 这件这这这件苦差事 。 呃对 ,有一个 session 就是这样的 ,但是我没看完 ,但是一开始一开头基本上那个演示人员就呃试图呃呃运行一个 demo, 这个 demo 编译之后可以同时跑在 Windows Phone、iPhone 和 Android 上, 然后它是用 C# 写的 。
然后这一次 Microsoft Build 上面还展示了新的 Direct 呃 Directive X 12, 就是这可能也是一个比较重要的事情吧 , 就是因为至少我不知道你 , 至少我一直心心念念想要传一台 Windows 机器 , 就是因为有好多游戏是只能在 Windows 上跑的 , 然后微软也是延续了这个优良传统嘛 , 就是一定要向大家展示 Windows 是一个多么适合做游戏的平台 , 呃尤其是 Windows 这一套 3D 呃 3D 库吧 ,3D 图形库 DirectX 12,
DirectX 121:20:35
然后他们是请到了呃史克威尔 · 埃尼克斯呃展示了下一代游戏 , 那个游戏叫什么我忘了 , 嗯 ,Witch 应该叫 Witch, 然后他展示了一个一开始我以为是一段 CG, 然后呃他把那个反正场景就是一个女人趴在地上在哭 , 然后我想这有什么看的 , 然后呃播完了之后他说大家以为刚才就是 CG 嘛 ,其实刚才是游戏画面 , 然后我就惊呆了 ,因为那个 。
就是实景不是预先渲染好的录像 。
就是你看起来那个东西跟 CG 一模一样 ,但是他呃播到一半的时候他说好 , 现在我要把它转成 manual 模式 , 然后整个场景就停下来了 , 然后他开始移动镜头 , 我觉得那一刹那真的是挺震撼的 , 就你眼前看到的一个像呃有点像什么呢 ,有点那个精细程度非常接近之前的呃最终幻想的那个电影版 , 我不知道你看过没有 , 就是非常 。
我知道知道 ,因为他要渲染那个长头发嘛 , 那个是很困难的 。
对 , 然后他开始转镜头的时候 , 你会发现这个里面所有的场景都可以实时渲染成非常接近于现在的最顶级的 CG 的程度 , 然后嗯哼 , 包括每根头发都是用多边形 , 每一每一根头发就是这个人物头上可能有几千根头发 , 三千烦恼丝每一根头发都是用那个多边形渲染而成 , 然后光的效果照在上面非常非常好 , 然后他宣称说现在的呃效呃 performance
应该是 DirectX 呃 DirectX 11 的 6-10 倍 , 所以还是相当可观的一个提升 。
就就就其实最主要的一个应用就是说给我就这么理解 , 就是它的这个呃 overhead 少了嘛 , 就更加接近于硬件本身能够提供的性能 。
对 。
对 , 这个其实是一个挺重要的 , 就几个厂商都在做同样的事情 。 首先可能比较早的是那个 , 就起码概念上他先做这个 , 就是苹果那个叫什么啊 。
Metal。
Metal 吧 。
对 ,Metal 主要是贴近移动端的 。
对 ,但它这个只有 Metal 只有哎 , 对 ,Metal 现在好像只有在 iOS 上才有 。
对 。
然后呃后来是那个 AMD 出了一个叫什么叫哎名字我现在想不起来了 ,因为但是他们也在做类似的事情 , 就说呃就怎么样能够更好的暴露出这个这个显卡原生的这个硬件的性能 , 然后减少中间的这个增增加的额外的负担 。
是 Mantle 吧还是你说呃对那个 AMD 那叫 Mantle, 对对对 ,Mantle 就挺像的 , 就一个 Metal 一个 Mantle。
闭麦那个时候 。
对 , 没错没错 , 呃然后但毕竟就微软这个他做这个还是有优势的 ,因为之前有很多游戏厂商还是走这个什么 DirectX 这条线的 。
对 。
那么他自己自己做升级版可能还是有很多会厂商会就就跟进 , 然后这样在发行上会有好处嘛 ,但是我不太清楚啊 , 现在这个 DirectX 和这个 OpenGL 他们之间的这个这个有谁比谁领先很明显吗 ?
有这种样的区别吗 ?
呃我看到的说法是 , 如果你不想让自己的脑袋爆掉的话 , 就选择 DirectX 比较好 。 就从一个开发者的角度来看 , 如果你不打算支持多平台 , 然后你又想要比较好的文档 , 那选择 DirectX 是比较好的 。
嗯 。
就是体开发体验上是 DirectX 这个系列更好 ,因为毕竟是单一这个呃比较新 ,而且是说历史包袱相对较少 。OpenGL 的我看他们说这个主要的问题就是讲呃因为这个历史包袱比较沉重 , 各种那种各种那种呃就是几套 API 都是在同一个版本里面存在 , 没有说这个 deprecate 的这种情况 , 那导致就开发者开完到时就很辛苦啊 , 你说你明明可以用一个更好的方式实现的 ,但是你可能就
是没翻到那一页 ,因为实在太长了 , 那你看了一个比较原始或者落后的方案来实现 , 那可能对性能也不好啊 , 这个呃你的开发难度也大吧 。
当然呢 , 最大好处就是说你可以在多个平台上运行嘛 , 你基本上可以比较就不需要怎么太改 , 就可以兼容多个这个呃这个这个叫什么呃平台的类型也好 , 对吧 , 对吧 , 游戏手机端的也是有 OpenGL,但是那个它是一个什么 ESR, 然后这个桌面端也有各种的不同机型 , 好像那个什么就是 PS4 和 Xbox 好像都是可以支持这种吧 。
你说 DirectX。
还是 PS4 支持 。
还是还是 OpenGL。
不不 , 那个 OpenGL。
对 , 没错 。
对 , 差不差不多 , 差不多是这个意思 。 对 , 所以就是啊 , 开发者还是要取舍一下的 , 你是要要市场呢 , 要体验呢 , 还是怎么怎么的 。
没错 。 然后当然我印象里面之前有过一个呃就是应该是 N 厂的那个 NVIDIA 厂商的开发者在一个论坛上面写了一篇非常长的倒苦水的帖子 , 就说那些用 DirectX 的人全都不知道怎么样正确的使用 API, 然后有些 blockbuster 级别的那个呃大作都非常非常的蠢 , 就是没有没有以合适的方式来使用 API, 使得游戏的那个性能非常非常的弱 , 然后最后有玩家会怪到那个显卡头
上说这个显卡的功能那个不够不不够强劲什么的 , 然后他们他们说他们 literally 每一代的那个 driver 呃你你你你如果你好奇过那一个 driver 要下个三五百张 , 那是在下什么 ,其实里面都是给每个游戏的补丁 , 就是检测到说哦 , 原来你是在运行这个游戏 , 好 , 这个游戏里面有这个部分写的非常的蠢 , 那它每当运行到这部分的时候 , 我们就切换成我们所谓它
提供的正确的比较好的这个 API 调用了 , 然后整个游戏的 performance 立刻就上去了 。
啊 , 这个显卡厂商也是不容易过的 。
挺惨的 。
哈哈哈 , 这也是就说什么像苹果这种啊哎软硬合一的厂商 , 它就有好处啊 。
对 。
那我 Metal 我出了就出了 , 然后我开发者我也跟他们一讲 , 说这个这个 API 很爽啊 , 硬件我都给你搞搞搞好了 , 你在用这个体验就是不错的 , 当然可能 Windows 做不到 , 那个微软做不到那么好 ,但是那退而求其次吧 , 我起码 API 我可以统一 , 然后可以提供比较好的 。
对 。
那至于后面这个跟硬件底层打交道怎么去折腾 , 反正我把这个脏活累活干了吧 , 你们上面爽就好了 ,但是前提就是你们得接着用我这个 proprietary 的系统 。
对 , 所以嗯 , 如果这两个巨头能够取长补短就好了 。
哎 ,但是现实总是不那么美好的呀 。
对啊 。
Edge1:27:47
所以不指望 。 他们这次还发布了那个也不叫发布 , 就算是一个名字吧 , 就是那个传说中的取代 IE 的浏览器 ,有 Project Spartan, 这个呃斯巴坦 , 斯巴达 。
Spartan 就是那个古希腊的城邦嘛 , 斯巴达城邦 。
对对对对对 , 这个你你有看吗 ? 之前我在那个那个什么那个 IT 公论那边给大概聊了一下 ,但是也是因为没有用到嘛 ,也不知道到底是个什么样的机器 。
你说看是什么意思 ? 看这个 。
就是有你有他应该有那个你你有用他的 beta 版本吗 ? 没有测试 。
我只看了一个他的展示 demo。
OK。
我觉得我印象最深的就是 Edge 做的非常漂亮 。
呃漂亮是指哪 ? 具体指哪些方面 ?
就是它把整个 UI 的呃不仅仅是扁平化 ,而且它把 UI 呃去 UI 化 , 就是你看不到非常明显的 , 比如说一个按钮 , 然后这个按钮基本上就只有一个一像素那么宽的一个边缘 , 然后其他所有的东西都是这个网页的预览图 , 或者比如说你你呃他那个浏览器上面有一排 Tab 嘛 , 然后你把鼠标挪到每个 Tab 上面 , 就会立刻下面出现一个 drop drop down, 然后这这个 drop
down 里面就是这个页面目前正在显示的东西的一个小预览图 , 呃或者
要按一个按钮的话 , 这个按钮基本上也是大部分地方都是图片 , 或者是你需要看的东西 ,而不是一个按钮本身 , 就 edge to edge 吧 , 我觉得它可能也是跟这个名字这么来的嘛 , 就所有的东西都是呃所有东西都是内容 , 然后它是这个内容的 edge,其实跟有点跟 Chrome 有点异曲同工之妙 ,但它叫的更直白一些 。
一个是框 , 一个是边 , 很显示边框是吧 ?
对 , 它的暗喻就是你所要看到的一切内容呃都让你看到 , 就是你尽可能多去看到内容 ,而我只是作为这个内容外面的那一像素的白边而已 。
嗯 , 哎 , 这个我对我对它的理解 , 你你理解还可能还没想到这层没有 。
你把它理解为 blending edge 是吧 ?leading edge。
因为它那个它用那个 IE, 它不是有各种兼容模式嘛 ?
对啊 。
然后它那个最新的模式就是叫做 edge mode 嘛 。
OK。
然后它不是承诺说这个浏览器叫一直就是 。
啊 , 永远处在时代最前缘 , 所以就是 edge。
没错 , 对对 。
对对 , 然后我我是我是这么理解它这个命名的这个来来历的哈 ,但但你说到这么也确实也是一个挺有是挺有这个什么说服力的一个一个一个讲法 。
但我觉得可能 edge 最有就最最开发者最有意义的一点是它不再支持那个 ActiveX 那个控件 。
嗯 , 它终于甩掉这个毒瘤嘛 。
对 , 甩掉一个历史重大的包袱 , 然后就如果这个流行起来 , 我们就可以看到国内那些愚蠢的网银厂商也好 , 这个银行登录厂商也好 ,在装一个什么狗屁的控件这种事情 。
对 。
You never know 啊 , 我觉得 。
啊 。
政府什么事情都干得出来 , 很难说 ,也许政府会说啊 , 你不支持 ActiveX,不要进中国市场 , 你能你能把它怎么的吧 。
搞得跟韩国一样 。
嗯 , 就我觉得其实你说如果呃好 , 现在 Google 被 ban, 然后呃苹果是反正苹果苹果不在意 , 苹果是做硬件的 , 那如果 Microsoft 也被 ban 了的话呢 , 中国人用什么 ?
哎 , 对 , 是一个再倒退 20 年吧 。
你当然可你当然可以说这种情况出现的可能性微乎其微 ,但是
它终究是在理论上有可能 。
说微软骨子这么软的一个公司是吧 ?
对 。
哎呀 ,Edge 还有一个比较好玩的 , 它支持那个 Chrome 和 Firefox 那些扩展 。
对 , 这个也是比较狠毒的一个一个招数 , 我觉得 。
但是我觉得这个做起来不算太难 ,因为大家那个那个扩展也是 , 就是有个 JavaScript 加这个 HTML,HTML5 写的嘛 , 一般是这样 。
对 。
它这个人知我觉得可能知识上也并不是特别复杂 ,但是意义还是蛮大的 , 就跟其实他们 build 的这次上面 , 我们可能这里不会单独讲啊 , 就是嗯 , 它那个 Windows 10 上不是可以 ,不是 Windows 10, 就 Windows 10 在 Windows Phone 上的版本 , 它不是可以原不不不 , 原生就是可以兼容运行 Android 应用嘛 。
嗯 。
然后也可以兼容运行这个 iOS 应用嘛 , 所以这个有点这个啊异曲同工的意思 ,因为很多人像说那种 Firefox 的重度用户 ,他为什么离不开 ,但除了一个精神理念上, 它支持这个开源免费的这种独立的浏览器之外哈 , 可能很多一个因素就是有很多人装了这种各种各样的小插件 , 然后那些这个对于他们来说 , 这些插件不管是他们工作也好 , 生活也好 , 都是
属于那种必不可少的工具 , 然后啊 , 你这个因为 IE 是没什么插件的 ,IE 的插件都是什么流氓厂商装的 , 流氓流氓软件 , 用户自己装的插件是相对比较少的 ,但是他说他能够啊 , 这次把这个东西集成进来能够做一些 , 我觉得还是挺不错的 , 就能够争取市场地位的一个做法 。
对 , 当然具体能不能成功还是要看细节了吧 , 就是他的这个策略最大的问题就是你必须把细节做好 , 如果你说啊 , 所有这些插件能跑是能跑 , 可是要么特别卡 , 要么有些功能用不了 , 那我觉得还是还是会迫使很多人说 , 哎呦 , 我这个东西是 mission critical, 你跑不好的话 , 那我宁可不用 , 我还是用回去 Chrome, 反正也不损失什么 ,不是吗 ?
就然后反过来在 Windows 上面跑那个 iPhone 和 Android 的应用 ,其实也是这样 , 如果说你这个应用能在 Windows 上面跑 ,但是用起来怎么用怎么用 , 怎么用怎么觉得别扭 , 那我觉得这还是一个很大的问题 。
我觉得可能还是就我觉得这个问题可能比那个在 Windows 10 的 ,而且 Windows Phone 上跑安卓和 iOS 应用要简单得多 ,因为那个毕竟上你是要做一些非常麻烦的事情 , 你要 API, 你要提供兼容的 API, 你要考虑说那个万一它用了这个什么那个平台独私有的 API 或者独特的 API, 你怎么去兼容 , 你要怎么去折腾 , 还要稳定性啊 , 这些都是很难保证的 ,因为你你没有这个 , 你
没有这个呃跑的应用的源代码嘛 , 你只有一个二进制的自解码 , 或者是像 iOS 你甚至连那个自解码都没有 , 你得让它重新编译一个 ,但是像这个浏览器里面大家都是解析这个 JavaScript, 我觉得是一个相对来说比较好做好的一个一个一个技术吧 。
嗯 。
就说你看现在那个 IE 11 吧 , 它里面的那些这个 JavaScript 的解析的引擎就性能也是不错的 , 所以现在我理解就是做一些兼容性的考量嘛 。
对 。
然后我觉得以微软的这么庞大的团队 , 这么庞大的这个研发实力 , 然后只要他给他们足够的决心 , 按按小姐姐的话来说 , 只要 PM 的压力足够大 ,因为他们应该还是能够做得出来的 , 那个应该还是还可以 。
只要把不能胜任的那一批 PM 开掉就可以做 。
哈哈哈 , 没错 , 哈哈哈 , 就这个我觉得还是对 , 我觉得他们还是有比较乐比比较乐观的态度吧 。
嗯 , 对 , 当然呃 , 我能想到的一个问题就是至少在呃就某些插件呃 Chrome 和 Firefox 都有嘛 ,但是有时候有些插件在 Firefox 上面能做的事情 ,在 Chrome 上面是做不到的 , 比如说有一个呃用 Vim 的 key button 来操作浏览器的插件 , 我记得他说他在 Firefox 上面能够做到一些事情 ,在 Chrome 上做不到的原因是 Chrome 的沙盒限制更强一点 。
严格 。
嗯 , 对 ,而且 Chrome 没有把浏览器本身的一些操作暴露给 JavaScript API, 就是你可以操作页面上的内容 , 你可以去访问页面上的内容 ,但是不能访问浏览器本身的一些功能 , 比如说关闭或者是切换 Tab 之类的 。
嗯哼 。
但 。
它那个也不行吧 ,因为它那个不是 , 它那个是多进程模型嘛 , 然后它那个 。
跨进程东西是 。
浏览器的主控进程和页面的那个进程是 , 就是和那个包括连那个扩展的进程都是完全独立的 , 这样的话应该是没有权限解决这个问题 ,但可能想想技术上应该也有 ,但是不一定马上就能做出来 , 甚至都不在路线图上 。
对 。
这个就比较惨 。
这是很有可能 。
对 , 所以不太我不太也放现在那个东西也没正式发布嘛 ,也不太清楚到底是一个什么样的状况 。 大家如果有兴趣可以去装个 , 它有一个所谓的这个 rings, 各种各样的圈圈 , 就是呃就是什么什么 early adopter ring 啊 , 这种乱七八糟的 , 如果你有兴趣 , 就可以申请加入一些什么早期的那种发布的环 , 发布的圈圈 , 你可以找找拿到他们最新的 build 出来的版本 , 然
后可以装上去试一下啊 , 反正也是什么真当小白鼠 。
哎呀 , 说的是这个传一台 Windows 机器这件事情应该提上日程 。
Hello, 那反正其实从概念和产品来讲 , 跟这次就 build 2 就 build 上面的演示和上一次差不太多 ,但这次我感觉呃这个完成度要高一些 , 就是这个这个 demo 的完成度要高一些 。
HoloLens1:37:16
对 。
因为事情毕竟还是没有碰到产品嘛 。
没错 。
所以还行 , 然后他们事后去又去试了一下, 发现还是跟上一代上一次发布的时候的那个演示 ,他们也是找了一堆媒体人去试嘛 , 这一次他们等于是让开发者去试了啊 , 感觉看了一圈评论下来的感觉就是说还是有比较多问题的 ,但是也还是有进步 , 起码什么微型化这一段是做到了 ,他们现在是不需要插任何线 , 就头上带那么一坨东西
就可以直接用了 , 这个还是不错的 , 这比那个什么 Oculus Rift 那些要接个什么线到台式机上还是要好很多的 ,但其他的还是要就是也有恶化的情况 , 比如说说到那个可视角变窄了嘛 , 可能也是根据要考虑什么呃计算能力和电力供应这种的这种限制的情况下, 做出的一个什么不得不选的一个一个 trade off,但是
哎 , 这东西怎么说 , 没有看到是很难去评价它的嘛 ,而且我们我们现在外面看到的什么光那个什么呃它那个展示觉得啊挺惊艳的 ,但其实戴起来怎么一回事 , 还是得戴了才戴了才知道 , 可能我觉得并没有它展示的那么好 , 这也是什么微软的一贯的毛病嘛 , 就是饼哦 , 画的看起来比吃起来好 , 这个就是一个挺大的问题 , 这怎么说呢 , 就
会导致一个叫 overpromise under deliver, 就是承诺过多实现太少 , 这个这个到时候会有落差嘛 , 用户拿到的时候会有落差 。
对 。
所以我觉得很好的一个方式还是说把这个这个你这个 demo 的呃你你你还不能够达到的这些东西是要要收敛一点 , 就是说不要把这个饼画的太美好 ,而实际上你可能做不出那么那么好吃的饼 , 这个就比较这是一个比较考验 。
对 。
呃什么团队的叫什么克制力的时候了 。
对 。
但是你知道啊 , 微软从来不是一个有克制的公司 , 所以 。
他们需要引入一个新的 CEO, 叫呃 Chief User Expectation Officer, 就是专门来 manage 这个 customer expectation。
嗯 。
该保密的保密 , 该 hold 住的 hold 住嘛 。
对 ,不过得看你怎么说 , 可能他们现在也是说这个 expectation 已经已经就可能对我们来说很多人都已经不指望他什么了 , 对吧 , 所以也也说不定他说就是要达到这个效果 , 又是要让你他对他多指望一点 , 对吧 , 这个也也说不准他怎么想 ,但是我目前为止还是就那个那个那个就之前在 IT 公论也讲过这个说法嘛 , 就是说呃不错的产品 ,不错的这
个 idea, 呃实现还是有点担忧的 。
嗯 , 呃问你个问题 , 如果 HoloLens 和呃 Oculus Lift 摆在你面前 , 你会选 , 哎 ,Rift 摆在你面前 , 你会选哪一个 , 只能选一个的话 。
只能选一个啊 , 哎呦 , 这个还蛮难的哦 。
很难吗 ?
很难讲 , 一个是一个是虚拟现实 , 一个是增强现实 。
对 。
我觉得从这个这个嗯酷和好玩这个点出发的话 , 可能还是那个 HoloLens 会比较好 ,而且其实从就现在从他们那个 HoloLens 这个二二次发布的展示的效果和那个这个机器的情况 , 相相比于那个 Oculus Rift 它展示的那个什么三代工程机的情况来讲 , 我觉得吧 , 还是 HoloLens 的好一点 , 对 。
OK,有意思 。
你你会怎么选 ?
我应该会选 Oculus Rift 吧 , 我觉得 。
为什么 ?
因为可以打游戏啊 , 哈哈哈 , 非常 。
这这个 VR 那个什么 HoloLens 不也可以玩游戏吗 ? 它不是展示的那个叫什么 Minecraft 吗 ?
对 , 问题在于 Minecraft 的游戏的呃它它不是一个 , 或者说它故意把 Minecraft 呃改变成了一个可以叠加在现实世界层面上的游戏 ,其实我就是我呃仔细的想过这个问题 , 就是嗯我在想说呃两种技术分别适用于什么样的游戏场景 , 呃假如说你要打 Doom 嗯或者 Quake 这样一个完全需模拟出来异界环境的游戏 , 那我毫无疑问是呃 Oculus Rift 会比较好 ,因为你可以它它会它会帮你把现
实隔绝起来 , 对吧 , 你你所要做到的就是进入一个隔绝现实的环境里面去杀一些根本不存在的怪物 , 呃或者是比如说你你要做一个打猎游戏 , 你显然会希望自己能够认为自己身处在一个丛林里面 ,而不是你自己家里面 , 对吧 ,但是反过来呃像 HoloLens 这样的呃 AR 技术 , 那就比较适合于呃做一些比如桌游啊 , 我曾经试想过 , 就比如说我和女朋友一人带一个
, 然后在呃盯着 。
就是如传说嘛 , 简单来说就不用 。
对啊 , 盯着面前的桌子就可以打大风了 , 对吧 , 就可以看到什么孙小美跑来跑去 , 然后但其实上桌子什么也没有 , 这不是很 , 这不是很 ,但是有点奇怪 ,但难道不是很好吗 ?
是是比较适合这样的游戏 。
我我我就是想那个炉石传说就可以直接把那个 。
对 , 没错 , 炉石传说就直接显示在你面前 , 或者或者最最呃最合适的其实是呃战船 , 就是 Warhammer 这个系列 , 你不是可以呃粘给给自己的模型呃给自己粘模型 , 然后给自己的模型涂色 , 然后用什么量角器啊 、 皮尺呀 , 呃来量那个两个模型之间的距离 , 然后掷骰子 , 然后把你的战车推进 , 然后说啊 , 我的战车把你的兽人轰掉了 , 然后把把
你的兽人从桌子上拿下去 , 所有这些桌游其实全都可以用 HoloLens 来实现 , 就效果应该会非常好玩 , 我觉得 ,但但但如果要我选 , 我觉得我还是会选 , 会希望玩那种就是比较强调进入式体验的 。
对对 , 就忘让你忘掉从那个真实真实世界的种种限制嘛 , 就直接进入这种虚拟世界的完全不同的一个一个环境 , 就是去去去逃离嘛 。
对 , 我觉得我可能还是会选择 Oculus Rift。
OK, 这挺有意思 。
对 , 当然理想情况还是全主机制吧 , 哼哼 , 反正我觉得 HoloLens 还是一个比较 promising,但是不像对我来说 ,不像 Oculus Rift 那样会想要在第一出的上市的第一时间就去买的一个东西 ,Oculus Rift 应该是明年年初就要上市的吧 。
对 , 刚才你说的是什么好消息 , 好消息 , 对吧 , 你这个是有确定的时间购买了 。
对 。
那个什么 HoloLens 还不知道猴年马月什么时候能能上 。
至少明年 Q1 应该就可以带上 Oculus Rift。
啊 , 你预的三三月 31 号嘛 , 你就至少有那个 Oculus Rift 可以可以买了至少 。
对 , 然后我觉得现在最大的一个问题就是呃 PlayStation 或者 Xbox One 之类的东西应该尽快提供这个 HoloLens 的支持 , 呃不是 HoloLens,Oculus Rift 的支持啊 ,不然我觉得太多游戏值得被呃移植到虚拟现实里面了 。
不 , 这里就有问题嘛 ,因为它那个 HoloLens 它毕竟它只是一个做这个设备厂商 ,并没有任何游戏的渠道也好 , 它只能去找别人合作 ,其实这点上我觉得微软那个啊 , 你刚才说是 HoloLens 吗 ?
还是 Oculus Rift?
Oculus Rift。
OK, 对 , 我觉得这点上微软可能反而有优势 ,因为第一个它等于是除了甚至是已经是就全球最大的这个游戏的发行商了 , 它应该比索尼大吧 ,因为有那个 Xbox 之后 。
嗯 , 微软的游戏比索尼大吗 ?
我我理解是这样子 ,不是吗 ?
应该不是吧 。
那就如果不是的话 ,他们也是属于就是可能一二的这样的区别 。
对 , 那肯定就是我我想插播一个小新闻 , 呃微软前一阵时前一阵子推出了呃帝国时代 2, 你没有听错 ,是帝国时代 2 的 HD 版本 , 哈哈 ,2015 年推出了帝国时代 2 的 HD 版本 , 简直是良心企业 , 这玩意已经多少年了 。
这这什么情况 , 为什么 ?
就提供了一个可以支持高分辨率 , 支持多显示器 , 呃支持 Steam 平台两网对战的 。
OK。
呃帝国时代 2, 你要不要买一份咱俩对战 ?
可以啊 , 可以啊 , 我回头去研究一下怎么一回事 。
对 。
因为帝国时代应该是帝国时代 2, 就是我们当时那个九几九几年玩的最火的那款 。
对啊 , 这个东西已经十几年了吧 , 就居然今年又出了一个新版本 , 我觉得 Microsoft 也算是良心企业 。
是良 , 对 , 必须是良心企业啊 。 啊 , 刚才说刚才那个就是我我我感觉就是微软在这方面上是其实有优势的 , 它可以说呃因为你还有主机嘛 , 然后它也有这个相应的这个发行渠道 , 然后它会有这个这个就开发团队开发这种就是就做游戏的人的这种资源 , 它会去笼络嘛 , 它可以说哎 , 我们专门开发一款给这个 HoloLens 玩的 , 然后是跑在这个
Xbox 上面的这种游戏嘛 ,因为它其实就是要打通这个平台之后, 它不是现在讲那个 Windows 10 是一个什么 universal app 嘛 ,universal app 什么意思 , 就是可以可以跨这个 , 它能够覆盖到所有的平台 ,不是说它还要追求一个就是说呃就简单说就可以互玩嘛 , 就是我可以去用那个 HoloLens 去接到这个呃什么可能跟那个 Xbox 配合去玩这么一下游戏 , 我觉得这个这个的就如果它真的做成了哈 ,
我觉得它这个潜力是要比像 Oculus Rift 这样去和呃其他厂商去谈合作这种方式 , 我觉得是要好得多的 。
对 , 如果呃 HoloLens 可以和 Xbox 整合在一起的话 , 那真的是前途无量 , 那其他基本上所有主机都可以去死 。
嗯 , 对啊 , 就可能会达到那么像像当年那个什么 Wii, 就一代的 Wii 那种风靡的程度 。
对 。
甚至可能会超过 。
对 。
那看看价格了 , 价格贵了可能也不太行 ,但是 。
嗯 , 然后我们还要想提及的一件趣事 , 就是在这次 build 上面 , 微软员工穿了那个一件蓝色的 T 恤 , 然后蓝色 T 恤的胸前有呃就是 Windows 图标了 , 然后这个图标你细看的话 , 它是由很多细小的 0 和 1 组成的 , 然后我不知道是谁找出来的 ,但是我们就目前理解为有好事者呃试图把这个 0 和 1 呃转换成 ASCII 码 , 然后看看这些是不是有意思 , 然
彩蛋1:48:22
后发现真的是有意有意思的 , 就是推一个呃推的用户叫做 Kevin Gose,他把这些 0 和 1 都翻译出来了 , 然后左上角那一块是呃 "There are ten types of people in the world", 哦 , 应该说 "There are one zero types of people in the world", 然后呃右上角那一块是 "Windows 10 because seven, eight, nine", 就是因为 7 把 9 吃了 , 然后这个 eight 和八谐音 , 所以它写的是 "because seven, eight, nine", 哈哈哈
, 然后左下角是 "Congrats on being one of the first", 就是欢迎你成为第一个 。
OK。
Whatever 做什么的人。
解开这个谜的是不是 ?
然后右下角是 "Windows Insiders help us develop the future", 对 , 嗯 , 我觉得还挺有意思 。
有意思 。
嗯 。
有小小小插曲 , 小趣闻 。
对 , 然后我觉得怎么说呢 , 嗯 , 我以前是不看 build 的 , 你看吧 , 就我其实是今年第一次 。
我也是今年才看 。
结尾1:50:13
是一个已经连续播了 5 年的这么一个一个一个一个 。
对 , 我也是才意识到 , 哎 , 原来还有这微软还搞一个类似 WWDC 的东西 , 嗯 , 新鲜 , 看一下 。
对 , 然后我去过呃 WWDC 是买不到票了 ,但是我去过的 developer conference 是 Google 的那个 Google Developer Day。
Google I/O 吗 ?
不是 ,Developer Day。
哦 ,不是 。
Developer Day 现在也不办了 。
OK,OK。
就之前在之前 01 年啊 ,10 年、11 年和 12 年我应该都去了 , 然后呃我觉得这种开发者盛会 somehow 已经成为了一种 phenomenon, 全球开发者乃至于并非开发者的人会去关注这样一种啊 , 本来是一群人对对讨论工具的这样一个 event, 还挺有意思的 。
特别是那个 Keynote,其实它很多时候就并不 。
单单是面对开发者了 。
对对对 ,但可能更多的那个受众 , 就 Keynote 那个的就主题演讲的受众 , 可能是面向一个所谓的普罗大众 , 就是 general public, 或者说对技术比较关注的这么一些一些一些人, 并不是说这些人一定要是开发者 。
没错 , 然后我觉得这 somehow 也是代表了目前这样一个
工业时代 , 就我就忘了是哪一个社会学家说过一段话 , 说
啊 ,不行 , 我之后一定要查出来到底谁说的 , 可能不是社会学家 , 就是反正有人说过说工业时代以来啊 , 整个工业对人们的影响导致了人们对于工业的崇拜 ,而这样一种崇拜 , 这样一种迷恋 , 这样一种呃投身其中的热情 ,其实远远超越了呃宗教乃至于艺术文学所对所给人们带来的影响 , 然后 。
这算什么 , 拜物教吗 ?
它不是拜物教 , 就拜工业教嘛 , 星辰大海嘛 。
OK。
工业大海 , 星辰大海 , 就你会觉得我们现在处于处于一种这样的对于工具的热忱里面 , 我们会专门去办这样的 podcast 来讨论工具 ,因为我觉得内核恐慌其实讨论的本身就是就是就是工业产品的一种特别形式嘛 , 软件的内部的一些形式 , 我觉得其实也是这样一种呃工业崇拜 , 工业崇拜乃至于工具崇拜的这样一种体现 , 挺有意思 。
嗯 。
然后
我之前还觉得有很有意思的一件事情 , 就是你有没有发现我们很多呃工具的图标其实都是在试图啊去模拟那些现实生活中非常古老的工具 , 比如说应该是那个 Xcode 的图标 。
是一个圆规是吧 ?
对 , 是一个是一个圆规 ,但这个圆规是呃由一把尺子 、 一支笔和一个什么东西组成的 ,但实际上这些东西在开发 APP 的时候是根本用不到的 , 对吧 , 然后那个 debug 的图标是一个锤子还是一个一个扳手之类的 , 这些东西其实都是在暗示说我这个是个工具 , 然后我这个工具可以完成那些实体世界里面工具所能完成的事情 ,但实际上这些工具跟实体工具是完全
不搭嘎的一个一批一批存在 ,但是我们却不得不借用这些我们能够理解的暗语呃来画这么一个图标来表达出这样一个意思
, 就还挺有意思的 。
这这这其实这是某一种形式的隐喻嘛 , 等于是 。
对 , 我们在讨论是要去拟物化的同时却却没有办法 ,不得不借助这些非常拟物的东西来表达我们的意思 , 然后我也不知道 ,也许将来虚拟的我们习惯了虚拟现实之后会会非常好奇说这个东西到底是什么 , 这样一个这样一个锤子 , 你你有多久没有试过锤子拿在手里是什么感觉了 。
就甚至很多可能很多做这个 UI 设计的人根本就没有摸过那些什么啊什么尺规啊 , 那些什么理科生干的事情所以 。
对 , 或者是那个保存图标 , 那个软盘 。
现在大家现在新生一代就是完全没有完全没有东西了 , 说说哎那个笑话怎么说来着 , 说是一个小朋友看见爸爸拿着几几十年一个什么古董软盘 , 说哎你竟然有一个保存图标的物理版本 。
没错 。
好高级哎 。
非常神奇 。
哈哈哈 , 对对 ,但我觉得这里肯定还是有一个点 ,但可能在过往很多很多很久时间以前讨论过的 , 就是说这个所谓的 skemophism, 就叫什么拟物化的问题 , 我觉得就你越往后面走 , 这种抽象层级越高之后, 可能很多人是比较难以去获得那么所谓的一个 reference, 就是你得有一个什么参照物 , 对吧 ?
对 。
特别是你那个工具的那个的越这个作用越不直接的情况下, 你可能反而是越需要这种有一些什么刚才讲的所谓的隐喻的参考去指点你 , 它并不是说一定说能够让你说能够推测出它是一个什么样的作用 , 比如说我我很怀疑说你如果你不知道 Xcode 是干什么的工具的一个人, 你能看见它面的尺规 , 能想出来它是干嘛的 ,但是我觉得可能是说你知道它
是干嘛之后, 你再联想到那么一个图标或联想到这么一个隐喻 , 就如果用 skemophism 的方法 , 就是说联想到它它代表的一个物理世界什么东西之后, 你想到啊 ,是是你加深这么一个记忆 , 加深你们的理解的一个过程 ,而不是说真的是说帮助你从一开始从从 0 到有 , 从从从那个什么从一个 0 基础的这种去推测出它是它猜出它是干嘛 。
对 , 就好像 。
只是说是一个是一个 hint, 是一个帮助你记忆的东西 ,而不是帮助你理解的东西 。
就好像小时候第一次看到那个 Windows 里面的呃 Dial 的图标是一张一张纸 , 然后上面有个齿轮 , 当时琢磨半天说这到底是什么东西呢 , 能不能删呢 , 为什么所有的文件看起来都一样 ,因为那个时候主要的兴趣是打游戏 , 每个游戏的图标都不一样 , 可是这些一模一样的图标我是不是应该应该都没什么用吧 , 可以删掉吗 , 然后 。
到底是干嘛的呢 ?
对 。
对 ,但是其实那个时候其实反而你是理解了这个 Dial 的这个功能之后, 你才想啊 , 就是组件嘛 , 齿轮嘛 ,是吧 , 这个意思 。
我觉得可能是从这个角度去想 , 去去就说也不是说完全就就就呃抨击拟物化就一无是处了 , 或者说完全说扁平化就是一定是好的 , 拟物化就是老土保守的 , 我觉得其实也也不一定 。
没错 。
要要要比较那个扯淡的屁话 , 就是比较辩证的来看这个问题 。
辩证法是德国人发明的 。
谢谢 , 那个资本主义也是德国人发明的 。
什么资本主义 ?
共产主义 , 共产共产主义也是你们德国人发明的 ,也不容易 。
不不客气 ,不客气 。
哎 , 这么说来 , 你们德国还出产过很多祸害人类的东西啊 。
嗯 , 共产主义和纳粹都来自德国 。
不过在某种程度上他们还是蛮有共同点的 。
嗯 , 马路杀手汽车也来自于德国 。
什么 ?
啊啊 , 什么 ? 马路杀手汽车也来自于德国 。
哈哈哈 , 好吧 。
OK。
嗯 。
OK, 您刚刚收听到的是 IPN Podcast 网络旗下的 IT 技术主题节目 《 内核恐慌 》,也欢迎你收听 IPN 旗下的其他 6 档 Podcast, 包括 SoftCore 技术主题节目 《IT 公论 》, 医疗主题节目 《 太医来了 》, 美食主题节目 《 未知道 》, 艺术主题节目 《 流行通信 》, 无主题节目 《 无次元 》, 故事主题节目 《Hi Story》,以及最新加入 IPN 的老牌影像节目 《 硬影像 》。
啊 , 欢迎啊 , 感谢大家收听这一期节目 ,也欢迎大家为我们捐款啊 , 捐款地址是 ipn.li/kernelpanic/donate。OK 啦 。
嗯 。