惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyberwarzone
Cyberwarzone
V
Vulnerabilities – Threatpost
T
Tenable Blog
Forbes - Security
Forbes - Security
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
S
Securelist
C
Cybersecurity and Infrastructure Security Agency CISA
Project Zero
Project Zero
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Visual Studio Blog
WordPress大学
WordPress大学
Latest news
Latest news
K
Kaspersky official blog
T
Tailwind CSS Blog
T
Threat Research - Cisco Blogs
B
Blog RSS Feed
C
Cisco Blogs
博客园 - 聂微东
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
小众软件
小众软件
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Privacy International News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
S
SegmentFault 最新的问题
Security Latest
Security Latest
Y
Y Combinator Blog
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 最新话题
月光博客
月光博客
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
S
Security Affairs
P
Proofpoint News Feed
D
DataBreaches.Net
有赞技术团队
有赞技术团队
云风的 BLOG
云风的 BLOG

博客园 - ZXJ~佳

openclaw错误之令牌过期 openclaw 常用操作命令 windows10本地部署openclaw windows部署ruoyiAI应用-nginx配置后台管理端和用户管理端 Windows安装向量数据库weaviate java冒泡排序 layer实现表格大图预览功能 js中Enter切换文本框,方便快捷输入 前端密码加密后端解密保证登录安全 java面试题 mysql8新特性CTE递归实现30天时间日期 Vala之入门篇(二)Vala安装 Mybatis—Generator使用教程 JAVA8十大新特性详解 博客主题 nideshop小程序商城部署 Eclipse创建Maven多模块工程Module开发(图文教程) 将博客搬至CSDN
Vala之入门篇(一)Vala简介
ZXJ~佳 · 2020-08-21 · via 博客园 - ZXJ~佳

        Vala 是一门新兴的编程语言,为那些依赖 GNOME 平台运行时(runtime),尤其是依赖 GLib 和
GObject 库的应用程序的编写提供了大量现代的编程技术的支持。目前,GNOME 平台长期持支了一套完整
的编程环境,拥有诸如动态类型系统,辅助内存管理等特性。在 Vala 诞生之前,要在 GNOME 平台上编程,
只能去调用原生的 C 语言接口,但是这样的编程方法暴露了很多根本不需要知道的细节,如果用更高级
的语言,诸如 Python,Mono C#,则需要相应的虚拟机环境,否则就只能调用 C++ 封装的库。
Vala 不同于以上提到的任何语言,Vala 最终会转换成 C 语言,然后再编译运行,不用依赖 GNOME 平
台的其他附加的库(除了 GLib 和 GObject 之外)。


由此,造成了一些细微的但又非常重要的影响:


• 使用 Vala 编写应用程序和直接使用 C 编写应用程序,运行的效率非常相似,但是 Vala 相
比 C,更加容易,快速地编写和维护。


• 使用 Vala 做不到 C 语言也做不到的事情,尽管 Vala 相对 C 语言来说,提供了很多 C 语言没
有的特性,但实际上 Vala 所有的特性都是映射到 C 语言本身的,只不过如果直接用 C 语言来实现
这些特性的话,非常耗时,也非常困难。


综上所述,即便 Vala 提供了全部我们所希望的现代编程特性,但其实这些都是得益于一个已经存在
的强力平台,因此我们在使用 Vala 的时候,必须遵守这个平台的编程规范。