看了最近关于 react native 的讨论, 有一些想法, 如题所示.
编程人员, 大部分都处于学习已有的语言标准, 使用别人开发的平台, 来(搬砖)建造上层建筑,所以底层是什么样, 大部分不甚了解, 就算了解, 也不甚了解为什么. 对底层的看法, 很容易归结到一个流行语:”不明觉厉”.
所以, 大部分人会沿用底层设计, 会沿用已有的语言模式, 盲目模仿”高大上”, 而不知为何, 形成IT界的copycats.
以我粗浅的理解, 至少目前看来, 大部分平台在给开发人员提供编程环境时, 并不是以”客户的开发效率”为标准, 而是以”平台软件的效率”兼顾”实现开发环境的效率”再兼顾”客户的开发效率”.后者优先级低, 所以大部分是以独立的IDE来提升客户开发效率, 而不是在平台本身加入设计.语言也是同理,好用的特性不能加入c++标准, 实际只是编译器在以效率为前提下, 不容易实现.而不是”这个特性不好用”.
对于平台的使用者来说, 关心的重点应该是”这个平台的应用效率”以及”开发的效率”, 并不需要去关心”底层是怎么设计的”, “提供的语言是怎么设计的”.
所以, 如果你觉得 js 这门语言易懂容易, 那么就使用它. 如果你觉得 react native 模式更为清晰易懂, 更容易业务分析并兼顾效率, 那么就使用它.
没有数据支持, 但我的第一直觉是: facebook 面临第一线的业务, 摸爬滚打开发应用了这么多年, 他们肯定比平台开发者能更清晰得把握什么开发模式才是更便于应用开发者并且更适合于实现应用业务逻辑的.
有一些疑问是”为什么执着于 js “, 这种看法似乎也与本题标题看法相符, 但同样可以提出疑问:”为什么执着于 java, oc, swift?”, “为什么执着于平台所提供的语言?”
见到过被 java “着魔”的, 被 c++ “着魔”的, 不用展开讲, 还是那句话, “语言只是工具, 没有好坏, 只有适不适合”.