AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

深度 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:003506

评论 2 条评论

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

使用亚马逊云科技DevOps 工具构建 InnerSource 生态系统

亚马逊云科技 (Amazon Web Services)

开源 InnerSource

梦想起航

向往

盘点2021

60 K8S之EFK日志管理系统

穿过生命散发芬芳

k8s 28天写作 12月日更

基于磁盘量身定制,十亿规模高效向量检索方案

Zilliz

向量检索 anns 向量计算

技术“开源”对于金融业软件发展的影响

Speedoooo

安全 ios开发 APP开发 Andriod开发 小程序容器

架构训练营模块三作业

zhongwy

架构实战营 「架构实战营」

一次完整的渗透测试&仅供学习研究

H

黑客 网络安全 渗透测试·

固定资产管理平台系统解决方案

低代码小观

企业管理 资产管理 CRM 企业管理系统 CRM系统

Linux之atime,ctime,mtime的区别

入门小站

Linux

域名基本信息查询小技巧

喀拉峻

网络安全 安全 信息安全

How old are you | 尚硅谷大数据之Canal视频教程

编程江湖

大数据 canal

Dubbo 框架学习笔记十七

风翱

dubbo 12月日更

【转】大数据开发之Spark面试八股文

@零度

大数据 spark

尚硅谷大数据之Canal视频教程发布!

@零度

大数据

助车企升级,旺链科技与南方电网、联想等名企同斩获「创新案例奖」

旺链科技

区块链 产业区块链 供应链金融

2021 优秀开源项目公布,Apache APISIX 位列其中!

API7.ai 技术团队

api 网关 Apache APISIX 优秀开源项目

带你认识三种kafka消息发送模式

华为云开发者联盟

kafka 时间 异步 消息发送 producer

面试官:方法重写时需要注意哪些问题?

王磊

QCon-oCPX多目标多场景联合建模在OPPO的实践

安第斯智能云

算法

HDFS源码解析:教你用HDFS客户端写数据

华为云开发者联盟

hdfs block appendChunk

☕【权限设计系列】「认证授权专题」微服务架构的登陆认证问题

码界西柚

微服务架构 12月日更 权限认证机制 授权设计

填问卷抽大奖,中奖绝缘体的跨年福利快来领取!

InfoQ写作社区官方

热门活动

Spring框架基础知识(03)

海拥(haiyong.site)

28天写作 12月日更

人工智能(NLP)|社交网络中的网络表示学习技术研究

索信达控股

人工智能 算法 网络结构

前端React 开发中必须知道的5个技巧

@零度

前端开发 React

在线JSON转PHP Array工具

入门小站

工具

通过一个实际例子理解Kubernetes里pod的自动scale - 水平自动伸缩

汪子熙

Kubernetes k8s 28天写作 docker build 12月日更

揭秘字节跳动基于Hudi的实时数据湖平台

字节跳动数据平台

大数据 实时数据湖

实现一键部署与高效集群管理,SphereEx-Boot 正式上线

SphereEx

开源 开源社区 SphereEx ShadingSphere 一键安装

兄弟要盘吗?

为自己带盐

爬虫 dotnet 28天写作 12月日更

千万级日志回放引擎设计稿

FunTester

性能测试 测试框架 FunTester 流量回放 GOREPLAY

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