» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 60 1234
发新话题
打印

[数码手机] 华为的这个方舟编译器水很深啊

引用:
原帖由 masterfish 于 2019-4-13 17:36 发表
樵夫砍柴之前还要磨刀呢,具体框架很多特性都是和语言有关的,换个语言,这些特性都没了,那个框架就废掉了,我还没看见一个框架换了语言还存在的,上面举了一堆框架依赖语言的例子,要不你举个例子?
比如unity还支持javascript和python呢。c#对它来说不过是个插件。
比如苹果的框架同时支持obj-c和swift。
比如facebook用JavaScript写React是因为这个语言是默认全平台支持,并不是因为JavaScript有什么独有的特性是其他语言没有的。你以为React之类的框架就不能用其他语言写么。

语言特性和语言有关不假。但没人规定某个特性只能某个语言才有。
所谓语言特性说到底不过是编译器和运行时这些基础设施暴露给程序员的语法糖而已。


TOP









本帖最近评分记录
  • XI-NIAN 激骚 +1 最骚 Rated by wap 2019-4-14 19:16

TOP

posted by wap, platform: iPhone
引用:
原帖由 @MacPhisto  于 2019-4-13 23:42 发表
比如unity还支持javascript和python呢。c#对它来说不过是个插件。
比如苹果的框架同时支持objc和swift。
比如facebook用JavaScript写React是因为这个语言是默认全平台支持,并不是因为JavaScript有什么独有的特性是其他语言没有的。你以为React之类的框架就不能用其他语言写么。

语言特性和语言有关不假。但没人规定某个特性只能某个语言才有。
所谓语言特性说到底不过是编译器和运行时这些基础设施暴露给程序员的语法糖而已。
unity实际上只完整支持c#。
JavaScript是unity自制的unity script
python支持更是shit一样。
当然对于一个游戏引擎来说,支持任何语言问题都不大。
问题还是在于框架有没有利用语言的特有特性,比如unity的框架肯定就没有大量运用JavaScript的异步和prototype chain 特性。


react的例子更好了,新版本里的hooks根本没法子直接套用到其他语言上。换语言API不知道得改多少。API基本全换了还能算同样的框架么?

编程语言本就会影响设计模式,思想。


TOP

posted by wap, platform: 红米Note3
引用:
原帖由 @masterfish  于 2019-4-14 11:36 发表
https://i.loli.net/2019/04/14/5cb2aa17dedfe.jpg
https://i.loli.net/2019/04/14/5cb2aa56ce0e4.jpg

https://i.loli.net/2019/04/14/5cb2aa9f4ac52.jpg

https://i.loli.net/2019/04/14/5cb2aac305fa4.jpg
牛批,泥潭人怎么都消失了?

TOP

posted by wap, platform: Chrome
引用:
原帖由 @cc0128  于 2019-4-14 19:04 发表
unity实际上只完整支持c#。
JavaScript是unity自制的unity script
python支持更是shit一样。
当然对于一个游戏引擎来说,支持任何语言问题都不大。
问题还是在于框架有没有利用语言的特有特性,比如unity的框架肯定就没有大量运用JavaScript的异步和prototype chain 特性。


react的例子更好了,新版本里的hooks根本没法子直接套用到其他语言上。换语言API不知道得改多少。API基本全换了还能算同样的框架么?

编程语言本就会影响设计模式,思想。
Unity里你想写点什么都要用到Coroutine,全都是异步
这个和JavsScript里的co或者redux-saga的实现是一模一样的

react里的hooks是特别纯的语法糖
你写了就知道,有时候因为要用state必须要把函数型组件改成class型组件
要写很多句,新的这个不用改了,还是换汤不换药的东西

Scala都能在JVM和JavaScript上跑,真的有哪个功能是某个语言独占的么?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @cuda  于 2019-4-14 21:50 发表
Unity里你想写点什么都要用到Coroutine,全都是异步
这个和JavsScript里的co或者reduxsaga的实现是一模一样的

react里的hooks是特别纯的语法糖
你写了就知道,有时候因为要用state必须要把函数型组件改成class型组件
要写很多句,新的这个不用改了,还是换汤不换药的东西

Scala都能在JVM和JavaScript上跑,真的有哪个功能是某个语言独占的么?
好吧,既然一样,我能在unity里用redux saga么?

hooks和class内部实现完全不一样。。。。

编程语言本身基本上没有什么功能是独占的,你怎么样都能hack去玩。
但是你会去用JavaScript玩多线程么?
但是你会用Java去玩指针么?
但是你会用haskell去玩oop么?

来一个类比,
等于是你通过学阿拉伯语,看阿拉伯语版日本动漫/影视来了解日本文化。这是绝对可行的。也是有病的

TOP

