对仓颉语言的简单认识

【仓颉官网】 https://developer.huawei.com/consumer/cn/cangjie/

仓颉是华为推出的一门编程语言,2019年投入研发2024年6月正式开启开发者预览,历经4年打磨终于面世。

仓颉的定位是面向全场景应用开发的现代编程语言,官方出具的白皮书显示其的特点主要有:

  • 高效编程
  • 安全可靠
  • 轻松并发
  • 卓越性能

白皮书中对每个特点都展开做了介绍,以说明支撑每个特点的语言特性和技术手段。

仓颉语言是一门强类型静态语言,整体来看中规中矩,保持与主流编程语言相同的风格。在语言特性上集主流语言的众家所长,也具备一些新颖的语言特性和技术。

主流语言的优秀特性如类型推断、函数重载、重载操作符、命名参数、参数默认值、垃圾回收、管道操作、多范式编程、安全检查...等等,这些主流特性不必展开,感兴趣的同学可以自行了解。

新颖的语言特性如类型扩展、尾随lambda、轻量化线程模型、值类型、宏等。

  • 类型扩展:在不改变原有类的情况下对类型进行扩展,可以为类型增加属性、成员函数、重载操作符等。这个特性的直观感受是方便使用,但从一定程度上破坏了原有类型的封装性。具体表现优劣还要经历时间的检验。
  • 尾随lambda:lambda表达式使用方式上的一个变形,官方文档给出的解释是使代码更加简洁,但个人认为只是省略几个字符而已。尾随lambda在形式上很容易与函数定义混淆,熟悉c++、python等lambda表达式用法的同学,突然接触尾随lambda可能会有些不习惯。
  • 轻量化线程模型:从白皮书来看仓颉的线程更像是协程,也不算全新的语言特性。
  • 无锁并发对象:无锁化编程实际上是封装了一些列线程安全的关键字和库,类似c++的std::atomic。
  • 值类型 :刚开始看到这个词有些疑惑,后来发现仓颉这里的值类型 是为了区别引用类型 ,c++支持同样的特性,而java、python等语言则只支持引用类型,所以这个特性也不算新特性,只是白皮书单独列出来了。
  • :仓颉的宏在形式上使用@标识符,用法和c/c++的宏类似,结合尾随lambda用法更灵活多变,不过直观感受是不利于阅读代码。
相关推荐
Dxxyyyy12 分钟前
零基础学JAVA--Day26(枚举类)
java·开发语言
好望角雾眠18 分钟前
第四阶段C#通讯开发-6:Socket之UDP
开发语言·笔记·学习·udp·c#
升鲜宝供应链及收银系统源代码服务26 分钟前
升鲜宝生鲜配送供应链管理系统---PMS--商品品牌多语言存储与 Redis 缓存同步实现
java·开发语言·数据库·redis·缓存·开源·供应链系统
大佬,救命!!!29 分钟前
python实现象棋
开发语言·python·学习笔记·pygame·少儿编程·记录成长
棉猴29 分钟前
《pygame中Sprite类实现多帧动画》注-通过多张序列帧显示动画2-2
开发语言·python·游戏·游戏程序·pygame
练习时长一年37 分钟前
Spring AoP的切点匹配
java·开发语言
霜绛1 小时前
C#知识补充(一)——ref和out、成员属性、万物之父和装箱拆箱、抽象类和抽象方法、接口
开发语言·笔记·学习·c#
T.Ree.2 小时前
cpp_list
开发语言·数据结构·c++·list
laocooon5238578862 小时前
C++ 图片加背景音乐的处理
开发语言·c++
爱编程的鱼2 小时前
C# var 关键字详解:从入门到精通
开发语言·c#·solr