有些用到原生功能比如摄像,录音,定位是否已经和原生没差别了?
101
pursuer 2021-12-22 20:18:56 +08:00
@secondwtq 有无虚拟机通常不是语言决定的,是语言生态决定的。
我觉得这些应用生态的核心差异还是,应用发布时,只打包应用所需的东西,还是尝试复用终端设备的资源 /程序。前者可以实现小的单一应用体积,并解决依赖问题,但是多个应用之间就可能存在很多重复的资源(极端情况举例,现在的应用没事就整个 CEF/浏览器)。后者一开始就需要用户安装一个比较大的运行环境,后面还可以安装其他组件,可以充分复用资源,相应的也要面对 运行时大,依赖管理难的问题。 大部分 windows 应用和 android 应用和 go,c++(除 COM 技术外)的生态就接近前者,linux 包管理和 python ,java 生态就是接近后者,。我倒是倾向于后者的发布模式,但对于普通用户来说,前者确实更友好。 |
102
secondwtq 2021-12-22 21:51:31 +08:00
@pursuer 语言设计者一般开始就会有如何实现的假设,这个假设会影响语言设计以及最初的实现,这些都和最关键的“设计目的”相关,之后才是生态,生态再反作用于语言设计和实现 ... 语言初始的设计是个种子,生态是从这个种子里面长出来的。这个方向大多数情况都被其初始实现也一般是设计者自己搞的实现也一般是至少在一开始最流行的实现钦定好了,后来的实现,尤其是能获得广泛应用的,一般都沿袭初始实现的模式。等到生态扩张到一定规模,再想改就难了。
比如 C++,它设计的目的就是加强 C ,里面那些 C 的东西放在虚拟机里面不好做也没必要,模板语言只会有编译时能确定的东西。当然有一些“生态”里面的人想把搞一个带虚拟机的 C++,结果搞出了 Java 和 C#,从 C++ 生态脱离了。C++ 还是原来那个 C++。 重要的不是编译器或者虚拟机,也不是具体的功能,而是为什么搞出这么一个新语言,它的核心目的和定位是什么,它存在的价值是什么,它有什么思考和沉淀 ... 后面也感觉不太对,比如 C/C++ 既有 Windows 生态也有 Linux 生态,很多 C++ 开源软件在 Linux 上也不会出现大量重复的情况。而专有软件倾向于无论哪个系统都要全部依赖打包在一块。Java 、Python 程序也可以做成类似大部分 Electron 应用的分发形式(如喷气脑子 IDE ,一些 Java 游戏等)。可见一个完善的生态并不会限制开发者在你说的依赖处理方面的选择。这个在不同语言之间的差异是比较小的,倒是和应用场景关联比较大。还是拿 C++ 来说,C++ 并不 care 你到底怎么分发软件,它只负责提供性能潜力和抽象能力,因为这是 C++ 的核心特征。 |
103
loginbygoogle 2021-12-24 21:21:46 +08:00
生态越来越好了,直接去 pub.dev 搜一搜就知道了,没有的话就自己写一个,还是那句话,Flutter 是为了提高开发效率,而不是降低开发门槛
目前就性能来说,Flutter >= 95% Android, >= 85% iOS (优化一下可以>= 90% iOS ) Flutter3.0 ,应该会正式支持 Desktop 值得期待 |
104
kazeik 2022-01-01 16:30:13 +08:00
说了这么多,为什么 flutter 要用 dart 。是忘了谷歌和甲骨文在 java 的世纪官司吗?说什么 c# ,js ,lua .当 java 纠纷再来一次时,谁也帮不上谁。
谷歌只是一个企业罢了。 |
105
liuyexing 2022-02-25 16:46:33 +08:00
ONES 招 Flutter 高级工程师
岗位职责: 1 、负责跨平台技术的框架的开发与维护; 2 、负责移动跨平台技术 Flutter 的创新应用技术的研发; 3 、负责 Flutter 框架和业务的性能体验优化; 4 、前沿技术研究,承担重点 /难点的技术攻坚专项。 岗位要求: 1 、本科及以上学历,计算机、通信、数学等相关专业; 2 、良好的数据结构和算法基础,扎实的编程功底; 3 、熟悉 Dart 语言和 Flutter 框架,熟悉使用各种 UI 组件,能使用 flutter 独立完成大型的 APP 开发经验; 4 、有丰富的 Android 或者 iOS 开发经验,至少熟悉 Java/Kotlin/Object-C/Swift/C++等一种或者多种语言; 5 、对新技术保持热情,具备良好的分析、解决问题的能力; 6 、积极的工作态度,优秀的学习能力,良好的逻辑思维,高效的团队协作; 7 、有大前端经验者优先。 关于 ONES: https://ones.ai/joinus.html 简历发送至: [email protected] |