写点什么

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

评论 2 条评论

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

leetcode 20. Valid Parentheses 有效的括号(中等)

okokabcd

LeetCode 数据结构与算法 栈和队列

【大厂面试真题解析】蔚来数字化业务后端一面(2022.8.6)

面试官问

后端 面试题 大厂面试 面经分享 蔚来

关于使用WebStorm两年所总结的一些常用插件和功能

安安安

前端 webstorm

看完腾讯大佬90天整理的“Redis深度笔记”,我直接当场膜拜

Java工程师

Java redis 源码

大数据培训课程如何选?

小谷哥

数据建模已死,真的吗?

Kyligence

数据建模 数据模型 数据指标

兆骑科创创业大赛竞赛平台,双创服务,投融资对接

兆骑科创凤阁

兆骑科创创新创业大赛平台,人才引进,项目路演

兆骑科创凤阁

不得不服!真心被这份阿里大牛开源的“全彩版图解HTTP手册”折服了

JAVA活菩萨

Java 程序员面试 大厂技能 秋招 大厂面经

从TRPO到PPO(理论分析与数学证明)

行者AI

在北京参加UI设计培训到底怎么样?

小谷哥

Java完全自学手册,从外包到大厂,再到年薪100万技术大佬都靠它

JAVA活菩萨

Java 程序员面试 大厂技能 秋招 大厂面经

Rust 入门指南(使用JSON)

王泰

rust

dubbo 长连接

石臻臻的杂货铺

dubbo 8月月更

宁夏等保测评机构有哪些?如何选择?

行云管家

等保 堡垒机 等级保护 等保测评 宁夏

爆了!1213页LeetCode算法刷题神册(全彩),GitHub万星仅是开始

JAVA活菩萨

Java 程序员面试 大厂技能 秋招 大厂面经

java培训中心有哪些

小谷哥

java软件培训费用怎么算

小谷哥

国际计费系统基于Sharding-Proxy大数据迁移方案实践

京东科技开发者

数据库 系统 数据迁移

开源一夏│别逗,作为程序员你竟还没参与过开源项目?

开源 经验分享 签约计划第三季 8月月更

《数字经济全景白皮书》银行业智能营销应用专题分析 发布

易观分析

金融 银行 白皮书 智能营销

腾讯SpringBoot高阶笔记,限时开源48小时

冉然学Java

编程 springboot 笔记 java 日志 #开源

你知道 Vue scoped 原理吗?这波你在第几层?

掘金安东尼

面试 前端 8月月更

面向推荐的汽车知识图谱构建

之家技术

人工智能 机器学习 知识图谱 汽车

深圳堡垒机厂家有哪些?重点推荐哪家?

行云管家

网络安全 堡垒机 深圳 运维审计

架构师学习心得总结

泋清

#架构实战营

结合实际聊聊电平转换电路(常用电平转换电路总结)

矜辰所致

电路设计 8月月更 电平转换电路

富媒体在客服IM消息通信中的秒发实践

得物技术

前端 即时通讯 客服 富媒体 大文件传输

web前端培训课程怎么选择

小谷哥

双Q合璧:RabbitMQ与RocketMQ,电子版手绘脑图+学习指南+面试等

冉然学Java

RocketMQ RabbitMQ 架构设计 笔记 java 日志

SpringMVC(二、请求和响应)

开源 springmvc 8月月更

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