- 主题:华为的仓颉语言还不如c#顺眼
类型后置是现代新语言的共识,表示函数之类复杂一些的类型比c风格好多了。
仓颉看起来定位就是和C#差不多,除了编译到二进制,功能类似是肯定的。这个生态位的流行语言,.net语言、jvm语言、kotlin、swift,基本都是有主的,华为都不太可能选用。
【 在 finlab 的大作中提到: 】
: 用了pascal风格的函数和类型声明
: 其他表达式又是C风格
:
: ...................
--
修改:milksea FROM 221.222.20.*
FROM 221.222.20.*
并不是编译速度的问题。int (*) foo(int (*a)(int))(int) 这种c式声明是必须摒弃的。(话说我没敢确定自己写对了)
【 在 finlab 的大作中提到: 】
: 是啊, 同类型同时代得语言也没啥本质区别
:
: 码农耗费时间最多得,还是各自生态中的三方包。
: ...................
--
FROM 221.222.20.*
华为明显想要AOT编译,目前是到LLVM后端,比C#的.net native还是轻量合用。
自己的东西好处是按自己的需求随便造。语言还好,主要问题其实是库生态。
【 在 finlab 的大作中提到: 】
: 其实不讲面子, 就用开源的C#
: 开发效率刚刚的,运行效率也仅次于c++
:
: ...................
--
FROM 221.222.20.*
c#, java早期没有函数式支持,类型不复杂,否则还是后置相对清晰。
其实前后置类型是语法上相对而言无关紧要的部分。和类型enum,match这些对语言表达能力影响大多了;默认不可变的语义对安全性影响大多了。
【 在 finlab 的大作中提到: 】
: 本质上还是C允许的类型声明太过复杂灵活了,且非常不直观。
: 可以做一些限制和改进。
:
: ...................
--
FROM 221.222.20.*
一个值语义一个引用语义,和c#概念类似。这个不乱。
c++只有值。
struct是值语义,变量赋值、传参都是传值,内存紧密排列,有助于增进内存效率。
【 在 chaobill 的大作中提到: 】
: 看了一下,还是不明白 struct 和 class 的区别,和 c++ 一样混乱
: 【 在 finlab 的大作中提到: 】
: : 用了pascal风格的函数和类型声明
: ...................
--
修改:milksea FROM 221.222.20.*
FROM 221.222.20.*