2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

深度 deepin 开源自研编程语言 Unilang

  • 2022-09-20
    北京
  • 本文字数:963 字

    阅读完需:约 3 分钟

深度deepin开源自研编程语言 Unilang

近日,深度deepin正式公开了自研全新通用目的编程语言——Unilang,包括相关的文档和一个解释器。

 

deepin 方面表示,虽然业界虽然已经有了很多较为成熟的桌面应用开发方案,例如 Qt、Electron、PySide 和 Flutter 等,但各个方案均有着各自的痛点,没有任何一种现有方案能兼顾各种不同的问题,而成为没有疑义、众望所归的桌面开发首选方案。

 

造成这种局面的一个技术理由是,许多方案设计过于专注具体需求而缺乏考虑语言长期演进的普遍因素,使其在预期目标领域之外的适用性急剧下降,通用性不足。当应用领域和预期略有偏差或暴露原有设计的局限性时,用户即便懂得如何改进一个语言,也会在语言二次开发上遇到困难,从而被迫放弃。

 

因此,deepin 希望有一种语言可以尽快解决各个方案中存在的痛点,能极大程度帮助到因语言二次开发遇到困难而被迫放弃的开发者,以更深刻的方式、真正实现“通用性”。

 

于是在 2020 年 4 月,deepin 决定开发“自己的语言”,进一步往上做 GUI 框架;2020 年 6 月,经调研分析后,deepin 创建 Unilang 仓库,提交了第一行代码;2021 年 3 月,deepin 基本实现了 2020 年决定设计的主要特色内容,着手研究目标代码生成方案;今年 9 月,deepin 正式公开了全新的通用目的编程语言 Unilang。

 

根据官方介绍,Unilang 的主要特点包括:

 

  • 作为动态语言,提供相对其它语言更强的语言层次上的可扩展性。

  • 支持类似 C++ 的对象模型和(当前不被检查的)不安全所有权语义。

  • 不要求全局 GC ,同时语言的一个子集允许和 C++ 同等层次的“不安全”但能确保确定性的资源分配。

  • 支持正式意义上的 PTC ,而不需要用户程序内对栈溢出等未定义行为进行变通。

  • 使用隐式的潜在类型(latent typing) 而非显式的清单类型(manifest typing) 。

 

为了保持通用性,Unilang 不内建提供 GUI 功能,而通过库提供相关 API 。当前计划中,Unilang 将会支持基于 Qt 绑定的库,以便衔接过渡现有的一些桌面应用项目。Unilang 的语言设计保持足够的抽象能力和可扩展性,未来支持直接实现 GUI 框架。

 

另外,Unilang 在语言特性的层次上被设计为能支持不同的应用开发场景,但原则上对这些场景保持中立。这意味着,它可以同时支持服务端和客户端应用的开发,不需要用户切换思维范式或者大幅更改对语言的使用习惯。

 

更多资料:

https://github.com/linuxdeepin/unilang/blob/master/README.zh-CN.md

2022-09-20 15:003608

评论 2 条评论

发布
用户头像
谁用谁知道
2022-09-21 08:31 · 浙江
回复
用户头像
牛!去试试
2022-09-20 16:59 · 北京
回复
没有更多了
发现更多内容

MySQL中事务的持久性实现原理

X先生

MySQL 数据库 sql 数据库事务 事务

架构师训练营 1 期第 6 周作业

木头发芽

当下工作流管理系统的发展趋势

Marilyn

敏捷开发 快速开发 软件架构 企业开发

在2020年更受关注和追捧的JS框架

葡萄城技术团队

react.js Vue js Svelte

数据结构与算法系列之链表操作全集(二)(GO)

书旅

数据结构 算法 Go 语言

基于React+Koa实现一个h5编辑器

徐小夕

Java nodejs H5 React koa

试用阿里网盘内测版-不限速、无广告、隐私安全我全都要

郭旭东

阿里云网盘

精解四大集合框架:Set核心知识总结

田维常

程序员 后端

Caffe 安装踩坑记录

Dreamer

caffe

独立显卡市场又一巨头跻入,英特尔锐炬® Xe MAX 独立显卡来了!

E科讯

面试时说Redis是单线程的,被喷惨了!

redis 编程 程序员 计算机

直播预告 | CloudQuery初体验——安装及多数据源连接

BinTools图尔兹

数据库 sql 安全 工具软件 dba

目标检测综述

Dreamer

TypeScript魔法堂:函数类型声明其实很复杂

肥仔John

Java typescript

SpringBoot-技术专题-war包部署读取外部配置Yml

码界西柚

云图说|知道吗?在和你对话的那头,也许是个机器人哦~

华为云开发者联盟

华为 AI 机器人

写文档太麻烦,试试这款 IDEA 插件吧!

程序员小航

Java markdown IDEA idea插件 文档

架构师训练营第 1 期 第 3 周作业

李循律

极客大学架构师训练营

华为云的销售凭什么说“赢”了罗振宇?

ToB行业头条

tob

SpringBoot-技术专题-war包部署读取外部配置Properties

码界西柚

精解四大集合框架:Queue核心知识总结

田维常

后端

TensorFlow 篇 | TensorFlow 数据输入的最佳实践

Alex

tensorflow keras input pipeline dataset

架构师训练营第 1 期 第 5 周作业

李循律

极客大学架构师训练营

接口测试人员需要掌握的知识技能

测试人生路

接口测试

专利申请其实并不难?四步教你玩转专利申请!

华为云开发者联盟

专利 保护

快速掌握并发编程---深入学习ThreadLocal

田维常

C++ primer -- 第18章 探讨C++新标准

Dreamer

c++

EDA最强攻略,如何为EDA选择存储?

焱融科技

分布式 高性能 存储 半导体 EDA

Forsage矩阵系统开发,智能合约搭建

薇電13242772558

Docker底层技术

混沌畅想

Docker 容器 DevOps 底层技术

深度deepin开源自研编程语言 Unilang_文化 & 方法_褚杏娟_InfoQ精选文章