仓颉编程语言在线体验

前言:最近看到了仓颉编程语言官网上线,特地来了解,做一些仓颉相关介绍和个人体验感受。

介绍

仓颉

先介绍一下“仓颉”吧,可能很多人还不了解。
“仓颉”,原姓侯冈,名颉,是中国古代传说中的文字创造者,被尊称为“文字之祖”…

哈哈哈,调皮了,此仓颉非彼仓颉,我们这里要说的仓颉是华为自研编程语言“仓颉”
在 2024 年 6 月 21 日的华为开发者大会上,华为终端 BG 软件部总裁龚体正式官宣了华为自研仓颉编程语言。
从同名对应历史人物的来历,就感觉未来可期。
虽然是国产编程语言,但是不要误会,并不是中文编程。

大家或多或少都知道华为的鸿蒙系统(HarmonyOS),仓颉就是一种为鸿蒙生态量身打造的智能编程语言,支持鸿蒙系统下的应用开发。仓颉编程语言的推出,算是对鸿蒙生态系统的一个重要补充,在构建华为在软件生态建设上的尝试。仓颉能在鸿蒙系统下开发更好支持,毕竟亲生的。

语言特点

查看了白皮书、开发指南、教程和体验后,对仓颉的最大语言感受就是易用、高性能和强安全。整体感觉就是集百家之长,还功能挺全面的。

易用性
仓颉语言集百家之长,融合了很多优秀编程语言的范式和语法,在上面能看到很多编程语言的影子。
语言风格类似于自然语言,注重可读性和简洁性,无论是有没有编程基础都好上手

仓颉虽然是对华为鸿蒙系统的一种补充,但是支持跨平台
支持Windows、Linux、macOS以及华为的HarmonyOS,还适用于物联网。

内置库功能丰富,除了常用的涉及数据结构、常用算法、数学计算、正则匹配等,还内置了大数据处理和人工智能的库。
仓颉语言内置了高效的数据处理能力,简化了数据处理逻辑,适用大规模数据集的处理。
仓颉还支持AI主流框架,支持TensorFlow和PyTorch等主流AI工具,还有预训练模型和自动调参。
支持更多应用场景,提高开发效率,以前要用AI和大数据还得专门用Python才方便,仓颉直接内置支持。

仓颉编程语言还面向全场景应用,可以写前端也可以写后端,万金油既视感。

高性能
高效并发,提供了用户态轻量化线程(原生协程),以及简单易用的并发编程机制,保证并发场景的高效开发和运行。
提供无锁并发对象,在多线程共享内存并发场景容易产生数据竞争,通常需要手动设置互斥锁,而仓颉为用户提供无锁编程体验。

强安全
内存安全,支持自动内存管理,并在运行时进行数组下标越界检查、溢出检查等。
类型安全,仓颉编程语言是静态强类型语言,通过编译时类型检查尽早识别程序错误。

应用场景

学习一门语言很多时候是为了应用,所以关注语言应用场景是很有必要的,但是感觉应用场景比较少,也没有特别的案例更好体现前面所说语言特性的优势。

看了一下仓颉编程语言官网,在两方面鸿蒙和服务端/云,简单来说就是客户端和服务端。
鸿蒙操作系统上更好的应用软件开发,服务端/云上微服务应用开发。
在这里插入图片描述

编程体验

学习资源

要体验一个新的语言,肯定是需要去了解相关的背景和知识的。
因为是新语言,资源肯定是不如C++和Python之类主流语言多的。

仓颉官网提供的教程以及文档,对于语法就很详细了,然后还搜了一些b站相关的仓颉编程语言相关的内容。
在学习资源者方面,仓颉的入门基础相关的教程足够,语法简洁明了,有编程基础上手还挺容易的。但是仓颉语言本身使用场景优势背景等介绍并不多。另外,相关的案例教程比较少,对于后续上手应用工程还是欠缺。
大部分教程停留在了入门基本语法介绍,缺乏API和应用案例教程。

编译

编译可以选择在线和下载使用

在线编译体验直接线上编码即可,试试写一些小的程序逻辑。

下载使用,仓颉编程语言提供三个版本(LTS、STS 和 Canary),提供可以在Linux、Windows以及Mac上安装使用的软件包与帮助开发者在VScode平台上搭建开发环境的插件。安装和编译运行的官方文档非常详细。
在这里插入图片描述

编码

在线体验非常方便,我就直接在线编译进行体验仓颉的。

Hello world
老规矩,入门第一步,先写“Hello world”。写起来,仓颉语言有种Python的感觉,就是简单明了。

main() {
    println("Hello World")
}

在线编译使用也很方便,跟在线刷算法题编译器差不多。
在这里插入图片描述

排序
看完了入门基本语法,查询了官方的API,写个简单的排序不在话下,有编程基础上手挺快的!
直接调用了官方排序的API,提供的排序功能还挺多的。

import std.sort.*
main() {
    var arr =[8,7,33,6,1]
    println("原始数组,升序数组,降序数组,自定义排序(升序)")
    println(arr)
    arr.sort()
    println(arr)
    arr.sortDescending()
    println(arr)
    arr.sortBy(){a:Int, b:Int=>
    	if(a<b){
            return Ordering.LT
        }
       	else if(a>b){
            return Ordering.GT
        }
        return Ordering.EQ
    }
    print(arr)
}

在这里插入图片描述

在线编译的感受
编译语言使用简单好上手,配合官方文档和入门教程,写点小的程序问题不大;在线编译使用简单,但是没有自动缩进补全之类的功能,写点小的代码体验体验还可以;仓颉相关的教程停留在基本语法介绍,相关API使用资源除了官方文档基本搜不到案例,官方给的案例也比较少,给编码使用提高了一些成本。

整体感受

优点

  1. 好上手仓颉。仓颉吸纳了现存的很多中编程语言的范式和语法,有其它语言基础上手会更简单;语言风格类似于自然语言,简单可读易上手。
  2. 跨平台支持。支持Windows、Linux、macOS以及华为的HarmonyOS,还适用于物联网。
  3. 支持AI主流框架。支持TensorFlow和PyTorch等主流AI工具,还有预训练模型和自动调参。
  4. 高效数据处理能力。内置高效数据处理库,简化了数据处理逻辑,适用大规模数据集的处理。

缺点

  1. 学习资源不足。目前搜索大部分学习资源都是基本语法的入门简单介绍,但是缺乏应用案例的学习资源。
  2. 生态系统不成熟。第三方库和工具支持可能较少。
  3. 性能不确定。性能方面对比的还没怎么看到,另外优化工具也并不多;使用场景的实际应用比较少,稳定性和风险有待评估。

总结
仓颉结合了很多语言的范式和语法的优势,例如简洁的语法和自动内存管理机制。另外,考虑了很多现代软件开发的需求,例如大数据支持、多平台和AI等。以后的发展非常值得期待。
但毕竟是新出来的编程语言,目前开发社区、功能和生态等都不是很完善,需要更多的时间去发展,以及更多开发者参与完善。期待未来有更多的应用案例作为学习,以及越来越多开发者参与进来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值