posted by wap, platform: iPhone
引用:
原帖由 @XI-NIAN  于 2019-4-14 19:16 发表
牛批,泥潭人怎么都消失了?
内容实在太无脑怎么评价。
说编译器能提高开发效率。
等于说高速打印机能提高作者码字速度。

TOP

posted by wap, platform: Android
引用:
原帖由 @cc0128  于 2019-4-14 22:36 发表
好吧,既然一样,我能在unity里用redux saga么?

hooks和class内部实现完全不一样。。。。

编程语言本身基本上没有什么功能是独占的,你怎么样都能hack去玩。
但是你会去用JavaScript玩多线程么?
但是你会用Java去玩指针么?
但是你会用haskell去玩oop么?

来一个类比,
等于是你通过学阿拉伯语,看阿拉伯语版日本动漫/影视来了解日本文化。这是绝对可行的。也是有病的
hooks是框架提供给你的功能
而不是语言提供给框架的功能

它的底层只需要闭包就能实现
不管这个闭包是原型链提供的 还是匿名内部类提供的
你都能搞出来这个功能


在我心里 语言由两个角度分类
动态和静态 oop和fp
对于后者来说java和scala, C#和F#都是共用平台的
据我对scala浅薄的理解,底层都是靠满地的implicit来实现的
对于前者来说绝大多数概念都是有对应的
比如原型链能模拟类
我是真的没见过有哪些功能那么特别

TOP

Posted by: HUAWEI HMA-AL00
我把我爸的Mate10升级了体验版,应该是方舟,升级了很久,启动之后,麒麟970竟然不卡了,以前看APP拖动会卡的。相册里一千多张照片,拖动和视频里一样,飞一样,瞬间显示。

TOP

知乎上看到一个最合乎逻辑的分析,现在源码看不到,只有那个“加载图片非常快”的视频。
从逻辑上讲,如果真的如这个分析所说,本质上是runtime重写的话,确实能完成那个视频的效果。
还是我以前说过的,凡事皆有代价。为什么华为“加载图片非常快“而google却没做到,难道是google比华为技术差吗?必然不是。华为一定在技术选型时付出了一些代价,而这些代价是否值得,在看到源码之前无从判断。

=====================================================
私下得到的消息,这事其实和编译器真没多大关系,实际是华为自己写了一套runtime,用方舟(其实不应该叫编译器,应该是一整套toolchain了,类似xcode)编译之后,不是安卓打包格式了,就是binary,然后链接华为自己的runtime这就很容易解释为啥S10和P30p在图片那里差距这么大了,安卓本身的图片view的策略就是少缓存,华为修改之后的就和ios一样提前都缓存好,那自然吊打了所以华为把toolchain都开源了其实也没啥,反正runtime在我自己这里,你拿到toolchain也只能给华为手机开发,除非你自己写一套runtime。如果你有这个实力自己开发一套runtime(其实主要是敢不敢),自己搞一套toolchain也很轻松反正现在开源的东西一大堆。不过呢,这已经是摆明了在分裂安卓了,看google的态度吧。如果google忍了,可能华为再过渡个几年换自己的os。如果google直接翻脸,我觉得华为的算盘可能是打官司怎么也能拖个两年,只要暂时不在海外禁售,争取在这之前换到自己的os,就彻底和安卓还有google拜拜了

作者:张铎
链接:https://www.zhihu.com/question/319688949/answer/648628733
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

TOP

posted by wap, platform: MAC OS X
引用:
原帖由 @cuda  于 2019-4-14 23:21 发表
hooks是框架提供给你的功能
而不是语言提供给框架的功能

它的底层只需要闭包就能实现
不管这个闭包是原型链提供的 还是匿名内部类提供的
你都能搞出来这个功能


在我心里 语言由两个角度分类
动态和静态 oop和fp
对于后者来说java和scala, C#和F#都是共用平台的
据我对scala浅薄的理解,底层都是靠满地的implicit来实现的
对于前者来说绝大多数概念都是有对应的
比如原型链能模拟类
我是真的没见过有哪些功能那么特别
当然最后都能实现。
我拿拼音标英文发音一样凑合能用。
期待你用java写react app放在ios上跑。

本帖最后由 cc0128 于 2019-4-15 14:22 通过手机版编辑

TOP

posted by wap, platform: Chrome
引用:
原帖由 @XI-NIAN  于 2019-4-14 19:16 发表
牛批,泥潭人怎么都消失了?
因为@nai等一批泥潭用户前排晾完屁股,各个手机牌子死忠粉再死妈一番,这么偏后又技术向的发言谁会看啊

TOP

引用:
原帖由 masterfish 于 2019-4-14 11:36 发表





这么弄他完全绕开 runtime app安全性怎么保证?
这样又回到牛虻软件可以为所欲为的 情况了吧

TOP

 60 1234
发新话题
     
官方公众号及微博